After making my open source iphone game engine comparison post,, I’ve noticed quite a few searches for a comparison of commercial iPhone game engines, so I’ve decided to create this comparison.
Please note that this is only a feature comparison, as while I have tested out the editors of these engines (where available for free) I have tried all of these engines and have been maintaining this site for the last two years so I can provide a lot of information on the topics. I’ve listed them separately in 3D and 2D placing the free ones first.
Engines With 3D Game Support
Unreal Development Kit For iOS – I don’t think I need to say much about this one. The Unreal Engine is legendary in the gaming industry, and their Infinity Blade game has been tremendously successful in the app store. Starting at $99 for indies the 3D engine is highly accessible to anyone. The only caveat for development on iOS is that the tools require Windows so if you’re a Mac OS X purist you’re going to have to look elsewhere. If you want cutting edge features, want to use the same brilliant tools used in creating hits like Unreal Tournament, and Gears of War then this is it.
Unity 3D – Unity 3D is the most popular commercial 3D iPhone game engine, and has been used in many games. Initially the iPhone version had some performance complaints, but it appears as though those issues were alleviated. Unity allows you to use an extensive 3D editor with many scripts available and there is considerable community support available. Another nice feature recently added to unity is that it allows you to use your Objective-C code, and it is the only one of these engines that appears to do so (so you can utilize libraries of your choosing within the iPhone SDK). Unity 3d for iPhone costs a minimum of $399 if you already own a copy of Unity Basic otherwise you will need to spend $199+$399 for Unity Basic + the iPhone license.
Marmalade – Formerly known as the Airplay SDK Marmalade is a high quality 2D and 3D game framework including tools that run on both Windows and Mac OS X. Airplay can compile to many different platforms. Airplay utilizes C++ and integrates with Visual Studio on Windows and Xcode on the Mac. The feature list is extensive and Airplay updates frequently to cover new features when Apple updates their SDK. I really can’t say anything bad about Airplay other than that the learning curve can be higher than some of the other options listed.
Stonetrip S3D – This is another full featured 3D game engine that has been used in high quality iPhone games. There is a full featured 3D editor, and many scripts available along with large community support. What’s cool about Stonetrip is that it now works with the Airplay SDK so you can develop using the visual tools of Stonetrip and then port to all the different Airplay platforms if desired. The base cost is 169 Euro, and this includes compilation options for the Mac, Windows, and iPhone platforms — without using Airplay.
SIO2Engine – This is a once open source C++ solution that has now gone fully commercial, although the have kept the text from the old site on an area of their site, and appear to sell code samples for the old version they have ended support for version one of the engine. The new commercial version has added many features such as a windows simulator, and the ability to create scenes in Maya, and still supports features that made the original version popular such as Lua scripting. SIO2 now starts at $365.
GLBasic – This is a suprisingly cool development tool that I found in relative obscurity. It has been used in a number of 2D games already, and I have seen some fairly impressive 3D work being done on this but it does not appear as though any 3D games have been released using GLBasic. GLBasic is very easy to use, and I was rather surprised by the quality of the tool since I didn’t see it being talked about much. The price is 80 euros for the premium version. The only problems I had were that you had to dig through the forums to figure certain things out, I think it would be great if they had much better instructions for those looking to develop on iOS. Clearly there are some people who really know what they’re doing, but it can be hard to find the right documentation.
Bork 3D – This engine is touted by the developer as an engine for programmers. It does not include a wysiwig content editor or scripting langue with pre-built scripts like the Stonetrip, and Unity engines, but does support 3DSMax, Maya and Collada. The excellent Anytime Golf was created with Bork 3D which has terrific graphics. The price is the lowest of all engines available at a base cost of $49.
2D iOS Game Engines
Now onto the 2D Engines. I’m a little hesitant to show these engines since the excellent Cocos2D is an excellent, and proven open source engine, but if you are a programmer and want to avoid programming as much as possible a wysiwyg editor is available with the following 2 engines.
Game Salad – This is probably the easiest game creator available on iOS if you are new to programming. This is potentially a purely drag and drop solution, and Game Salad users are out there cranking out games like crazy which is proof of it’s ease of use. When Game Salad first came out there were performance issues, but with updates to Game Salad itself, and power increases of iOS devices this really isn’t an issue anymore. Publishing to iOS devices is now free at the base level.
Corona SDK – The Corona SDK is a development platform using LUA that has been used in many different iPhone and iPad games and apps. It features high performance, and has really come a long way, and now has a very strong community. There are numerous examples and tutorials available from Corona and other developers. Ease of use and strong 2D performance have made Corona very popular. Corona starts at $199/yr.
Torque 2D for iPhone: iTorque – This is from the makers of the famous Torque engine, and is essentially the Torque Game Builder ported to the iPhone platform. This means that you can use the same tools as the Torque Game Builder in creating your game. With the recent turmoil of Garage Games the cost for iTorque has dropped dramatically now at $99 and you no longer need to purchase Torque2D for desktop in addition to this. What makes iTorque unique is that you get full source code so you have the potential to extend and update at will.
Game Editor – This is an option that I haven’t done too much with. There are some games being made with this, and this is a drag and drop solution. There is an open source option, but you have to pay for iOS publishing.
Adobe Flash CS5 – Flash CS5 has a lot of potential, especially if you’re already a Flash developer. There do seem to be some performance issues, but if you’re a flash developer looking to create a simple game this could be for you. There’s so many options available, but the lowest non-upgrade price I could find that wasn’t for students was $578.
In summary, I’d have to say Unity would be my choice for 3D engines, the community is unparalleled, and upgrades are frequent. If you’re looking for a pure 2D game engine and must have a wysiwyg editor it appears as though Torque 2D is currently the only viable choice.
I saw an interesting question being asked by an aspiring iPhone game developer, "Should I use CoreAnimation or OpenGL ES?".
Core Animation is fine for games where performance is not critical, and for new programmers will likely be easy to use, OpenGL is needed for anything else.
Core Animation utilizes OpenGL ES, it is high level, and in my testing works fine in situations where performance is critical.
OpenGL ES is an open standard that is used on a growing number of devices created by a wide variety of companies, and because CoreAnimation is a higher level framework built atop OpenGL ES it cannot provide nearly the same performance.
My opinion is that Core Animation is likely the appropriate choice for games where performance is not critical such as simon says type games, card games, and trivia games. Some might argue that OpenGL ES is easier to use, and it likely is if you’ve studied say.. DirectX.. but Core Animation (and Quartz 2D for that matter) is much easier to do simple effects in, and can be used with existing UIViews.
OpenGL ES is your choice for performance critical games. Which is essentially anything but simple mostly static games like the ones mentioned I above such as first person shooters, flight simulators and the like. You also get the added benefit of potentially being able to port your games to a device other than the iPhone, and there is alot of existing game code in OpenGL that can be converted the other way. That being said for simple, static games for a newcomer to graphics programming my choice would be Core Animation although if you can wrap your head around the tutorials and frameworks on my OpenGL ES resources page OpenGL ES may be for you.
I hope this provides answer for anyone trying to decide whether they should program in OpenGL ES, any opinions from those who have done more with Core Animation than I have would be greatly appreciated.
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.
Here’s my updated list of OpenGL ES resources, this list includes tutorials, engines, blogs, and books. I have updated it to include a couple of OpenGL ES 2.0 resources, and many other OpenGL ES 1.x resources that others have shared with me.
I have created a new version of this list at: 18 OpenGL ES Resources That You Must Know!
If you don’t have a basic understanding of 2D and 3D math for computer graphics your head will probably explode once you try learning OpenGL. To prevent that from happening you should at least understand the terminology, and the reasons why this math is needed. No need to grind through math problems like in college.. that’s what computers are for.
1. The Black Art of 3D Game Programming Chapter 10 This is a great introduction to graphics math, and pretty much crams 3 college courses I took into this chapter. The whole book can be found here for free. It is an old book, but the math still holds true.
2. Vector & Matrix Math Tutorial If you feel that everything in the resource above is flying above your head then you probably will want to take a look at this. I normally wouldn’t reccomend a resource that brags about being "book sized", but it is very good.
iPhone Specific Resources
3. iPhone OpenGL ES Tutorial Series I don’t know if Maurice SImon is the smartest person alive, but this is the smartest set of OpenGL ES tutorials I’ve seen. A terrific resource.
5. SIO2 Engine this is an excellent Open Source 3D OpenGL ES engine, look at the code, understand, and maybe even use the engine rather than write your own from the ground up (nothing wrong with that).
6. Oolong Engine An Open source 3D OpenGL ES Game Engine for Iphone, MIT licensed. Written by Wolfgang Engel former Rockstar Games programmer, and author of some intense DirectX books. Great to see the libraries in here for handling memory, loading 3d models, and performing math.
7. Cocos2D Iphone This is an excellent Open Source 2D OpenGL ES Game Framework for iPhone you can learn alot from going in and looking around the code. As far as Open Source frameworks go this extremely easy to use, well documented, and has an active community.
8. SDL for iPhone (SDL Version 1.3) The SDL library has been a popular open source library for probably over a decade, and has been used in many games. This is the iPhone port, and a great resource.
Non iPhone Resources
If you use these resources you’ll need to put in some time to get things running on the iPhone, but they are still excellent.
10. Nehe Tutorials Converted To OpenGL ES Michael Gorchak creator of the GluES library has put together this collection of tutorials converted from their original Nehe form. In case you haven’t heard of them the Nehe tutorials were the definitive free tutorials for learning OpenGL. Michael has done an excellent job of writing comments for these tutorials.
11. Khronos OpenGL ES Page This is the OpenGL ES "homepage" on which you will find the reference manual, and lots of examples. Not specifically IPhone, but there are some great examples here and even a complete racing game BSD licensed.
12. Khronos OpenGL ES 1.x Step-By-Step Tutorials This page is from Imagination Technologies makers of the Iphone GPU, and it contains the Khronos tutorials converted to OpenGL ES and created for the PowerVR technology. Good to lean from especially as to how they load Pod files.
13. Zeus CMD OpenGL ES Tutorials This site contains 25 Great OpenGL ES Tutorials and they are extremely well paced, this was a site I learned alot from.
14. Typhoon Labs OpenGL ES Tutorials Another excellent set of OpenGL ES tutorials if you’re addicted to tutorials you might want to check these out too.
OpenGL ES 2.0 Resources
These are the OpenGL ES 2.0 resources you know so far, the Khronos OpenGL ES page above also includes information on OpenGL ES 2.0. You can see there aren’t many that i know of so if you know of some killer OpenGL ES 2.0 resources please link to them
15. The OpenGL ES Programming Book The code from this book has been updated to run on the iPhone and can be found here. Make sure you have a solid understanding of OpenGL (or OpenGL ES 1.x) before starting this book.
16. The OpenGL ES Shading Language This is a free pdf book from Khronos, and actually a really good read, and will teach you what you need to know, again don’t try this until you at least have some OpenGL understanding or your head may explode. Thanks to Bill Dudney one of the authors of iPhone SDK Development for pointing this out.
This is a quick video on getting started with iPhone OpenGL ES:
That’s it, if you know of some other great resources please share them.
The second issue that I ran into when converting OpenGL code to iPhone OpenGL ES code was that the Glu libraries are missing and are widely used in OpenGL code. Fortunately as I said in an earlier post there is a GluES project in which many of the Glu functions have been converted to run in OpenGL ES. Now if you look in my code for Nehe Tutorial #2 on the iPhone I have added the functions:
m[0+4*0] = 1; m[0+4*1] = 0; m[0+4*2] = 0; m[0+4*3] = 0;
m[1+4*0] = 0; m[1+4*1] = 1; m[1+4*2] = 0; m[1+4*3] = 0;
m[2+4*0] = 0; m[2+4*1] = 0; m[2+4*2] = 1; m[2+4*3] = 0;
m[3+4*0] = 0; m[3+4*1] = 0; m[3+4*2] = 0; m[3+4*3] = 1;
void gluPerspective(GLfloat fovy, GLfloat aspect, GLfloat zNear, GLfloat zFar)
GLfloat sine, cotangent, deltaZ;
GLfloat radians = fovy / 2 * 3.14 / 180;
deltaZ = zFar – zNear;
sine = sin(radians);
if ((deltaZ == 0) || (sine == 0) || (aspect == 0))
cotangent = cos(radians) / sine;
m = cotangent / aspect;
m = cotangent;
m = -(zFar + zNear) / deltaZ;
m = -1;
m = -2 * zNear * zFar / deltaZ;
m = 0;
Into the Eaglview.m file. Now, this is very similar to the code in the GluES library only I removed the GLAPI and APIENTRY labels, these could be added as defines in your code if you don’t want to bother removing the labels. You can now use the code above whenever you run into some OpenGL code and want to use GluPerspective on your iPhone.
I’ll be getting into more depth exploring what exists and what doesn’t exist in OpenGL vs. OpenGL ES 1.x on the iPhone next time.