Pure client side collision detection with server as the referee?

Started by
10 comments, last by oliii 13 years, 11 months ago
Quote:Original post by oliii
Quote:Original post by SimonForsman
Quote:Original post by luzarius
I'm still wondering. What if you want to house 200-400 players in one small area? Wouldn't doing everything client side take a HUGE load off the server?


You don't, bandwidth becomes too much of a problem when you try.

if all players are in a small area you get quadratic bandwidth usage for the server (going from 50 to 100 players doubles the data you need to send to each player and also doubles the number of players you need to send the data to), even if you only send 28 bytes per player each update (position vector + orientation quaternion) you'd hit 28*199*30*8 / 1024 = 1305 kbps per player with 200 players and a 30hz update frequency. (actually you'd need a bit more due to ip overhead, but we'll ignore that for now)

That basically means that each player needs to have atleast 1.3Mbps bandwidth downstream, and the server needs a bit over 260Mbps upstream.

If you throw in a bit of fighting and other events things will quickly get alot worse, going to 400 players would push server bandwidth above the 1Gbps point, you can reduce the update rate and compress the data, but the scalability issues are pretty much a fact of life, keeping the players separated is necessary.


That's not necessary the case. You do not need to broadcast peer-to-peer, but you can send to server that will relay the information to other clients. In that case, the client bandwidth requirement is constant.


Quote:
atleast 1.3Mbps bandwidth downstream


Its downstream bandwidth calculation, the player needs to recieve updates about all other players no matter what (He asked about putting 200-400 players in a small area), so it will always be playerdatasize*updaterate*(numplayers-1) if you put yourself in a position were you can't cull players. (my chosen update rate was a bit higher than necessary perhaps and you could get the update size down a bit by using lower precision deltas or compression, but the scaling still won't be constant, it will always be linear on the client and quadratic on the server in the small area situation)
[size="1"]I don't suffer from insanity, I'm enjoying every minute of it.
The voices in my head may not be real, but they have some good ideas!
Advertisement
No need to get narky, and I get the point. 64 players is also pretty extreme. Prioritising updates would be an issue in itself. You'll run into peak bandwidth issues unless you throttle to the point the gameplay suffers.

Everything is better with Metal.

This topic is closed to new replies.

Advertisement