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

Game Lag White Paper › Problems only some players hit

Spawn data lost in the burst after entering Initial spawn burst lost (unreliable channel, receive buffer, fragmentation)

Cause ID pt-spawn-burst · Primary owner Game team (Server development) · Also Game team (Client development)

Open the interactive card with figures and simulations →

The moment you enter a zone, the server sends spawn data for tens to hundreds of nearby entities all at once. If it goes over an unreliable channel, or the receive buffer overflows while the client is loading and can’t read the socket, part of it disappears and never comes back.

Why Spawn data arrives in a short burst right after entering → Effect A loading client reads the socket late and the OS receive buffer overflows, or a large UDP packet is fragmented and losing a single fragment loses the whole packet. On an unreliable channel, nothing is resent either → On screen A few NPCs are missing only on the slower-loading client. They show up after leaving view and coming back

Symptoms
Invisible / ghost entities
Factors
Packet loss
Who’s affected
One client on the same PC, Just me
When
Right after login or maintenance, While moving or changing zones
Owner
Primary owner Game team (Server development) · Also Game team (Client development)
Game team action items
Server: always send spawn and despawn messages over a reliable channel with guaranteed retransmission, send initial data in chunks. Client: receive on a thread separate from loading, increase the receive buffer size.
Ballpark numbers
The default UDP receive buffer on a PC varies by OS but is usually tens to hundreds of KB. If the entry data for a crowded town is bigger than that, even a brief pause in reading the socket during loading overflows it.
On the graph
Surge after opening · Data received right after entering, missed spawn messages
Where to look
Spawn messages the server sent right after entry compared with the number the client received, and which channel (reliable or unreliable) they went over. In a server-side packet capture, the volume sent to that player right after entry and fragmented packets (Wireshark filter ip.flags.mf == 1 || ip.frag_offset > 0)
Confirmed if
The client received fewer than were sent, the missing ones cluster in the burst right after entry, and they went over an unreliable channel or large packets were fragmented. Happens more often on the slower-loading client
Ruled out if
Sent and received counts match but entities are still invisible: dropped after receipt (spawn messages dropped during loading) or an AOI calculation problem. Missing at random times unrelated to entry: packet loss on the connection
Check with
Game server or client logs and metrics

Sources

  1. RFC 8085: UDP Usage Guidelines IETF
    Losing just one fragment of a fragmented packet loses the whole packet
  2. UDP vs. TCP Gaffer On Games
    UDP doesn’t guarantee delivery or order, so the application must detect and resend lost packets itself
  3. Socket.ReceiveBufferSize Property Microsoft
    The default socket receive buffer size varies by OS
  4. Display Filter Reference: Internet Protocol Version 4 Wireshark
    Filters fragmented IP packets with ip.flags.mf (More fragments) and ip.frag_offset (Fragment Offset)

See also

Same layer: Problems only some players hit

Same symptom (Invisible / ghost entities), other layers

View the interactive card with figures and simulations