When a server tick occurs, the server sends players in each sector the corresponding data associated with their sector. The big issue with this is we don't do any sort of checking to determine what actually has or hasn't changed, therefore we simply push the entire sector state out to every client in the sector, even if very little changed. Since we do this anywhere from 20-30 times a second, it quickly adds up on the server bandwidth usage, and also means players with poor network connections have their connection backlogged with useless data.
The new model would basically become this:
On sector transition (including initial joins), a client receives the entire state.
We do deltas for clients already in the state.
Additionally:
The server should not be computing data for sectors in which no human players are present in. This is simply wasting cycles and memory for nothing.
This has been merged into master and will be apart of the next test deployment, and for the live server deployment coming later this month (fingers crossed)
When a server tick occurs, the server sends players in each sector the corresponding data associated with their sector. The big issue with this is we don't do any sort of checking to determine what actually has or hasn't changed, therefore we simply push the entire sector state out to every client in the sector, even if very little changed. Since we do this anywhere from 20-30 times a second, it quickly adds up on the server bandwidth usage, and also means players with poor network connections have their connection backlogged with useless data.
The new model would basically become this:
Additionally: