Game Development Community

TGE-ODE integration 2

by Kage · in Torque Game Engine · 03/31/2005 (12:58 pm) · 154 replies

This is the second part of the ODE-TGE integration. It's still a "work in progress", but I figured I can update the progress whenever major enhancements are made. Demo for this has been removed.
Enhancements/Corrections
-multiplayer option enabled.
-interior object collision is constructed using abstractpolys from vehiclecollision brushes
-corrected the exception problem in the 1st version
-corrected the sign mesh object geom/body labelling, which was causing erroneous behavior

Features (same as before but I'll outline it again)
-terrain collision (height map, default terrain file)
-trimesh collision (.dts files)
-box and sphere collision (.dts files)
-infinite plane collision (.dts file, see the blue strip in the mission)
-interior collision (.dif file)
-ode vehicle (.dts file)
-ragdoll (.dts file, but yet applied to player.cc)

Required Work
-more work on the interpolation
-tie in ragdoll to player.cc
-correct the player response to ode
-verify TGE's default collision notification and damage process
-verify sounds

Let me know what you think.

Contents of the .rar file
-ode.zip & common.zip (leave them as they are)
-dll files
-exe file

You only need to uncompress the .rar file to a folder to play the demo.

edit: added the .rar contents

About the author

Professional gameplay programmer and have worked in the industry since 2004. Specialized in: animation system, player control, weapon system, AI, combat, camera, physics - ODE/Havok, optimization, and networking.

#121
06/27/2005 (5:32 pm)
If it works well I will donate 100 US dollars to you.

Thank you Josh.
#122
06/27/2005 (6:45 pm)
That's a great idea Tom. I'd gladly donate money for Akio's collision detection fixes if they can solve the collision issues with my project...
#123
06/27/2005 (8:05 pm)
A lot of conclusions were jumped to in this thread wow. :)
#124
06/27/2005 (8:08 pm)
Some of them are pretty well-founded too... especially given the various versions of the "truth" we've been subjected to... ;-)
#125
06/28/2005 (5:42 am)
@ EddieRay your "versions of the truth" were based off speculation of others, GG did not have a comment until late in the thread.
#126
06/28/2005 (6:24 am)
@Eddie: I'm not sure what you are getting at with your quote about "various version of the truth you have been subjected to", but kindly enlighten us--because your comment is not appropriate as it stands. No one from GG, or even the Associate level (who do not represent GG in any way) has stated anything one way or the other until Josh made his post.

Akio stated a decision that he made based on his own personal decision making factors, and some of the posters in this thread immediately called down the "big bad GG is making him stop"--which as Josh pointed out, is certainly not the case. For another example of how we do not operate this way, look at all of the various packaged tutorials, classes, and other Torque education projects going on, from Gonzo's video sessions to Matt Langley's T2D seminars to Bruno's classes in Brazil to Brandon's recent video tutorials--all of these actually "compete" directly with GG's education initiatives, and while we've contacted some of the project leads regarding future mutual projects, we most certainly aren't telling anyone that "you shouldn't do this, because we are"...that's just not how GG works, so everyone that is even indirectly suggesting anything of the sort, please don't!
#127
06/28/2005 (6:35 am)
All this love... :-P
#128
06/28/2005 (6:35 am)
@Stephen - To quote Akio "because of GG's perceived intent about their future product, I can't make my work available for free or otherwise"

That would tend to make some people believe GG has asked him not to release it.

And I don't see what is inappropriate about Eddies comment... other then that it is vague... I mean, the truth was that Akio was going to sell his integration efforts... then the truth became he wasn't going to because GG had something similair planned... then it became GG wants Akio to release it, and will even work on it with him.

So yes, there are several different truths that the people following his efforts were subjected to.

The real truth is this: GG is investigating its options. Akio apparently got confused. GG is willing to work with Akio to get it released.
#129
06/28/2005 (6:49 am)
We all know the speed at which new features are added to the codebase. Please don't take offense, we know all that GG has on its plate. But the fact remains that if this is done.... and is something we can use or at least release to the community to finish, by all means do so.

TGE has always grown from the contributions of its users. If your implementation is complete, releasing it to the community only ENHANCES anything that GG would release in the future. Let it get out there, get tested, and when GG gets around to making it a priority there will be a wealth of resources available to them when they "officially" release an ODE engine. Who knows, perhaps your implementation would make a good median solution between stock TGE physics and whatever GG has coming down the pipe.

