Nous faisons un jeu de tir à la première personne multiplicateur. Le client envoie sa position au serveur à un taux fixe (actuellement à 10 Hz). Le serveur envoie un seul message contenant toutes les positions des joueurs à tous les joueurs au même rythme (10 Hz).
Comme prévu, le mouvement est assez saccadé puisque le jeu à 60 images par seconde ne reçoit des mises à jour que 10 fois par seconde. Quelle est la meilleure façon de lisser ce mouvement? La façon la plus évidente serait d'interpoler entre les deux derniers paquets, afin que l'interpolation se termine lorsque nous recevons un nouveau paquet. Mais cela ajoute un délai instantané de 100 ms pour tous les joueurs.
L'autre façon serait d'utiliser la vitesse et l'accélération déduites des derniers paquets pour prédire où se trouve le joueur avant l'arrivée du prochain paquet, mais si la prédiction est fausse, le joueur aurait tendance à sauter dès qu'un nouveau paquet est reçu .
Est-ce que quelqu'un sait comment les titres AAA résolvent ce problème?
la source