I have decided to wrap up my quick series about the Bullet Physics engine for now. Later I hope to cover raycast (we’re using that to test whether a NPC can see the PC in our coming game), constraints and soft bodies.
The survival kit includes the following articles:
- (Hello) Balls! – the basics
- Collision shapes – sample code showing how to setup common geometric primitives
- Dynamics – applying forces and impulses
- Kinematics – some information about kinematics objects and the motion state
- Collisions and contact – how to retrieve contact points and find out whether two bodies have collided.
Remember these are working notes. I still recommend you look at the official tutorials on the Bullet website – they are definitely more comprehensive.
We’re getting good results with Bullet so far and we feel really happy that I bothered building an integration for it. Our integration uses Objective C++ and provides a wrapper that can be used from Objective C. Here are some reasons we feel happy:
- Integrating bullet with our engine has been fairly smooth. There is a learning curve (and I’m still learning!) but the APIs are often fairly explicit and the library is kind of easy to use.
- Having a nice physics engine take care of collisions and moving objects around just saves a lot of work. Game dev folklore claims that non-physics oriented games won’t take advantage of a physics engine. Think again?
- Objective C is not very fast. Bullet provides many optimizations that we couldn’t afford coding ourselves – and it’s all C++.


Comments