FuzzySpoon, thanks for the template code (very well documented, thank you). Worked like a charm after a complete rebuilt, and I can now run Irrlicht on the simulator and on the device.
I've previously written my own OpenGL based game engine from scratch which I've used for a couple of commercial products for the iPhone, the latest being Embargo (http://www.zenyes.com
for screenshots and gameplay video). From a graphics perspective, my engine lacks a lot of features which Irrlicht has. On the plus side, I've added quite a few features a iPhone game engine needs:
- Freetype fonts via FTGL, modified for GLES.
- PVRTextureCompression via Oolong
- Alpha sorted branch in scene graph which works well with tile based renderer.
- iPhone platform support (touches/accelerator/rendering thread (20% speed boost), cross platform locks, message ports, etc)
- Landscape orientation (90 rotation) - quite a number of changes to camera, skydomes, input processing etc. are needed for Landscape orientation.
- All 2D elements use percentage based positions, so it looks the same at 1680x1050 and 320x480 or 480x320.
- OpenAL and OggVorbis stream support.
- cross platform, so all development done under Visual Studio, while final testing done on device.
- tuned for OpenGL ES1.1
- custom physics engine
The biggest problem for my engine is that although fast, it lacks many graphic features which exist in more mature engines.
My next project needs a heavier physics engine, so I'm going to use Bullet. However, the most efficient way of informing the physics engine about the game world would be to use a BSP based enviroment (which Bullet supports), but my engine doesn't. I'm getting tired of constantly reinventing the wheel and adding new features to my engine all by myself. Yes, I've learned a lot, but at the end of the day, I've realised that my from scratch engines end up having an almost identical design to existing mature engines (eg. its scary how similar to Bullet my physics component is, and I share a lot of common design with Irrlicht). I alone cannot keep up with what teams of excellent developers are creating. So I've decided to investigate graphics engines and see which community to join, and where to add my contributions. Irrlicht just seems to be the best option for the moment, especially with a planned GLES2.0 code path.
Having said all that, a lot of features I'm going to port from my game engine to a new engine are at the moment iPhone specific. I dont see Irrlicht inheriting PVRTC, or freetype for fonts, or accelerometer/multitouch input. There are however quite a number of OpenGL/GLES optimisations which I've identified which I can backport to the engine I'll end up using.