Comment atténuer la latence dans les jeux Multijoueurs : Délai d'entrée vs Rollback

Comment atténuer la latence : délai d'entrée contre retour en arrière
Comment atténuer la latence : délai d'entrée contre retour en arrière
Comment atténuer la latence : délai d'entrée contre retour en arrière

La latence (« décalage ») dans le multijoueur en ligne est tout simplement une réalité que les développeurs de jeux doivent prendre en compte lors de la conception du gameplay et du backend de leur jeu pour garantir une excellente expérience de jeu à leurs joueurs.

En tant que tel, les développeurs de jeux doivent considérer comment atténuer la latence. Historiquement, deux techniques principales ont été utilisées : Rollback (c’est-à-dire les prédictions côté client), accompagné de Input Delay (délai d'entrée).

Dans cet article, nous mettrons en lumière ce que fait chaque technique (et comment cela fonctionne).

Pour une compréhension plus approfondie du Rollback Netcode, notre article détaillé est disponible ici.

Pourquoi la latence (« décalage ») survient-elle dans les jeux multijoueurs

Pourquoi les développeurs de jeux auraient-ils besoin d'« atténuer » la latence en premier lieu ?

Que ce soit en pair-à-pair (où le serveur de jeu est hébergé par l'un des joueurs), via des relais ou avec le serveur de jeu dans le cloud (voir une répartition de chaque architecture), les données doivent passer par une série complexe de réseaux (c’est-à-dire « l’internet ») pour atteindre chaque joueur, et chaque fois qu’une nouvelle entrée est fournie, elle doit être envoyée dans chaque sens. Cela prend du temps, car il y a des lois physiques qui limitent la vitesse à laquelle ces données peuvent se déplacer à travers les câbles/satellites et tout le matériel intermédiaire.

Parfois, cela peut être assez rapide pour être transparent, par exemple, jouer avec quelqu'un dans la rue.

La plupart du temps, ce n'est pas le cas. Un match de Call of Duty peut inclure des dizaines de joueurs agissant tous dans le jeu, et tous ces joueurs sont à des centaines, voire des milliers de kilomètres ou de miles de distance.

C’est là que la latence se produit – il y aura des points de congestion et cela affectera votre latence.

C'est pourquoi déployer des serveurs au plus proche des joueurs est efficace, mais il y a plus à être proche de quelqu'un pour réduire la latence. 

Technique d'atténuation de la latence : Input Delay (Lockstep)

Le délai d'entrée, souvent appelé modèle lockstep, fonctionne en faisant en sorte que les clients envoient leurs pressions de boutons à un serveur central puis attendent d'afficher quoi que ce soit jusqu'à ce que le serveur renvoie les résultats de la simulation.

L'inconvénient majeur est que les joueurs ressentent un délai notable entre l'appui sur un bouton et l'affichage de l'action à l'écran – ce délai équivaut à leur temps de trajet aller-retour (ping) jusqu'au serveur, ce qui signifie qu'un joueur avec un ping de 100 ms attendra un dixième de seconde complet avant de voir son personnage réagir.

L' avantage de cette approche est la cohérence visuelle : chaque joueur voit exactement ce que le serveur dit être en train de se passer sans artefacts graphiques ni désaccords entre les écrans des différents joueurs.

Cela le rend adapté aux jeux de stratégie en temps réel, à certains jeux de sport, et aux anciens jeux de combat, où il offre un gameplay acceptable tant que les joueurs ont un ping relativement bas (environ 50 ms ou moins).

Visuellement, cela fonctionne un peu comme ça :

Technique d'atténuation de la latence : Rollback (Prédiction côté client)

La prédiction côté client, communément appelée rollback, tente d'éliminer le délai d'entrée en faisant en sorte que le client simule et affiche immédiatement les résultats des actions d'un joueur sans attendre le serveur.

Lorsque la réponse autoritaire du serveur arrive finalement (souvent plusieurs images plus tard), le client doit effectuer une « réconciliation » ; c’est-à-dire qu’il revient à sa simulation à l’image précédente, réapplique les résultats corrects du serveur, puis ressime toutes les images intermédiaires pour rattraper le présent.

le bénéfice est la réactivité instantanée : les joueurs voient leurs actions se produire immédiatement lorsqu'ils appuient sur un bouton, ce qui est crucial pour les jeux basés sur la réaction comme les jeux de tir et les jeux de combat.

Cependant, la technique introduit des artefacts visuels lorsque la prédiction du client ne correspond pas à ce que le serveur dit avoir réellement eu lieu. Les objets peuvent soudainement se téléporter, apparaître ou disparaître à mesure que la simulation se corrige. De plus, la resimulation constante de plusieurs images crée une charge CPU importante.

Certaines parties essaient d'équilibrer les deux approches en ajoutant un petit délai d'entrée fixe tout en utilisant la prédiction pour gérer toute latence supplémentaire, ce qui permet aux joueurs d'avoir des commandes réactives avec moins d'artefacts visuels. Les implémentations modernes peuvent même ajuster dynamiquement ce délai d'entrée en temps réel pour trouver l'équilibre optimal.

Visuellement, cela ressemble un peu à ceci :

Suggestions et Considérations

Le gameplay et l'infrastructure de chaque jeu influenceront la manière dont un développeur de jeux multijoueurs

Certains netcodes pourraient être excellents en matière de prédictions, ce qui aidera à réconcilier les entrées. Par exemple, Rivals of Aether 2 utilise le netcode SnapNet en tandem avec Edgegap’s orchestration qui permet à Aether Studios de déployer au plus près des utilisateurs pour la latence la plus faible possible pour chaque match. Le résultat est une expérience de jeu de combat en ligne AAA avec une équipe de 10.

D'autres pourraient donner la priorité à la bande passante la plus faible possible pour minimiser les coûts de sortie.

Comprendre les outils à votre disposition et ce qui convient le mieux à votre expérience utilisateur finale est donc primordial.

Une autre considération consiste à affiner l'équilibre entre le délai d'entrée et les rollback grâce à trois paramètres clés qui agissent comme des contraintes souples.

  • Le paramètre de délai d'entrée minimum contrôle le délai de base appliqué indépendamment de la latence (généralement défini sur 0 pour une réactivité maximale), bien que certains jeux de combat utilisent des valeurs plus élevées pour garantir un timing cohérent pour des entrées précises.

  • Le paramètre de délai d'entrée maximum détermine combien de délai sera ajouté pour couvrir la latence avant que toute prédiction ne démarre, avec une valeur par défaut courante de 50 ms qui offre une expérience sans artefacts pour les joueurs à faible latence tout en gardant les commandes dynamiques.

    • Cependant, soyez conscient que l'orchestration traditionnelle est peu susceptible de livrer un objectif de 50 ms. En tant que tel, un orchestrateur moderne qui s'appuie sur un réseau de plus de 615 emplacements comme Edgegap’s vous aide à livrer exactement dans cette plage.

  • La limite de temps prédit maximum détermine dans quelle mesure le client peut simuler pour compenser la latence, typiquement par défaut à 100 ms pour couvrir la plupart des conditions de réseau tout en minimisant les artefacts visuels. Combiné avec 50 ms de délai d'entrée maximum, cela signifie que les joueurs avec un ping de 50 à 150 ms subissent un délai minimal et seulement des artefacts occasionnels. Un objectif réalisable pour la plupart des joueurs avec des serveurs bien répartis. Les joueurs avec un ping inférieur à 50 ms obtiennent l'expérience la plus pure avec un seul délai d'entrée, tandis que ceux entre 50 et 150 ms obtiennent une sensation réactive avec le rollback gérant la différence.

Pour les joueurs excédant ces seuils, la latence supplémentaire se traduit par plus de retard d'entrée plutôt que plus de prédiction, ce qui fait que les contrôles deviennent de plus en plus lents mais que le jeu reste jouable. Cette approche est généralement préférable à une prédiction étendue sur de longues horizons de temps, ce qui peut créer des corrections visuelles erratiques et désorientantes qui donnent l'impression que le jeu est cassé plutôt que simplement retardé.

Le problème incontrôlable : le réseau.

Comme le montrent les recherches, la majorité de la latence est introduite par le réseau lui-même – 31%, à l'exclusion de la réponse humaine/œil normale. Magnitudes sur le serveur ou le matériel du joueur ou le code même du jeu, doublent leur total (14%).

Ainsi, seule une orchestration moderne de serveurs de jeux combinée à la capacité d'exploiter une grande infrastructure Edge, comme celles fournies par Edgegap, peut relever ce défi spécifique.

Qui permet aux développeurs de jeux d'améliorer instantanément l'expérience de jeu avec une latence réduite (réduction de 58% en moyenne), et réduit ainsi la complexité associée à l'intégration des systèmes d'atténuation de la latence tels que le rollback netcode car les seuils et les moyennes sont plus cohérents pour tous les joueurs.

La Solution : Netcode Adapté à vos Besoins + Orchestration d'Edgegap

La clé pour un multijoueur en ligne exceptionnel n'est pas de choisir entre le délai d'entrée et le rollback - c'est d'implémenter un netcode adapté aux besoins spécifiques de votre jeu et de s'assurer que les joueurs se connectent avec une latence minimale. Un système de réseau bien configuré peut offrir un gameplay réactif et sans artefacts, mais seulement si les joueurs peuvent atteindre de manière cohérente un faible ping vers vos serveurs. C’est là que l’orchestration moderne devient cruciale.

L'infrastructure d'Edgegap exploite plus de 615 emplacements dans le monde entier pour déployer des serveurs de jeux à la demande les plus proches de vos joueurs, réduisant considérablement la latence pour tous les participants à un match. En minimisant les temps de trajet aller-retour, plus de joueurs tombent dans cette plage idéale de moins de 50 ms où le seul délai d'entrée peut fournir une expérience fluide sans artefacts, ou le point idéal de 50 à 100 ms où une prédiction minimale maintient la réactivité sans artefacts perceptibles. Plutôt que de forcer votre netcode à compenser un mauvais placement des serveurs, Edgegap garantit que votre modèle de réseau minutieusement réglé fonctionne exactement comme prévu – offrant l'expérience de jeu idéale, à chaque fois.

Une autre considération : Matchmaking

Bien que hors du cadre de cet article, l'importance du matchmaking est déterminante.

Un matchmaking efficace joue un rôle crucial dans l'optimisation de la latence en groupant les joueurs qui sont géographiquement proches les uns des autres et des emplacements de serveurs disponibles.

Même avec plus de 615 emplacements Edge à votre disposition, une partie qui associe des joueurs de régions très différentes forcera certains participants dans des situations de haute latence, minant à la fois l'efficacité de votre netcode et les déploiements du réseau de l'orchestrateur.

Les algorithmes de matchmaking intelligents doivent envisager à la fois des critères basés sur les compétences et la proximité géographique, garantissant que lorsqu’un serveur est déployé, tous les joueurs de ce match peuvent se connecter avec des valeurs de ping similaires, faibles. Cette approche équilibrée empêche les scénarios où un joueur profite d'une expérience sans artefacts avec moins de 50 ms tandis qu'un autre a du mal avec plus de 200 ms de latence et des contrôles lents – créant des matchs équitables et compétitifs où vos techniques de réseau peuvent fonctionner au mieux pour tous les participants.

Heureusement, le Matchmaking d'Edgegap est disponible et inclut les règles basées sur la latence qui vous aident à relever ce défi.

Écrit par

l'équipe Edgegap

Intégrer Edgegap facilement en quelques minutes

Intégrer Edgegap facilement en quelques minutes

Intégrer Edgegap facilement en quelques minutes