Bekommen Server-Events keinen Entstehungszeitpunkt und werden sofort bei Ankunft abgespielt, überträgt sich der Netzwerk-Jitter direkt auf das Timing der Darstellung.
Warum Events wie „Angriff beginnt“ oder „Effekt abspielen“ sofort bei Ankunft ausgeführt → Folge Jedes Paket kommt zu einer anderen Zeit an, Abstände unregelmäßig → Auf dem Bildschirm Angriffsketten mal schneller, mal langsamer, Timing der Bossmuster jedes Mal anders
Client: Events zum mitgelieferten Zeitpunkt abspielen (zeitgeplante Events, Interpolationspuffer). Server: Events mit dem Entstehungszeitpunkt (Serverzeit) versehen und senden.
Im Graphen
Vereinzelte Spitzen ohne Muster · Abstand der Event-Wiedergabe, Ankunftsabstand der Pakete
Wo nachsehen
Entstehungszeitpunkt der Events im Server-Log und Ankunfts- und Wiedergabezeitpunkt im Client-Log über die Event-Nummer zuordnen und die Abstände vergleichen. In einem Entwicklungs-Build mit hinzugefügtem Jitter nachstellen (Jitter-Wert von tc netem, minimale und maximale Latenz der Unreal-Netzwerkemulation)
Spricht dafür
Entstehungsabstände auf dem Server gleichmäßig, Wiedergabeabstände folgen unverändert den unregelmäßigen Ankunftsabständen
Spricht dagegen
Ankunftsabstände gleichmäßig, aber Wiedergabe unregelmäßig: Frame-Problem im Client („Frametime-Spikes“). Schon die Entstehungsabstände auf dem Server schwanken: „Überschrittenes Tick-Budget“
Prüfmittel
Logs oder Metriken aus Spielserver bzw. Client nötig
Snapshot InterpolationGaffer On Games Empfangene Snapshots sofort zu zeichnen, ruckelt wegen Jitter. Sammelt man sie kurz im Interpolationspuffer und zeichnet dann, wird die Darstellung flüssig
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