BTW Akio... Nice job. Now release your code. :)
#130
06/28/2005 (7:03 am)
My only real reason for jumping into the thread is when speculation from third parties about conversations that were held between two other parties, combined with interpretations of internet posts made by one and only one of the original parties suddenly became "truths".

Scenarios like that quickly become firestorms based on misunderstandings and mis-applied interpretations, and that needed to be shut down!
#131
06/28/2005 (8:01 am)
Tom Spilman said:
This integration of ODE would also serve as a great starting point to integrating other 3rd-party physics engines such as Newton or Novadex which are arguably more stable than ODE.

Newton is a very powerful physics engine totally free, multiple platforms and definitely the more stable physics engine I had seen. It is slower than the other but I believe they are working on that issue, as well as adding advance stuff like continues collision.
You may want to check this: www.physicsengine.com/forum/viewtopic.php?t=1491

I had been reading the forum and it looks like almost every graphics engine is integrating it either natively or via plug in.
Here are some cool things I had seen: newton.delphigl.de/

Here is integration by power renders engine: www.powerrender.com/2005/powerrender/downloads.htm

Some of the stuff done by some of the user more familiar with the engine is truly impressive:
walaber.com/misc/tramp11.avi
newton.delphigl.de/playground_gears.wmv
newton.delphigl.de/playground_planetarygears.wmv
#132
06/28/2005 (8:45 am)
Thanks Chris. I'm glad I'm not the only one that noticed that there are definitely a few versions of the "truth" going on here. I was trying to bring that fact to light, in a nice way, for those who are really following along.

I asked Akio directly via email (back at the beginning of June) if I could try out the collision-detection fixes, and he said he wished he could give it to me for free, but GG has other plans for it. I'm not sure why he would say that (or think that) unless...

Seems like there is still some... confusion...

Etheron: Thanks... I haven't checked in on Newton lately... the cross-platform support is new (to me). Now if they'd just make it open-source... ;-) Newton is definitely cool. It seemed like it was pretty "dead" not too long ago, so it's good to see it "hopping" again (pun intended)... ;-)
#133
06/28/2005 (8:49 am)
@Eddie - No need to speculate. They will tell us what is going on when they know themselves... For now all we need to know is that it is up in the air as to wether or when TGE will get some improved physics.
#134
06/28/2005 (8:56 am)
I prefer ODE over newton partly because speed is generaly more important than accuracy. As far as stability goes Softimage XSI uses ODE in much the same way that Max uses Havok. The other engine/language I uses has a tokomac, 3 ODE and newton solution and judging from the 3 ODE solutions it's not so much a question of stability but how well it's been integrated into the engine.

The latest and most interesting one comes with a ODE physics editor which is kind of cool and has a fun demo to play with, it's primarily for blitz3D, but is supposed to have C++ support too, not that I tried it. Naybe akio would find it interesting with his torque solution.

www.lcuriel.arrakis.es/kode/screenshots.htm


I'm pretty confident that GG will have a solution soon, they pretty much have to in order to compete with whats going on elsewhere, and with torques strong point being networking I can see it having some distinct advantages over the competition if done right.

Some of the physics and collision issues people have may be in part due to the cool networking in torque. I have just completed a networked MP racing game prototype that uses ODE, and getting more than 4 players over the net without a dedicated server or LAN has proven almost impossible without broadband and at least a 1ghz machine so I can well understand GG taking their time about coming up with a solution for torque. Look forward to seeing what does turn up :)
#135
06/28/2005 (9:20 am)
I guess it's understandable how things get twisted in any forum, but not once did I write anywhere that I was asked to stop trying to publish my work by a GG staff. What I said was if GG was already planning with similar implementation, add-on pack, or whatever, I rather have GG sell it and continue with their business plan than for me to ruin that plan. No one is forcing me to do anything here and shouldn't be misconstrued as such.

Thank you.
#136
06/28/2005 (9:25 am)
Akio - great news. :D

Sounds like GG wants to work with you to get it published... so ya, amazing work. I would gladly plop down a smooth benjamin for it.
#137
06/28/2005 (10:24 am)
--
Josh said..
"We do realize that integrating a physics SDK (and/or making it easier for others to integrate other physics SDKs) would be a big win for Torque, and for Torque game teams. So, as Akio says, we're definitely investigating solutions on this front. We're looking in a bunch of directions, figuring out what would make the most sense. Nothing to announce yet, and so it's clear, we haven't decided whether we'll make a new add-on product or what (if we do anything official) on this front yet. But, believe me, when we do know, you guys will be the first to hear about it."

--

