iPhone Game Engine Comparison – Open Source
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.
There are several open source game engines to choose from, and many cropping up all the time. On this page I have only listed those that I know have been used in games already available on the iPhone or iPad. I have chosen not to list those for which there are no apps available in the app store.
Choosing Your Open Source iPhone Game Engine
Sparrow Framework
The Sparrow Framework is a very lightweight 2D game engine created in Objective-C. In a very short amount of time I was able to understand the framework, and I find it to be very intuitive.
If you’d like to take a look at some actual coding with the Sparrow Framework be sure to check out the Beginners iPhone Action Game Programming Tutorial.
While I have not done much Flash game programming the developers state that the game engine was created with Flash game developers in mind.
The game framework includes all the necessary features you’d require for creating a basic 2D game such as easy animation, and a sound engine.
Cocos2D 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. I know that it has been used in the creation of apps already 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
The Sparrow Framework makes an excellent first choice for those developing a 2D iPhone game. Cocos2D is the most popular, and has the most support but is less intuitive. 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.
Would you like to learn iPhone and iPad programming online from professional instructors who have worked for companies such as EA and Disney Mobile?
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)
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.
Thought you might want to know that Ogre (Irlicht’s ‘big brother’/competitor in the world of open source 3d engines) officially supports iPhone OS as of version 1.7. Check out http://www.ogre3d.org/
Allright, cheers dude… However there’s still quite alot of typos on the SIO2 part
Anyway, thanks for the plug
Guys who have 20+ yrs programming experience but never worked on Smalltalk would probably find Object C replusive, non-intuitive. But then, language is just a tool and human are tool maker and tool users. There is bound to be personal preferences.
Sio2 is a great engine. Blender, IMHO, is not as intuitive as it could be, then, probably because of me coming from the Alias/Wavefront world, and was a heavy Shade user.
My $.02
I don’t know why you say that the iPhone is not good at 3D controls. The 3D accelerometer makes 3D controls very intuitive.
As an engineer with over 25 years experience, mostly with C/C++, but also with a wide variety of languages, I have to disagree with the Objective-C nay-sayers here. I’ve been working with Objective-C and Cocos2d for over a year and I love the language. The reference counting memory management tools are fabulous – a great deal better than dumb garbage collection schemes which leave you with little control or ad-hoc management in C/C++ (or the hacked-on reference counting of Windows COM objects). There is no question it takes some time to come to grips with the “message” syntax for function calls, but like anything, once you learn to use it you will find it is easy to use and intuitive.
I have been programming in C on the Mac for 12 years and when Mac OS X arrived with Objective-C being pushed onto developers, I hated it. I hated it so much in fact that I never made the transition and instead moved to Windows. The thing is, I never took the time to learn it. I had no reason to hate it. Now that I have switched back to the Mac and now to the iPhone, I was forced to clear my thoughts and learn the language I once shunned. My god, it is so beautiful! Why didn’t I learn it years ago? It flows, it’s dynamic, powerful, and it just works where you wouldn’t think it could.
I just don’t know why there isn’t one web talking about the Orx(http://orx-project.org/),It’s support IPhone/IPad now.
I don’t see any actual iPhone/iPad games made with Orx.
Am I wrong?
There are many engines out there that haven’t actually been used in real projects.
Actually orx has only been released as beta on iPhone so far.
However, there is at least one game released with it on windows, linux & mac os x: http://gamejolt.com/open-source/games/platforme...
The sources are available as well as the map editor used to build the game.
[...] over head tile map shooter) I chose cocos2d although there are many others (good lists here and here). Why did I choose cocos2d and why would I suggest it to other newbie game [...]
If you prefer to use C#, checkout the OpenSource XNATouch ( xnatouch.codeplex.com ) which allows porting of 2D Windows XNA games/apps to iPhone. And now with the release of MonoDroid that same code should compile and run on Android phones as well.
Then when Windows Phone 7 phones are released later in the year, that same codebase should work on there, with little or no code changes.
Looks good, too bad it requires monotouch.
It the only way you use your existing C# code on iPhone.
I can confirm that XNATouch will be ported to MonoDroid now, so XNA games should work on Android devices too.
That’s great I will give it a mention.
There is another FREE option for 3D app release for iPhone: Airplay (http://www.airplaysdk.com/index.php), which is cross-platform, both desktop and mobiles.
What is your opinion on it?
BTW, another non-Free engine: esenthel (http://www.esenthel.com/), only free for testing. But it looks really powerful in game industry.
Airplay looks good. Free for indies. I’m a bit confused as to whether it makes hybrid (html/javascript apps running in a UIWebView) apps like many cross-platform tools or makes real apps. Will need to take a closer look.