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

Game Lag White Paper › Problems only some players hit

Fast-forward on servers that process on arrival Event-driven processing of bursty inputs

Cause ID pt-event-server · Primary owner Game team (Server development) · Also Game team (Client development)

Open the interactive card with figures and simulations →

On a server that processes and broadcasts packets as soon as they arrive, a lagging player’s bunched-up actions run back to back immediately.

Why A lagging player’s skill and move requests arrive in a bunch → Effect The server runs them in order the moment they arrive and tells everyone right away → On screen Others see that player use several skills in an instant or move as if fast-forwarding

Symptoms
Fast-forward
Factors
Jitter
Who’s affected
One character looks off
When
During specific actions, Always
Owner
Primary owner Game team (Server development) · Also Game team (Client development)
Game team action items
Server: run actions at the spacing of their attached input times (accepting those times only within an allowed range), or run bunched actions one after another spaced by a minimum interval (global cooldown) without rejecting them, don’t check cooldowns by arrival time alone (valid inputs get dropped). Client: attach the input time to each action.
On the graph
Outliers only · Action execution interval per player
Where to look
Server log of each player’s action arrival time, execution time, and client-attached input time (if any), comparing execution intervals with input intervals. Also the arrival intervals of that player’s packets in a server-side packet capture
Confirmed if
Input intervals are normal, but server arrival and execution intervals are bunched within a few ms, and the bunches line up with the times other players reported fast-forward
Ruled out if
Intervals are already bunched in the input times: points to the client or a macro. Server execution intervals are even but look bunched only on other players’ screens: the viewer’s connection
Check with
Game server or client logs and metrics

Sources

  1. Understanding Networked Movement in the Character Movement Component for Unreal Engine Epic Games
    The server computes a move each time it receives ServerMove and sets the time step from the timestamp difference with the previous move; if the difference from server time is too large, it discards the move
  2. Deterministic Lockstep Gaffer On Games
    Applying inputs as they arrive gives uneven results even when they’re sent at 60 Hz, because the spacing isn’t even

See also

Same layer: Problems only some players hit

Same symptom (Fast-forward), other layers

View the interactive card with figures and simulations