[ODE] Re: ODE on multiplayer games

Henrik Grimm hengr at hotpop.com
Wed Mar 23 15:54:45 MST 2005

Jose Marin wrote:
> How to keep the clientes sincronized?

There are two general paradigms:

1) Let each client perform the same simulation at the same rate (the 
slowest client sets the speed). Broadcast events (player commands) for 
each time step. You must make sure that all clients start in the same 
state (same seed for all RNGs, etc.). This is described in a paper 
called "1500 Archers on a 28.8: Network Programming in Age of Empires 
and Beyond." on Gamasutra.

2) Let each client update its own simulation in its own rate. Each 
entity is owned by one node and that node sends regular state updates to 
the other interested nodes. The other nodes keeps surrogates that are 
approximations of the entity (normally extrapolated between state 
updates). To minimize state updates a method called dead reckoning is 
normally used.

Which one of these you choose depends on a lot of factors, like the type 
of game, number of players, etc. The first method is suitable for games 
with a low number of players, where a relatively small number of events 
are generated, and where you can accept a high local latency. A prime 
example of this are most real-time strategy games.


More information about the ODE mailing list