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

Game Lag White Paper › Netcode design

Events played on arrival without timestamps Events played on arrival (no timestamps)

Cause ID sy-no-timestamp · Primary owner Game team (Client development) · Also Game team (Server development)

Open the interactive card with figures and simulations →

If server events carry no timestamp and play as soon as they arrive, network jitter carries straight through into uneven animation timing.

Why “Attack start” and “play effect” events run as soon as they arrive → Effect Each packet arrives at a different time, so the intervals are uneven → On screen Chained attack animations speed up and slow down, and boss pattern timing differs every time

Symptoms
Stutter, Fast-forward
Factors
Jitter
Who’s affected
Just me
When
Always
Owner
Primary owner Game team (Client development) · Also Game team (Server development)
Game team action items
Client: play events at the time attached to them (scheduled events, interpolation buffer). Server: attach the time the event happened (server time) when sending.
On the graph
Random spikes · Event playback interval, packet arrival interval
Where to look
Event times from server logs and arrival and playback times from client logs, matched by event number, comparing intervals. Reproduce in a development build by adding jitter (the jitter value in tc netem, min/max latency in Unreal network emulation)
Confirmed if
Events happen at steady intervals on the server, but playback intervals follow the uneven arrival intervals exactly
Ruled out if
Arrival intervals are even but playback is uneven: client frame problem (frame time spikes). Intervals are already uneven on the server: tick overrun
Check with
Game server or client logs and metrics

Sources

  1. Latency Compensating Methods in Client/Server In-game Protocol Design and Optimization (Yahn W. Bernier, GDC 2001) Valve
    Stamp every update with server time and draw at the position for a target time of the current time minus the interpolation time (100 ms)
  2. Snapshot Interpolation Gaffer On Games
    Drawing received snapshots immediately stutters because of jitter; holding them briefly in an interpolation buffer before drawing makes motion smooth
  3. NetworkTime and ticks (Netcode for GameObjects 2.5) Unity
    Example of putting the send time in an RPC so the receiver plays the effect in step with server time
  4. tc-netem(8) — Linux manual page iproute2
    A test tool that adds delay and jitter (delay TIME JITTER) and loss (loss random PERCENT) to outgoing packets to mimic a real network
  5. Using Network Emulation in Unreal Engine Epic Games
    Test with minimum and maximum latency and a packet loss percentage on server and client; set from the console, e.g., NetEmulation.PktLag

See also

Same layer: Netcode design

Same symptom (Stutter), other layers

View the interactive card with figures and simulations