Interest management
Only send players what they can see.
A server that sends every player every update wastes bandwidth and CPU, and it gets worse as the player count grows. Interest management filters updates per client, usually by distance or a spatial grid, so each player only receives the entities that matter to them.
Try this: Walk around 200 players. With no filter the server sends you all of them and the bandwidth bar is red. Turn on the interest area: only nearby players update, the far ones go grey.
No filter: the server sends you every player on the map, even ones you cannot see.
Prompt bit
Works for 2D or 3D in any engine (Unity, Unreal, Godot, web). Paste the short one for a quick fix, or the detailed one when you want it done properly.
Add interest management: send each client updates only for entities inside its interest radius or neighbouring grid cells, check every 0.1 s, and keep party members and the current target relevant even when they are outside the radius.
Implement interest management on the server (2D or 3D, any engine or netcode library; many call it relevancy, area of interest or network culling). Divide the world into a spatial grid (cell size about the interest radius) and track which cell each entity is in. For each client, gather entities in its cell and the neighbouring cells, then filter by distance. Re-evaluate at the send rate (for example every 0.1 s), not every frame. Add hysteresis: enter at radius R, leave at about 1.2R, so entities do not flicker in and out. Always include the player, party members, their current target and anything that affects them (projectiles aimed at them). Send a spawn message when an entity becomes relevant and a despawn when it leaves. Lower the update rate for far but relevant entities. Log bytes per client per second to verify the saving.
Where it's used
- MMOs and survival games: hundreds of players on one map
- Battle royales: far players are not sent
- 2D io-style games: grid-based visibility
- Open-world co-op: distance-based relevancy
- 3D shooters: combined with line of sight checks
Common mistakes
Checking distance against every entity every frame (O(n²)), no hysteresis so entities pop at the edge, dropping party members or the current target, forgetting despawn messages, and making the radius smaller than the view distance so enemies appear from nowhere.
Writing this with an AI assistant? See our best AI coding assistants for game developers.
Missing a concept? Request one.



