An important early decision in developing any game is the choice of game engine. This ultimately will impact on the design and the way the game is put together. There are three choices: 1) develop a custom engine, 2) use an open source engine, or 3) use a commercially available engine.
The advantage of developing an engine from scratch is that the design can be optimised for the specific needs of the type of game being developed. Whilst this might offer the best solution in terms of performance (speed/memory), it undoubtedly is the least flexible solution. In addition, developing an engine requires significant resources (especially time), and so for a relatively simple game this is perhaps not a wise choice.
Alternatively, there are many open source game engines available: see iOS Game Engine List – Open Source iPhone and iPad Game Engines for an excellent review of some of those available for iOS. The advantage of using an open source engine is that it is readily available, and there are many so finding an engine suited to a particular type of game ought to be easy. The disadvantages of using an open source engine are the risk of development/support stagnating, there is a learning curve associated with using any new software/API, and there is usually no liability.
Commercial game engines overcome some of the limitations of open source engines in that expert support is usually provided as part of the product or service. Also, there is an (often false) assumption that commercial software is better and more reliable that open source alternatives. There are many commercially available game engines for iOS, and most cost only a few hundred pounds/dollars. This is not a huge outlay, but for a lone/indie developer producing a first application, choosing an open source engine is perhaps less of a risk.
Choosing the Game Engine for Mathemanic
In considering the choice of game engine for Mathemanic, it seemed unwise to develop a new engine specifically for the game. Mathemanic is relatively simple and it really is an experiment in iOS software development and deployment on the App Store. I have experience developing code for OS X (albeit non-commercial, research-related applications), and so I want a small(ish) project to ‘test the water’ so to speak. If the game fails then there is nothing lost other than the time to develop it.
Looking at the available options, it is clear that the community do an excellent job developing and supporting the open source game engines for iOS. Mathemanic requires only a small, lightweight game engine and, ideally, a relatively shallow learning curve. The engine that seems best suited to the needs of the game is the Sparrow Framework, developed by Daniel Sperl and Holder Weissböck. Sparrow is both small and lightweight, it is easily customised, there are many extensions, and the forum suggests an active development community.
I look forward to learning and working with the framework to develop Mathemanic!