JeuWeb - Crée ton jeu par navigateur
[PHP] Resque ou Rediska et Redis : je rame complétement... - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : [PHP] Resque ou Rediska et Redis : je rame complétement... (/showthread.php?tid=5821)

Pages : 1 2 3 4 5 6 7 8 9


RE: [PHP] Resque ou Rediska et Redis : je rame complétement... - Auronake - 14-08-2012

(14-08-2012, 11:22 AM)php_addict a écrit : salut, bienvenue sur le forum

Merci Smile et merci pour la précision a/synchrone Wink.

(14-08-2012, 11:22 AM)php_addict a écrit : par contre je n'ai toujours pas résolu ce problème de façon Asynchrone car insérer une tâche qui s'executera à la seconde près (12 h 01 m 54 s par expl) est encore une énigme pour moi en PHP

d'ailleurs si tu sais comment faire n'hésites surtout pas à nous le faire savoir Wink

Non, je ne sais pas "encore" comment le faire mais je vais m'y pencher car le cas m'intéresse Wink.

Edit : ok Sephi-San Wink. Et en Java, tu aurais des pistes par hasard ?

(14-08-2012, 11:27 AM)Sephi-Chan a écrit : Il ne faut pas s'offusquer de quelques lignes de troll dans des messages plutôt constructifs.

Je ne suis pas du tout offusquer ! Et comme préciser, c'était un simple questionnement Wink sur l'accès concurrent.


RE: [PHP] Resque ou Rediska et Redis : je rame complétement... - Sephi-Chan - 14-08-2012

(14-08-2012, 11:39 AM)Auronake a écrit : Edit : ok Sephi-San Wink. Et en Java, tu aurais des pistes par hasard ?

Cette liste devrait pouvoir t'aider (Open Source Job Schedulers in Java).
Ça semble être le plus connu. Je l'avais rapidement essayé pendant mes cours de Java.


RE: [PHP] Resque ou Rediska et Redis : je rame complétement... - Auronake - 14-08-2012

Ok, parfait. Je vais regarder ça avec attention Wink.

Merci !


RE: [PHP] Resque ou Rediska et Redis : je rame complétement... - php_addict - 14-08-2012

(14-08-2012, 11:37 AM)Sephi-Chan a écrit : Si tu expliques pourquoi, on pourra t'aider à t'en passer.

Tout simplement pour les attaques par exemple: tu lance une attaque qui arrivera à 12h52m et 12s et à ce timestamp il faut que l'action soit résolue, ne serait ce que pour l'affichage du résultat pour le joueur, il ne peut pas attendre 48s pour connaitre le résultat du combat. Et évidement si aucun joueur n'est connecté, pas besoin de résoudre le combat à la seconde près...

(14-08-2012, 11:51 AM)Sephi-Chan a écrit : Cette liste devrait pouvoir t'aider (Open Source Job Schedulers in Java).

et cela marche à la seconde près ce truc ?


RE: [PHP] Resque ou Rediska et Redis : je rame complétement... - Sephi-Chan - 14-08-2012

(14-08-2012, 12:03 PM)php_addict a écrit :
(14-08-2012, 11:37 AM)Sephi-Chan a écrit : Si tu expliques pourquoi, on pourra t'aider à t'en passer.

Tout simplement pour les attaques par exemple: tu lance une attaque qui arrivera à 12h52m et 12s et à ce timestamp il faut que l'action soit résolue, ne serait ce que pour l'affichage du résultat pour le joueur, il ne peut pas attendre 48s pour connaitre le résultat du combat. Et évidement si aucun joueur n'est connecté, pas besoin de résoudre le combat à la seconde près...

Je ne vois pas en quoi le joueur ne peut pas attendre.
Si la tâche de résolution est lancée à 12h52m14s, qu'est-ce que ça d'important ?


(14-08-2012, 12:03 PM)php_addict a écrit :
(14-08-2012, 11:51 AM)Sephi-Chan a écrit : Cette liste devrait pouvoir t'aider (Open Source Job Schedulers in Java).

et cela marche à la seconde près ce truc ?
[/quote]

