-
-
Notifications
You must be signed in to change notification settings - Fork 32
Open
Description
We should broadcast chunks and chunk deltas through packet channels. This will fix a few issues:
- Chunk deltas are currently broadcast to everyone, including people who have the chunk out of render distance
send_full_loaded_chunksis currently very expensive, especially when many players are joining at the same time- Will fix Crossing a chunk boundary causes clientside lag #936
To implement this, the should:
- Create an entity for each chunk. Entity ids are currently used to uniquely identify channels. The code will need to handle subscribe packets and send chunk deltas through the appropriate channels
- Send channel position updates to get the proxy to recalculate subscribers
The proxy should:
- Add some leniency on when players get unsubscribed from channels. For example, a player might need to meet the unsubscribe criteria for 5 consecutive seconds to be unsubscribed. This means that a player that repeatedly walks across a chunk boundary won't be sent chunk packets
- Cache the previous subscribe packets and, when the proxy requests subscribe packets from the server, the server can reply that the subscribe packets have not been changed. This will reduce network utilization between the server and proxy
Metadata
Metadata
Assignees
Labels
No labels