| ▲ | gafferongames 8 hours ago | ||||||||||||||||||||||||||||||||||
Have you considered the O(n x m) issue with player counts? For example, if you have n=1000 players, and m=2000 objects, the total number of object state updates that need to be sent out is n x m. So a 1000 player space game with 1000 players, and 2000 objects (say, 1000 other players and 1000 AI ships...), and you have O(1000 x 2000) = 2,000,000 Compare this with a more typical FPS, let's say, n=32 and m=1000 (let's be generous...). The amount of bandwidth for that game would be O(32 x 1000) = O(32000). Given this, it's pretty easy to see how a 1000 player space game would send more bandwidth than a regular 32 player FPS, even if it did use all the standard tricks from first person shooters, eg. snapshots, delta encoding and all that. There's just more state to send, and in total, roughly O(n^2) bandwidth as player count n increases. | |||||||||||||||||||||||||||||||||||
| ▲ | frollogaston 8 hours ago | parent [-] | ||||||||||||||||||||||||||||||||||
There are already plenty of 1000-player games with 2000 objects that use a lot less bandwidth than this, usually because a lot of the object tracking is left to the clients while the server shares some form of player input. I'm not saying there's no possible reason to use 20mbps, just asking what it's for. Is the space game avoiding sending player inputs for anticheat reasons? How is the server updating the client on the objects' state? I will say though, 20mbps of game bandwidth is different from video bandwidth. I'm guessing you require low latency too. And it'd be a lot for the clients to deal with, even the deserialization by itself. | |||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||