My Top 3 iOS Game Development Engines

Ever wanted to make an iPhone game but didn't know how to create the game engine that runs it? You don't have to become a genius to create iPhone games, you just have to know how to do some object-oriented coding and have a cool game engine to do it. 

Here is my top 3 iPhone game development engines:

#3. Unity. Unity is an excellent game development kit. It was originally developed to create web-based 3D games. All that is required to play Unity games online is the Unity web player. Check out Tiger Woods Online for an example of how Unity works.

Unity has since expanded into mobile gaming development. Unity iOS is used to create 3D games, but it can also be used to create 2D games. A fine example of a 2D game is Zombieville USA. Look it up in the iTunes App Store. There is also a new style of 2D games called 2.5D. The creator of Zombieville USA made their followup game, ZombieVille USA 2, in 2.5D. The character on the screen can move in a Z direction or in regular terms back to front. It is still 2D, just that the characters can move more than just left or right.

The main scripting language for Unity is JavaScript. In order to code in the Xcode native Objective C, you must use a plug-in. From what I've seen, this can be a bit complicated. Unity does have an extensive support system in place with plenty of tutorials and 3rd party support as well.

The main drawback to using Unity is the price. It costs $400 for the basic version. This is not too bad for an indie developer, but when you are just starting out it may not be what you are looking for. The full professional version will probably be completely out of range for a new indie developer. The Unity Pro is $1500 and to add the Pro iOS version is another $1500. $3000 is a bit much for a starting engine. Unity does have a 30 day trial if you want to check that out.

Pros: Excellent engine to create quality games with plenty of support. Has  a 30 day trial.

Cons: Moderately expensive to very expensive depending on what you want to do with it. Not as user-friendly as a beginner would hope.

#2. Corona SDK. Anscamobile has their stuff together. This is one of the best mobile game development systems I have found. Corona SDK is the number 1 commercial mobile game development engine. Developers use this engine more than any other for iOS and Android development. 

The scripting language for Corona SDK is LUA. LUA is a very easy to understand language that is recommended for beginners of object oriented programming to learn with. A lot of World of Warcraft mods are created with LUA. Just skim through a book about LUA and you will see that it is very easy to understand. The game Bubble Ball™,  that knocked out Angry Birds from the top free apps, was developed by a 12 year old that used Corona by checking out a book about LUA at the local library.

Anscamobile's Corona site has several starter tutorials, an excellent API page, a huge forum, and a lot of templates for games that you can use in your own games. I haven't seen many books out there for Corona SDK, however Pact Publishing has a new book coming February 2012. There is a long list of 3rd party developers that create tools for even easier development. 

Corona SDK uses the physics engine Box2D to create the physics effect. Coding for the physics is done with one step process while most other engines require multiple processes using Box2D. 

Corona SDK is free to use indefinitely to learn. In order to upload your app to iTunes Connect, you have to pay a yearly subscription fee. The fee is not too expensive. It's $199 a year for iOS only and if you want to go Pro, which means you can port to Andriod as well, it's $349 a year.

One other thing about Corona SDK is that it doesn't use the Xcode environment to code. You have to use a text editor to code with LUA. I use TextWrangler for my coding.

Pros: This engine rocks. LUA is very easy to work with, the iPhone simulator will instantly update with every save of the file, there are plenty of free templates as well as extras when you subscribe. There are a few fan sites that have excellent tutorials as well.

Cons: For starters the price. It's not a bad price, but it does cost money to upload to the App Store. Also it doesn't use Xcode as it's coding environment, only for finalizing and uploading to iTunes Connect. 

#1. Cocos2D. Cocos2D is a free to use iPhone game engine with no strings attached. You can donate to the cause if you like, but you don't have to. 

Cocos2D uses the native Xcode language of Objective C. All of the coding is done right in the Xcode environment. However, Cocos2D is much more coding intensive than Corona and Unity. It will take longer to create a game with Cocos2D that with Corona SDK. If you find enjoyment in coding, then Cocos2D is the choice for you.

Cocos2D has an extensive community on forums and on fan sites dedicated to Cocos2D tutorials. There is definitely no shortage of help when it comes to Cocos2D. Just Google Cocos2D tutorials and you will see what I mean.

Many of the top apps, paid and free, have been programmed using Cocos2D. You can link your app to their showcase directly from your iTunes link once your app has been approved and ready for sale.

Cocos2D uses 2 different types of physics engines. Box2D and Chipmunk. I prefer Box2D, because it's a little easier to understand. 

The reason I chose Cocos2D as my number 1 choice for an iPhone game development engine is because it's free for one, and there is just so much documentation out there that I have no problem figuring out perplexing coding problems.

Pros: It's FREE! Excellent community. Has a great track record. Many games in the top 100 were created with Cocos2D.

Cons: It's very coding intensive. That's about all I can say about it that would be negative. If you like to do a lot of coding then forget the cons.

If you are a beginner to iPhone game development, check out these game engines. At least one of these will make you experience much more pleasant. Creating an excellent game using just the Xcode SDK can be done, and done well. But, using an exisiting game engine will make it a lot easier.

Good Luck in your game creating!