The Open Source iPhone Game Engine Comparison
I’m often asked about which iPhone game engine to use, and I know most people are looking for a free game engine so here is a comparison of the different open source iPhone game engines that actually have apps out there.
Cocos2D for IPhone
The Cocos2D iPhone game engine is a port of a game engine originally created in Python and converted to iPhone Objective-C. As you can tell from the name, Cocos2D is designed for 2D games, that being said, although the engine is in a 2D world, the engine includes a growing collection of high quality 3D special effects.
Cocos2D has been used in many games on the iPhone app store, you can visit the official site here, where many are listed.
Cocos2D is the first engine to check out, while many may be turned off by the engine not supporting a 3d world, if you look at most of the top iPhone games the gameplay is 2D, in fact the iPhone’s touch screen controls can make it difficult to operate in a 3D world.
Also included is support for the in-game Chipmunk engine, and the latest version of Cocos also includes an OpenAL based sound engine.
The engine provides more examples than any of the other engines out there because of the large community. Overall I’d say the engine is as easy to use as any engine that does not have an environment editor.
Uses the LGPL license.
Sio2Engine
The SIO2 game engine is an excellent 3D game engine written in C. There is a free oepn source version, and a an indie version for $49. The free eidtion requires you to show a splash screen at the start of your game illustrating your use of the engine. This in my opinion is extremely fair considering the quality of the engine.
The game engine uses blender in it’s toolchain for scene and model creation. If you haven’t used Blender, it is a sophisticated open source 3D modeling program. In my opinion this is the only thing I don’t really like about sio2, while some love it, I can’t stand using blender as I’ve found it can’t compare to the top commercial modeling programs. Fortunately there are many blender plugins that allow you to import a wide variety of modeling formats.
SIO2 comes with an excellent set of tutorials, and provides support for sophisticated features such as skeletal animation, and soft-body physics which are explained in the tutorials.
I’ve found the performance of the latest version of the SIO2 game engine, version 1.4 to provide significantly better performance than previous versions. If you haven’t checked out SIO2 in awhile then I suggest you check it out again.
I recommend SIO2 to those who insist on a 3D world and thus can’t use Cocos.
Oolong Engine
The Oolong game engine is a 3D engine written in C++, and provides excellent performance. The downside of the Oolong engine is that it is difficult to use for those that are not familiar with OpenGL ES.
Oolong provides support for a wide variety of features, and very good performance, as I said my only problem with Oolong is that it is difficult to use. This is a low-level engine designed for programmers so if you’re just getting into game development I would stay away.
You will find the latest version on google code, there is very little documentation for Oolong, but the community is very active, and you can get answers to many of your questions there.
I would recommend Oolong to those looking to create their own game engine looking for something to start with.
Uses the MIT license.
Irrlicht Engine
I mention Irrlicht here only because I received a message from someone stating that it was available on the iPhone.
The Irrlicht game engine is a 3D game engine written in C++.
While there is no official port available on the Irrlicht website for the iPhone with some tinkering I was able to get the OpenGL ES version running on the iPhone — somewhat. You will find the OpenGL ES version hidden away in the repository.
Irrlicht is an excellent open source engine that has support for an extremely wide variety of file formats, and has the best support for the "classic" BSP format that I’ve seen in an open source game engine. There are also numerous other tools that have been created for the engine.
All this being said, I can’t recommend Irrlicht because there is no official port, and if you check out the forums there really is no one willing to provide help to those looking to get it running on the iPhone although some have created apps running on the iPhone.
The Irrlicht engine uses the Zlib license.
Summary
Cocos2D makes an excellent first choice for those developing a 2D iPhone game. You will learn Objective-C while using the engine, and the engine has been proven in a wide variety of games.
For 3D games my choice is SIO2, although I’m not a fan of blender this does make it more accessible than the other proven 3D iPhone game engines.
What about Unity or Torque for a 3D engine?
Both very good engines as are Stonetrip and Bork 3D, which I have mentioned here:
http://maniacdev.com/2009/07/a-look-at-8-differ...
but they're not open source.
I would stay away from Objective C. it is stupid plain and simple. Stick with C/C++.
Why do you say that? I'd have to disagree.. usually the only reason why anyone would say stay away from Objective-C is because they don't want to learn it.. and think they already know C++.. but I've never met anyone who knew C++ well who didn't like Obj-C once they spent a few hours learning the basics.
Typically the hate is from inexperienced, and unskilled programmers.
[...] Commercial iPhone Game Engine List Open Source iPhone Game Engine List [...]
I've been trying to get irrlicht's ogl-es branch working on the iphone to no avail. Would you mind explaining how you got it to work?
Hi Daniel, to get Irrlicht just to build properly I had to comment out a considerable amount of code, remove some namespaces etc. It was a major pita… then it didn't work perfectly, and this was using what would now be a 6 month old build.
I'll take a look at it today, might make for a good post if I can get it going again. I actually had a small game created in Irrlicht that i wanted to transfer over, but things just didn't work well enough, but I imagine by now that alot more progress has been made so I'll ask some of the Irrlicht enthusiasts that I know.
I have been writing code for over 15 years and have had a lot of experience with C++, Java, Delphi, Pascal, Visual Basic, etc. Now, I have written some iPhone applications in Objective-C and let me just say this: Objective-C is the single most annoying piece of language I have ever had to work with. Period.
No, seriously, I have tried Fortran, Cobol and Logo, to name a few, but Objective-C really takes the cake. It is annoying to work with and I hate it. You should too.
I'd agree Jon, Although I think *hate* is a strong term, I find the syntax quirky and unintuitive. Like you I have alot of development experience (20+ yrs) covering BASIC, 6502/6800 assembler, Clipper, Foxpro, Delphi, C. I'm determined to stick with it though as there is a massive opportunity with iphone/ipod and the upcoming islate (or whatever the tablet will be called)
Can you please update the SIO2 Interactive website link for:
http://sio2interactive.com
Ho! And the indie certificate is not 99$ its 49$ and what do you mean by:
“This in my opinion is extremely considering the quality of the engine.”
Cuz I don’t get it…
Hi, it’s all fixed now. The second part was actually an editing mistake.
Great article – but I completely disagree with you about blender. Just wait for 2.6 to come out and you’ll be amazed! Check out the 2.5 alpha that’s out now. bmesh modeling is bringing its modeling tools light years ahead finally.