VT2018 Lag Compensation

=Auteur=
 * Nom : VEGREVILLE Thibaud
 * Mail : thibaud.vegreville@gmail.com
 * Sujet : Lag Compensation dans les jeux vidéos

=Résumé=

Dans les jeux en réseau, un facteur important lors du développement est la gestion du délai lié au réseau lui-même, ou « Lag Compensation ». Pour se faire, nous utilisons donc diverses techniques et stratégies abordé dans cette présentation, et notamment les techniques de simulation côté client.

=Abstract=

In video games, one of the most important factor in development is the lag compensation due to the network and client connectivity. To deal with, we use a bunch of strategy and algorithm that we will see in this presentation, notably simulations client-side strategy.

=Synthèse=



Stratégies

 * Simulation coté client, essayant de prédire la réponse du serveur.
 * Arrangement des infrastructures avec les opérateurs et fournisseurs d’accès, tels que des accès DNS plus rapides ou un routage plus efficient.
 * Choix de conception

Nous nous interesserons dans le cadre de cette présentation uniquement à l'aspect Simulation.

Simulation
La simulation consiste à reproduire de manière fictive coté client le monde que le serveur simule. De cette manière, et en dupliquant le code de simulation, le client peut prédire la réponse du serveur en se basant sur le principe des entrées correctes (c’est-à-dire que globalement, les clients sont honnête, et que le serveur renvois la plupart du temps la même chose que la simulation faite en local). Cela permet donc de lancer l’animation locale avant la validation du serveur et de fournir une expérience fluide au joueur. Pour cela, 3 stratégies sont imbriqués afin de garantir que cette simulation se passe bien :


 * Simulation : première étape, consiste en la duplication du code de simulation du serveur sur le client. Le client exécute ce code sur les entrés utilisateur, puis affiche le résultat avant la validation serveur.


 * Réconciliation : Permet de résoudre le problème de la « vue passé » (le client perçoit toujours les autres clients dans le passé, serveur compris). Cela permet donc d’éviter les fréquents rollbacks dû à la validation d’action passé par le serveur. CF. Fig1.
 * Interpolation : Calcul permettant de prédire la position des autres clients que l’on perçoit dans le passé, afin de les afficher dans le présent sans leur information. Deux sous-catégories d’interpolation sont le « Dead Reckoning », qui pourrait être traduis en « Le Calcul Mort » ou « l’Estimation du Mort », qui consiste à calculer la suite de la trajectoire d’un objet, et l’Interpolation par Objets qui consiste à établir une simulation complète pour chaque objet, au vue de ses précédentes entrés. CF Fig.2

Récapitulatif et Analyse
Dans leur globalité, il n’existe pas de technologie proprement dite utilisée dans le milieu du jeu, mais plutôt un ensemble de stratégies appliqués selon les circonstances. Dans leur immense majorité, tous les jeux implémentes une version de la simulation telle que vue dans cette présentation, mais l’implémentation proprement dite est intrinsèquement dépendante de la structure du jeu. Bien que ces stratégies soient systématiquement utilisées, elles ne résolvent qu’une partie du problème car de nombreux point sont avant tout des compromis entre l’expérience finale et le temps de calcul et/ou la réactivité. La meilleure solution reste donc une bonne connexion !