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

Game-Lag-Whitepaper › Synchronisationsdesign

Protokoll mit vielen aufeinanderfolgenden Round Trips (chatty) Chatty protocol / sequential round trips

Ursachen-ID sy-chatty · Hauptzuständig Server-Entwicklung (Entwicklungsteam) · Beteiligt Client-Entwicklung (Entwicklungsteam)

In der interaktiven Fassung mit Grafiken und Experimenten öffnen →

Braucht eine einzige Aktion mehrere Round Trips zum Server nacheinander, vervielfacht sich der Ping um deren Anzahl.

Warum Shop öffnen → Liste anfordern → Preis prüfen → kaufen → Inventar aktualisieren, jeweils als eigene Anfrage → Folge Nächste Anfrage erst nach der Antwort auf die vorige → Auf dem Bildschirm Bei 150 ms Ping dauert ein Kauf fast 1 s. Ladezeiten auffällig lang

Symptome
Input-Lag, Kein Login / Endlos-Laden
Faktoren
Latenz
Wer ist betroffen
Nur eine bestimmte Funktion, Nur ich
Wann
Bei bestimmten Aktionen, Direkt nach Login oder Wartung
Zuständigkeit
Hauptzuständig Server-Entwicklung (Entwicklungsteam) · Beteiligt Client-Entwicklung (Entwicklungsteam)
Aufgaben Entwicklungsteam
Server: Protokoll so ändern, dass mehrere Schritte in einer Anfrage und einer Antwort gebündelt werden (z. B. das aktualisierte Inventar gleich in die Kaufantwort packen). Client: benötigte Daten vorab laden, UI, die nicht auf das Ergebnis wartet.
Größenordnungen
Dauer ≈ Anzahl der Round Trips × (Ping + Serververarbeitung + Tick-Wartezeit). Bei 5 Round Trips und 150 ms Ping etwa 0,85–1 s.
Im Graphen
Von Anfang an dauerhaft hoch · Abschlusszeit pro Funktion, Round Trips pro Aktion
Wo nachsehen
In einem serverseitigen Paketmitschnitt (Wireshark) zählen, wie oft Anfragen und Antworten abwechselnd hin- und hergehen, während ein Testaccount eine Aktion wie einen Shop-Kauf oder einen Login einmal ausführt, und die Abstände messen. Gibt es ein Request-Log auf dem Server, nach Session-ID gruppieren und Anzahl der Anfragen sowie Ankunfts- und Antwortzeit jeder Anfrage prüfen
Spricht dafür
Pro Aktion mehrere Anfragen nacheinander, jede wartet auf die vorige Antwort, Abschlusszeit etwa Round Trips × RTT, und dieselbe Funktion ist für Spieler aus Regionen mit höherem Ping proportional langsamer
Spricht dagegen
Nur ein, zwei Round Trips, aber eine einzelne Antwort dauert lange: Ursache bei Serververarbeitung oder DB. Alle Spieler unabhängig vom Ping gleich langsam: Serverlast prüfen
Prüfmittel
Mit Infrastruktur-Tools prüfbar (ohne Spielcode)

Quellen

  1. Chatty I/O antipattern Microsoft Azure
    Viele kleine I/O-Anfragen summieren sich zu einer Latenz, die die Reaktionsfähigkeit stark verschlechtert. Empfehlung: Anfragen zu weniger, größeren bündeln

Verwandte Ursachen

Gleiche Schicht: Synchronisationsdesign

Ursachen aus anderen Schichten mit demselben Symptom (Input-Lag)

Karte in der interaktiven Fassung mit Grafiken und Experimenten ansehen