Physicavos

Started by
9 comments, last by blue_knight 18 years, 11 months ago
Yeah, I just mean physics. Whatever. I wonder what people's preference is for physics engines. The frontrunners to me seem to be ODE, Newton, and perhaps Tokamak. If anyone's used these (or others), what are their upsides, downsides, or what do you like/dislike about them in general. I'm trying to decide on one for my project. 'preciate it.
The best way to predict the future is to invent it.
Advertisement
I started out with the ODE and not long ago switched to Newton. My experience is not very deep, but here are my impressions.

Newton has a fairly clean interface, decent documentation and seems quick and robust. I am a little wary of the licencing, but you can get it and use it for free. I am confortable with the API, though a little deeper access to the internal data would be nice.

ODE feels a bit more hacky to me. There are two different standards for the signatures of calls. And annoying bits of cryptic, possibly unused stuff hanging around -- perhaps for possible future extention. Still the API is not hard to understand and it is free and fast.

Never got around to trying Tokamak -- it looked dead when I was researching this stuff, but there apears to be some activity now. I am a little wary of its continued freeness.

Trimesh support in ODE leaves some to be desired, I believe that it is an integration of opcode into the ODE framework. I believe that it is built in now, but when I first looked at you had to build it in yourself.

Newton supports convex hulls and fixed position non-convex meshes -- things I think are very important.

The truth is that both ODE and Newton have very similar APIs and very similar feature sets -- it may just be a matter of picking the one you are most comfrtaable with.

Hope this helps.


I initially tried Tokamak, but the fairly dead community and poor documentation left me wanting something more. ODE has a bit more community, but aside from some (IMHO) obscure examples, there aren't many resources on it.

Lately I've been checking out Newton, which has been growing more and more appealing. They have a pretty darn active community, and the lib is fairly easy to get a grasp on and use. Definitely a solid contender to check out.

(As for Python, I'm enjoying PyODE! :D)
there is also Novodex to consider. Apparently, it will be the next physics engine for the Unreal games.

Everything is better with Metal.

Quote:Original post by oliii
there is also Novodex to consider. Apparently, it will be the next physics engine for the Unreal games.


I was just checking that out myself yesterday -- downloded their rocket demo or whatever. Sadly not very impressive -- sure my computer is older, but it was very slow and generally broken on my graphics hardware. Further it is not really clear what the commercial nature of their 'open' software is. Would love to have a PPU though.

The Newton demo on the other hand really got me. Throw around a rag doll, load convex hulls form 3ds files, very, very fast. That is what I am interested in, not failing stress tests.
It doesn't get much press, but i'm using TrueAxis in my current project. It's been a pretty pleasent experience so far. FWIW, in the past i've tried ODE, Tokamak and Newton
www.trueaxis.com
apologies if that clicky doesn't work, the preview thing seems broken and i don't really know html at all... :)
Personaly I like Newton for several reasons. 1) Its free (even for commercial use if you need it - unlike Novodex, which is very expensive for commercial use), 2) The physics modeling is MUCH more accurate and stable then ODE. Its not as fast but the stability and more accurate sim. make up for that easily in my opinion. In addition there isn't as much tweaking to get things to work, often times it just works, 3) There are ports on other platforms (OS X and soon Linux) which Tokamak doesn't have (this may not matter to you though) but you have source code with ODE so this is not an issue there.
Quote:Original post by blue_knight
The physics modeling is MUCH more accurate and stable then ODE. Its not as fast but the stability and more accurate sim. make up for that easily in my opinion.


How much faster is ODE? Noticably? Considerably?

I'm thinking I'm going to go with Newton. It looks pretty solid.
The best way to predict the future is to invent it.
It can be noticable if you have lots of bodies active at once. BUT Newton is much better at deactivating groups of bodies then ODE so you'll have lots of active bodies less often then ODE (assuming auto-sleep is active in both cases). In most normal cases the difference really isn't noticable (atleast not for me). I also forgot to mention that collisions are more stable in Newton (including Trimesh collisions), you don't have the extreme bounciness that you tend to get from ODE collisions. At any rate, I highly recommend going with Newton over ODE if you do not need the source code. And you can make custom joints in Newton so its really not that limiting.
I had been using ODE for about a year in my project and I was satisfied with it, until I tried to use trimeshes. Sometimes they work, sometimes they don't, sometimes if you make sure all of the vertices are on one side of the origin (all positive or all negative, never crossing) it'll work... sometimes not.

For an FPS game, I couldn't really handle the player falling out of the world on some random polygons that for some reason ODE didn't like. I went shopping for a new physics engine, and like the AP said.. TrueAxis is wonderful, but very over-looked. Click
Pros:
-Swept-collision detection, no missed collisions with high speed objects
-Supports static trimesh, and any arbitrary convex hull for dynamic
-VERY simple API. Some would argue over-simplified, but I think this is the perfect place for a GAME oriented engine
-BLAZING fast
-Free for non-commercial use
-Very intuitive debug rendering mode using callbacks for Lines, Arrows, Polygons

Cons:
-Still Beta, very young (but very functional) Sometimes the API is changed.
-Not free for commercial use :)

I'm writing my game in Java, and although I was using ODEJava, I have ditched all of that and begun work on my own JavaTrueAxis wrapper, I love this physics engine that much. Check out the Demos

edit: clickies are beyond me

This topic is closed to new replies.

Advertisement