The Oolong Engine is written in C++ with some help from Objective-C. It will help you to create new games and port existing games to the iPhone and the iPod touch. Here is its feature list:
* OpenGL ES 1.1 support
* Math library that supports fixed-point and floating-point calculations with an interface very similar to the D3D math library
* Support for numerous texture formats including the PowerVR 2-bit, 4-bit and normal map compression formats
* Support for PowerVR's POD (Scene and Meshes) and the 3DS files formats
* Touch screen support
* Accelerometer support
* Text rendering to support a basic UI
* Timing: several functions that can replace rdstc, QueryPerformance? etc.
* Profiler: industry proven in-game profiler
* Resources streaming system
* Bullet SDK support (for 3D Physics)
Planned features:
* OpenAL support
* a new model and scene format like the .x file format or the DOOM III formats
Oolong 1.x is used now in
o iPhysics
Oolong Engine 2.x is developed with the official iPhone SDK (Oolong is in development since September 2007). So it requires a Mac OS X 10.5.2 driven INTEL based Mac with the iPhone / iPod touch OS 2.0 and you need to be a registered developer to use it.
Check out Oolong Engine at Google code for the latest version.
The new discussion list is
here
Many of the assets used in the Oolong Engine are copyrighted by Imagination Technologies / PowerVR. They allowed us to use them and we would like to thank them for this. It is very helpful to work with assets optimized for the underlying hardware platforms. Having assets from PowerVR allowed us to port some of their SDK examples over to Oolong and this way show off the features of the graphics chip better.
|
Cleaned up the code base of the San Angeles demo. There is a switch now that let's you switch on and off the usage of indexed triangle lists. So the triangle soup that is generated from the procedural geometry algo is converted into an indexed triangle list. There are still a few problems with the generation of normals and colors because the relationship between vertices and the normals and colors is different. In the original code path, the code assumed quads as the base primitive form. So for each quad there should have been the same set of normals and colors. I need to find a way to keep up this relationship for indexed triangle lists.
The example only runs on the simulator. The support on the device broke between beta 4 and 5. I will submit a bug report to Apple. Furthermore I increased the framerate for all examples to a minimum of 60 by decreasing the timer value. Many of the examples actually run with 60 frames so it is nice to show this off. |
I just made a minor update to the code base. I installed beta 8 and it
seems to work without any changes. I also realized that my small
little commit I did before I left for Germany kept all the PowerVR
examples from compiling .... I fixed that. |
Added a comment regarding assets and examples used from the PowerVR SDK to the Oolong Google code website. I also moved all the PowerVR SDK examples that were ported over to Oolong in the folder "Ported PowerVR Examples". Having those examples with the assets around makes a huge difference. Thanks PowerVR for allowing us this!
|
Paul Scott is joing the Oolong team. He is an experienced Mac game engine developer and worked for Garage Games before on the Mac platform layer of the Torque game engine. He is currently making a game for the iPhone using Oolong and wants to roll back additions to Oolong he is making for his game. Welcome to the team!! I will also add a discussion group for the Oolong Engine soon ... stay tuned.
|
Changed the planned feature list. I think OpenAL is more important than all the other stuff :-)
|
Just uploaded the latest version of the Oolong Engine that compiles with the iPhone SDK beta 6.
|
Uploaded an early version of a new Physics example that shows how to pick objects and do something with them. It is currently not quite working as expected due to my lack of experience with Bullet. Added a nice abstraction of the touch screen that should be easy to use from C++.
Things that are broken in the moment: SanAngeles still waits for me to add code that calculates the normals for the lighting. I changed the example from using a soup of triangles to using a triangle list, but need to calculate the normals now differently. The implementation of the Profiler is not quite right currently. The Oolong icon is not used currently on the buttons .. don't know why but should be easy to figure out ...
|
Uploaded the beta 5 release. Next task is to create an example that shows how to pick an object. After that it is an example on how to use OpenAL.
|
I added better support for getting the accelerometer vector to the Accelerometer example. With the release of beta 5 today I will start porting the engine over to the this version of the SDK.
|
I will upload today a new release on google code that will work with beta 4. Stay tuned! Here is the tea that you might enjoy while programming with Oolong :-)
|
Erwin Coumans is visiting our office this week. Our conversation went somehow to iPhone programming and I showed him my demos. Today I brought in my Mackbook Pro with the whole dev environment and showed him the renderer and the stuff I did. After I gave him the source code I had a meeting. When I came back from the meeting he was smiling all over his face and he showed me the following demo that he wrote with the Bullet Physics SDK in the meantime :-)
There is also a movie here
|
Ported the rest of the examples with the engine over to OS 2.0. Here is a screenshot of the main desktop:
Here are the other examples:
This example shows a basic skeleton that can be used to start a game.
This example shows how to load PowerVR's 2-bit per pixel color textures and their 4-bit per pixel normal map format. It also shows how to apply per-pixel lighting with the register combiners.
This example shows how to load PowerVR's POD geometry format with a keyframed object. There is also a per-vertex light rotating around the scene which is also loaded from the scene file.
This example shows the in-game profiler that comes with the engine. It has several ways to show the data ... this is only one of them.
This example shows the accelerometer support in the engine. It looks very similar to the official iPhone example. The main difference is that the accelerometer support now lives in the engine.
This is my still very slow demo :-) ... need to work on this.
|
Got a skeleton application running on my device. Here is a screenshot:
Ok ... a rotating cube probably is not that interesting, but the cool part is that a whole renderer is running in the background. So the renderer framework works now. Apart from that I added accelerometer support to the engine. I used the accelerometer example of the SDK and abstracted the code so that it is generic and easy to add to any example. Here is a screenshot:
|
Got accepted for the iPhone developer program last week and I can run now applications developed with the iPhone SDK on my iPod touch (my main development device). The latest iPhone SDK has support now for 32-bit backbuffers in combination with a 24-bit depth buffer. I am re-writing the engine again from scratch and I try to keep it running on OS 1.x and OS 2.x devices.
|
Started to port Oolong over to the official iPhone SDK. My target is to have a OS 1.x and a OS 2.x rendering path, so that it can be used to develop apps even if there is no access to OS 2.0. You would need to have installed the unofficial and official toolchain for this. Funny detail: EAGL only supports 5:6:5 backbuffer and a 24-bit depth buffer. Oolong Engine running on the OS 1.x supports 32-bit backbuffers.
|
I added code to retrieve some performance data from the San Angeles demo. It seems like the demo is using 263 draw calls to glDrawArrays that just draws triangles and it throws 62872 triangles at the PowerVR chip. Those triangles are not triangle lists or strips ... so there is some room for improvements. To reduce the number of draw calls per frame, frustum culling should help a lot. File system 1.1.3 did not let me write log files into the root directory. So they are now written to /var/root
|
Switched my development environment to Mac OS X 10.5.1 and upgraded to the 1.1.3 filesystem. So all examples now compile with the latest filesystem. I added a triangle stripifier that creates triangle strips from triangle lists, several functions to do vector transformations and started to write a collision / culling library for 3D physics that supports floating-point or fixed-point math. Next on my list is the advanced camera model implementation.
|
Oolong supports now 32-bit rendering by default and there is no need to synchronize with the UI update. So the update of the screen is now independent from the UI update. This was a huge
speed increase.
|
Added a short movie of the San Angeles Observation port to YouTube. You can find it here
|
I ported the San Angeles Observation demo from Jetro Lauha to the iPhone. You can find the original version here http://iki.fi/jetro/ Here are some screenshots
|
Happy new year! |