I’m often asked about which ios 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

Moai SDK

The Moai SDK is an open source 2D game engine that utilizes the Lua scripting that compiles to iOS, Android, and HTML5 that has been used in a number of hit iOS app store games.

You can create your games with Moai on both Windows (Visual Studio) and Mac (Xcode). In order to submit your games to the iOS app store you will need to do so with a Mac.

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.

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.

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.