Bonjour,
Dans le cadre d'un jeu de combat que je porte en reseau, je suis fasse a un petit dilemme.
Notamment sur la latence.
Contexte:
-La connection est directe donc les pings dans la moyenne vont etre de 50/60ms maximum(dans mes tests on est a 35ms avec une machine en wifi, apres tout depend de ce que fait l'utilisateur sur sa machine en meme temps).
Chaque action "peut etre decisive" c'est un jeu qui requiert beaucoup de precision.
Tests
J'ai fais plusieurs essais et je ne sais pas ce qu'il y a de mieux:
- frame de delais cote client
- rollback
Dans mes premiers tests je mets 4 frames de delais on arrive a 0.0166 * 4 = 66 ms. Ca tourne correctement cependant c'est plutot insupportable la difference entre une game local ou il n'y a pas de delai.
Du coup avec le rollback je met une frame de delai ca reste jouable cependant il peux y avoir des "glitch" graphique parfois.
Ex (4 frame de navigations reseau) :
-Le joueur A attaque a t+0 sur sa machine
-Hit a t+1 ( 1 frame de delai)
-Joueur B esquive/contre a t+4
-A t +8 le joueur A voit le joueur B esquiver et passer de Hit a Esquive.
= 7 Frame ou le joueur A voit son coup agir puis a la frame 8 il voit le joueur B rollback
Meme si on peut faire des optimisations:
Ex: le joueur qui recoit une animation la demarre avec a t+RTT
Il peut toujours y avoir des "glitch" lors d'animations courtes / instantanees...
Questions
Du coup je ne sais pas trop ce qui est le mieux, personnellement je prefere une frame de delai et de temps en temps des glitchs(rollback)
Si vous avez des conseils, retours d'experiences ?
Bien cordialement,
Partager