Actualités / Jeux

GDC 2020: Comment la latence de Call of Duty: Modern Warfare a été «corrigée» après la version bêta

Call of Duty: Modern Warfare utilise une variété de techniques pour atténuer les effets de différents types de latence du réseau sur tous les joueurs d'un match donné. Infinity Ward a offert un bref aperçu du fonctionnement de son netcode dans une vidéo avant le lancement de Modern Warfare, et lors de la conférence des développeurs de jeux numériques de cette semaine, le studio a présenté une description plus détaillée de son approche du réseautage – et de la manière dont cette approche était affectées par certaines vidéos YouTube de haut niveau.

Le problème rencontré par tout jeu de compétition est de savoir comment synchroniser au mieux l'état du serveur avec l'état du client du jeu sur votre ordinateur personnel. Si les choses ne sont pas synchronisées, vous sauterez dans l'environnement ou verrez d'autres joueurs faire de même, jusqu'à ce que le serveur et le client puissent recommencer à s'entendre.

Modern Warfare fonctionne sur des serveurs dédiés, comme l'explique Mitchell Sanborn, directeur de l'ingénierie en ligne d'Infinity Ward, lors de son discours sur la GDC, de sorte que les données du jeu sur votre machine à la maison sont envoyées au serveur, sont traitées avec les données de tous les autres joueurs dans un match, puis le serveur renvoie les résultats à votre client. Donc, tout ce qui se trouve sur le serveur est la version «réelle» du match, et le jeu que vous jouez à la maison n’est qu’une visualisation de celui-ci.

Lorsque des problèmes de connexion surviennent, les clients du jeu et le serveur essaieront de deviner intelligemment les informations manquantes. Donc, si les données que vous envoyez au serveur sont interrompues, le serveur extrapolera votre position – ce qui signifie qu'il continuera à supposer que vous vous déplacez dans la même direction que votre dernière entrée, puis se corrigera lorsque la connexion sera rétablie. Dans d'autres cas, le serveur peut vous forcer à vous aligner là où il pense que vous êtes censé être grâce à la prédiction.

Du côté client, le jeu commence à constituer un tampon d’entrées avant de les envoyer au serveur afin d’éviter de forcer le serveur à extrapoler ou à prédire où vous allez être. Cela signifie que le serveur aura des informations plus précises sur votre position sur la carte.

Miniature YouTube

Mais la mise en mémoire tampon d'entrée a un coût: la latence. Il faut du temps pour que ce tampon d’entrées s’accumule, et dans des cas plus extrêmes, cela signifie que vous allez connaître une latence entre votre jeu et le serveur. Dans la version originale de Modern Warfare – celle qui faisait partie de la version bêta publique – le jeu favorisait fortement le tampon, donnant la priorité à une représentation précise de vos mouvements plutôt qu'à une latence réduite.

Pendant la version bêta, le jeu ralentirait les demandes de la mémoire tampon pendant les périodes de mauvaises performances du réseau. C'est pourquoi, explique Sanborn, une analyse YouTube des performances du réseau pour la version bêta de Modern Warfare l'a trouvée beaucoup plus latente que d'autres titres de Call of Duty et de nombreux autres jeux FPS.

Sanborn dit qu'il y avait deux raisons pour lesquelles ce «fan zélé de YouTube» a trouvé les problèmes qu'ils ont rencontrés. La première aurait été si les algorithmes conçus pour gérer ces problèmes de réseau naturel avaient été mal réglés. L'autre aurait été s'il y avait un problème avec la connexion. Les développeurs ne pouvaient déterminer quel était le problème s'ils disposaient de données sur la connexion de ce YouTuber au jeu – ce qu'ils ont fait.

Miniature YouTube

Les données ont montré que le client du YouTuber souffrait d'une connexion pire que les autres joueurs au cours des mêmes matchs. «Pour certains matches, ce joueur a certainement connu des conditions de réseau extrêmes, qui n'étaient pas idéales. La latence aurait été mauvaise pour ce client, je n'en doute pas. C'est juste qu'il semble – d'après ce graphique, en tout cas – que cela aurait été un problème lié à la connexion. “

Mais alors que les problèmes de réseau pour cet utilisateur unique étaient extrêmes, les développeurs ont également constaté que la plupart des clients consacraient beaucoup plus de temps à la mise en mémoire tampon que prévu. Et, à la suite du retour de bâton après la ventilation de leur expérience de latence par YouTuber, les joueurs se sont prononcés pour vouloir une expérience aussi exempte de latence que possible.

Donc, pour le jeu final, Infinity Ward a inversé l'accélérateur pour la mise en mémoire tampon. Là où auparavant l'algorithme était réglé pour éliminer les erreurs entre le serveur et le client grâce à la mise en mémoire tampon, il a maintenant été réglé pour éliminer la mise en mémoire tampon en acceptant une certaine quantité de désynchronisation entre le client et le serveur.

Les derniers serveurs Modern Warfare ont abouti à un équilibre qui favorise la réduction de la latence plutôt que la synchronisation pure entre les clients et les serveurs – après tout, c'est ce que les joueurs ont finalement voulu. Les algorithmes sont toujours réglés pour fournir un équilibre entre toutes ces techniques d'atténuation et fournir la meilleure expérience pour autant de joueurs que possible – au moins, autant que possible dans les limites de la technologie actuelle.