ESPACE PUBLICITAIRE DISPONIBLE · PARLONS-EN

Tickrate du serveur contre sendrate du client dans les FPS compétitifs : Retard d'interpolation, architectures sub-tick et l'avantage de la ligne (Peeker's Advantage)

365Finds Editorial
11 430 articles Wiki répertoriés

Utilisez 365 Wiki avec votre IA

Copiez le prompt ci-dessous, collez-le dans l’IA que vous utilisez déjà, puis posez directement votre question.

Télécharger le Skill complet

Commencez par essayer le prompt. Si vous utilisez souvent 365 Wiki, installez le Skill 365Wiki complet pour ne plus avoir à le coller. Sans IA habituelle, les versions web de Gemini ou Microsoft Copilot conviennent aussi.

Introduction : La physique invisible des jeux de tir compétitifs

Dans les jeux de tir à la première personne compétitifs de haut niveau—tels que Counter-Strike 2, Valorant, Rainbow Six Siege et Overwatch 2—, les duels se décident régulièrement en un laps de temps compris entre 15 et 50 millisecondes. Les joueurs sont fréquemment confrontés à des situations où un adversaire déboule au coin d'un mur et les élimine avant même qu'ils n'aient pu apercevoir son arme s'élever, ou inversement, à des moments où ils se replient derrière un épais mur de béton avant de s'effondrer mystérieusement une fraction de seconde plus tard.

Ces phénomènes ne relèvent ni d'illusions d'optique ni de simples écarts de réflexes biologiques. Ils constituent les résultantes mathématiques directes de l'architecture réseau client-serveur, des délais de propagation physique des paquets, des tampons d'interpolation d'entités côté client et des algorithmes de compensation de latence (lag compensation) appliqués par le serveur.

Alors que les moteurs de jeu abandonnent les serveurs traditionnels à fréquence fixe (comme les systèmes 64-Tick et 128-Tick) au profit d'architectures modernes à horodatage sub-tick, comprendre le fonctionnement intime du pipeline réseau devient indispensable pour optimiser sa liaison et maîtriser tactiquement l'avantage de la ligne (peeker's advantage).

Anatomie de la boucle réseau : Tickrate du serveur, sendrate du client et instantanés mondiaux

La synchronisation réseau d'un jeu multijoueur repose sur une boucle cyclique discrète et non sur un flux temporel analogique continu :

[File d'attente des commandes]    [Débit d'envoi Sendrate]          [Tickrate du serveur]
 Actions clavier & souris ───> Paquets UDP UserCmd (128Hz) ───> Simulation de l'état global (128Hz)
                                                                        │
                                                                        ▼
                                                                Instantané du monde (Snapshot)
                                                                        │
                                                                        ▼
                                                             [Tampon du client défenseur]
                                                             Interpolation d'entités (cl_interp)

1. Tickrate du serveur

Le tickrate du serveur correspond au nombre de fois par seconde où le serveur dédié calcule et met à jour l'état logique et physique de la partie :

2. Sendrate et updaterate du client

Même si le jeu s'exécute localement à 240 FPS, la connexion à un serveur 64-Tick impose au moteur de combler les images intermédiaires par de la prédiction côté client (client-side prediction) afin d'éviter tout saccadement visuel.

Interpolation d'entités (cl_interp) : Pourquoi nous regardons constamment dans le passé

Les paquets UDP acheminés par Internet ne parviennent jamais à intervalles parfaitement réguliers. La gigue de transmission (jitter) provoque des regroupements ou des inversions d'ordre de paquets. Afin d'afficher les autres personnages en mouvement fluide sans à-coups ni téléportations, les moteurs intègrent l'interpolation d'entités (cl_interp).

Instantanés reçus du serveur :  [Tick 100] ------------> [Tick 101] ------------> [Tick 102]
                                     │                        │
Ligne temporelle d'affichage :       └── (Passé reconstitué) ─┴── Position actuelle à l'écran
                                         <-- Délai d'interpolation fixe -->
  1. Le tampon d'interpolation : Le client retarde volontairement l'affichage des entités distantes d'une durée prédéterminée (calculée via cl_interp_ratio / cl_updaterate) avant de les projeter à l'écran.
  2. Calcul du délai de tampon : Sur un serveur 128-Tick configuré avec un ratio de 1, le retard d'interpolation est de 7.8125 ms ; sur un serveur 64-Tick avec un ratio de 2, ce délai atteint 31.25 ms.
  3. Le décalage spatio-temporel inévitable : Lorsqu'un adversaire court à travers une porte, vous ne visualisez jamais sa position physique réelle instantanée, mais une interpolation mathématique lissée entre deux instantanés que le serveur a enregistrés des dizaines de millisecondes plus tôt.

La physique du Peeker's Advantage : Décomposition mathématique

Le "peeker's advantage" désigne l'avantage temporel dont bénéficie un attaquant en mouvement qui surgit d'un angle (le peeker), lui permettant de voir et de réagir face à un défenseur statique avant que l'écran de ce dernier n'affiche la présence de l'agresseur.

Équation de la fenêtre d'avantage

Le décalage temporel total accumulé par le joueur en mouvement se calcule selon la somme des composantes de latence suivantes :

$$\text{Fenêtre d'avantage} = \frac{\text{RTT}{\text{attaquant}}}{2} + \frac{\text{RTT}{\text{défenseur}}}{2} + \text{TamponInterp}{\text{défenseur}} + \text{IntervalleTick}{\text{serveur}} + \text{DélaiÉcran}_{\text{défenseur}}$$

Prenons une situation compétitive standard :

Chronologie d'un duel au coin d'un mur :
T = 0.0 ms : L'attaquant franchit l'angle (affichage local immédiat du défenseur statique).
T = 15.0 ms : Le paquet de mouvement de l'attaquant arrive au serveur de jeu.
T = 30.6 ms : Le serveur calcule le tick suivant et intègre la position dans l'instantané.
T = 45.6 ms : Le paquet de l'instantané parvient au routeur du défenseur.
T = 61.2 ms : Le client du défenseur termine le délai d'interpolation et commence le rendu.
T = 66.2 ms : L'écran du défenseur allume les premiers pixels de l'attaquant.

Avantage temporel net pour l'attaquant : environ 66.2 millisecondes !

Pendant ces 66 millisecondes, le système visuel de l'attaquant a déjà perçu la cible immobile, aligné le réticule et déclenché le tir avant même que le premier photon du modèle ennemi n'atteigne les yeux du défenseur.

Architectures Sub-Tick contre ticks discrets fixes (CS2 et Valorant)

L'introduction du système Sub-Tick dans le moteur Source 2 (Counter-Strike 2) avait pour ambition de garantir une précision absolue des impacts sans mobiliser les coûts matériels prohibitifs de serveurs 128-Tick natifs.

[Tick discret traditionnel (64/128-Tick)]
Frontière de tick N ──────────────────────── Frontière de tick N+1
        │                                            │
        └── Clic survenu entre deux ticks ───────────┘ (Résolu uniquement à N+1)

[Architecture Sub-Tick]
Frontière de tick N ──────────────────────── Frontière de tick N+1
        │                                            │
        └── Clic à T+4.2ms (Horodatage précis à la microseconde)
            Le serveur rembobine l'état du monde à T+4.2ms lors de la résolution

Ticks discrets fixes (ex. Valorant 128-Tick)

Dans une architecture 128-Tick discrète, la simulation progresse par tranches régulières de 7.8125 ms. Toute commande effectuée dans l'intervalle est évaluée au début du tick suivant. La fréquence étant très resserrée, l'erreur maximale de quantification temporelle ne dépasse jamais 7.8 ms.

Architecture Sub-Tick (Counter-Strike 2)

Le sub-tick dissocie le moment de l'action de la fréquence d'émission des paquets :

  1. Horodatage à la microseconde : Dès que le joueur presse le clic gauche, le client joint à la commande un horodatage indiquant la microseconde exacte où l'action a eu lieu.
  2. Calcul déterministe sur le serveur : Bien que le serveur traite les paquets selon un cadencement régulier, il rembobine les boîtes de collision (hitboxes) des adversaires au moment précis de l'horodatage pour vérifier l'alignement du tir.
  3. Décalage perceptif et visuel : Les animations et la restitution sonore restant tributaires des tranches de ticks régulières, les joueurs ont initialement perçu une sensation d'animation décalée d'une image par rapport à l'impact effectif.

Compensation de lag, fenêtres de rembobinage et la mort derrière l'obstacle

L'une des expériences les plus déconcertantes en jeu consiste à succomber alors qu'on s'est mis à couvert derrière un obstacle solide. Ce phénomène est provoqué par le module de Compensation de latence (Lag Compensation) du serveur.

[Position réelle du défenseur : Déjà à l'abri derrière le mur à T_actuel]
                     Mur
       Défenseur ── [ Mur ]
                     Mur

[Écran de l'attaquant à ping élevé : Vise la traînée du défenseur à T_passé]
Écran attaquant :   Le défenseur apparaît encore à découvert à cause du délai réseau
Action serveur :    Lit l'horodatage et rembobine la hitbox à T_passé -> Tir validé !
Résultat :          Le défenseur s'effondre derrière son abri à T_actuel.
  1. Rembobinage de hitbox : Au moment où le tireur fait feu, le serveur consulte l'horodatage de son écran et rembobine la position de tous les joueurs pour vérifier si la visée était conforme à cet instant passé.
  2. Fenêtre de rembobinage maximale (Rewind Clamp) : Pour éviter que des joueurs affichant des latences extrêmes (ex. 300 ms) n'abattent des cibles disparues depuis longtemps, le serveur borne strictement cette durée maximale de rembobinage (généralement à 200 ms).
  3. Le compromis nécessaire : Sans compensation de latence, les joueurs devraient tirer plusieurs mètres devant les cibles en calculant leur propre ping, rompant toute visée intuitive. La compensation préserve le tir direct de l'attaquant, mais transfère le fardeau visuel sur le défenseur sous la forme de morts derrière les abris.

Matrice de diagnostic netcode et optimisation réseau

Symptôme constatéCause réseau structurelleIndicateur de télémétrie (Net Graph)Solution et réglage préconisé
Mort enregistrée loin derrière un mur pleinPing élevé de l'attaquant déclenchant un rembobinage étenduObserver le ping du tireur au tableau (>80ms)Éviter les lignes statiques passives ; adopter une prise de ligne agressive
Téléportation ou saccades des modèles ennemisPerte de paquets descendants ou gigue (jitter) excessivePacket Loss entrant > 0.5%, gigue instableRemplacer le Wi-Fi par un câble Ethernet ; activer le SQM sur le routeur
Dispersion erratique ou balles non comptabiliséesPerte de paquets montants ou chute subite de framerateIndicateur Loss Out rouge, chute brutale des FPSVerrouiller la fréquence d'images au double du tickrate ; vérifier le MTU
Incapacité totale à réagir face aux décalages adversesTampon d'interpolation excessif ou saturation (bufferbloat)Délai d'interpolation anormal, pics de ping sous chargeMettre en œuvre une file active (CAKE/FQ-CoDel) ; ajuster cl_interp
Son d'impact confirmé mais aucun dégât infligéPrédiction locale rejetée par la simulation du serveurNotification de désynchronisation (Prediction Reject)Vérifier la stabilité de la ligne ; éviter les connexions cellulaires instables

La maîtrise des jeux de tir compétitifs modernes implique d'aller au-delà de la pure adresse mécanique pour intégrer les contraintes de transmission des données. Grâce aux analyses spécialisées de 365Finds, les joueurs peuvent affiner leurs paramètres réseau, exploiter rationnellement la géométrie du peeker's advantage et neutraliser les pièges spatio-temporels inhérents aux architectures client-serveur.

Références