As I’m currently integrating rope and cloth physics into my game engine,
I’d be quite interested - what physics engine do you use?
Let’s start with me, I’m currently (for quite a bit of time) using ODE
(Open Dynamics Engine). I know that there are a ton of others (PhysX,
Havok, Bullet, Tokamak, Newton, …) and I’ve used also some of them
(PhysX in time of Ageia, Havok for little time and Newton), but I
consider ODE by far as one of the best ones.
There are two huge advantages over some others that really got me - it
is open source and portable (and no some garbage talk about portability
and then impossible quest to get i, I’ve successfully ran it on Linux,
BSD and Windows platforms). Also it is quite simple to use and can be
really fine-tuned (as it seems to be the most low-level physics engine
I’ve found so far + you can edit the source code of the engine :D).
Feel free to put a paragraph or two about them, I’m probably most
interested whether some of you actually use Open Dynamics, or not.
Please log in or register to post a reply.
For the longest time I used ODE for 3D physics, but I switched over to
Bullet as I find it a more stable simulator. I don’t remember to much
about it other than some meshes getting stuck or speeding up to infinity
after being unstuck. I run my simulators at 60 hz so it’s not like I
wasn’t giving the simulator enough precision to work with. It was a
decent library though, very easy to use.
Lately I’ve been doing more 2D work and using engines like Box2D and
Bepu. In all cases, I wrote a high level event-driven physics framework
that lets me define the bodies and world. I wrote implementations for
each physics library I support so my code is kept consistent and
portable. Quick and simple stuff. In some cases I do my own physics,
such as kinematics and projectile motion, various cosmological formulas,
work, energy, entropy, springs, etc. I only use physics engines for
complete worlds where I just have to manage which entities are simulated
and let the engine do the rest.
I’ve had the most experience with Bullet, which isn’t much. The guy that
authored it is pretty cool and started it with Blender game engine. I’ve
seen it used on little java apps and it was pretty effective, so it
basically will work on almost any 3d device. I think they all work
pretty good. Luckily, it’s kind of a standard thing on engines now, so I
don’t have to worry about it. I think they take a little individuality
out of games, but it saves a huge amount of time.
Most of the games I port use Bullet.
Some use PhysX
For 2D , most use Box2D
I used to fiddle around in bullet, and added a custom derivable gravity
class, so I could implement different types of gravity. Worked out
I am currently messing around with Box2D, where I have implemented a
fully working particle
system, and am
currently fighting to iron out the remaining bugs in my fluid
Getting it to properly integrate into Box2D is a pain in the ass, but I
am making progress :)
Ive always done my own physics, havent thought about incorperating code
just yet… but actually sounds like ive been probably doing things the
wrong way. if direct x had a physics component i would have been doing
this ages ago.
Hey thanks for the answers.
#TheNut - As I’m messing with ODE for quite a long time (and I’ve
digged quite a bit into the code), these problems are common and are
caused by wrong setup. The sad thing is, that even reference document
doesn’t show the correct setup, and most implementations online does it
incorrectly. All in all I like its simplicity (and easy extensibility
with your own source).
The Bullet seems quiet popular among you, I’ve never used it yet, but I
might try it as soon as I will have some time.
For fluid simulations, I’m using a hacky solution (not accurate
collision detection with objects, but good enough) that runs as OpenCL
kernel -> mainly focusing on high peroformance, not accuracy. Particle
simulations are another thing, as in most cases you can do just cheap
tricks (e.g. F.e. waterfall soft particles go through character, you
just test that your character is inside the waterfall “volume” and
create emittors of waterfall particles on character faces that has
normal in upward direction -> cheap trick that looks like collision
Anyway rope and cloth physics now works, yay! (and seems stable - we’ll
see once I put it into some heavy situations)