Comment faire un CRON dynamique avec un serveur mutualisé? - 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 : Comment faire un CRON dynamique avec un serveur mutualisé? (/showthread.php?tid=6240) |
RE: Comment faire un CRON dynamique avec un serveur mutualisé? - Argorate - 09-07-2012 Qu'es ce qu'on s'en fou que le jeu "fige" si y a personne? Si y a personne, ça dérangera personne qu'il ne soit pas a jour... ^^ Donc pas un bon argument pour moi RE: Comment faire un CRON dynamique avec un serveur mutualisé? - atra27 - 09-07-2012 le soucis c'est si a la connection y a 10 ans a mettre a jour pendant le chargement de la page... RE: Comment faire un CRON dynamique avec un serveur mutualisé? - archANJS - 09-07-2012 Argorate a écrit :Qu'es ce qu'on s'en fou que le jeu "fige" si y a personne? Si y a personne, ça dérangera personne qu'il ne soit pas a jour... ^^ Si un joueur a lancé des actions et ne s'est jamais reconnecté depuis (et disons que personne n'a interagi avec lui depuis le temps), il apparaîtra toujours au même "état" dans le classement (s'il y en a un), où il y restera figé jusqu'à on ne sait quand... De ce fait même, cela nuit au principe de persistance en lui même dans un jeu vidéo. Mais bon, là c'est le gamedesigner en moi qui parle Si tu est correct avec ça, alors tout baigne ! C'est juste que moi j'aime à ce que les choses soient bien faites RE: Comment faire un CRON dynamique avec un serveur mutualisé? - niahoo - 10-07-2012 Vous dites nimp ... si y a un CRON le jeu reste pas figé, il évolue, c'est bien là l'utilité du CRON. Mais si on charge une page juste avant qu'une action se termine, récupérer les actions en cours pour pouvoir aller faire un chargement du résultat une fois l'action terminée c'est plus sympa pour l'utilisateur. Et ça demande pas un serveur spécifique : tu charges ta page, tu vois que dans 27 secondes un truc se termine, tu lances un timer, 27 secondes plus tard tu charges le résultat via un bête ajax. C'est une solution, personnellement j'utiliserai le push, mais simplement si on a choisi d'utiliser un CRON ça fonctionne. RE: Comment faire un CRON dynamique avec un serveur mutualisé? - Damocorp - 10-07-2012 Citation :Tout est dans PHP Resque et PHP Resque Scheduler (si tu bosses avec PHP, bien sûr).Je vais prendre le temps de voir tout ça, j'ai quelques difficulté avec l'anglais Mais Merci Citation :Qu'es ce qu'on s'en fou que le jeu "fige" si y a personne? Si y a personne, ça dérangera personne qu'il ne soit pas a jour... 34J'ai utilisé les deux méthodes, et personnellement j'y vois pas de différence non plus. Après j'ai tout de même opté pour un CRON, je trouvais cela plus propre dans mes scripts. RE: Comment faire un CRON dynamique avec un serveur mutualisé? - archANJS - 10-07-2012 niahoo a écrit :Vous dites nimp ... si y a un CRON le jeu reste pas figé, il évolue, c'est bien là l'utilité du CRON. Lis comme il faut niahoo, c'est bien ce que j'ai dis ^^ Damocorp a écrit :J'ai utilisé les deux méthodes, et personnellement j'y vois pas de différence non plus. Les différences sont là, mais assez minimes. Après, s'il faut choisir entre les deux options (requêtes manuelles ou CRON), le CRON est bien sûr le meilleur choix. RE: Comment faire un CRON dynamique avec un serveur mutualisé? - Argorate - 10-07-2012 (09-07-2012, 10:27 PM)atra27 a écrit : le soucis c'est si a la connection y a 10 ans a mettre a jour pendant le chargement de la page... Tout à fait exact, voilà pourquoi, à la base, je suis venu demandé comment passé en asynchrone (via un CRON)... ^^ archANJS: en fait, ce problème ne peu pas se présenter, puisque au bout de 3 jours, tu vires de la map et du classement puisque tu deviens inactif, donc au pire, il y a un décalage du classement de 3 jours et encore, si des gens viennent voir le classement, c'est qu'il joue, et du moment qu'il joue il enclenche la page de jeu et les scripts qui font "revivre" le jeu avec... Donc c'est pas vraiment un problème, non c'est plutôt comme l'a dit atra27, pour préserver l'utilisateur de temps de latence dû au rafrech après plusieurs heures ou jours sans s’être connecté... (l'unique utilité de l’asynchrone dans mon cas). RE: Comment faire un CRON dynamique avec un serveur mutualisé? - Kasparov - 17-07-2012 (09-07-2012, 09:16 PM)Argorate a écrit : Qu'es ce qu'on s'en fou que le jeu "fige" si y a personne? Si y a personne, ça dérangera personne qu'il ne soit pas a jour... ^^ Bonjour ! Petite contribution sur la forme (je n'ai pas non plus la bonne réponse à ce problème) : prenons un joueur qui lance, à 13h00, la construction de "Batterie anti-aérienne Niv 2", qui doit se terminer à 17h40. Il va manger, tombe malade, et ne peut pas se connecter ensuite. A 18h00, il reçoit une attaque d'un escadron d'hélicoptères Tigre (non, je n'ai pas regardé le défilé du 14 juillet (vraiment)). Comment savoir qu'au moment de l'arrivée de l'attaque (et pas de son lancement, ça serait trop simple), il a une batterie Niv 2, et pas une batterie Niv 1 ? Dans un autre registre, concernant l'histoire du refresh 5 secondes avant la fin de la construction, Exile (et j'imagine d'autres), avait un système de compteur en JS en H:M:S, qui se décrémentait dynamiquement sur la page, et qui, une fois arrivé à 0, affichait "terminé", avec un lien. En cliquant dessus, ça "validait" la construction. Mais on en revient à une action de l'utilisateur. RE: Comment faire un CRON dynamique avec un serveur mutualisé? - niahoo - 17-07-2012 Ben comme je l'ai dit tu fais pareil que Exile sauf que tu sautes l'étape clic, tu vas directement piocher les infos ! RE: Comment faire un CRON dynamique avec un serveur mutualisé? - Argorate - 18-07-2012 Il suffit de faire une requête ajax à la fin du timer (pas besoin de clic, moi ça me gonflerait de devoir valider une construction que j'ai déjà valider en enclenchant la construction la première fois). Puis si le mec se déconnecte, le truc est de faire la mise à jour du perso attaqué avant d’enclencher l'action d'attaque, comme ça les données sont tjs à jour... |