Ogre Newton, using newton dynamics core 3.10

juliojerez

16-07-2013 22:04:44

Hello,
I decided to update OgreNewt to the latest Newton 3.00

This is not just a port, this wrapper uses the dNewton class tool, which is an objected oriented encapsulation of the low level Newton API.
I took the best from the existing wrappers: OgreNewt and MinimalOgrenet and refactored it.

The wrapper is a 100% Ogre app, by this I mean it looks and feel just like an Ogre application, with not call to any external APIt include Newton.
I never had checkin access to the old OgreNewt therefore I made a new Google archive:

svn anonymous checkout.
http://ogrenewton.googlecode.com/svn/trunk/

latest stable releases:
ogreNewton-1.0.tar

The motivations for this are:
-I believe the current wrapper was abandoned, the last release was not even the latest Newton 2.xx release.
-The old wrapper could use some improvement code wise. On this, I hope people provide some feedback so that I can bring it to the Ogre standards as much as it can be.
-A move to promote the Newton core 300, I will also be making wrapper for other open source game and graphic engines like Open Scene Graph and Irrlicht.
-A respond to all of the misinformation about the Newton library that is floating around all over the Internet.

This first release contain three demos which in my opinion are the basics to get up and running with any physics library, they provide:
-Engine set up, how to create basic objects, and collisions,
-How to make a scene level mesh with Ogre BSP or static meshes
-Integration of the Ogre terrain system

These features are not mutually exclusive, but for clarity, I use then separate on each demo.
Note: the terrain demo is the first one that mixes both terrain and mesh geometry.

If you try this, please provide some feedback on anything you consider is right or wrong.

I still have more to do, I will be adding:
In the next week I will add: Player controller, Ragdolls and vehicles, destruction.

Also I will be making update as I add more features to the engine.

Julio

Crashy

23-07-2013 07:43:49

Thanks Julio. I have myself a custom ogrenewt version for newton 3.0, but had no time to make a proper release, although I have given some zip-snapshots to a few people.

Once my project is finished, consider me as a future contributor to the wrapper. :)

juliojerez

23-07-2013 19:15:21

Ha, glad you replied.
do you want to combine effort so that we merge teh best of both world.

if you want, can you send me an Email or PM so that I can add you we check in accesss to the SVN archive.

then maybe afte we combine the two wrapers, we can move this post or maybe a better post to the annoucement on this forum,
since this will be the sustitute for OgreNewt.

did you tested the binaries or the source to see if it works for you?
one of the main feature of thsi wraper is that teh physic supdate is essecially free, as long as the application have more than one core.

This is physics like not one have ever seeing it before.


Thank you
Julio

Crashy

24-07-2013 10:12:11

PM sent.

I have done some work on the vehicles so I should add it to the wrapper, even if I haven't that much time at the moment.

I haven't tested the wrapper but I'm doing a checkout right now :)

v1r0x

26-09-2013 21:44:56

First of all: thanks for an up2date version of newton :)

But I have some questins.
1. Since this is a new Wrapper I think it is not possible to use the OgreNewt wiki-page/tutorials?
2. If the answer to question 1 is "yes": are there any tutorials/api-documentation?
I already had a look at the demos (only playerDemo so far) and the code seems very easy, but a wiki-page or something like that would be great :)

Chookaa

28-09-2013 14:18:39

oh wow this will make a difference, thanks Julio!

One thing i find lacking in all the physics engines is some proper networking support. Could you please look at providing some useable ways to sync physics worlds across multi-player simulations.

juliojerez

07-10-2013 21:37:02

Oh thanks guys v1r0x and Chookaa

Some comments.
..One thing i find lacking in all the physics engines is some proper networking support. Could you please look at providing some useable ways to sync physics worlds across multi-player simulations.
What kind of networking do you have in mind? The one thing we ne to accept is that old way of doing netwoking game were all computer were running the same game and it was expected that all of them were going to be sync all the time, is and obsolete for several reasons.
-it does no scale up to large game environment; therefore you have to have a very small limit of the number of player that can play simultaneously.
-It does not work with modern hardware. It Is not possible to have multiple threads producing deterministic result. And even with single core with multiple execution units, like SSE, you cannot make those units generate the arithmetic operation in the same order. In the pass I when out of my way to make Newton deterministic, but the feature contributed to the engine be slower as compared to other libraries. Basically I have to limit to be single threaded and x87 code, plus some extra internal overhead to enforce deterministic memory layout.
-It is very hard to debug when bug happens.
can you tell me more about what you network? I have some ideas of how to implement some newworkingl topology for very large scale networking.
but is it all plane still. I need some motivation.


1. Since this is a new Wrapper I think it is not possible to use the OgreNewt wiki-page/tutorials?
2. If the answer to question 1 is "yes": are there any tutorials/api-documentation?
I already had a look at the demos (only playerDemo so far) and the code seems very easy, but a wiki-page or something like that would be great :)


Yes this I s a newer wrapper that use cNewton Class. I ti designed to be easy to integrate with any engine that uses C++,
As for the wiki demos, yes that will be very good, but I have my plate very full. To make up for that I tried to make the wrapper and 100% ogre application. My objective is that anyone who knows Ogre, should be able to use the new wrapper by simple looking at the header files.

In the next few days I will add the asset package were the demo will be able to load, effects created form and editor.

Chookaa

05-11-2013 05:00:31

julio, i think you need to have the world know whether it is in the authoritative role or not and if the host computer leaves the simulation, then one of the other clients can take over the role. there needs to be a network event system(obviously). clients need to be able to predict and then to correct itself. and the whole thing needs to be able to be hooked up to different networking libraries eg: enet or raknet etc.... also the concept of a network bubble needs to be considered, if you're a long way away from a client that is kicking a can down a road and you can't see any of it then you don't really need to know anything about it at that point in time. if you need to make the simulation run a little bit slower to be more deterministic then that trade off might be worth it if it makes the networking easier. i don't see that the network update rate needs to be any faster than 30fps, clients should be able to interpolate frames in between.

i hope i have been able to help, i'm not a software engineer, computer programming is just a hobby for me and not a profession. i can't wait to finally have access to a network friendly physics library. thank you for taking the time you have.

cheers!