[ODE] Record and Playback

Marty Rabens marty at rabens.com
Tue Jan 27 17:50:47 MST 2004



> -----Original Message-----
> From: Jon Watte [mailto:hplus-ode at mindcontrol.org]
> Sent: Tuesday, January 27, 2004 4:51 PM
> To: Marty Rabens; ode at q12.org
> Subject: RE: [ODE] Record and Playback
> 
> Setting the precision and rounding mode control bits is necessary, but
not
> sufficient.
> 
> You should round/truncate your values EVERY STEP before you send them.
> This helps a lot.

I guess I'm not sure what you mean by "send them."  Are you talking
about the data that's sent over the network?  If so, what do you mean by
"every step"?  I send a player command packet at regular intervals
(around 250ms if I recall).

> It also helps to send the full baseline every so often (every 10
seconds?)
> which will help in the case where two slightly-different results round
> differently (you'll always have that case).
> 
> If you're studly, you detect out-of-sync and only send full-state
where
> necessary.

I actually had a system in place that detected out-of-sync.  It
generated a simple hash from all the entities periodically, and verified
that it matched on all machines.  I never sent the full state, though.
There's a couple problems with this.  Depending on the game, it can be
too much data to send over the network without a noticeable stall.  It
also makes it WAY to easy for players to hack in cheats (whoever has the
machine that's considered to have the "authoritative" state can modify
that state in their favor).

  Marty Rabens






More information about the ODE mailing list