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.  These game engines now also support the ipad.

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, and with just one exception  I have chosen not to list those for which there are no apps available in the app store.

The SIO2 game engine has been removed from this listing, as if you go to their site and attempt to download the open source legacy version all you get is a popup telling you to get the new engine — so if you are looking for information on the SIO2 engine please visit the commercial iphone and ipad game engine page.

If you find anything inaccurate on this page, or know of an open source iOS game engine that deserves mention then please post a comment.

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.

iSGL 3D

The iPhone Scene Graph Library 3D.  A 3D graphics engine providing a multitude of features – more information to come as I am still trying it out.  Has been used in the Project Mos game available on the app store.

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 also been released on the Mac so you can ease the release on 2 platforms.

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.

Note On The Following Engines

The following engines are currently more for educational purposes than anything unless you want to do a lot of tinkering.  They are all either works in progress or not actively being worked on by their initial developers and have somewhat fallen to the wayside.

Galaxy Game Engine

The Galaxy Game Engine is a very promising engine with an extensive feature set.  From what I understand no apps have been released with this, but the project deserves some mention because of the feature set boasted by this engine, and it appears as though the developers are committed to the project.

This is a BSD licensed 3D engine that includes some very useful tools such as a level editor, terrain editor, model viewer, particle editor, and shader IDE.

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.

Haxe

Haxe is a multi-platform language that most notably compiles to SWF and has been used in many Flash games.  Because of this ability to compile to SWF you can use Adobe’s Flash builder for iOS tool to get your games on iOS devices.  If you do things this way it suffers the same performance limitations that Flash Cs5 iOS games currently suffer from.  You can also compile straight to iOS devices, but you’ll need to hit up their mailing list to figure out exactly how to get things done, and do some figuring yourself.

Flixel

This is the port of a popular 2D Flixel Flash game framework to iOS Objective-C.  So if you have developed a flash game using that framework this should be very helpful to you.

Flixel has not officially been released as an open source project however if you take a look at the release of the open source game MIT-licensed Canabalt you will find their first major attempt at porting the framework to iOS and could be potentially used in your code.  There will likely be an open source release soon.

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 there really isn’t much to choose from any longer as far as open source goes as SIO2 has become a commercial game engine without a lot of potential tinkering.  Fortunately, especially with the addition of the free for indies publishing to Airplay SDK for iOS and the variable priced Unreal Development Kit for iOS you can license a 3D game engine at little cost as an indie.  Read more on the commercial iPhone and iPad  game engines page.

DeliciousTwitterTechnoratiFacebookLinkedInEmail
Tags: , , , , , , , , ,

Submit A Resource

Have you created a useful tutorial, library or tool for iOS development that you would like to get in front of our 300,000+ monthly page views from iOS developers?

You can send a Tweet to @maniacdev on Twitter or submit the url here.

The resources we feel will appeal to our readers the most will be posted on the front page.

  • tylermDWS

    What about Unity or Torque for a 3D engine?

  • http://maniacdev.com maniacdev

    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.

  • anonymous

    I would stay away from Objective C. it is stupid plain and simple. Stick with C/C++.

  • http://maniacdev.com maniacdev

    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.

  • Pingback: iPhone Game Development Resources Compendium | iPhone Development Tutorials and Programming Tips

  • Daniel

    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?

  • http://maniacdev.com maniacdev

    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.

  • Jon

    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.

  • Gary

    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)

  • Gary

    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)

  • http://sio2interactive.com sio2interactive

    Can you please update the SIO2 Interactive website link for:

    http://sio2interactive.com

  • http://sio2interactive.com sio2interactive

    Can you please update the SIO2 Interactive website link for:

    http://sio2interactive.com

  • http://sio2interactive.com sio2interactive

    Can you please update the SIO2 Interactive website link for:

    http://sio2interactive.com

  • http://sio2interactive.com sio2interactive

    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…

  • http://sio2interactive.com sio2interactive

    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…

  • http://maniacdev.com maniacdev

    Hi, it’s all fixed now. The second part was actually an editing mistake.

  • http://maniacdev.com maniacdev

    Hi, it’s all fixed now. The second part was actually an editing mistake.

  • http://maniacdev.com maniacdev

    Hi, it’s all fixed now. The second part was actually an editing mistake.

  • jayh

    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.

  • jayh

    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.

  • jayh

    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.

  • OgreFan

    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/

  • OgreFan

    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/

  • OgreFan

    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/

  • http://sio2interactive.com sio2interactive

    Allright, cheers dude… However there’s still quite alot of typos on the SIO2 part ;)

    Anyway, thanks for the plug ;)

  • http://sio2interactive.com sio2interactive

    Allright, cheers dude… However there’s still quite alot of typos on the SIO2 part ;)

    Anyway, thanks for the plug ;)

  • http://sio2interactive.com sio2interactive

    Allright, cheers dude… However there’s still quite alot of typos on the SIO2 part ;)

    Anyway, thanks for the plug ;)

  • Edwin

    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

  • Edwin

    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

  • Edwin

    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

  • Kaydell Leavitt

    I don’t know why you say that the iPhone is not good at 3D controls. The 3D accelerometer makes 3D controls very intuitive.

  • Kaydell Leavitt

    I don’t know why you say that the iPhone is not good at 3D controls. The 3D accelerometer makes 3D controls very intuitive.

  • Kaydell Leavitt

    I don’t know why you say that the iPhone is not good at 3D controls. The 3D accelerometer makes 3D controls very intuitive.

  • Jordan Bigel

    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.

  • Jordan Bigel

    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.

  • Jordan Bigel

    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.

  • http://www.Vellios.com Nick Vellios

    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.

  • http://www.Vellios.com Nick Vellios

    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.

  • http://www.Vellios.com Nick Vellios

    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.

  • http://blog.csdn.net/vagrxie jtianling

    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.

  • http://blog.csdn.net/vagrxie jtianling

    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.

  • http://blog.csdn.net/vagrxie jtianling

    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.

  • John

    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.

  • John

    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.

  • John

    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.

  • Endless

    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.

  • Pingback: I wanna make an iPhone game…now what? « iPhone Friend

  • http://twitter.com/SoftSavage Dominique Louis

    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.

  • http://maniacdev.com maniacdev

    Looks good, too bad it requires monotouch.

  • http://twitter.com/SoftSavage Dominique Louis

    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.