[ODE] Networking (Client-Side Prediction)

Robert Pröpper Coramoor at web.de
Thu Apr 27 13:15:26 MST 2006


Hi!


> Perhaps the client uses a DLL (such as Direct3D) that changes the FPU
> precision or rounding mode? I've found that you must verify that  
> the FPU
> internal precision is set to your chosen bits mantissa and the  
> rounding
> mode is set to your preference, before each simulation step (or  
> any math
> that affects body state).
>
> Also note that AMD and Intel machines have different FPU hardware  
> (Intel
> can go to 80 bits doubles internally; AMD stays at 64 bits). Again,
> setting the precision mode explicitly fixes this problem most of the
> time.
>
> The networking forum at www.gamedev.net discussed these issues at  
> length
>   sometime last year, if you want to go archive spelunking.
>
> Cheers,
>
>             / h+

Well, that already did the trick - it was indeed Direct3D changing the precision. I really should have tried that myself, since I already expected floating point problems to be the cause of the inconsistencies. I guess the Wiki confused me - "(This means that your double variables will behave like float)" meant to me that I would only have to worry about this if I was actually using doubles. Maybe this should be cleared up in the Wiki?
By the way, I have been reading the gamedev.net forums for quite a while now, the quality of your posts there is one of the reasons I keep coming!

> I'm most interested in this issue. Unfortunately i can't help at  
> all with
> it (yet, and prolly for at least 1 or 2 more years... my sim is  
> still to
> yound and it's a spare time project).
> Please write any interesting info in the wiki, i can help  
> reformatting it
> there... or whatever. It's not much, i know, but i'm afraid that's  
> all i
> can do for now... Maybe i can test things for you, if it doesn't take
> "much" time: i have 5 computers at home, with 5 different OSs, half
> Pentium (PI, PIII), half AMD (1700XP, 3000Barton, 3200XP). Simply  
> let me
> know if i can help with anything.

Thank you for the kind offer, but I have access to enough different computers myself. However, if you want to help future users, you could try to clear up the wiki with some more substantial information about the topic (for example, the following sites have helped me: http://msdn2.microsoft.com/en-us/library/e9b52ceh(VS.80).aspx ; http://www.stereopsis.com/FPU.html )


> Hi Bruno,
> 
> To be absolutely sure that the game world is persistent setting FPU  
> state is not enough.
> 
> Periodically sending complete world states and have the clients  
> resync is a must I think.
> 
> /Hampus

Well, of course you need to update the states sometimes. But to save bandwidth, you should try to keep this to an absolute minimum. With a 100% deterministic system, you only need to send whole states when "unexpected" conditions occur - for example, when a lag spike delays inputs long enough that re-simulating all the time after them is not feasible.
_______________________________________________________________
SMS schreiben mit WEB.DE FreeMail - einfach, schnell und
kostenguenstig. Jetzt gleich testen! http://f.web.de/?mc=021192



More information about the ODE mailing list