If the client draws server packets the moment they arrive, jitter (variation in packet arrival times) shows up directly on screen.
Why Received positions are drawn immediately, or the buffer is shorter than the jitter → Effect Characters stop for as long as a packet is late, then jump when delayed packets arrive together → On screen Other characters move in fits and starts
Primary owner Game team (Client development) · Also Game team (Server development)
Game team action items
Client: add an interpolation buffer, adjust its length automatically to connection quality. Server: apply lag compensation (rewind-based hit registration) so hits still register correctly when players aim at positions a buffer’s length in the past.
Ballpark numbers
The usual buffer is about twice the server’s send interval (100 ms when receiving 20 updates a second).
On the graph
Always high · Packet arrival intervals, times the interpolation buffer ran empty
Where to look
On the client, record the distribution of server packet arrival intervals and the number of frames that froze or fell back to extrapolation because there was no next snapshot to interpolate to
Confirmed if
Variation in arrival intervals often exceeds the interpolation buffer length, and each time the buffer runs empty and other characters hitch. A longer buffer reduces it
Ruled out if
Hitches even with enough buffer: check whether the server’s send interval itself is irregular (tick delays)
Check with
Game server or client logs and metrics
Learn more
A longer buffer makes movement smoother, but you see opponents that much further in the past. That’s why hit registration comes paired with lag compensation, where the server rewinds to “the past that player was seeing” to check the hit.
Physics (Netcode for Entities 6.5)Unity Lag compensation: the server finds the collision world the client was seeing at that tick and decides whether the shot hit