After reading this article http://www.gaffer.org/game-physics/networked-physics, I'm trying to implement a client-server model with client-side-prediction with some vehicles. I'm going to use a third party game networking library, so UDP packet ordering, server thread creation for each client etc. doesn't have to be done by myself.
I'm actually more uncertain about the best way of predicting physics on the client and the stepping on the server.
When does the server know it can step the simulation forward? Because waiting for all client to respond doesn't seem to be a solution. Or should there be some sort of "individual" stepping for each object as mentioned in the article? But I'm not sure how this could be done with Havok.
And how should the client reset or yet better interpolate its rigidbodies once a packet arrives from the server containing the correct transforms? How can I make sure that bodies won't interpenetrate? Maybe switching to keyframed for the sake of transforming the positions? But will this keep the physics running correctly and give a good input feedback to the player?
I know networked physics isn't an easy topic and it's the first time I'm trying to get this running, but maybe someone can help me with the two problems mentioned above. Well probably more to come... ;)