[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