You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Describe your feature request or suggestion in detail
SMSG_COMPRESSED_MOVES optimization
Describe a possible solution to your feature or suggestion in detail
No response
Additional context
First, we knew we had to move compression handling from map threads to network threads. Doing this would allow us to enable aggressive compression all while actually improving the performance of the world service. This required a complete rework of how we send packets.
Second, we quickly noticed that one of our biggest bandwidth consumers was movement opcodes, which accounted for up to 50% of our total outbound traffic. Players in busy areas could receive thousands of movement opcodes per second. We came up with a solution which uses the previously unimplemented SMSG_COMPRESSED_MOVES opcode. This opcode can combine an infinite number of small packets into a single big packet, we call it “Movement Batching”. This new system will batch together every movement packet in the same server tick into one packet, significantly reducing overhead. Initially only active in major cities, it was eventually expanded to include the entire world (only in busy areas, excluding raids, battlegrounds and arenas).
Cherry picked logfile entries of how much bandwidth we are saving:
Conclusion: Due to the changes and improvements made, we saw a reduction of approximately 33% in bandwidth, as well as improving overall server performance. We feel much more confident that bandwidth will no longer be an issue in future server launches. Obviously we could always upgrade our bandwidth cap if necessary, but that would have required downtime. Optimizing your code is always the better option.
Describe your feature request or suggestion in detail
SMSG_COMPRESSED_MOVES
optimizationDescribe a possible solution to your feature or suggestion in detail
No response
Additional context
Source
The text was updated successfully, but these errors were encountered: