The transfer of chunks is currently greatly sub-optimal, many chunks are sent multiple times and network packets are very big, sometimes greater than 1MB!
A new system should be designed and have the following properties:
A chunk, in a given state, should only be sent from the server to a given client exactly once.
The client should save in cache all received chunks.
For each chunk, the server should keep track of the list of clients who already received this chunk.
A chunk should only be sent again if it has been modified, in which case the server should invalidate it.
Each chunk should correspond to one network packet.
The Renet channel ReliableUnordered should be used.
The client do not need to specify a list of requested chunks or a render distance, the server should be the only one the define this.
Concerns about flushing the client cache do not need to be considered for now.
The current objective is to reduce network traffic as much as possible.
The transfer of chunks is currently greatly sub-optimal, many chunks are sent multiple times and network packets are very big, sometimes greater than 1MB!
A new system should be designed and have the following properties:
Concerns about flushing the client cache do not need to be considered for now. The current objective is to reduce network traffic as much as possible.