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
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.
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.
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.
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.
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.
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 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.
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.
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.
After finishing up a contract, I decided to start work on my first graphical iPhone game title. Originally I had set out to create to an iPhone game, and tested out several of the engines available, but put things on hold to work on some small contracted apps. Now I’ve decided to get back to that, and took another look at the iPhone game engines available, so here they are with a small writeup about each engine.
Bork 3D – Bork 3D is a 3D engine specifically for programmers. No wysiwig tools here. I haven’t had a chance to check out this engine as I just heard about it, but Bork 3D was used in the create of the Anytime Golf game. Something that I find very appealing is that the author provides the full source and the cost for the engine begins at only $49.
Cocos 2D iPhone – Cocos 2D iPhone is an extensive open source framework for producing 2D games on the iPhone. Cocos has been used as a starting point for many developers interested in creating iPhone games, and title after title is produced using this framework. The feature list continues to grow, and the question is where will it end.. these guys seem to be putting everything into it. You certainly can’t beat the price at free.
iTGB – A 2D game engine with an extremely easy to use visual scene editor. This is an excellent 2D engine with a very rich feature set. The full source is included, and I believe this would be an excellent way to get started with game development on the iPhone if not for the cost starting at $750.
iTGE – A 3D game engine from the makers of iTGB. From what I understand this engine uses Oolong at it’s core. The engine has a visual scene editor and an extensive feature set. The Torque Game Engine that iTGE has been used in many hit indy game titles on the Windows platform. The cost starts at $650.
Oolong engine – Oolong is a game engine written by author/graphics programmer Wolfgang Engel. It contains an extensive feature set and a very liberal MIT license. That being said, it is definitely an engine created for programmers, and requires solid knowledge of OpenGL ES to use. There is a discussion list, and a nice collection of examples. The only thing that I don’t like is the lack of documentation. Free MIT licensed.
Shiva Ston3d – Shiva is a game engine with a visual editor for scene design and from checking out the forums it appears as though some very nice games have been/are being created with it on the iPhone. Shiva utilizies a Lua like scripting langue. There is one huge negative for me personally which is that the editor runs in the windows environment, it runs in parallels but not too well on my Mac. The price starts at ~$250.
Sio2Engine – SIO 2 Engine is an open source 3d engine with an extensive feature set that utilizes Blender for scene creation. I’m not the world’s biggest blender fan so I can’t say too much about the engine., but still this game engine has been used in many different iPhone titles so it is worth looking at and the price is definitely right as there is no charge as long as you place a splash screen at the start of your game advertising the engine.
Unity 3D – Unity 3D is a game engine that has been around for a number of years, and has grown quite a following for it’s ease of programming. Unity 3D has it’s own visual editor for scene design, and utilizes the C#, and Boo programming languages. Unity is well known for it’s ease of use, and has established been used in many iPhone different games. Costs begin at $199 + $499.
Ultimately I have decided not to use any of the current iPhone game engines, but have decided that at least for my first few titles I will attempt to create a 2D game engine on my own, and go from there. My main reason for doing this is simply because while I have used/purchased some indy game engines in the past for development of freeware/shareware hobby titles I would like to learn how to do this myself, and put all the graphics programming, and math that I learned in college to use.
If you have any experience using any of the above game engines, or a title you created using one of them feel free to post about it below.