Aucun ne marchera à la seconde près. Aucun scheduler ne peut pas te garantir ça car il ne sait pas si il y aura des workers disponibles le moment venu.

Il insérera la tâche dans la liste au moment voulu, mais cette tâche ne sera peut-être traitée que dans 1 seconde (si un worker est libre), dans 4 secondes (si un worker va bientôt se libérer) ou dans 8 jours si ton système empile les tâches plus vite qu'il ne les dépile.


RE: [PHP] Resque ou Rediska et Redis : je rame complétement... - php_addict - 14-08-2012

(14-08-2012, 12:12 PM)Sephi-Chan a écrit : Je ne vois pas en quoi le joueur ne peut pas attendre.
Si la tâche de résolution est lancée à 12h52m14s, qu'est-ce que ça d'important ?

arf, oui effectivement. mais j'ai un système de chrono (affichage du compte à rebours) en JS qui reload la page du jeu à 12h52m12s donc si le worker résout l'action à 12h52m14s le joueur ne va rien y comprendre...


RE: [PHP] Resque ou Rediska et Redis : je rame complétement... - Sephi-Chan - 14-08-2012

(14-08-2012, 12:20 PM)php_addict a écrit :
(14-08-2012, 12:12 PM)Sephi-Chan a écrit : Je ne vois pas en quoi le joueur ne peut pas attendre.
Si la tâche de résolution est lancée à 12h52m14s, qu'est-ce que ça d'important ?

arf, oui effectivement. mais j'ai un système de chrono (affichage du compte à rebours) en JS qui reload la page du jeu à 12h52m12s donc si le worker résout l'action à 12h52m14s le joueur ne va rien y comprendre...

C'est de l'ordre du détail. Quand ton décompte arrive à 0, tu le remplaces par "Combat en cours…" et tu affiches ton rapport quand le résultat arrive (par push). L'expérience est bien meilleure pour l'utilisateur et ton système est plus efficace.


C'est dans ce sens que je pose la question du besoin et de l'envie. Le plus souvent, les gens ont des envies. Une petite citation (attribuée à Henry Ford, le créateur de la marque automobile du même nom) pour illustrer ça :

Citation :If I had asked people what they wanted, they would have said faster horses.

Les gens ont du mal à exprimer leur besoin (ici, se déplacer plus rapidement), qu'ils confondent souvent avec leur envie (ici, des chevaux plus rapides).

Selon moi, tu fais la même erreur ici. Smile


RE: [PHP] Resque ou Rediska et Redis : je rame complétement... - Auronake - 14-08-2012

+1 pour Sephi-Chan.

Je pense que l'important est que les actions se déroulent dans l'ordre d'apparition (grâce à la file d'attente ou la queue).

Après, si ces actions sont décalées de quelques secondes (workers indisponibles ou traitement un peu trop long...), le système de Push allié à une interface dynamique permet de pallier à ce problème et je suis daccord pour penser que cela peut rendre une meilleure expérience de jeu pour le joueur :

- Le combat arrive (compte à rebours)
- Le combat à lieu (déclenchement du traitement + traitement + Push)
- Le combat est fini (affichage du Push)

Mode HS :
Cela devient même plus logique et plus réaliste dans la mesure où un combat ne se déroule pas instantanément. On prend en compte le temps de déplacement des troupes mais pas le temps de combat en lui-même ?
Peut-être même prendre en compte un temps de combat aléatoire en fonction des forces présentes pour augmenter le réalisme et pourquoi pas (par Push), afficher des rapports intermédiaires à la manière des jeux de gestion d'équipes de football où l'on ne voit pas les joueurs jouer mais seulement les actions importantes du match sous forme textuelle...

Mais je m'éloigne !


RE: [PHP] Resque ou Rediska et Redis : je rame complétement... - Ter Rowan - 14-08-2012

Heroes might and magic la version web st exactement dans ce cas

Il y a un horaire affiché, qui plus est en minute, pour toutes les résolutions
Une fois le teMps passé on est en cours le temps qu il faut

A ce propos, pourquoi la seconde et pas la milliseconde ?