A place to discuss everything related to Newton Dynamics.
Moderators: Sascha Willems, walaber
by greenLeaf » Fri Mar 13, 2015 6:32 pm
I am currently working on a game that uses deterministic network synchronization. Right now I don’t really have a physics engine. Determinism allows a whole class of networking models with highly interactive physics that would otherwise not be possible, due to bandwidth limited.
Can you tell me how deterministic newton dynamics is in its current state? In recent years things like SIMD and threading have made determinism more elusive is newton dynamics effected by this? For my needs I require a physics engine that is floating point deterministic across AMD and Intel hardware.
Thanks
-
greenLeaf
-
- Posts: 3
- Joined: Fri Mar 13, 2015 6:23 pm
by Julio Jerez » Fri Mar 13, 2015 11:29 pm
Newton does not use random values or pointer arithitmetoic.
But the multithreading made the engine non deterministic.
you can try single thread.
I suggest that you do nor pursue determinism for you networking game. I do no think there is a single major Game Company you is still targeting for determinism. This is s arequiredmen that is imposable to meet, and it will never ever be met.
The reason is that you can no control thread sicornization. Not even in a console enrolment.
and multicore are her to state.
You are even requiring determinism across differently architectures, and that is imposable even on a thread thread mode.
I am afraid the that if those are you requirement that Newton is no going to help.
I do no want to lead you into a while goose chase. You may test the entire by setting single thread and scalar mode, but eventually you will want more performance and then it will no work.
-
Julio Jerez
- Moderator

-
- Posts: 12426
- Joined: Sun Sep 14, 2003 2:18 pm
- Location: Los Angeles
-
by greenLeaf » Sun Mar 15, 2015 10:28 am
Thank I wish what you said about deterministic networking being obsoleted was true. With current bandwidth requirements a real time strategy game using advanced technics and dead reckoning for movement would max out at a 4 player game with each player having 16-32 units. Using path following without pure determinism this maybe could be boosted somewhat but not a lot. Bandwidth scales at N*N for the number of players.
Most real time strategy, role playing and fighting games still use deterministic networking. However almost all current game engines are based on first person shooter games and have tribes/halo or quake/half-life model networking.
This is why you rarely see smaller developers try to network anything that is not a first person shooter. Some developers who use managed languages like C# for example are even going back to fixed point math. Developer have found that strict IEEE 754 compliant mode is deterministic enough for games.
Snippets from some of biggest game studios and how they did this. Gaffer himself was a network developer on Titanfall.
http://gafferongames.com/networking-for ... terminism/For fixed point math
http://gamasutra.com/blogs/MaksymHryniv ... minism.phpIn addition you end up with physics on clients being degraded as you use interpolation of extrapolation for positions and rotation. Or you use client side prediction and then constantly resynchronize with the server (teleporting units back to match server).
-
greenLeaf
-
- Posts: 3
- Joined: Fri Mar 13, 2015 6:23 pm
by Julio Jerez » Sun Mar 15, 2015 1:05 pm
I do not want to going in detail.
but I have work on many, many multiplayers game, with and without determinism and I found that
lockstep networking is the worse techniques, for many many reason, using a substantial largest bandwidth one of them, the reason being that you can not have control of latency. so any game that using Lock step, have to result to low simulation rate (20 or even less fps) which degrade psychics
and you still have to result to interpolation in many aspect.
Lock Step was on the day of Quakes game were physics was a secondary and most thong were done with animations. Today with more real-time simulation he volume of floating point arithmetic is just to large to expect that floating point arithmetic will be consistent.
In fact even on the same version for the same CPU you have game subversion the result float integrity differently. example you may have one person with a Intel CPU that does not have a Mul Add Unit, and the next user with a newer generation that implement a MulAdd Unit and in the Silicon replacement the Mull and Add Unit with Mul Add Unit and that along will yield different result.
Insisting in Floating Point Integrity across different machine is too hard of a constraint to maintain.
However I am do going to try to persuade you form your goal, what I am saying Is that
Newton all processes are deterministic, however because Technology move to more core, and core with more where you can not guarantee the order of arithmetic operations, the engine can no longer guarantee a physics simulation that can be restate at any given time.
-
Julio Jerez
- Moderator

-
- Posts: 12426
- Joined: Sun Sep 14, 2003 2:18 pm
- Location: Los Angeles
-
by greenLeaf » Sun Mar 15, 2015 4:17 pm
Peer to peer lock step does have bad latency. I was planning to have a centralized packet sever that control the turn step and send out new inputs every so often without having to wait on all machines. Some games do it this way and seem to be much more responsive. I have heard that some of these deterministic games have simulation rates as high as 60 fps.
Has technology really changed that much? StarCraft 2 does not Desync that often. But I don’t think it has a physics engine.
-
greenLeaf
-
- Posts: 3
- Joined: Fri Mar 13, 2015 6:23 pm
Return to General Discussion
Who is online
Users browsing this forum: No registered users and 8 guests