J'ai de nombreuses entités du côté client qui sont simulées (leurs vitesses sont ajoutées à leurs positions sur une base par image) et je les laisse se compter. Ils envoient des mises à jour sur l'endroit où ils ont été vus pour la dernière fois et leurs changements de vitesse. Cela fonctionne très bien et d'autres joueurs voient ce travail trouver. Cependant, après un certain temps, ces joueurs commencent à se désynchroniser après un certain temps. C'est à cause de la latence.
Je voudrais savoir comment je peux interpoler entre les états pour qu'ils semblent être dans la bonne position. Je sais où le joueur a été DERNIER vu et sa vitesse actuelle, mais l'interpolation vers le dernier état vu fait que le joueur se déplace réellement vers l'arrière. Je ne pouvais pas du tout utiliser la vitesse pour les autres clients et simplement les «lerp» dans la direction appropriée, mais je pense que cela provoquerait un mouvement irrégulier. Quelles sont les alternatives?
la source
Quand tu dis:
cela me fait penser que votre problème peut avoir plus à voir avec le décalage de vos horloges qu'avec tout problème de latence. S'il s'agit de latence, elle devrait être tout aussi mauvaise au début que 10 minutes plus tard. Si un chronomètre de jeu tourne légèrement plus vite que l'autre, il y aura des artefacts de gigue étranges qui empireront de plus en plus avec le temps. Un client pourrait être en train de simuler à l'avenir, lorsque les paquets actuels arriveront du serveur, cela entraînera le client en arrière, provoquant des sauts d'entités. Exécutez quelques tests supplémentaires pour le découvrir.
Si les horloges de jeu non synchronisées sont effectivement un problème, vous devrez examiner très attentivement votre boucle de mise à jour et vous assurer que chaque mise à jour est basée sur le temps de jeu passé (fixe ou variable), et que le jeu -time est avancé en utilisant quelque chose comme l'horloge murale (pas le temps de rendu ou d'autres variables). Gaffer a de bons articles à ce sujet, et il y a une question décente ici à propos des pas de temps fixes vs variables . J'espère que cela t'aides.
la source