Archive for: September, 2008

iPhone 3D engine test: SIO2

Yesterday, I digged deeper into the SIO2 3D engine which I mentioned in my last post. This is what I’ve thrown together in some hours of work. (Featuring a free model by Sven Daennart, one of my favorite 3D artists.)

SIO2 test application running on iPhone Simulator

The SIO2 API is very OpenGL-ish and features a bunch of C methods like “sio2ResourceGet”. It requires you to have one global attribute sio2 around which is the entry point into the engines internals, like the SIO2 window. (This is the point where it gets a bit annoying since every SIO2-related pointer in there starts with _SIO2… Hold on, I’m already using this sio2 global which you’re expecting me to have, so why do I need to type something like sio2->_SIO2window->_SIO2windowrender…?) I prefer an object-oriented approach anyway, so I started to wrap the engine into my own C++ classes which went pretty smooth so far. Fortunately, SIO2 comes with eight examples, each accompanied by YouTube video tutorials, and a skeleton project you can use for a jump-start. Moreover, a good part of the examples is documented inline, but still some API functions are lacking any documentation.

Featuring Theora video, OpenAL sound, Lua scripting and Bullet physics, SIO2 has an excellent basis to build upon. Still, there are drawbacks, e.g. it’s currently lacking support for skeleton based animation (but it’s in the works according to the page) and it doesn’t come with a scenegraph and thus doesn’t regard parent-child relationships modelled in Blender. Also, in order to attract some more people, there should be some written tutorials available since not everyone using it is a Blender expert also who can guess what the author is doing from watching the blurry and uncommented videos. But, don’t get me wrong here, I highly appreciate the excellent work and I’d just like to encourage the author to put more effort into documentation.

3D Engines on iPhone / iPod

I recently evaluated the 3D engines available on iPhone. This is the list that I compiled, plus some commentary.

  • iTorque (commercial) is the well-known Torque game engine available for iPhone. It comes in three flavours (2D, 3D, Studio) and professional and indie license, although indie is not yet available (scheduled for October 15th). Since Torque is quite popular, seems to be well documented, has a huge community and several products using it have shipped, this would be a good bet, but from my point of view, it’s overpriced.
  • SIO2 (free) is a game engine with a bunch of cool features like physics and scripting, plus a sophisticated tool-chain around Blender. Here’s a YouTube video showing the engine in action. The only thing I don’t like about it is that so few people seem to be using it and that you need to display an 10 seconds video when using it – I’d prefer to add them to the credits.
  • Oolong Engine (free) is an engine written by Wolfgang Engels, one of the computer graphics gurus around, if you ask me. It makes heavy use of PowerVR formats and brought Bullet physics to the iPhone. Unfortunately, besides some examples and a mailing list, there’s barely any documentation available.
  • Unity3D (commercial) is a huge, fully-featured 3D game engine which was announced to be coming to the iPhone in March 2008. Unfortunately, there’s not a single sign of it yet.
  • Shiva (commercial) doesn’t seem to be an engine but more an authoring tool, but I list it for sake of completeness.
  • Living Arcana (free) is a project which features an iPhone port of an existing 3D engine which will be available under LGPL. Unfortunately I didn’t find this port.
  • Rumor has it that Irrlicht comes to the iPhone but I cannot confirm that yet.

Needless to say, I’d go for Irrlicht once it’s available. Still, I’m interested in your experiences. Which engine do you use?