Collision system for both server & client?

edited July 2010 in DotNet

We're working on a game that has a client written using Photon in Unity, and a server written using Photon in .NET. Since Unity pretty much handles collision internally, for an MMO-type game, how do we authenticate a player's position in the world? Basically, at periodic intervals the client sends the server the player's current position in the world. The server checks that in several ways, and then returns the position the player *should* be at. The checks the server performs are, among others, velocity calculations and collision checks. I'm not sure how we would provide a world with collision to both the server and Unity client that would allow the client to perform collision detection as well as allow the server to perform collision detection to make sure a player isn't running underground when they approach a ramp in the world, or running through static objects like walls or trees.

It's a bit hard to explain but I would like to hear some ideas if anyone has any.


  • there are different ways like unity headless client nodes in your cluster to verify it and alike.

    your major problem will be that whatever you use would need to be used on both sides and that means that you can no longer use things like character controller etc in unity, basically nothing related to physics and collision.

    I think ODE has a .net wrap which you could use.

    what I personally though see as the larger problem is expanding your unity editor framework to the point where you can export the collision data and data required for navmesh etc so the server can use them. that will likely be much more work