09-12-2015, 03:49 PM
Déjà, question un peu H.S, difficile de faire un jeu 100% Ajax sans passer par des websockets ?
Non, Websocket n'est aucunement obligatoire. Si tu veux a besoin d'une communication duplex client-serveur en temps quasi-réel, alors c'est une bonne solution. Sinon, t'en n'a pas besoin et tu peux donc faire ton jeu sans.
Pour le 1, le client a fait une requête au serveur pour lui dire "je lance mon sort" (et le serveur sait qu'il est 14H29, attention, ce n'est pas au client de le dire dans une archi comme celle-là). Le serveur stocke l'information, et répond au client "Ok, ton sort est lancé, et le prochain, tu pourras le lancer à 14H30". Le client ne fait rien de l'info. Le joueur peut donc recliquer sur "lancer un sort". Là, le serveur doit répondre "va te faire voir, t'as pas finit de recharger, t'auras finis à 14H30". Ensuite, tu ajoutes un code qui, lorsque le client reçoit la réponse du serveur (la 1ere ou la 2nde), alors le bouton est grisé, et un timeout (ou autre) le dégrise plus tard.
Pour le 2, non, mieux vaut au contraire n'avoir JAMAIS le grisé, cliquer sur le bouton, voir le serveur réponde "va te faire voir, t'as pas encore le droit de lancer ce sort" (que ce soit en AJAX ou non), et ensuite coder ce qu'il faut pour le grisé, pour faciliter la vie du joueur.
Non, Websocket n'est aucunement obligatoire. Si tu veux a besoin d'une communication duplex client-serveur en temps quasi-réel, alors c'est une bonne solution. Sinon, t'en n'a pas besoin et tu peux donc faire ton jeu sans.
Pour le 1, le client a fait une requête au serveur pour lui dire "je lance mon sort" (et le serveur sait qu'il est 14H29, attention, ce n'est pas au client de le dire dans une archi comme celle-là). Le serveur stocke l'information, et répond au client "Ok, ton sort est lancé, et le prochain, tu pourras le lancer à 14H30". Le client ne fait rien de l'info. Le joueur peut donc recliquer sur "lancer un sort". Là, le serveur doit répondre "va te faire voir, t'as pas finit de recharger, t'auras finis à 14H30". Ensuite, tu ajoutes un code qui, lorsque le client reçoit la réponse du serveur (la 1ere ou la 2nde), alors le bouton est grisé, et un timeout (ou autre) le dégrise plus tard.
Pour le 2, non, mieux vaut au contraire n'avoir JAMAIS le grisé, cliquer sur le bouton, voir le serveur réponde "va te faire voir, t'as pas encore le droit de lancer ce sort" (que ce soit en AJAX ou non), et ensuite coder ce qu'il faut pour le grisé, pour faciliter la vie du joueur.