I set a side some time this weekend to have a look at the Oolong Engine for the iPhone and one thing is clear - it is the domain of the graphics programmer, hardcore or otherwise (note: not me).
The project started as a side project by Wolfgang Engel exploring graphics programming on the iPhone and iPod Touch, seemingly initiated in late 2007. The project went by the name iGDK (the iPhone Game Development Kit), was located on google code, and got some early attention given that the official iPhone SDK was at that time unreleased. Still in late 2007, Wolfgang renamed the project to the Oolong Engine, seemingly changed the license agreement to the MIT License and created the still current google code project and public facing website. A mailing list followed soon after and is now the primarily means of support containing almost 12 months of user interest discussions.
The main form of documentation for the project is Wolfgang's blog entitled "Diary of a Graphics Programmer", that details (among other things) insight into his progress on the project as a free-time exercise, as well as a series of (at last count) 9 iPhone programming tips released at then end of 2008 (approximately one year after the project was initiated).
For completeness, the following list the Oolong related posts from the blog:
- iPhone Graphics Programming (Dec 2007), started looking into iPhone graphics programming
- Porting an Open-Source Engine to the iPhone? (Dec 2007), thoughts on porting an existing 3D engine to the platform
- Oolong Engine (Dec 2007), announce the Oolong project named after his favourite tea
- San Angeles Observation on the iPhone (Jan 2008), the porting of a graphics demonstration by Jetro Lauha called San Angeles
- Ported my iPhone Engine to OS 2.0 (Apr 2008), as the title suggests, the engine is ported to a beta of the 2.0 iPhone operating system
- iPhone development - Oolong Engine (Jul 2008), project now a real platform for iPhone game development with published titles
- Major Oolong Update (Dec 2008), a number of updates to the code base including a new math library
- iP* programming tip #1, summary of the underlying hardware on the iPhone
- iP* programming tip #2, setting up Xcode including all-in-one-mode
- iP* programming tip #3, review of folders in an application (project organization)
- iP* programming tip #4, the basic Oolong app, bridging objective-C and C/C++
- iP* programming tip #5, on pixel shader's and references the 'Per-Pixel Lighting' example
- iP* programming tip #6, on Matrix Palettes and the related code example
- iP* programming tip #7, on Point Sprites and the code example of a particle system
- iP* programming tip #8, handling the touch interface in a game
- iP* programming tip #9, VFP assembly programming
Oolong is the side project and domain of serious graphics and game physics programmers, and as such code is what this project is all about.
The project incorporates a number of sister open source projects and offers a suite of example projects. There is no documentation provided with the project other than some out-dated and vapid readme files for the examples and some reasonable in-line comments littered throughout the examples and the core engine code.
The leveraged third-party open source projects that were listed (or that I could deduce) and integrated into the code base are as follows:
- Bullet Physics (2.73), for 3D physics simulation
- Memory Manager, apparently by Fluid Studios although seemingly previously listed on Flip Code
- IPROF, A Portable Industrial-Strength Interactive Profiler for C++ and C, by Sean Barrett
- enet, the network subsystem used in cube
- VFP math library (also by Wolfgang Engel) offering math functions in iPhone-friendly ASM
- OpenAL sound engine/wrapper, (?)
Given my newness to the platform, I am unsure whether the failing example projects were an artifact of the 'project in flux' or my iPhone SDK that was hacked to run on my PPC iBook G4 (yep, non-Intel). Additionally, the PowerVR Examples use code optimized for the iPhone hardware and so may need to be deployed to the device for execution. Given that I tested the examples in the simulator, this is a third possible cause for the examples that crashed out.
I am in no position to assess the efficiency of the engines rendering pipeline, but I bet it is smokingly fast relative to competing engines. What is clear to me is that the engine is bare-bones, requiring the programmer to do a lot of work to realize the (in principle) simplest 3D scenes. I am not a graphics programmer and I've been spoiled recently by frameworks in other domains that have delivered big wins with modest effort. I'm not giving up, but I want to hedge my engine betting. My next objective is to assess SIO2 and see what it can offer in terms of a more scripted (ready to write game code) solution.


4 comments:
The following guide was just posted to the Oolong mailing list: Xcode Workspace Setup for Oolong
Another developer trying to choose between Oolong and SIO2 (I'm sure there are may similar posts out there): Oolong, SIO2 or commercial Game engine for 3D iPhone Games newbie?
SIO2 iPhone Game Engine v1.4 is out!
It is by far the most stable and complete SIO2 version ever and use the maximum power of OpenGL on iPhone and iPod Touch!
Check it out: http://sio2interactive.com
Post a Comment