From what he posted above it just sounded like GG didnt want to take one side or another on the different physics systems out there people are working on within the GG community.

He made it clear that they havent decided what they are going to do yet, if they do anything with physics in the Torque engine.

So Akio from what Josh posted there might or might not be a GG future physics expansion. So anything you can do to help us now would greatly be welcomed.
#138
06/28/2005 (10:54 am)
I was just bringing the subject because some one mentioned, I noticed the Newton engine tend to be underestimated based solely on myth and assumptions that in the majority of cases are not true. No bigy.

EddieRay:
Quote:Etheron: Thanks... I haven't checked in on Newton lately... the cross-platform support is new (to me). Now if they'd just make it open-source... ;-) Newton is definitely cool. It seemed like it was pretty "dead" not too long ago, so it's good to see it "hopping" again (pun intended)... ;-)
I do not think it is fair to ask the creator of any technology to make their code open source, I mean I do not see this request been asked to Havok, Novodex, Meqon, CmLab or any other technology.
Dead, you got to be kidding the Newton engine has been in active development since in came out. I believe, as now it is one of the more feature complete physics engine on the market.

Adrian Tysoe
Quote:I prefer ODE over newton partly because speed is generaly more important than accuracy. As far as stability goes Softimage XSI uses ODE in much the same way that Max uses Havok. The other engine/language I uses has a tokomac, 3 ODE and newton solution and judging from the 3 ODE solutions it's not so much a question of stability but how well it's been integrated into the engine.

Do not kid yourself, just because a company adopted a solution that does not mean the solution is the best. You do not know what circumstance played on that decision. Speaking about and how well is integrated here is a sample of how good an integration can be:
www.ogre3d.org/phpBB2/viewtopic.php?t=9724&highlight=newton

I too thought that ODE was faster than Newton, but I have come to realize that this is not truth. The only thing running faster in ODE than in any other engine are the stacks of boxes that do not hold together and collapse to the ground in an unpredictable random behavior. Believe I had been following ODE for a while, but it does not matter what solution anybody come up to the instability problem, these bugs manage to surface another way. This is something they had been working for years with not luck and I really run out of patience.

Here is some comparison of 4 engine running size by side and you can see that only Novodex and Newton have the caliber to pass all test, the others just do not stack up together
www.ogre3d.org/phpBB2/viewtopic.php?t=8291&postdays=0&postorder=asc&start=0
#139
06/28/2005 (11:09 am)
See guys no need to freak out without having the facts. Speculation gets you nowhere but having your foot in your mouth. If GG really wanted to screw us out of stuff they wouldn't be selling Engine Source for $100 to $150.
#140
06/28/2005 (12:53 pm)
Wowsers.

Lots of guys on the team here are experts with physics systems. And it's great also that there are quite a few community members who are knowledgeable in this area. That makes it easier to think we can get stuff done, knowing there's a pool of people who care about this stuff, are capable of doing some work with it, and might be willing to help out.

We are trying to be very smart about how we approach physics integration. What I think we'd all most like to see is a system where it's easier than it is now for people to see where collision detection and response happens in the engine, and much easier for people to modify. Ideally, people would be able to plug-in a Novodex physics object, if they wanted. Or, an ODE or Newton physics object.. and/or a custom physics object (eg with Clark's collider code).

But that's all total bluesky at this point. Right now, we are really in research, survey and decide mode, and that's why we've been in touch with some people out here about the physics projects they're working on.

We don't have any product plans in this area at the moment. Note, I'm not saying we never will, I don't know yet. If we do end up working with community members on this stuff, whether or not such work gets "productized" will depend largely on how the community members we work with want to handle it. If they're cool releasing things for free, that'd be dandy by us. If they need monetary justification for doing all this hard work, that'd be understandable too and we'd try to help figure out how to best productize it and make it useful and worthwhile for Torque developers.

We certainly have not asked *anyone* to delay, stop, or otherwise impede their physics work, or whatever plans they might have for releasing it. I would freakin love it if someone released a solid, free integration of ODE + Torque (or any good physics SDK in Torque). At the same time, I think its totally understandable if people who pour a lot of hard work into these kinds of projects don't want to release them for free.

Anyway, this is all good stuff... I would think and hope everyone would be happy... "Hey, GG is interested in getting more physics in Torque.. and they're actively trying to find talented community members to help. Sweet."

And I should also note that we're not making any promises regarding future physics work, or third-party SDK integration at this point. Obviously, it's an exciting area to think about, and we're just in research and survey mode right now.