Der eigene Client zeigt die Bewegung schon vorab. Berechnet der Server sie anders, wird der eigene Charakter zurückgezogen.
Warum Client bewegt sich vor der Bestätigung durch den Server (Vorhersage) → Folge Server berechnet Kollision, Bewegungstempo oder Buffs anders oder hat den Befehl nicht erhalten → Auf dem Bildschirm Bei Eintreffen der Bestätigung wird der eigene Charakter zurückgezogen
Client: denselben Bewegungscode wie der Server verwenden, Eingaben redundant senden, Korrekturen sanft ausführen. Server: denselben Bewegungscode wie der Client verwenden, doppelt eingetroffene Eingaben anhand der Eingabenummer herausfiltern und nur einmal verarbeiten.
Größenordnungen
Die Distanz ergibt sich aus „Dauer der Abweichung × Bewegungstempo“. Schon wenige verlorene Befehle ergeben 1–3 m.
Im Graphen
Vereinzelte Spitzen ohne Muster · Anzahl der Serverkorrekturen (fehlgeschlagene Vorhersagen)
Wo nachsehen
Anzahl und Distanz der vom Server gesendeten Positionskorrekturen aufzeichnen. In Unreal die Korrekturen per ClientAdjustPosition zählen, in Unity Netcode for Entities die Zahl der Rollbacks mit Neuberechnung nach fehlgeschlagener Vorhersage
Spricht dafür
Korrekturen häufen sich zu den Zeitpunkten der Rubberbanding-Meldungen, bei bestimmten Buffs, Geländestellen oder Bewegungsskills ist die Korrekturdistanz wiederholt groß
Spricht dagegen
Korrekturen häufen sich nur bei hohem Paketverlust: Verlust von Eingabepaketen (Leitung). Keine Korrekturen, nur andere Charaktere werden sichtbar zurückgezogen: „Übermäßige Extrapolation (Dead Reckoning)“
Prüfmittel
Logs oder Metriken aus Spielserver bzw. Client nötig
Quellen
Introduction to prediction (Netcode for Entities 6.5)Unity Client und Server sagen mit demselben Simulationscode voraus. Weicht der Serverzustand ab (fehlgeschlagene Vorhersage), wird zurückgesetzt und neu berechnet, die Korrektur ist sichtbar