quote:
Original post by Max_Payne
Collision detection has to be performed on the server side for the game to be reliable, and this does not mean no collision detection on the client side, it just means the server has the final say on everything. Exploits, especially in large scale MMO games, should be avoided.
In an ideal world, yes, all collision detection would be performed on the server rather than the client because you can''t be certain that the client hasn''t been nobbled to allow the player to walk through walls.
Also in an ideal world, all scene rendering would be performed by the server and the screen buffer sent to the client, because you can''t be certain that the client renderer hasn''t been nobbled to see through walls.
Obviously the latter isn''t currently possible due to limits on processing speed of the server and bandwidth to the clients. However, the former is also not feasible - you might be nearly there on processing speed, but certainly not bandwidth. Imagine 100,000 players in your favourite MMOG. Say the server is processing movement and collision for each of those players at 30 fps. Imagine the server needs to send a 128 byte packet back to each client (collision response data, position, rotation, packet header, etc) - that''s 3840 bytes per client per second, and overall the server would be pumping out over 360 Mb per second. That''s the type of bandwidth I''m looking forward to, along with my flying car.
MMOGs work because the servers only send out a little information periodically (may be several seconds between updates) to each client, and the client fills in the gaps. This does, however, mean the client needs to do it''s own collision detection, and is susceptible to tampering. There may be some higher level cheat checking running on the server - eg. player #337 has moved from area A to area B in 3 seconds, and it should have taken 30 seconds if they''d run through the gateway, not through the wall - but as for server side collision detection, I''d say nooooooo.