[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