Collision Detection Client vs Server Side?

This really isn't a physics question directly, but I figured here is a good place to start.

I have been looking into using jME in combination with Project DarkStar and have run into a pretty basic question about collision detection. Should I be keeping the collision detection client side or server side? I mean basic collision detection, like walking in the game world, nothing complex like bullet collision, etc… If anyone could point me to a couple of examples that would be fabulous, or some articles on good design, I would greatly appreciate it. It seems like the issues of cheating vs server load are pretty simple, but I didn't know what good practice would be.


This depends on whether you are concerned with cheating or not… If you simply let the client figure out its position, then you could have clients that go through walls! I am a fan of server-side game-logic because it is easy to implement. Ideally, you would have the logic partially in the client, and the server would act as a veto for some actions from the client.

You can do most collision-detection on the client, and make sure no-body cheats by having the server do collision checks at a much lower interval. That way you get smooth gameplay and no cheating…

Thanks for the info.  Does anyone have any examples of distributed logic I could look at?