Game-Lag-Whitepaper › Nach Symptom suchen
Ruckeln: 60 Ursachen und Zuständigkeiten
Auch genannt: Stottern, Mikroruckler, gefühlte Framedrops
Im interaktiven Symptomkatalog mit Grafiken öffnen →
Bewegungen laufen nicht flüssig: Sie stocken immer wieder kurz und gehen dann weiter.
Andere Charaktere oder das ganze Bild bewegen sich Ruck für Ruck. Die Punkte der Bewegungsspur ballen sich und reißen wieder auseinander.
Ist der Ping unauffällig, liegt es meist an den Frames des eigenen PCs (Client oder OS). Schwankt der Ping stark, ist wahrscheinlich Jitter im WLAN oder auf der Leitung die Ursache. Allerdings wird der Ping im Spiel meist innerhalb der Game-Loop gemessen, die einmal pro Frame läuft. Schlägt die Frametime aus, kann deshalb auch die Ping-Anzeige mit ausschlagen.
Ursachen dieses Symptoms
L1 Spielprozess auf dem Client
- Frametime-Spikes: Die Berechnung eines einzelnen Frames dauert ein Vielfaches länger als sonst, und das Bild bleibt kurz stehen. (Client-Entwicklung (Entwicklungsteam))
- Garbage Collection auf dem Client: Während nicht mehr benötigter Speicher (Garbage) freigegeben wird, steht das ganze Spiel still. Typisch ist Ruckeln in regelmäßigen Abständen. (Client-Entwicklung (Entwicklungsteam))
- Synchrones Laden und Shader-Kompilierung im Main-Thread: Bevor ein neues Gebiet, ein neues Monster oder ein neuer Effekt zum ersten Mal gezeichnet wird, liest das Spiel Dateien und erzeugt Shader. Währenddessen steht es still. (Client-Entwicklung (Entwicklungsteam))
- Langsamer Datenträger bremst Asset-Streaming: Auf langsamen Datenträgern wie HDDs kommt das Einlesen von Texturen und Modellen in einer Open World der Bewegung nicht hinterher. Objekte erscheinen spät, oder das Spiel ruckelt, während es auf Lesevorgänge wartet. (Client-Entwicklung (Entwicklungsteam))
- Renderlast durch große Spielermengen: Sind wie bei Belagerungen oder Weltbossen Hunderte Spieler auf einem Bildschirm, ist schon das Zeichnen selbst nicht mehr zu bewältigen. (Client-Entwicklung (Entwicklungsteam))
- Fehlender oder zu kurzer Interpolationspuffer: Zeichnet der Client Serverpakete sofort nach dem Empfang, wird der Jitter (Schwankung der Ankunftsabstände) direkt auf dem Bildschirm sichtbar. (Client-Entwicklung (Entwicklungsteam))
- Übermäßige Extrapolation (Dead Reckoning): Solange keine Pakete kommen, zeigt der Client das Objekt mit der letzten Geschwindigkeit weiter in Bewegung. Merkt er den Fehler, setzt er es zurück. (Client-Entwicklung (Entwicklungsteam))
- Aufholspirale bei festem Zeitschritt: Nach einem einzelnen Stillstand rechnet das Spiel die aufgelaufenen Schritte im Block nach und gerät genau dadurch erneut in Rückstand. (Client-Entwicklung (Entwicklungsteam))
- Fehler bei der Uhrensynchronisation: Liegt die vom Client geschätzte Serverzeit daneben, stimmen Interpolationszeitpunkt und Cooldown-Prüfung nicht mehr. (Client-Entwicklung (Entwicklungsteam))
- Präzisionsverlust bei float-Zeitwerten: Hält das Spiel die Spielzeit in einem ungenauen Gleitkommaformat (float), sinkt die Zeitauflösung (kleinster unterscheidbarer Zeitabstand), je länger es läuft. Bewegungen und Effekte zittern. (Client-Entwicklung (Entwicklungsteam))
- V-Sync und Render-Warteschlange: Die GPU legt fertige Frames in eine Warteschlange und gibt sie im Takt des Monitors aus. Solange sie dort warten, kommt die Eingabe verzögert an. (Client-Entwicklung (Entwicklungsteam))
- Speicherleck im Client: Je länger das Spiel läuft, desto mehr Speicher belegt es. Es wird zunehmend langsamer und am Ende zwangsweise beendet. (Client-Entwicklung (Entwicklungsteam))
- Prüfungen des Sicherheitsmoduls (Anti-Cheat): Ein Sicherheitsmodul, das zum Schutz vor Cheats mit dem Spiel läuft, prüft in regelmäßigen Abständen. Ist die Prüfung aufwendig oder kommt der Heartbeat (regelmäßiges Lebenszeichen) zum Sicherheitsserver zu spät, ruckelt das Spiel, oder es kommt zum Verbindungsabbruch. (Client-Entwicklung (Entwicklungsteam))
L2 Client-OS und Gerät
- CPU-Belegung durch Hintergrundprozesse: Belegen Virenscans, Windows Update, Streaming-Software oder Videos im Browser die Kerne, bekommt der Game-Thread keine CPU-Zeit und muss warten. (Extern (Extern))
- Energiesparmodus und Thermal Throttling: Akkubetrieb am Notebook, der Energiesparmodus des Smartphones oder Hitze im Gerät senken die Taktraten von CPU und GPU. Typisch für Hitze: Anfangs läuft alles, nach einer Weile wird es langsamer. (Extern (Extern))
- Timer-Auflösung: Der Standard-Timer von Windows arbeitet in Schritten von 15,6 ms. Ein „nur 1 ms warten“ dauert deshalb tatsächlich bis zum nächsten Timer-Takt, im ungünstigsten Fall 15,6 ms. (Client-Entwicklung (Entwicklungsteam))
- Paketprüfung durch Sicherheitssoftware: Prüfen Virenscanner oder Firewall jedes Paket, steigt die Latenz. Im Extremfall halten sie das Spiel fälschlich für einen Angriff und blockieren es. (Extern (Extern))
- Zu wenig Arbeitsspeicher und Swap auf dem Client: Laufen Dutzende Browser-Tabs neben dem Spiel, lagert das OS einen Teil des Spielspeichers auf den Datenträger aus. (Extern (Extern))
- Zu wenig Grafikspeicher (VRAM): Brauchen die Grafikoptionen mehr Speicher, als die Grafikkarte hat, lagert das OS Texturen in den Arbeitsspeicher des PCs aus und holt sie wieder zurück. Das Bild ruckelt. (Client-Entwicklung (Entwicklungsteam))
- WLAN-Hintergrundscan: Während das OS regelmäßig die Kanäle wechselt, um nach WLANs in der Umgebung zu suchen, setzt die Übertragung kurz aus. (Extern (Extern))
- NIC-Energiesparmodus und Treiberprobleme: Gehen Netzwerkkarte oder WLAN-Chip zwischen zwei Paketen in einen Energiesparzustand, braucht das Aufwachen Zeit. (Extern (Extern))
- Drosselung bei minimiertem oder inaktivem Fenster: Wechselt man in ein anderes Fenster oder minimiert das Spiel, lassen Spiel und Windows es zum Stromsparen langsamer laufen. Bei der Rückkehr kommen die aufgestauten Pakete auf einmal, oder die Verbindung ist schon abgebrochen. (Client-Entwicklung (Entwicklungsteam))
- Störung durch Overlay-Programme: Messenger, Launcher, Aufnahmeprogramme und FPS-Anzeigen klinken sich in das Rendering des Spiels ein (Hooking), um ihre eigene UI über das Spielbild zu zeichnen. Das kostet in jedem Frame zusätzliche Arbeit und kollidiert gelegentlich mit dem Spiel, sodass es stockt oder zwangsweise beendet wird. (Extern (Extern))
L3 Heimnetz
- WLAN-Funkstörungen und schwaches Signal: Bei schwachem Signal oder Störungen muss auf der Funkstrecke mehrfach erneut gesendet werden, und die Pakete kommen unregelmäßig an. (Extern (Extern))
- Überlasteter WLAN-Kanal: Wo wie in großen Wohnanlagen Dutzende Router funken, teilen sie sich denselben Kanal und müssen auf Sendegelegenheiten warten. (Extern (Extern))
- Leistungsschwacher oder überhitzter Router: Hängen an einem billigen Router Dutzende Geräte mit Tausenden Verbindungen, kommt der Router selbst nicht mehr mit. (Extern (Extern))
- Schwaches Mobilfunksignal und Funklöcher: In Aufzügen, im Untergeschoss oder tief im Gebäudeinneren nehmen Retransmissions zu, die Geschwindigkeit sinkt, und schließlich bricht die Verbindung ab. (Extern (Extern))
- Häufiger Wechsel 5G↔LTE (Rand der 5G-Abdeckung): In Gebäuden mit schwachem 5G-Signal oder am Rand der 5G-Abdeckung wechselt das Smartphone häufig zwischen 5G und LTE. Bei jedem Wechsel schlägt der Ping aus, oder die Verbindung setzt kurz aus. (Extern (Extern))
L4 Internetleitung
- Satelliteninternet (LEO und geostationär): Beim Satelliteninternet muss das Funksignal durch den Weltraum hin und zurück. Bei geostationären Satelliten dauert allein der Round Trip über 0,5 s. LEO-Satelliten wie Starlink sind normalerweise schnell, doch im Moment der Routen-Neuzuweisung schwankt die Latenz, und die Verbindung kann kurz abreißen. (Extern (Extern))
- Überlast am Peering-Punkt zur Stoßzeit: Abends zwischen etwa 21 und 23 Uhr schnellt der Video-Traffic in die Höhe, und die Übergänge zwischen Providern (Peering) sind dann leicht überlastet. (Netzwerk-Infrastruktur (Infrastrukturteam))
- Einzelner defekter ECMP-Pfad: Provider und Rechenzentren halten mehrere Pfade zum selben Ziel vor und legen für jede Verbindung einen davon fest. Fällt nur ein Pfad aus, laggt es dauerhaft nur für die Spieler, die diesem Pfad zugewiesen sind. (Netzwerk-Infrastruktur (Infrastrukturteam))
L6 Netzwerkkarte des Servers
- Virtualisierungs-Overhead und Noisy Neighbor: Nutzen andere VMs auf demselben physischen Server viel Netzwerk oder CPU, verzögert sich die Verarbeitung auf dem eigenen Server unregelmäßig. (Server-Infrastruktur (Infrastrukturteam))
L7 Server-OS (Kernel)
- Zu viele Threads und Kontextwechsel: Laufen weit mehr Threads als Kerne, verbraucht das OS CPU-Zeit allein damit, sie abwechselnd auszuführen. (Server-Entwicklung (Entwicklungsteam))
- CPU-Steal (virtuelle Maschine): Während der physische Server (Hypervisor) die CPU-Zeit einer virtuellen Maschine kurz an eine andere VM vergibt (CPU-Steal), steht der Spielserver still. (Server-Infrastruktur (Infrastrukturteam))
- CPU-Throttling im Container (CFS-Quota): Hat ein Container ein CPU-Limit und verbraucht er sein Kontingent innerhalb der festen Periode (meist 100 ms), wird er für den Rest der Periode zwangsweise angehalten (Throttling). (Server-Infrastruktur (Infrastrukturteam))
- Stillstand durch Speicherrückgewinnung (Reclaim) und Compaction: Während das OS den Speicher kompaktiert, um große Seiten (Huge Pages) zu erzeugen, oder freien Speicher zurückgewinnt, steht der Prozess still. (Server-Infrastruktur (Infrastrukturteam))
- Zeitgesteuerte Jobs: Log-Komprimierung, Backups und Sicherheitsscans, die jeden Tag zur selben Zeit laufen, belegen CPU und Datenträger. (Server-Infrastruktur (Infrastrukturteam))
- Leistungsänderung nach OS-, Kernel-, Treiber- oder Firmware-Update: Der Spielcode ist unverändert, doch nach einem Update von Server-OS, Kernel, Treibern oder Firmware wird es langsamer. Updates können Standardwerte, den Scheduler, die Schutzmaßnahmen gegen CPU-Sicherheitslücken (Mitigations) und das Verhalten von Treibern ändern. (Server-Infrastruktur (Infrastrukturteam))
L9 Spielprozess auf dem Server
- Überschrittenes Tick-Budget: Passt die Arbeit eines Ticks nicht mehr ins Budget, dehnt sich das Tick-Intervall des Servers. Das ganze Gebiet läuft dann langsamer oder ruckelt. (Server-Entwicklung (Entwicklungsteam))
- Explodierende Sichtbereichsberechnung (AOI, N²): Wird für alle Spieler paarweise geprüft, wer wen sehen kann, wächst der Rechenaufwand bei 10-mal so vielen Spielern auf das 100-Fache. (Server-Entwicklung (Entwicklungsteam))
- Synchrone Aufrufe im Game-Thread: Wartet der Server mitten im Tick auf eine DB-Antwort oder einen Schreibvorgang, steht das gesamte Spielgeschehen für genau diese Zeit still. (Server-Entwicklung (Entwicklungsteam))
- Gleichzeitig auslösende Timer: Fallen alle Monster-Respawns, alle Buff-Abläufe und die Belohnungen zur vollen Stunde in denselben Tick, ist dieser eine Tick Dutzende Male so aufwendig wie sonst. (Server-Entwicklung (Entwicklungsteam))
- Anhäufung von Objekten (nicht aufgeräumte Items und Beschwörungen): Werden Items am Boden, Beschwörungen und abgelaufene Timer, die längst verschwunden sein sollten, nicht aufgeräumt, wächst die Arbeit pro Tick, je länger der Server läuft. (Server-Entwicklung (Entwicklungsteam))
L10 Arbeitsspeicher
- GC-Pause der Skript-Engine: Laufen Quests, KI und Skills in einer Skriptsprache wie Lua, steht selbst auf einem C++-Server die Zone still, solange die GC der Skript-Engine läuft. (Server-Entwicklung (Entwicklungsteam))
- Allokationsflut: Entstehen während eines Events massenhaft temporäre Objekte, läuft die GC viel häufiger als sonst. (Server-Entwicklung (Entwicklungsteam))
L11 Datenträger
- Synchrones Schreiben von Logs: Wartet der Game-Thread bei jeder Logzeile, bis der Datenträger fertig ist, bleibt bei ausgelastetem Datenträger auch das Spielgeschehen stehen. (Server-Entwicklung (Entwicklungsteam))
- fsync-Flut: Eine Anfrage, Daten „sicher“ auf den Datenträger zu schreiben, dauert je nach Datenträger 0,1 ms bis einige Dutzend ms. Häufen sich solche Anfragen, wird die Warteschlange lang. (Server-Entwicklung (Entwicklungsteam))
- Aufgebrauchte Burst-Credits beim Cloud-Datenträger: Manche Cloud-Datenträger und kleine Servergrößen haben Burst-Credits, mit denen sie kurzzeitig schneller als ihre Basisleistung arbeiten. Dauert eine Lastphase lange und sind die Credits aufgebraucht, sinkt die Geschwindigkeit schlagartig. (Server-Infrastruktur (Infrastrukturteam))
- Backup-, Komprimierungs- und Scan-Jobs: Belegen nächtliche Backups, Log-Komprimierung oder Sicherheitsscans den Datenträger, stauen sich die Lese- und Schreibzugriffe des Spielservers. (Server-Infrastruktur (Infrastrukturteam))
L12 Datenbank
- Checkpoint und Log-Flush: Schreibt die DB in regelmäßigen Abständen die Änderungen aus dem Arbeitsspeicher gebündelt auf den Datenträger, werden Queries in diesem Moment langsam. (DB-Infrastruktur (Infrastrukturteam))
L13 Serverarchitektur und Betrieb
- Überlastung durch Logging und Monitoring: Bei einer Störung explodiert die Logmenge, und Server, die Logs synchron weitergeben, werden durch das Logging noch langsamer. (Server-Entwicklung (Entwicklungsteam))
Synchronisationsdesign
- Warten auf den langsamsten Spieler im Lockstep: Berechnen alle gemeinsam denselben Zug, müssen alle warten, sobald die Eingabe eines Einzelnen zu spät kommt. (Server-Entwicklung (Entwicklungsteam))
- Wiedergabe bei Ankunft ohne Zeitstempel: Bekommen Server-Events keinen Entstehungszeitpunkt und werden sofort bei Ankunft abgespielt, überträgt sich der Netzwerk-Jitter direkt auf das Timing der Darstellung. (Client-Entwicklung (Entwicklungsteam))
- Host-Architektur (Spieler-PC als Server): Übernimmt der PC eines Spielers die Rolle des Servers, bestimmen dessen Leitung und PC-Leistung das Spielgefühl aller. (Server-Entwicklung (Entwicklungsteam))
- Niedrige Snapshot-Senderate: Sendet der Server Positionsupdates (Snapshots) nur wenige Male pro Sekunde, muss der Interpolationspuffer entsprechend lang sein, und andere Charaktere erscheinen weiter in der Vergangenheit. (Server-Entwicklung (Entwicklungsteam))
Probleme, die nur einige betreffen
- Größe des Eingabepuffers pro Spieler: Sammelt der Server pro Spieler ein paar Eingaben und entnimmt pro Tick eine, sieht es für andere flüssig aus. Die eigenen Aktionen werden auf dem Server aber entsprechend später bestätigt. (Server-Entwicklung (Entwicklungsteam))
- Autorität über Monster bei einem langsamen Client: Manche Spiele übertragen die Berechnung von Monsterbewegungen an den Client eines Spielers in der Nähe, um den Server zu entlasten. Hat dieser Spieler eine schlechte Leitung, bewegt sich das Monster auf allen Bildschirmen seltsam. (Server-Entwicklung (Entwicklungsteam))
- Streaming-Fehler durch zu wenig Arbeitsspeicher oder VRAM: Teilen sich zwei Clients den Grafikspeicher, ist kein Platz für neu benötigte Modelle und Texturen, und manches wird nicht gezeichnet. (Client-Entwicklung (Entwicklungsteam))
- Zurückgehaltene Objekte durch falsch geschätzte Serverzeit: 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“. (Client-Entwicklung (Entwicklungsteam))
Grundursachen von TCP-Retransmissions
- Unnötiger Fast Retransmit durch vertauschte Reihenfolge: Kommt die Paketreihenfolge über mehrere Pfade oder gebündelte Links durcheinander, meldet der Empfänger per doppelter ACKs „Paket fehlt“, und der Sender schickt intakte Pakete erneut. (Netzwerk-Infrastruktur (Infrastrukturteam))
Interaktiven Symptomkatalog mit Grafiken ansehen