[ODE] Record and Playback

Martin C. Martin martin at metahuman.org
Tue Jan 27 20:02:17 MST 2004

 > If every computer had to wait for every other so they could all stay
 > in lock-step, the game would run at 1Hz frame rate.

You're exaggerating.  The game dynamics would go at the speed of the 
slowest machine.  Most games are unplayable at 1Hz, so presumably even 
the slowest machine wouldn't be going at that speed.  The graphics can 
go at a higher speed, e.g. by interpolating.

 > But in any case,
 > precision can vary between compilers and revisions of compilers

True, but irrelevant.  The game uses the same executable on all machines.

 > This may not be a
 > problem if you have a binary only distribution of your game that only
 > runs on one platform...but it's a dangerous situation.

Um, that's the norm in the games industry.  Are we talking about the 
same industry?

>> But as far as I know, all RTSes do it, because you simply can't 
>> replicate the position & orientation of 100 units to 3 other computers 
>> over a 56k phone line. Not to mention that you'd open yourself up to 
>> all kinds of cheating.
> Absolutely they DO NOT *all* rely on lockstep replication.
> Many rely on a central server.  All of the important calculations can
> be done there and broadcast to the client machines.  The clients may be
> doing some of those calculations too - in order to keep the system running
> smoothly you can't wait for a S-L-O-W network connection.  The idea is to
> 'fill in' data until an authoritative update comes from the server.
> Whilst determinism isn't guaranteed, you don't get enough 'drift' over
> the short periods between network updates to cause serious problems.
> Since the server is authoritative, any glitch can only last as long as
> a network update.

This is the norm in First Person Shooters, but I didn't think it was 
possible in RTSes.  Have you seen RTSes where, when the connection gets 
laggy, some of the units "jump" back to where they're supposed to be? 
The jump when you receive an update after not getting one for, say, a 
second or two.  Can you name an RTS that exhibits this behaviour?

- Martin

More information about the ODE mailing list