The Bullet Game Engine Guide
Physics are important not only in the world but also in games. Games are different universes where developers either desire to emulate more realistic systems of game physics, like in Grand Theft Auto V. Or maybe they want to throw it all out the window and create a wild and crazy lack of realistic physics.
If you were creating a game world, which would you choose? The crazy, over the top system, or one that resembles our own world? Well, if you are planning to learn about game physics in-depth, the Bullet physics engine is a great place to begin a fun journey in game development.
Stick Figures, the 2000s, and Bullet Physics Library
For me, it has been many years since I experienced a crazy little flash game that emphasized physics using stick figures. Some videos involving an over the top battle royale with stick figures, complete with Matrix-like moves, Kung Fu, street fighting, making it look like it was straight out of an early 2000s action film.
The physics were smooth, fast, and satisfying. For me, this signaled a new movement in-game physics. It also awakened me to the importance of physics in video games. It was something I overlooked and took for granted. I didn’t realize how detailed and nuanced they were, even in simple stick figure animation.
Fast forward to the present, where gamers are becoming even more involved in indie game design, implementing a unique vision and passion to create their own dream project. Something that always sticks around? Physics, of course.
There are many different types of physics engines out there, however, I want to introduce you to Bullet Physics Library. This is a simplistic, easy to use physics engine where it introduces the user to game physics. One of the first images that come up for the engine is a giant tower of blocks being knocked down by a cannonball.
It obviously isn’t in the same pantheon of famous game engines like Unreal and Unity, but it serves a much more fundamental and important lesson in collision detection. Also, how did they manage to secure the killer name ‘Bullet’. That’s a sweet ‘get’ if I have ever seen one. But I digress.
I remember always hearing about ‘collision detection’ in games, especially in games like those in the Fight Night or UFC franchises where two bodies were constantly banging and bumping into each other violently. Basically, collision detection is the issue of two objects in a game intersecting with one another.
This is why you hear so much about it in terms of buggy games. 2D games obviously have it easier when it comes to detecting issues with collision detection, but with the advent of more popular 3D gaming, it became more nuanced. Luckily, games don’t simulate physics EXACTLY to the same factor as everyday life, so they have some leeway in development.
Bullet was originally developed by Erwin Coumans, a technical Oscar winner, (for his work in Bullet), and now a big shot developer for Google. Bullet is constantly updated, so it’s a relief for those of us who are avid users of different engines. It’s completely free, having the zlib license.
The zlib license is great and is actually featured with other great engines like Box2D. It’s an open-source engine and is hosted currently on Github.
The Official Website
I checked out their website and was immediately bombarded, (in the best way), with a research project they are currently undertaking having to do with the physics of a robot arm trying to move and pick things up. Does it remind you of claw machines? That’s immediately what I thought of.
However, this one has no frustration and doesn’t lead you on into thinking you can win a toy. Okay, enough about claw machines!
The robot arm experiment, called TossingBot, developed by Andy Zeng, Shuran Song, Johnny Lee, Alberto Rodriguez, and Thomas Funkhouser, aims, (see what I did there?), to see whether or not a robot arm can pick up and throw objects into specific boxes with accuracy.
Although simple in nature, it is a great exploration of deeper physics and how they apply to a simple thing like a robot arm completing tasks. I love this blend of a game engine and legitimate science studies; it seems to bring more legitimacy to gaming. Maybe people will take my PC gaming addiction more seriously: I don’t have a problem, it’s for scientific research!
Their website is filled with research projects, papers being published, and experiments with the Bullet engine. It looks almost like NASA’s website with all the scientific info it’s brimming with.
So now that you know what the engine is capable of, (and the impressive education of its developers), let’s take a more detailed look into the best ways to actually use the engine yourself: time for tutorials!
Tutorial #1 The Physics Forum
This forum is basically the official community regarding the Bullet engine. Like the rest of the site, it is filled with scientific theories, knowledge, and information. Got questions regarding the physics of the engine? Pop into the forums and ask for a response from any one of the many users.
There are nearly 10,000 users on the forum, so there’s no way you won’t get a response if you’re having trouble with the engine, or physics in general. Now me, I’m not physics guru. In fact, I would say physics and I am not on speaking terms, to put it lightly.
But I have faith in you, fellow gamers, that you and physics have a more fruitful relationship and can engage with some of the users online.
The most popular subforum in the community is, of course, the General Bullet Physics Support forum. Luckily, the moderators on the site have added multiple stickie threads where your question has possibly been asked and answered by the educated mass of Bullet users.
Moderator Benelot even posted a very detailed post where he recommends new users to check the forum first for their questions.
I love communities like forums. It puts you contact with peers, and sometimes even the actual developers of the engine, aka the best source of knowledge. What better way to find answers to your questions than talking to the staff that makes the engine run? This is a no brainer of a tutorial.
Tutorial #2 Ray Wenderlich
Ray Wenderlich developed a cool little tech website where it includes thousands of tutorials for different engines and programs running the gamut. This includes the Bullet engine. He specifically starts off the tutorial by explaining that he’ll be helping you develop iOS games using the Bullet engine. He then breaks it down:
By the time you’re finished, you’ll have learned how to:
- Download and build Bullet physics engine source code.
- Set up an Xcode project to use the Bullet physics libraries.
- Set up a physics simulation, create physical objects and make them move and rotate.
- Detect collisions, get collision information and destroy objects.
And that’s being very brief. Ray goes HARD with this tutorial. No punches pulled, nothing held back. You WILL learn nearly everything you need to know about the Bullet engine.
It’s a clear, concise step by step tutorial. Not only that, but it is LONG. Be warned, this isn’t a casual read. Although it is great in quality, you should be prepared to bookmark this page! You won’t go through it in one sitting. I mean, you could…but then I’d want to know if you were a robot or not, jeez.
Ray starts off by showing the user everything from the installation process to in-depth and advanced physics techniques with the engine.
Tutorial #3 YouTube ‘thecplusguy’
Guys, I’m one of the biggest YouTube fans out there, so of course, this list wouldn’t be complete without a YouTube channel, (or two). This channel is a great find; thecplusguy has dedicated his channel to coding, using engines, and computer software. And thanks to him, you will undoubtedly learn a lot about the Bullet engine. In his first video, ‘Bullet physics tutorial 0 – Examples and Installation’, he does just that.
Clocking in at 16:35, the video shows you exactly what to do—all the way from installation and beyond. And this is just the beginning. He has multiple tutorial videos on the Bullet engine, the second one, the first tutorial, is a whopping hour-long journey into the blood and guts of the engine.
He has about 5 or 6 videos regarding the bullet engine, each filled with juicy info and hours of material. You can’t go wrong with thecplusguy.
Tutorial #4 opengl-tutorial
This tutorial introduces the user to opengl using the Bullet engine as the main example. Like the other tutorial pages, this one is so on point and the best way to learn the engine’s fundamentals. The author uses the amusing image of a monkey head to show 3D meshing.
They also talk about ray casting, which is when you create a 3D perspective on a 2D map. Think the original Wolfenstein 3D, where the player is moving around a 2D map with 3D features, namely taking down Nazis and looking for secret passageways.
The thing I like about this tutorial is how it uses Bullet as the example but also introduces you to different physics engines in the game development sphere.
Tutorial #5 The Kent Manual
Check this out: this PDF manual was written and developed by Kent State University, published in 2012 by the creator himself, Erwin Coumans. What better way to learn the ins and outs of the bullet engine than from the maestro himself? Not only that, but it is sponsored by a pretty famous university for its computer science program.
Not only that, but it is completely digestible; it is about only 45 pages, which makes it a little easier to read than the more in-depth tutorials than those above. I would say that this would be the best place to start in tandem with the vibrant community.
Pros and Cons
- Free and open sourced
- Constant contact with the community and developers
- Good ray casting
- Great physics
- Great documentation and tutorials
- Might be difficult for users who aren’t familiar with intricacies of physics
Guys, I have to say, I’m really impressed with the Bullet engine. First of all, I have never seen such detailed tutorials regarding an engine. On top of that, the cons list is so minuscule that it should encourage you to download Bullet engine right now. C’mon, right now!
Bullet engine might not give you physics like the Frostbite engine, where you’re battling with an opposing force and blow up their HQ with realistic destruction, but more importantly, it will give you the very fundamentals of physics in the game and in general. In my case, physics isn’t my forte, but I know that we have some serious scientific minds out there in the community, and
I believe that the Bullet engine will serve your needs perfectly. The fit that you will have with Bullet engine is a comfortable and sensible one.
What are you waiting for? As I have stated before, it is free, free, free. You really have nothing to lose. So get learning!