Sendet der Server nur „Änderungen seit dem letzten Mal“, lassen sich spätere Änderungen nicht anwenden, wenn die einmalig gesendete Gesamtinformation (Basis) verloren geht.
Warum Paket mit der Gesamtinformation eines Objekts (Basis) geht verloren oder wird vor der Verarbeitung verworfen → Folge Client hat kein Objekt, auf das er spätere Änderungen anwenden kann, und ignoriert sie → Auf dem Bildschirm Das Objekt ist unsichtbar oder taucht erst viel später plötzlich auf
Server: Basis unbedingt erneut senden, bis eine Empfangsbestätigung (ACK) kommt, Änderungen nur relativ zu einer vom Client bestätigten Basis erzeugen. Client: ACK für die Basis erst senden, wenn sie tatsächlich angewandt ist, bei Änderungen für unbekannte Objekte erneut beim Server anfordern.
Im Graphen
Vereinzelte Spitzen ohne Muster · Empfangene Änderungen für unbekannte Objekte
Wo nachsehen
Anzahl und Objekt-IDs der Änderungen, die der Client ohne Basis empfangen und verworfen hat, mit den Zeitpunkten abgleichen, zu denen der Server die Basis dieses Objekts gesendet und das ACK erhalten hat. In der Entwicklungsumgebung mit hinzugefügtem Paketverlust nachstellen (loss bei tc netem, Paketverlustrate der Unreal-Netzwerkemulation)
Spricht dafür
Für das unsichtbare Objekt hat der Server die Basis gesendet, aber kein ACK erhalten und trotzdem weiter nur Änderungen geschickt, die der Client verworfen hat
Spricht dagegen
Basis mit ACK bestätigt und im Client angewandt, trotzdem unsichtbar: „Verlorene Despawn-Meldung (Geisterobjekt)“ oder „Verwechslung durch wiederverwendete Objekt-IDs“
Prüfmittel
Logs oder Metriken aus Spielserver bzw. Client nötig
Quellen
Snapshot CompressionGaffer On Games Änderungen dürfen nur relativ zu einer Basis (baseline) erzeugt werden, deren Empfang die Gegenseite bestätigt hat (ack), der Anfangszustand wird separat gesendet
tc-netem(8) — Linux manual pageiproute2 Testwerkzeug, das ausgehenden Paketen Latenz und Jitter (delay TIME JITTER) sowie Verlust (loss random PERCENT) hinzufügt, um reale Netze nachzubilden
Using Network Emulation in Unreal EngineEpic Games Tests mit minimaler und maximaler Latenz sowie Paketverlustrate auf Server und Client, in der Konsole etwa über NetEmulation.PktLag einstellbar
Verwandte Ursachen
Gleiche Schicht: Probleme, die nur einige betreffen