2e chronique sur la cohérence du gameplay dans VALORANT
Re-bonjour !
Nous sommes l'équipe Technologie du gameplay de VALORANT et nous
venons avec la deuxième partie des résultats de nos recherches et
les mesures prises au service de la cohérence du jeu.
Si
vous avez besoin d'un rappel sur le résumé des retours que nous
avons reçus, lisez notre article
précédent
qui date du mois dernier. Nous y parlions des catégories générales
dans lesquelles nous pouvions ranger vos impressions et, rapidement,
des domaines que nous comptions explorer (latence, justesse et
performances des joueurs au ping élevé).
Maintenant
que les questions « quoi » et « pourquoi »
sont résolues, nous voulions vous
parler aujourd'hui en détails des principaux domaines dans lesquels
nous avons progressé : la latence et la mémoire tampon.
Nous allons vous expliquer en quoi ces deux paramètres sont
importants dans le contexte de VALORANT, analyser avec vous les
résultats de nos recherches, puis parler des solutions trouvées et
des mesures prises pour le long terme.
Voici
un bref résumé de ce qui sort déjà avec le patch 4.10 :
- Nous
avons repéré et corrigé quelques problèmes qui survenaient suite
à des pics d'instabilité du réseau Internet, à des pertes
d'images par seconde dans le client, après une commande Alt+Tab ou
à cause d'un réseau en dents de scie sur de longues périodes.
- Cela entraînait chez les joueurs touchés une sensation de retard cumulé dans le calcul de leurs actions par le serveur, ou un décalage du déplacement des ennemis à l'écran.
- Le patch 4.10 contient des mises à jour qui devraient améliorer le comportement de la mémoire tampon du réseau dans ces situations. Nous mettons également à disposition des joueurs les données qui permettent de comprendre ce qui se passe sous le capot.
- Cette
correction résout ce que nous avons identifié comme la cause
principale du sentiment d'incohérence de latence du réseau et des
temps de réaction entre les parties, mais nous gardons un œil
dessus pour continuer à faire mieux.
- Si vous rencontrez toujours des problèmes en jeu, nous espérons que les nouveaux graphiques vous aideront à quantifier et mesurer ce qui se passe.
- Continuez surtout à nous envoyer des rapports accompagnés de vidéos, si possible, via la plateforme du support sur ce que vous voyez.
LATENCE ET MÉMOIRE TAMPON
Dans
notre précédent
article,
nous disions que nous étions toujours en train d'enquêter sur la
latence et les performances de la mémoire tampon dans VALORANT. Nous
sommes depuis arrivés à une conclusion, et nous pouvons implémenter
des corrections à quelques problèmes identifiés dans le
patch 4.10.
Avant
d'aller plus loin, il est sans doute utile de préciser ce que nous
entendons quand nous parlons de « mémoire tampon du réseau »
et de « calcul des retards ».
Dans
les jeux en ligne comme VALORANT, vous
envoyez vos commandes au serveur pour qu'il les exécute, puisque
c'est lui qui a la vision réelle du jeu.
Chaque fois que le serveur réactualise sa simulation du jeu (ce qui
arrive 128 fois par seconde), la commande que vous avez envoyée
depuis le client doit être exécutée pour votre agent. Si
votre commande subit un retard pendant son trajet par Internet, le
serveur ne va pas attendre qu'elle arrive et devra simuler une action
à votre place.
Or,
ce que le serveur prévoit pour vous est souvent en désaccord avec
votre commande qui tarde à arriver. Ce désaccord provoque des
corrections qui se matérialisent dans votre vision par de petites
téléportations vers la position correcte. Si
ces corrections arrivent trop souvent, elles rendent le jeu
« saccadé » voire, à partir d'un certain seuil,
injouable.
Le
moyen d'éviter que le serveur choisisse à votre place est de lui
faire stocker quelques commandes en mémoire tampon et de les lui
faire exécuter avec un peu de retard. C'est une stratégie très
répandue quand on essaie de faire voyager n'importe quelle donnée
par Internet, et qui permet de garantir que le serveur exécutera les
commandes de votre agent sans accroc à chaque image. Néanmoins,
cette mise en mémoire tampon crée un délai le temps que le serveur
analyse vos commandes, et un usage excessif de cette méthode peut
donner l'impression que vous jouez avec un ping bien plus élevé que
ce qu'affiche votre Network Round Trip Time (RTT, soit le temps que
met un signal à faire le tour complet du réseau).
Déterminer
la bonne quantité de stockage en mémoire tampon est un exercice
d'équilibriste essentiel.
Laissez trop peu d'espace dans la mémoire tampon et vous vous
retrouvez avec beaucoup de commandes prévues par le serveur et de
corrections a
posteriori.
Autorisez-en trop et vous obtenez une forte latence qui vous rend
vulnérable à des failles comme l'avantage de l'attaquant, par
exemple. Si
l'on parvient au juste équilibre, alors VALORANT devient à la fois
fluide et réactif.
De
la même façon que le serveur stocke vos commandes en mémoire
tampon avant de les exécuter, votre client doit également stocker
l'information des actions ennemies avant de pouvoir les afficher à
l'écran. Cela évite que les joueurs adverses semblent se téléporter
autour de vous quand vous avez une mauvaise connexion, au profit
d'une vision fluide et plus facile à suivre de leurs mouvements.
NOS RECHERCHES
Une
partie de nos recherches visait à avoir une vision précise des
performances de cette mise en mémoire tampon.Nous
avons mis au point un nouvel outil de débugage pour observer combien
de temps les commandes mettaient à passer dans chacun des tampons.
Grâce
à cet outil, nous avons fait des expériences pour examiner si
certains scénarios perturbaient le comportement de certains tampons
de commandes.
Nous
traquions notamment un problème rapporté par les joueurs qui
signalait un retard important dans le calcul des tirs après un
Alt+Tab. Faire passer le jeu en arrière-plan alors que le paramètre
d'IPS d'arrière-plan est sur sa valeur limite provoque un plus large
problème de performance en forme de goulot d'étranglement pour les
images. Quand on réaffiche le jeu, le brusque saut d'IPS risque
d'agrandir considérablement la file d'attente des commandes envoyées
au serveur.
Du point de vue du joueur, cela donnerait l'impression de jouer avec
un ping très élevé qui n'est pas traduit dans les graphiques
actuels de RTT du réseau.
Nous
avons aussi remarqué que l'on obtenait le même effet en simulant un
bref pic de ping sur le client. La chute brutale d'un ping élevé à
un ping bas provoque un entassement dans la file d'attente du serveur
pour le client en question. La hausse brutale d'un ping bas à un
ping élevé provoque un entassement dans la file d'attente du client
pour les autres joueurs. Dans tous les cas, cet entassement de
commandes dans les files d'attente cause une latence apparente plus
élevée jusqu'à un retour à la situation normale.
Dans
ces deux scénarios, l'ancien système arrivait finalement à
résoudre les problèmes et ramener les tampons à leur taille
normale, mais nous avons remarqué qu'il prenait pour cela parfois
plus de temps que voulu pour s'en remettre totalement, ce qui menait
à ce que la latence effective du réseau soit plus longue que
prévue.
Nous
avons donc apporté deux
corrections
qui devraient soulager ces surcharges bien plus vite, afin que vous
ne subissiez la latence supplémentaire que sur les quelques images
nécessaires à la fluidification de l'expérience.
CORRECTIONS ET AMÉLIORATIONS
La
première correction que nous avons apportée ajuste la vitesse à
laquelle les tampons reviennent à leur taille normale quand quelque
chose provoque un gonflement. Nous
avons donné au système de calcul des commandes la capacité de
s'adapter plus énergiquement si la taille du tampon augmente.
Ainsi,
l'entassement des commandes stockées est géré bien plus vite
qu'avant. Par exemple, avant cette mise à jour, si 5 commandes
étaient en attente dans le tampon, il fallait jusqu'à 5 secondes
pour revenir à la taille normale. Avec cette nouvelle amélioration,
il ne faut plus qu'une seconde voire moins. Cela signifie que si vous
subissez des événements perturbateurs, comme des sautes ou des
trous dans le réseau, vous aurez à supporter bien moins longtemps
la latence induite par la mise en mémoire tampon de vos commandes.
En
revanche, dans les cas graves, l'entassement peut devenir si
conséquent qu'il vous faudra toujours attendre quelques secondes
pour que le système arrive à tout calculer, même avec la nouvelle
correction. Quand cela arrive, nous forçons maintenant une
réinitialisation du tampon, en effaçant toutes les commandes sauf
la dernière. Cela à le mérite de supprimer immédiatement toute
latence, mais provoque à coup sûr une correction a
posteriori.
Nous
avons découvert qu'en cas d'événement fortement déstabilisant
comme une perturbation dans le taux d'images par seconde ou des trous
dans le réseau, il était préférable d'opter pour une correction
postérieure de la commande prévue plutôt que d'attendre plusieurs
secondes que la mémoire tampon soit traitée.
Il est finalement moins gênant de s'accommoder d'une correction dans
ce cas-là que d'endurer la période de latence plus longue induite
par l'ancien système. Le genre d'événement qui peut provoquer la
nécessité d'une telle correction peut être de revenir au jeu après
avoir fait Alt+Tab quand les IPS limites de l'arrière-plan sont sur
le paramètre bas. Cela provoque un changement très brutal du taux
d'images par seconde et peut conduire à la surcharge problématique,
qui sera désormais résolue rapidement.
Nos
recherches sur la mémoire tampon ont aussi mis en évidence un
problème conjoint : les joueurs dont le réseau est constamment
saccadé changeront régulièrement la taille idéale de leur mémoire
tampon parce que le système essaie d'équilibrer leur latence avec
le nombre de commandes prévues par le serveur. Nous
travaillons sur un moyen de mieux déterminer la taille idéale de la
mémoire tampon en prenant en compte ce genre d'instabilité continue
du réseau.
ET MAINTENANT
Notre
travail sur la mise à jour ci-dessus nous a fait remarquer que vous
n'aviez pas de moyen efficace de vous représenter les retards
actuels dans le calcul des commandes. Or,
puisque les graphiques que nous utilisions en interne permettaient de
suivre ces problèmes clairement, nous avons ajouté un nouveau
graphique de performance appelé RTT réseau + délais de traitement
qui représente le temps que mettent les informations à faire le
tour de votre réseau, avec le retard de calcul au niveau du serveur
et du client.
Le
temps ainsi mesuré par le graphique devrait être peu ou prou
équivalent à ce que vous ressentez avec le bon vieux « test
du couteau ». Quand tout va bien, le graphique doit vous
sortir une valeur autour de 20 à 30 ms supérieure à votre RTT
réseau (même si la valeur idéale dépend des conditions exactes de
votre réseau et du taux d'IPS).
De
plus, nous
vous fournissons aussi un graphique de l'instabilité de votre RTT
réseau qui vous montrera les différences de temps de trajet entre
paquets.
Ce sont souvent les pics de ping et les perturbations de réseau qui
causent le stockage des données dans la mémoire tampon, c'est pour
cela que nous vous fournissons ce graphique. Il devrait vous aider à
diagnostiquer les mauvaises conditions de réseau qui n'apparaissent
pas dans la représentation classique du RTT réseau à cause du
lissage.
Nous
avons aussi mis
en place des outils de mesure supplémentaires qui nous serviront à
récolter des données sur les retards de calcul que vous subissez
réellement d'une partie à l'autre.
Nous
allons analyser ces résultats régulièrement pour surveiller de
près la santé du jeu et vérifier que les solutions dont nous
venons de parler ont les effets attendus ou si nous devons chercher
d'autres façons de corriger ces problèmes.
Enfin, même si nous lisons vos publications sur les différents réseaux sociaux, nous voulons mettre à profit nos différentes enquêtes post-parties pour entrer plus en détails dans votre perception de la qualité des matchs, notamment en ce qui concerne votre connexion et la précision des tirs. Nous allons donc ajouter quelques questions et en reformuler d'autres pour intégrer ces domaines.
LES PROCHAINES MISES À JOUR
Nous
espérons que cette amélioration des tampons de calcul des commandes
permettra de réduire une partie de l'incohérence ressentie malgré
un ping normal. Si vous rencontrez toujours des problèmes en jeu,
nous espérons que les nouvelles informations disponibles sur
l'instabilité du réseau et le retard de traitement grâce aux
graphiques vous aideront à quantifier vos impressions et à en
diagnostiquer les causes probables. Si vous subissez des décalages
alors que vous enregistrez vos parties, afficher ces graphiques vous
fournira un moyen supplémentaire d'identifier les points à étudier.
Nous
terminons cette chronique en remerciant chaleureusement toutes celles
et ceux qui ont posté des vidéos et des analyses détaillées de ce
qu'ils ont ressenti ou vu. Nous sommes touchés par votre amour du
jeu et les efforts que vous déployez pour le rendre meilleurs.
Comme toujours : nous prenons vos retours très au sérieux.
Nous allons publier prochainement un nouvel article pour parler du choix des serveurs et de son rapport avec les performances des joueurs au ping élevé.