I'm working on fast-paced multiplayer game which has 100+ players in single session.

To sync entire game state to each player, server should send massive data if I did not any compression:

24(transform per object) * 100(total objects) * 100(total players) * 30(server update frequency) = 7.2MB/s !

This is completly unacceptable size. So I investigated someting technique for recuding packet size (like https://gafferongames.com/post/introduction_to_networked_physics/)

Maybe I can reduce data size of (transform per object), by using quantization, Y-axis only rotation and so on.

Also, there is chance to reduce (total objects) for specific player (ex, send only near or visible object for that player).

Reduced packet size example is (worst-case):

16(transform per object) * 30(visible objects per player) * 100(total players) * 30(server update frequency) = 1.44 MB/s !

I think this is still large for server! Is there any technique for more optimizing packet size?

Another question, if I sending large-block of state packet, should I split entire payload into small UDP packets for avoiding fragmentation? (application-level packet fragmentation and assembling is efficient?)




You must log in to answer this question.

Browse other questions tagged .