Any success with Bullet's CharacterController?

Check our PM conversation on the state of Bullet bindings :wink:. It was you who told me that CCD was omitted ;D

The thing is, you probably should be ;D.

You see, Bullet is a much more robust solution. It’s more feature complete, it’s more suited for real time simulations. It has kinematic bodies (I have that implemented too, but it’s not the same) and it should be more stable. It has a lot of advantages over ODE.

That said, you need your needs. Here are your options:

  1. Bullet – CCD out of the box, aforementioned advantages for game physics, you need to write a character controller yourself. Good for high performance, complex physics scenes.

  2. PhysX – (1.8.0) no CCD or CCD in trunk, good character controller, very advanced and stable, has soft body, crappy license (if that’s of any relevance to you). Good for high performance, even more complex physics scenes, but only assuming you’d use trunk with the newly commited CCD – otherwise it’s not worth it IMHO.

  3. ODE – (assuming you’d use my code) CCD and character controller, both written in Python, which means they’re not nearly as fast as Bullet or PhysX (the advantage is that you can easily modify both). Additionally, ODE’s collision detection has limitations and its physics solver doesn’t support rolling friction. Suitable for writing an FPS/TPS with not too many moving parts.

That’s the state of physics simulation in Panda at the moment, from my point of view. Since enn0x has added CCD support, I’d assume PhysX might be your best hit right now, if you’re not bothered by the restrictive license. Otherwise, if all you need is a stable KCC and bullets/explosions throwing not too many boxes around, I guess you could go with my code.

Here’s a link to CopperODE if you wanted to take a look: [ODE Middleware)