There are a number of technology options for creating games for Apple's iOS platforms. In this first part of a series, we'll cover some of the choices for developers new to the platform. Previously, I covered the basics of designing for mobile development in general, so we'll go a bit more in-depth here. Taking the iPad as a specific example, the combination of the 3rd Generation iPad brings a dual-core CPU together with quad-core graphics, leading to capabilities in excess of a Nintendo Wii. When used with an Apple TV for mirroring to an HDTV, it is strikingly similar to the upcoming Wii U.
Framework or Engine Selection
There are a number of options out there, and it seems like you hear about a new one every month or so. Choosing your framework or engine for the project largely depends on your programming skill or your need to port to other platforms besides iOS. If you're new to programming, or not experienced with game-specific programming, an engine may be the best place to start. Conversely, if you have done a lot of game development (particularly for consoles, or other devices which have very specific feature sets and capabilities), you may find that a framework is your best bet for turning out the sort of project you want to achieve.
Here are some of the most widely-used options:
A vast majority of iOS games are currently 2D. They've got a quick production cycle, are far cheaper to produce, and require a lot less on the hardware side to run well (allowing for playability on older devices).
Cocos2D for iPhone can lay claim to being the groundwork for a huge number of games available on the App Store (their site currently lists 3457 titles using the framework). Instead of being based on Python, like the standard Cocos2D distribution, it uses objective C.
Kobold2D is an extension of Cocos2D which has many features already implemented to get a program off the ground faster.
Box2D is not an entire game framework, but a physics engine. It is commonly used to take some of the more complicated programming out of a project where physics libraries can be used instead. Box2D was revealed to be the physics code behind Angry Birds.
MonoTouch for iOS is an iOS-ready implementation of the .Net framework and C# languages. The core Mono language is cross-platform and ideal for developers seeking to port their projects to other platforms with a minimum of additional work.
Corona is a framework designed to build games, apps, and ebooks for iOS and Android devices. It is based on OpenGL, OpenAL, Box2D, and LUA technologies, which allows experienced developers to get up to speed quickly.
Selling game engines is a serious business. Epic Games' "Unreal Engine" and Unity Technologies' "Unity" engine are two of the heavy-hitters for mobile development now. Unity hit the mobile devices first.
Unity is well-established as a platform for indie and pro development on many platforms, including iOS. A full game engine, it has the option to evaluate basic functionality for free. While it is of limited use to a non-programmer out of the box, it is extensible via a large number of plugins that allow for flow-based visual scripting and state machine editing. It is not currently viewed as a viable alternative for AAA titles by most commercial studios. Commercial licensing is an up-front cost (determined by which platforms will be developed for) with no royalties for the Pro version, or splash screens and feature limitations for the free version.
Unreal Development Kit (UDK)/Unreal Engine: UDK is the free version of the commercial Unreal Engine. UE powers some of the best known AAA titles on the market today, and includes full access to the latest source code from the developer, Epic Games. UDK gives developers access to the script source code, but the binary executable file is unable to be modified. UDK has a built-in visual scripting system, a powerful shader editor, and many artist-friendly tools, making it far easier for a non-programmer to begin experimenting with gameplay prototyping. UDK games can be released for free with no cost to the developer. Any game that is to be sold commercially requires a $99 up-front fee, and a royalty paid to Epic after developer profits exceed $50,000.
These are just some of the most popular general-purpose solutions available. A number of other choices are available for those looking to create more specific types of games (2d/3d isometric, etc). When evaluating other options, always be sure to check the feature set against one of the generic frameworks to make sure that you won't code yourself into a box by choosing a more focused framework for development. Having to re-invent the wheel three-quarters of the way through a project is something many coders have experienced, and is a common industry horror story you don't want to have personal experience with.