Armageddon Wars uses our own in-house 2D game engine. It's designed to be easily ported to other platforms. We always use cross-platform technologies where possible: OpenGL ES, c++ and OpenAL.
The engine is optimised in 4 different areas:
We didn't really need to do much speed optimisation for the 2D stuff, just draw call batching really. The engine can render 800 tiles at 60 FPS on iPhone 3GS, or 30 FPS on first gen. iPod touch.
We've optimised the loading of resources, so that the player is never waiting for a level to load. The total start up time for Armageddon Wars is 3 seconds on a iPhone 3GS.
We use memory pools widely. Memory is re-used rather than created to reduce fragmentation. A combination of 16-bit and PVR textures are used. UI components are textured using a tiling system to reduce texture memory use.
Armageddon Wars is one of the few "battery friendly" games in the App Store. It dynamically throttles the frame rate during game play to conserve battery power. Read more details in our article on GameDev
The AI code uses a generic score-based algorithm (in fact it's an improved version of this.) It provides an unpredictable and challenging opponent, although it's deliberately biased towards aggressive attacks, in order to make it easier to beat.
We have open sourced some of our code and production tools, which you may find useful: