13-03-2013, 01:10 PM
Il n'y a pas de différence entre ce que propose oxman et moi. (enfin si, lui il met à jour le serveur à intervalles régulières, moi dès que la connexion est libre -- dans les deux cas tu peux également le faire au travers du websocket pour accélérer le traitement, ce n'est pas spécifique à AJAX)
Dans mon cas comme dans le sien, si un joueur se téléporte loin sur la carte et tire sur un ennemi, ton serveur aura en mémoire sa position précédente à partir de laquelle il ne peut pas atteindre cet ennemi, ou bien il recevra la nouvelle position et là ben ton contrôleur doit calculer que le joueur n'a pas pu se déplacer si vite.
Effectivement je me rends compte qu'en n'envoyant pas chaque déplacement ou chaque direction ça laisse une faille. Tu peux stocker les déplacements dans un tableau, et à chaque fois que tu clear la queue tu renvoies le contenu du tableau complet au lieu du dernier déplacement. Quand une requête part effectivement, tu effaces du tableau les déplacements qui ont été envoyés. Tu les identifies tous grâce à un nombre que tu incrémentes, et côté serveur tu gardes une trace de ce nombre pour savoir quel est le numéro du dernier déplacement effectué pour que quand l'envoi d'une requête chevauche le nettoyage de la précédente, on évite de traiter des mouvements déjà effectués. Mais bon ça fait un peu du bordel pour pas grand chose.
Donc reste plus qu'à envoyer tous les déplacement. J'aimerais bien voir ce que ça donne le jeu de Maks sur un serveur (pas en local), voir si c'est effectivement viable.
Dans mon cas comme dans le sien, si un joueur se téléporte loin sur la carte et tire sur un ennemi, ton serveur aura en mémoire sa position précédente à partir de laquelle il ne peut pas atteindre cet ennemi, ou bien il recevra la nouvelle position et là ben ton contrôleur doit calculer que le joueur n'a pas pu se déplacer si vite.
Effectivement je me rends compte qu'en n'envoyant pas chaque déplacement ou chaque direction ça laisse une faille. Tu peux stocker les déplacements dans un tableau, et à chaque fois que tu clear la queue tu renvoies le contenu du tableau complet au lieu du dernier déplacement. Quand une requête part effectivement, tu effaces du tableau les déplacements qui ont été envoyés. Tu les identifies tous grâce à un nombre que tu incrémentes, et côté serveur tu gardes une trace de ce nombre pour savoir quel est le numéro du dernier déplacement effectué pour que quand l'envoi d'une requête chevauche le nettoyage de la précédente, on évite de traiter des mouvements déjà effectués. Mais bon ça fait un peu du bordel pour pas grand chose.
Donc reste plus qu'à envoyer tous les déplacement. J'aimerais bien voir ce que ça donne le jeu de Maks sur un serveur (pas en local), voir si c'est effectivement viable.