[ODE] Client prediction and asynchronous simulation

Eric Lasota riot at icculus.org
Sat Nov 18 22:53:22 MST 2006


I'm in the planning phases of a multiplayer FPS which is going to have 
vehicles.  The main issue is that the server operates at a fixed 
framerate (usually 30Hz), but clients operate at a different framerate 
(usually 125Hz), and their updates aren't synchronized with the rest of 
the world.  Disabling prediction and forcing syncing is an option, but 
going off of some descriptions of similar attempts (i.e. vehicles in 
Garry's Mod), that sounds extremely unresponsive.

The current solution I'm looking at would basically have all interactive 
objects disabled (including other players) during client simulation, and 
clients disabled during the simulation of everything else.

My main concern is overpenetration or repeated collision into objects 
if, for example, a vehicle rams something and pushes it, or rear-ends 
someone, maintaining its current direction towards the object, but the 
client has another update scheduled before the object it pushed does.  
Would it be possible to, for example, make bodies completely immovable 
temporarily (preventing penetration into them for more than one step) 
instead of simply disabling them, and handle force accumulation separately?

The only major artifact I can think of from such a method would be hard 
stops from relative collision (i.e. rear-end someone going slightly 
faster than you and you'll wind up coming to a dead stop), which is 
acceptable.

Another concern is whether or not there any implications to a body being 
disabled for more than one consecutive step.

Any thoughts?


More information about the ODE mailing list