[ODE] Networking (Client-Side Prediction)

STenyaK (Bruno Gonzalez) stenyak at gmx.net
Wed Apr 26 16:01:11 MST 2006


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.

On Thu, 27 Apr 2006 00:30:48 +0200, Jon Watte (ODE)  
<hplus-ode at mindcontrol.org> wrote:

>
> 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+
>
>
> Robert Pröpper wrote:
>> Hi,
>>
>> I am trying to program a multiplayer game using ODE (float version).
>> I've got many things running already, most important to this question  
>> is that I can jump to a previously saved state, simulate the  
>> intermediate steps again and arrive at EXACTLY the same result.
>> I have now begun to build a Client-Server System. The client sends only  
>> his Inputs(with a timestamp) to the server. When he receives an Input,  
>> the server jumps back to the tick where the input happened and  
>> re-simulates. Now, since I can get the same results from the same  
>> starting conditions in my "Single Player" application, I would expect  
>> that the server also arrives at the same results, but this is not the  
>> case.
>>
>> For example, I have turned off gravitation in my application. As long  
>> as no force is applied to my body, the client and the server stay  
>> perfectly in sync (obviously, neither the position nor the rotation  
>> changes). They also stay the same if I apply a force at
>> the center of the body (like gravitation) - I get a linear velocity and  
>> the positions stay the same (the rotations again don't change). Now, as  
>> soon as I apply a force at any other point than the center, the two  
>> simulations go out of sync.
>> For testing purposes, I only apply the force for 1 step. Immediately,  
>> the client and the server rotations are very slightly off - in the  
>> order of 1e-8.
>> I can't explain this, I have followed all the Save and Restore FAQ and,  
>> as I mentioned, have no problems in the same application or until the  
>> body begins to rotate. For a good client-side prediction, I need the  
>> server and the client to arrive at the exactly same results, so this  
>> inaccuracies are a big problem for me.
>>
>> So, do you have any ideas what could be causing this problem, or even  
>> better, how to solve it?
>>
>>
>> PS: For the moment, both the client and the server run on the same  
>> computer.
>> _______________________________________________________________
>> SMS schreiben mit WEB.DE FreeMail - einfach, schnell und
>> kostenguenstig. Jetzt gleich testen! http://f.web.de/?mc=021192
>>
>> _______________________________________________
>> ODE mailing list
>> ODE at q12.org
>> http://q12.org/mailman/listinfo/ode
>>
>>
> _______________________________________________
> ODE mailing list
> ODE at q12.org
> http://q12.org/mailman/listinfo/ode
>



-- 
Saludos,
     STenyaK

_______________________________________________
Site:   http://1ksurvivor.homeip.net  <1kSurvivor>
         http://motorsport-sim.org     <Motorsport>
         http://kwh.iespana.es         <KuantikalWareHouse>
         http://emuletutorial.info     <EmuleTutorial>
ICQ:    153709484
Mail:   stenyak AT gmail DOT net


More information about the ODE mailing list