We are often asked about which iOS game engine to use. It is believed that most companies 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. Also these game engines now support the iPad.
The Sparrow Framework is a very lightweight 2D game engine created in Objective-C.
It was built from ground up for iPhone, iPad and iPod Touch. You can easily integrate it with your existing UIKit apps, access all iOS APIs directly and benefit from native performance.
If you have already worked with Adobe Flash or Starling, you will feel right at home: Sparrow uses the same concepts and naming schemes. Even if you’re coming from a different background, you’ll get the hang of it quickly, because everything is designed to be as intuitive and easy to use as possible.
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 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 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.
The engine provides more examples than any of the other engines out there because of the large community.
iSGL3D (iOS Scene Graph Library) is a 3D framework for the iPhone, iPad and iPod Touch written in Objective-C, enabling the creativity of developers to flourish in a 3D world without the complexities of OpenGL.
With its rich set of features, iSGL3D provides the necessary tools to develop 3D applications in an incredibly short time frame, even with a minimum of experience in 3D graphics. The principal behind iSGL3D is to make construction and manipulation of 3D scenes as simple as possible for a developer.
With a single line of code you can add a 3D object whether it is a simple primitive, a sprite (or particle) or your own imported asset. Properties on these objects allow you to modify their appearance, position, rotation and more very simply. You can add containers too to group objects and manipulate them together. In a short period of time you can build up a complex 3D scene.
The Moai SDK is an open source 2D game engine. It designed more for people who know what they’re doing. While it includes the ability to start developing a game immediately from a downloadable binary, it only supports using the FreeGLUT library on the desktop. It is designed in such a way that it expects the developer to be able to create the windowing system themselves.
The main language used with Moai is Lua. Most of the time you shouldn’t need to use C++ to extend the base engine, but the capability to do so is there. The documentation for the Lua codebase is kind of weak however, so you should be ready to do some searching to find out how to use various capabilities. 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 Oolong Engine is written in C++ with some help from Objective-C. It will help you to create new games and port existing games to the iPhone, the iPod touch and the iPad.
Oolong provides support for a wide variety of features and provides excellent performance.
Haxe is a multi-platform language that most notably compiles to SWF and has been used in many Flash games.
Galaxy Game Engine
The Galaxy Game Engine is a very promising engine with an extensive feature set. 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.
Sure, we may make this list longer, but let me stop here. The most important thing, which I’d like to notice, is that you should select the engine which fits your project needs and suits your purposes in the best way.
And what do you think? To what engine would you give your preference?
Feel free to share with us your thoughts!