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

Game-Lag-Whitepaper › Synchronisationsdesign

Fehlvorhersagen beim Rollback-Netcode Rollback misprediction

Ursachen-ID sy-rollback · Hauptzuständig Client-Entwicklung (Entwicklungsteam)

In der interaktiven Fassung mit Grafiken und Experimenten öffnen →

Die Eingabe des Gegners wird vorhergesagt und vorab angezeigt. Liegt die Vorhersage falsch, wird zurückgespult und neu berechnet. Je höher der Ping, desto weiter wird zurückgespult.

Warum Gegner ändert seine Eingabe (anders als vorhergesagt) → Folge Tatsächliche Eingabe kommt um den halben Ping später an, entsprechend weit wird zurückgespult und neu berechnet → Auf dem Bildschirm Bewegungen des Gegners überspringen einige Frames oder ändern sich abrupt

Symptome
Teleportieren
Faktoren
Latenz, Jitter
Wer ist betroffen
Nur ich
Wann
Bei bestimmten Aktionen, Gelegentlich, zufällig
Zuständigkeit
Hauptzuständig Client-Entwicklung (Entwicklungsteam)
Aufgaben Entwicklungsteam
1–3 Frames Input-Delay beimischen, um die Rollback-Weite zu senken, Obergrenze fürs Zurückspulen festlegen.
Größenordnungen
Bei 100 ms Ping (50 ms pro Richtung) werden bei 60 FPS etwa 3 Frames zurückgespult. Mit 2 Frames Input-Delay sinkt das auf 1 Frame.
Im Graphen
Vereinzelte Spitzen ohne Muster · Zurückgespulte Frames, RTT (Ping)
Wo nachsehen
Im Client bei jedem Rollback Anzahl der zurückgespulten Frames, RTT zu diesem Zeitpunkt, eingestelltes Input-Delay und Dauer von Zurückspulen und Neuberechnung protokollieren
Spricht dafür
In den Momenten, in denen die Bewegungen des Gegners gesprungen sein sollen, ist die Zahl der zurückgespulten Frames hoch, die mittlere Rollback-Weite liegt etwa bei (Latenz pro Richtung − Input-Delay) ÷ Frametime und wächst mit dem Ping
Spricht dagegen
Ruckeln trotz geringer Rollback-Weite: Leistungsproblem, die Neuberechnung dauert länger als ein Frame. Ergebnisse auf beiden Bildschirmen bleiben auch nach dem Zurückspulen unterschiedlich: auseinanderlaufende Berechnung (Desync)
Prüfmittel
Logs oder Metriken aus Spielserver bzw. Client nötig

Quellen

  1. GGPO Rollback Networking SDK GGPO
    Die Eingabe des Gegners wird vorhergesagt und vorab weitergerechnet. Weicht die tatsächliche Eingabe ab, wird vom Zeitpunkt der Abweichung bis jetzt neu berechnet
  2. 8 Frames in 16ms: Rollback Networking in 'Mortal Kombat' and 'Injustice 2' GDC
    Rollback beseitigt das lokale Input-Delay des Lockstep, bis zu 8 Frames werden innerhalb von 16 ms zurückgespult und neu berechnet

Verwandte Ursachen

Gleiche Schicht: Synchronisationsdesign

Ursachen aus anderen Schichten mit demselben Symptom (Teleportieren)

Karte in der interaktiven Fassung mit Grafiken und Experimenten ansehen