Physics Overhaul - Video
by Prairie Games · 01/03/2008 (5:05 pm) · 21 comments
I've been busy overhauling the physics this last week. After some review, I decided to go with ODE for the core physics technology. It is robust, stable, performs well, and has a nice license. I also used the really great ODE wrapper in the Nebula Device 3. Of course, stuffing it into a Python module first.
I put together a quick video of the physics. It's been considerable work to get Player/Atlas/Interior/Trees all jiving with this stuff. We now have a unified collision/dynamics model which I think pretty much rocks. It is really nice to have robust physics on polygon soups... and the other stuff featured in the video.
Check out the video: http://www.prairiegames.com/mojophysics.wmv

- Josh Engebretson
www.prairiegames.com
I put together a quick video of the physics. It's been considerable work to get Player/Atlas/Interior/Trees all jiving with this stuff. We now have a unified collision/dynamics model which I think pretty much rocks. It is really nice to have robust physics on polygon soups... and the other stuff featured in the video.
Check out the video: http://www.prairiegames.com/mojophysics.wmv

- Josh Engebretson
www.prairiegames.com
#2
01/03/2008 (6:18 pm)
ooooh !
#3
01/03/2008 (7:22 pm)
That's awesome.
#5
01/03/2008 (7:35 pm)
Dammit Josh that's some hot shit!!!!!!
#6
One question though how will you impliment this into the game. Oblivion which I love had a neat physics engine... but you never really need it. It provided some cool traps but that was abuot it. How are you guys planning on using this in an RPG?
01/03/2008 (7:48 pm)
Yeah I think JD pretty much said it all. That is just crazy. Videos like this always make me want to go break stuff.One question though how will you impliment this into the game. Oblivion which I love had a neat physics engine... but you never really need it. It provided some cool traps but that was abuot it. How are you guys planning on using this in an RPG?
#7
01/03/2008 (8:15 pm)
And when are you planning on selling it? :D
#8
Great video! The only thing that killed it for me was the fact that the player shadow isn't being cast onto physics enabled objects. I think the mass on the wooden boxes at the start of the video may be a little too low, they seemed kind of 'floaty'.
I'm a little confused as to what aspects of TGEA you're actually using? You seem to be using Ogre for rendering/mesh loading, Python for scripting and obviously ODE for physics/collision detection. So where does TGEA come into things? Audio, GUI, networking?
Have you seen the NeoAxis Engine? It's built on top of Ogre and is progressing along quite nicely, although there is more work that needs to be done. Still worth a look however.
01/03/2008 (9:41 pm)
Hi Josh,Great video! The only thing that killed it for me was the fact that the player shadow isn't being cast onto physics enabled objects. I think the mass on the wooden boxes at the start of the video may be a little too low, they seemed kind of 'floaty'.
I'm a little confused as to what aspects of TGEA you're actually using? You seem to be using Ogre for rendering/mesh loading, Python for scripting and obviously ODE for physics/collision detection. So where does TGEA come into things? Audio, GUI, networking?
Have you seen the NeoAxis Engine? It's built on top of Ogre and is progressing along quite nicely, although there is more work that needs to be done. Still worth a look however.
#9
@Josh: Looks great! I look forward to seeing more of your Torque/Ogre hybrid stuff! I'm very excited about your recent Ogre (and etc.) integration progress.
01/04/2008 (12:38 am)
@Tim Heldna: unfortunately NeoAxis requires that you work in C#, which is enough to force me back to Torque and/or Ogre.@Josh: Looks great! I look forward to seeing more of your Torque/Ogre hybrid stuff! I'm very excited about your recent Ogre (and etc.) integration progress.
#10
01/04/2008 (6:37 am)
Nice video! Did you consider using the Physics Abstraction Layer? That way you can switch physics technologies to take advantage of better features.
#11
01/04/2008 (8:27 am)
That is awesome, how did you do the selecting objects like that???
#12
01/04/2008 (9:14 am)
very nice! is this going to come out as a resource? or a physic package?
#13
01/04/2008 (10:53 am)
Nice, Josh. This looks good.
#14
01/04/2008 (11:51 am)
What I want to know is how he finds the time to do all this cool stuff while also running and managing a highly successful indie MMO.
#15
Mojo is the working name for the technology we're developing for our next game. It is a pretty different critter to stock TGE/TGEA. A resource/package for stock TGE/TGEA would be nigh impossible.
@Rubes: 2 words - Lara Engebretson ... our rocking community development group helps a lot too!
-JE
01/04/2008 (11:59 am)
Thanks guys, its pretty fun stuff. It should make explosives more interesting... and Bullet has some convex decomposition code that could be really handy to make arbitrary meshes shatter. :)Mojo is the working name for the technology we're developing for our next game. It is a pretty different critter to stock TGE/TGEA. A resource/package for stock TGE/TGEA would be nigh impossible.
@Rubes: 2 words - Lara Engebretson ... our rocking community development group helps a lot too!
-JE
#16
1) Buoyancy. Have you got it working where a single body will always float the same way up? Or do you implement that as multiple bodies joined with a fixed joint? I'd love to see what your ragdolls look like when you throw them into the water :-)
2) How do you get it working with such low lag? Is it mostly running on the client? Do you have client prediction working? Looking at the ragdolls, if you're sending those across the network, are you effectively sending islands of connected bodies as single updates?
3) Are your ragdolls currently implemented as a bunch of separate shapes in-game, or is that a real model /a la/ blue guy? If you're implementing them as real models like blue guy, have you found an easy way to make the model turn into a physics-managed [as opposed to game-dsq-managed] model and back, on the fly?
That looks fantastic. Great job.
Gary (-;
01/04/2008 (3:00 pm)
That really is awesome. I have a few questions about it:1) Buoyancy. Have you got it working where a single body will always float the same way up? Or do you implement that as multiple bodies joined with a fixed joint? I'd love to see what your ragdolls look like when you throw them into the water :-)
2) How do you get it working with such low lag? Is it mostly running on the client? Do you have client prediction working? Looking at the ragdolls, if you're sending those across the network, are you effectively sending islands of connected bodies as single updates?
3) Are your ragdolls currently implemented as a bunch of separate shapes in-game, or is that a real model /a la/ blue guy? If you're implementing them as real models like blue guy, have you found an easy way to make the model turn into a physics-managed [as opposed to game-dsq-managed] model and back, on the fly?
That looks fantastic. Great job.
Gary (-;
#17
01/05/2008 (2:32 am)
That is so unbelievably awesome. Go Josh!
#18
Really nice work.
I was curious as to what networking strategy you guys are using for the physics environment, in particular, for the control object? I integrated Ageia into the engine and am in the process of pulling out Torque's networking in order to play around with a peer-to-peer setup.
Thanks
Todd
01/05/2008 (6:28 pm)
Josh,Really nice work.
I was curious as to what networking strategy you guys are using for the physics environment, in particular, for the control object? I integrated Ageia into the engine and am in the process of pulling out Torque's networking in order to play around with a peer-to-peer setup.
Thanks
Todd
#19
I agree that Nebula's ODE wrapper is cool. :-)
@Todd:
How about the result of the way you've implemented - Ageia with peer to peer setup?
01/06/2008 (4:59 am)
Nice Demo!I agree that Nebula's ODE wrapper is cool. :-)
@Todd:
How about the result of the way you've implemented - Ageia with peer to peer setup?
#20
01/06/2008 (6:31 am)
Trailblazing as usual lol. :) 
Torque 3D Owner ando