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

Game-Lag-Whitepaper › L9 Spielprozess auf dem Server

Spawn-Flut beim Betreten belebter Gebiete Spawn burst when entering a crowd

Ursachen-ID sp-spawn-burst · Hauptzuständig Server-Entwicklung (Entwicklungsteam) · Beteiligt Client-Entwicklung (Entwicklungsteam)

In der interaktiven Fassung mit Grafiken und Experimenten öffnen →

Reist man per Teleport in eine volle Stadt, muss der Server Aussehen, Ausrüstung und Zustand von Hunderten neu sichtbarer Spieler auf einmal senden.

Warum Durch Teleport, Login oder Kanalwechsel taucht man plötzlich an einem belebten Ort auf → Folge Vollständige Daten für Hunderte Spieler werden auf einmal erzeugt und gesendet, und der eigene PC lädt sie ebenfalls auf einmal → Auf dem Bildschirm Kurzer Freeze direkt nach der Ankunft, Charaktere erscheinen verzögert nacheinander, Eingaben reagieren verzögert

Symptome
Freeze, Input-Lag, Zeitraffer
Faktoren
Stillstand, Latenz
Wer ist betroffen
Nur ich, Bestimmter Ort oder Kanal
Wann
Beim Bewegen oder Zonenwechsel, Direkt nach Login oder Wartung
Zuständigkeit
Hauptzuständig Server-Entwicklung (Entwicklungsteam) · Beteiligt Client-Entwicklung (Entwicklungsteam)
Aufgaben Entwicklungsteam
Server: nach Entfernung sortiert auf mehrere Ticks verteilt senden, Aussehensdaten cachen. Client: Daten schon während des Ladebildschirms empfangen, empfangene Charaktere über mehrere Frames verteilt erzeugen.
Größenordnungen
Sind Aussehen, Ausrüstung und Buffs eines Spielers zusammen 300 Byte groß, ergeben 500 Spieler etwa 150 KB. In einem einzigen Moment fällt so Dutzende Male mehr an als die übliche Sendemenge pro Tick (einige KB).
Im Graphen
Ansturm direkt nach Login oder Wartung · Gesendete Bytes pro Verbindung, Frametime des Clients
Wo nachsehen
In den ersten Sekunden nach Ankunft an einem belebten Ort die über diese Verbindung gesendeten Bytes und Pakete (Serverlog) und die Frametime des Clients (Netgraph, Client-Log) prüfen
Spricht dafür
Direkt nach der Ankunft schießt das Sendevolumen dieser Verbindung auf Dutzende Male den Wert eines normalen Ticks hoch und fällt dann wieder ab, im selben Moment schlägt auch die Frametime des Clients aus
Spricht dagegen
Gleicher Stillstand auch beim Wechsel an einen leeren Ort: eher Zonenwechsel (Übergabe zwischen Servern) oder Laden im Client
Prüfmittel
Logs oder Metriken aus Spielserver bzw. Client nötig

Quellen

  1. Detailed Actor Replication Flow in Unreal Engine Epic Games
    Beim ersten Öffnen eines Actor-Channels werden Startinformationen wie Position und Rotation mitgesendet, ist die Verbindung ausgeschöpft, werden die übrigen Actors auf den nächsten Tick verschoben
  2. Actor Priority in Unreal Engine Epic Games
    Priorisiert nach Entfernung und Blickrichtung und sendet nahe, sichtbare Actors zuerst

Verwandte Ursachen

Gleiche Schicht: L9 Spielprozess auf dem Server

Ursachen aus anderen Schichten mit demselben Symptom (Freeze)

Karte in der interaktiven Fassung mit Grafiken und Experimenten ansehen