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.)
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.