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

Game-Lag-Whitepaper › Probleme, die nur einige betreffen

Zurückgehaltene Objekte durch falsch geschätzte Serverzeit Clock estimate error holds or discards entities

Ursachen-ID pt-clock-hold · Hauptzuständig Client-Entwicklung (Entwicklungsteam)

In der interaktiven Fassung mit Grafiken und Experimenten öffnen →

Liegt die vom Client geschätzte Serverzeit falsch, hält er gerade eingetroffene Objektdaten als „noch in der Zukunft“ zurück oder verwirft sie als „zu alt“.

Warum Schätzung der Serverzeit weicht bei einem Client stark ab (Messung während des Ladens, Rückkehr aus dem Energiesparmodus) → Folge Referenzzeit der Interpolation und Zeitstempel der Objektdaten passen nicht zusammen → Auf dem Bildschirm Objekte erscheinen spät oder stehen bewegungslos da

Symptome
Unsichtbar / Geisterobjekte, Ruckeln
Faktoren
Latenz
Wer ist betroffen
Nur ein Client auf demselben PC
Wann
Nach Inaktivität, Direkt nach Login oder Wartung
Zuständigkeit
Hauptzuständig Client-Entwicklung (Entwicklungsteam)
Aufgaben Entwicklungsteam
Zeitsynchronisation regelmäßig wiederholen und bei großer Abweichung sofort zurücksetzen, während des Ladens oder direkt nach dem Aufwachen gemessene Werte nicht verwenden.
Im Graphen
Nur einzelne Ausreißer · Fehler der geschätzten Serverzeit pro Client
Wo nachsehen
Im Client geschätzte Serverzeit, RTT, Zeitpunkte erneuter Zeitsynchronisation und die Zahl zurückgehaltener oder verworfener Objektdaten protokollieren. Direkt nach dem Laden oder nach dem Aufwachen aus dem Energiesparmodus nachstellen
Spricht dafür
Nur beim betroffenen Client überschreitet der Schätzfehler die Reset-Schwelle (Unity: hardResetThresholdSec, Standard 0,2 s), es gibt Einträge über als zukünftig zurückgehaltene oder als veraltet verworfene Objektdaten, und nach erneuter Zeitsynchronisation ist sofort alles normal
Spricht dagegen
Schätzfehler klein und Objekte trotzdem spät: „Sendebudget und Priorität pro Verbindung“ oder Ursachen beim Laden
Prüfmittel
Logs oder Metriken aus Spielserver bzw. Client nötig

Quellen

  1. NetworkTimeSystem class (Netcode for GameObjects 2.5) Unity
    Übersteigt die Zeitdifferenz hardResetThresholdSec (Standard 0,2 s), wird hart angeglichen, sonst über adjustmentRatio schrittweise schneller oder langsamer nachgeführt
  2. NetworkTime and ticks (Netcode for GameObjects 2.5) Unity
    LocalTime läuft dem Server voraus, ServerTime hinterher. Bei spät eintreffenden Nachrichten kann die Wartezeit negativ werden

Verwandte Ursachen

Gleiche Schicht: Probleme, die nur einige betreffen

Ursachen aus anderen Schichten mit demselben Symptom (Unsichtbar / Geisterobjekte)

Karte in der interaktiven Fassung mit Grafiken und Experimenten ansehen