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

Game Lag White Paper › L1 Client game process

Rendering load from large crowds Render/animation cost of crowds

Cause ID cg-crowd · Primary owner Game team (Client development)

Open the interactive card with figures and simulations →

When hundreds of players fill one screen, as in a siege or a world boss fight, the cost of drawing them is more than the device can handle.

Why Hundreds of players and effects overlap on one screen → Effect Animation, shadow, name tag, and effect costs grow with the player count → On screen FPS drops 60 → 15: all movement stutters, and input lag sets in

Symptoms
Stutter, Input lag
Factors
Stall
Who’s affected
Specific zone/channel, Just me
When
When crowds gather
Owner
Primary owner Game team (Client development)
Game team action items
Simplify by distance (LOD), cap the number of players shown, offer a simplified effects option, lower the animation update rate.
Ballpark numbers
Even at 0.02–0.1 ms per character, 300 characters add up to 6–30 ms. The frame budget at 60 FPS is 16.7 ms, so this alone uses over 1/3 of it, and at the high end exceeds it.
On the graph
Rises with load · Frame time, characters on screen
Where to look
Compare PresentMon frame time and CPUBusy/GPUBusy before and after a siege or world boss. In a development build, Unreal’s stat Unit (game thread, rendering thread, and GPU time)
Confirmed if
Frame time climbs as more players come on screen and improves right away when a cap on displayed players or the simplified effects option is turned on
Ruled out if
Spikes regardless of player count: “Frame time spike” or “Client garbage collection.” FPS fine but only other players’ movement lags behind: “Packet processing bottleneck on the main thread”
Check with
The player’s own environment

Sources

  1. Introduction to level of detail Unity
    Without LOD, even objects that look tiny on screen are drawn at full complexity; LOD cuts the rendering cost
  2. Animation Budget Allocator in Unreal Engine Epic Games
    Dynamically reduces animation updates (ticks) for skeletal meshes to keep animation time within budget
  3. PresentMon Capture Application (README-CaptureApplication.md) Intel
    FrameTime, CPUBusy, and GPUBusy show whether the CPU or the GPU is holding back the frame
  4. Stat Commands in Unreal Engine Epic Games
    stat Unit: total frame time plus game thread, rendering thread, and GPU time

See also

Same layer: L1 Client game process

Same symptom (Stutter), other layers

View the interactive card with figures and simulations