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

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

Verworfene Spawn-Meldungen während des Ladens Spawn messages dropped before the client is ready

Ursachen-ID pt-loading-drop · Hauptzuständig Client-Entwicklung (Entwicklungsteam) · Beteiligt Server-Entwicklung (Entwicklungsteam)

In der interaktiven Fassung mit Grafiken und Experimenten öffnen →

Direkt beim Betreten einer Zone schickt der Server Spawn-Meldungen für die NPCs in der Umgebung, aber der Client lädt noch die Karte und verwirft sie.

Warum Server sendet direkt nach dem Betreten Spawn-Meldungen für Objekte in der Umgebung → Folge Client lädt noch, es gibt noch keinen Message-Handler, die Meldungen werden verworfen → Auf dem Bildschirm Server betrachtet sie als gesendet und schickt sie nicht erneut. Der NPC bleibt unsichtbar, bis man den Sichtbereich verlässt und zurückkommt

Symptome
Unsichtbar / Geisterobjekte
Faktoren
Paketverlust
Wer ist betroffen
Nur ein Client auf demselben PC, Nur ich
Wann
Direkt nach Login oder Wartung, Beim Bewegen oder Zonenwechsel
Zuständigkeit
Hauptzuständig Client-Entwicklung (Entwicklungsteam) · Beteiligt Server-Entwicklung (Entwicklungsteam)
Aufgaben Entwicklungsteam
Client: nach dem Laden „bereit“ melden oder während des Ladens empfangene Pakete zwischenspeichern und danach verarbeiten. Server: Umgebungsdaten erst nach Empfang von „bereit“ senden.
Größenordnungen
Laden zwei Clients auf demselben PC gleichzeitig oder ist der ladende Client ein Hintergrundfenster, teilen sie sich CPU und Datenträger und werden zusätzlich gedrosselt, sodass das Laden dort ein Vielfaches länger dauern kann. Auch wenn der Server das Betreten schneller verarbeitet, tritt derselbe Bug zutage.
Im Graphen
Nur einzelne Ausreißer · Ladezeit pro Client, während des Ladens verworfene Nachrichten
Wo nachsehen
Anzahl und Art der Nachrichten, die der Client während des Ladens empfangen und verworfen hat, sowie den Zeitpunkt des Ladeendes mit dem Zeitpunkt vergleichen, zu dem der Server die Spawn-Meldungen gesendet hat. Laden zwei Clients auf demselben PC gleichzeitig oder liegt der ladende Client im Hintergrund, lässt es sich leicht nachstellen
Spricht dafür
Der Server hat die Spawn-Meldung für den unsichtbaren NPC gesendet, sie kam vor dem Ladeende an, und in dieser Zeit ist die Zahl der verworfenen Nachrichten gestiegen. Tritt nur beim Client mit der längeren Ladezeit auf
Spricht dagegen
Spawn-Meldung kam nach dem Ladeende an und der NPC ist trotzdem unsichtbar: „Verlorener Basis-Snapshot“ oder „Verwechslung durch wiederverwendete Objekt-IDs“. Server hat die Meldung für diesen NPC gar nicht gesendet: „Reihenfolgefehler bei der Sichtbereichsregistrierung“ oder „Unterschiede bei Kanal, Instanz oder Phasing“
Prüfmittel
Logs oder Metriken aus Spielserver bzw. Client nötig

Quellen

  1. NetworkConfig class (Netcode for GameObjects 2.5) Unity
    SpawnTimeout: Nachrichten für noch nicht erzeugte Objekte werden zurückgehalten und verworfen, wenn das Objekt nicht rechtzeitig erzeugt wird
  2. Actor Relevancy in Unreal Engine Epic Games
    Nicht mehr relevante Actors werden auf dem Client gelöscht und bei erneuter Relevanz neu repliziert

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