한국어English日本語简体中文繁體中文DeutschไทยTiếng ViệtРусскийPortuguês (Brasil)EspañolBahasa Indonesia

Game-Lag-Whitepaper › Synchronisationsdesign

Doppeltes Warten auf den Tick Double tick quantization

Ursachen-ID sy-double-tick · Hauptzuständig Server-Entwicklung (Entwicklungsteam)

In der interaktiven Fassung mit Grafiken und Experimenten öffnen →

Werden Anfragen bis zum nächsten Tick gesammelt und erst dann verarbeitet, und geht auch das Ergebnis erst im darauffolgenden Tick hinaus, kommt das Tick-Intervall zweimal hinzu.

Warum Empfangene Anfrage wird im nächsten Tick verarbeitet → Folge Auch das Ergebnis wird für den nächsten Sende-Tick gesammelt und dann verschickt → Auf dem Bildschirm Leitungs-Ping niedrig, aber Reaktion konstant um etwa das 1,5-Fache des Tick-Intervalls verzögert. Bei 10 Ticks pro Sekunde im Mittel 0,15 s, schlimmstenfalls 0,2 s

Symptome
Input-Lag
Faktoren
Latenz
Wer ist betroffen
Ganzer Server
Wann
Immer
Zuständigkeit
Hauptzuständig Server-Entwicklung (Entwicklungsteam)
Aufgaben Entwicklungsteam
Antwort im selben Tick senden, in dem verarbeitet wurde, Tickrate erhöhen, wichtige Antworten sofort senden.
Größenordnungen
Bei 10 Ticks pro Sekunde dauert ein Tick 100 ms, allein durch das Warten auf Ticks kommen im Mittel 150 ms und schlimmstenfalls 200 ms hinzu. Bei nur einmaligem Warten sind es im Mittel 50 ms.
Im Graphen
Von Anfang an dauerhaft hoch · Zeit von Ankunft der Anfrage bis zum Senden der Antwort
Wo nachsehen
Im serverseitigen Paketmitschnitt den Abstand zwischen Ankunft des Anfragepakets und Abgang des Antwortpakets messen, während ein Testaccount dieselbe Aktion (z. B. ein Item benutzen) mehrmals ausführt. Gibt es ein Server-Log, Ankunftszeit der Anfrage, Nummer des verarbeitenden Ticks und Sendezeit der Antwort prüfen
Spricht dafür
Verweildauer im Server im Mittel etwa das 1,5-Fache des Tick-Intervalls, maximal etwa das Doppelte, und unabhängig von der RTT konstant
Spricht dagegen
Verweildauer im Server im Mittel um die Hälfte des Tick-Intervalls: nur einmaliges Warten auf den Tick. Unregelmäßig länger als das Tick-Intervall: „Überschrittenes Tick-Budget“ prüfen
Prüfmittel
Mit Infrastruktur-Tools prüfbar (ohne Spielcode)

Quellen

  1. Peeking into VALORANT's Netcode Riot Games
    Eine eingetroffene Eingabe wartet bis zu einen Tick auf die nächste Tick-Grenze, Anwenden und Senden kosten noch einmal einen Frame. Je höher die Tickrate, desto geringer
  2. VALORANT's 128-Tick Servers Riot Games
    Ein Teil der Latenz kommt aus dem Netzwerk, ein Teil aus der Tickrate des Servers
  3. NetworkTime and ticks (Netcode for GameObjects 2.5) Unity
    Änderungen an NetworkVariable werden bis zum nächsten Netzwerk-Tick gesammelt und dann gemeinsam gesendet

Verwandte Ursachen

Gleiche Schicht: Synchronisationsdesign

Ursachen aus anderen Schichten mit demselben Symptom (Input-Lag)

Karte in der interaktiven Fassung mit Grafiken und Experimenten ansehen