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
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
Snapshot InterpolationGaffer On Games Drawing received snapshots immediately stutters because of jitter; holding them briefly in an interpolation buffer before drawing makes motion smooth
tc-netem(8) — Linux manual pageiproute2 A test tool that adds delay and jitter (delay TIME JITTER) and loss (loss random PERCENT) to outgoing packets to mimic a real network
Using Network Emulation in Unreal EngineEpic Games Test with minimum and maximum latency and a packet loss percentage on server and client; set from the console, e.g., NetEmulation.PktLag