13-03-2013, 04:23 PM
(13-03-2013, 03:33 PM)Maks a écrit : Un cas classique :
Client émet 'move', {direction: 3}
Serveur traite la demande de mouvement
Si c'est ok serveur émet pour tout le monde dans la room : 'move', {_id: "uuid", direction: 3}
Sinon émet pour tout le monde 'setDirection', {_id: "uuid", direction: 3}
pour replacer le personnage dans le bon sens (important pour la gestion des ciblages)
autant je comprends qu'on envoie au serveur le mouvement, autant je me pose la question du serveur vers le client
pas de soucis pour setDirection
mais pourquoi move, et pas trajectoire= (x, y)(x2,y2), ... charge au client de gérer le déplacement, en fonction de qui il est :
- si client = joueur du personnage à déplacer alors "téléportation" sur position définitive, normalement sauf lag, la prédiction fait qu'il n'y a pas de téléportation, on est déjà au bon endroit
-si client = autre joueur alors animation pour chaque case.
au moins ainsi on revient à une égalité (asynchrone) serveur / client
si on fait que des mouvements relatifs (donc jamais x,y, mais que direction) on ne revient jamais à une égalité (si y a un souci)
je me trompe quelque part ?