I actually saw this blog post http://www.neverreadpassively.com/2009/03/review-of-iphone-3d-engines.html that compares the various 3d game engine for iPhone.
That got me interested. I was previously working on a home brew 2d 'engine'(engine might be an overstatement). Slowly, bit by bit, I am tearing parts out and replacing them with existing third party modules. I threw in lua first instead of working on my own scripting language. Then box2d for physics, which had me throw away other parts like collision code and visibility test.
And then I was around looking for a rendering module to integrate.
The author of that post had preferred and settled on Oolong, and to be honest, I had thought it to be better too. After all, the name wolfgang is a familiar name (from the various game graphics development book I had read before).
So I checked out the Oolong source from the google code repository.
It was disappointing.
I tried to first create an empty project and build, but I encounter a few compilation errors. It's as if the version I had was not a stable version. But there seemed to be no other alternatives.
There were a few files with the word win32 in the filename. I figured they are only for windows, so I removed them from my project. But why have them in an iphone engine in the first place?
A file in the touch module of Oolong is having calls to undefined functions. This is the last error that was preventing the compilation (if I recalled correctly). I did a search in the google web svn browser for the methods. The methods are defined in a file... that no longer exists... for over 100 versions for now.
That is probably well too much. It has remained undetected for over 100+ checkins? I googled around, and did notice another similar issue logged in the google code web-based bug tracker. The issue occurred in the sample demo project within the source download. And the issue was closed by removing the entire demo project from the source.
That does not strike well with me. Oolong seems rather... unstabe in this sense.
SIO2, on the other hand, was more polished. It came with a series of tutorial projects with the SDK download. The function documentation was lacking, but the wiki was nicely done with the explaination. The SIO2 data file format was a good write too. It took me a while to compile a fresh project too, but there was no major problems.
SIO2 was also more rounded in some sense. Oolong provide rather low level helper utilities, possibility targeting developers who want o roll a lot of their own game code by themselves. SIO2 provide some of the core of a game code, leaving sufficient space for us to write the glue code and game logic.
And this is pushing me over. Previously I stated that I was going to build the game 'engine' around box2d. Now I am going to build the game 'engine' on top of SIO2. Building on top of a more stable SDK definitely sounds more appropriate to me.