Very good article, from

http://www.neverreadpassively.com/2009/03/review-of-iphone-3d-engines.html

I need a 3D engine for my iPhone project. I’ve hacked together my own 2D engines for rendering and physics in the past, but I have done very little OpenGL, and all the time I spent hacking around in the Quake, Quake2, Quake3 engines was focused on game logic and AI. This means that it is hard for me to define suitable requirements upon which to discriminate between available iPhone 3D engine middleware.

Requirements
Generally, I think my needs are modest (although still too rough to prepare a feature matrix comparison):

  • 3D rendering and rigid body 3D physics
  • Demonstrated iPhone integration and deployment (technically possible and apple has permitted deployment)
  • Low polygon counts regarding world entities, robust physics simulation (one creature as a dozen or so cuboids connected by simulated muscles)
  • Facility to execute physics simulations in a/the world without rendering (at the same time as rendering would be really nice but implausible given the hardware)
  • Programmatic management of 3D world entities (definition, instantiation, post-simulation manipulation)
  • No cost (I don’t mind open sourcing my project if it is permitted by the conditions of the Apple AppStore)

Candidates
Two clear candidates have emerged that may satisfy my needs, as follows:

  • SIO2 Interactive, SIO2: An opensource (LGPL) game engine for the iPhone. It uses the Bullet physics library and 3D objects and scenes are prepared using the opensource tool Blender. The project offers many tutorials (16) some of which are screencasts. The project also boasts a healthy number (15) of deployed iPhone applications available in the AppStore. The engine has a free version that imposes a flash screen (advertisement for the engine), an indie version is available without this restriction for $50USD. The volume of developer documentation in the form of tutorials is great, although the seeming dependence on Blender to prepare the 3D models and scenes used by the engine may be a deal breaker if there is no programmatic workaround.
  • Oolong Game Engine (on google code): An opensource (MIT License) game engine for the iPhone with some credibility given that it was developed in large part by Wolfgang Engel, Rockstar Games‘ lead graphics programmer. It uses the Bullet Physics Library for 3D physics and fluid studios for memory management. It has seemingly been used in a small number of titles (3?) currently available in the AppStore and proposes that it was used as the basis for the iTorque Game Builder. The source code comes with a number of demonstrations, although developer support documentation and tutorials are really lacking, and the mailing list is quite empty. This might be an engine for hard core developers.

Missed the cut
I came across four engines that missed the cut only because of an associated cost or maturity. I may reconsider selecting one of these engines if (and only if) it can be demonstrated that their adoption will save me time (or money – yes I’m keeping timesheets) on this project.

  • Unity 3D Engine (Unity Technologies): A cross platform engine that offers iPhone integration features and support. A large number of titles use the engine and presumably some of which are available in the AppStore. The core engine costs $199.00USD (Indie) plus there is a cost of $399USD (Basic) for iPhone integration totalling at least $600USD to get up and running. The cost buys support both in terms of documentation and a company that will return your support emails and calls. The engine looks slick and it seems a lot of people are using it.
  • tTGB – the iTorque Game Builder (Garage Games): The Torque engine has been ported to the iPhone and is offered as two products: iTGB for 2D games which is available now for $500USD (presumably built on the old TGEA platform), and a planned but as yet un-released T3D that presumably will have iPhone support. The software is both a builder software for making the game (WYSIWYG 2D editor) as well as an engine and packing tools for deploying your game. As with Unity 3D, the cost of iTGB is for the documentation and human support, and also like that engine it looks really slick. It was unclear to me how may titles have been built using this product and are available in the AppStore.
  • Ston3D Engine (ShiVa): The Ston3D engine offers iPhone integration support as a free add-on after purchasing the core product called ShiVa for $169.00GBP (about $244USD). ShiVa is a Windows-based game development product (like the Torque product) and offers a crippled free version that prevents publishing created games. A number (at least 8) of iPhone titles have been released based on the engine and are available in the AppStore.
  • CubicVR Engine (on sourceforge): An opensource (LGPL) game engine with no clear stable builds (only SVN access). There are some iPhone demonstration projects provided with the source code. It uses the Bullet physics library and supports other mobile and console platforms. The code base is seemingly the basis for the Pocket Hoops game in the AppStore. The project does not seem very mature and there are no clear tutorials or support documentation for starting a game project. As such, it did not make the cut.

Out of Scope
I came across a number of related projects that partially addressed some of my needs, but ultimately were out of scope. They are listed here for completeness, or in case I miss-interpreted the projects.

Alternatives
Some alternatives popped into my head while ‘deep googling’ this problem and I thought I’d list them in the event I do decide to re-scope the project.

  • Write my own: One option that I briefly considered and dismissed given the time it would consume is to write a 3D rendering engine myself. I might be able to piece together the things I need from tutorial sites like Nehe and OpenGL ES. For the physics I could use an off-the-shelf solution like Box2D (used for Rolando) or Bullet.
  • Port an engine: There are many great 3D engines out there just ready and waiting to be ported to the iPhone. May of the communities of those engines have manifest demand, are discussing, or have already started the porting process like Irrlicht, OGRE, and Allegro. Frankly, I do not have the current chops or inclination to get into a port.
  • Use a Quake: Both the opensource (GPL) Quake and Quake III Arena game engines have been ported to the iPhone and are available on jailbroken phones via Cydia. Both engines are 3D, have long histories of community involvement (mods and engine ports), and the source code of their ports are available (quake4iphone and quake3-iphone). Also, id Software might be releasing these titles officially soon enough. I’ve had experience with these engines before, but not regarding the simulation and rendering of arbitrary programmatic generated world entities. As such I may have more trouble than a conventional 3D engine in trying to shoehorn non-quake techniques into the engine (maybe a good fallback position).

The Plan
As a warm up I was thinking of writing some tutorials on how to compile and deploy wolf3d, doom, quake, and quake3 for the iPhone. I suspect they will not be too hard to write given the sources are out there, and I expect it’ll provide a good opportunity for getting up-to-speed on the environment.

Regarding my choice of 3D engine, I want to go with Oolong for as long as possible and fallback to SIO2 if progress proves too slow. I have booted the sample programs from both projects in the iPhone simulator, and have started to get a feeling for how one might map the algorithms and data structures from morphology evolution research into a 3D world. This brief research into available engines gives me some alternatives if the scope of the project changes or if I get fed up and decide I require developer documentation and support. I’m looking forward to starting the build early next month, after I finalize some GUI and algorithm designs.

Check out a similar round-up by Matthias Gall from September 2008 entitled “3D Engines on iPhone / iPod“.

Please drop me a comment or email if you know of any further 3D engines or related resources.

Related posts:

  1. [Gathering] Awesome sites for iphone develop and OpenGL ES Based Knowledge Black Art of 3D Game Programming: Writing Your...
  2. [Gathering] Awesome sites for iphone develop and OpenGL ES Original URL: http://lovefei.com/?p=642 Based Knowledge Black Art of 3D Game...
  3. iPhone AppStore Secrets – Pinch Media Very good slides about statistics of apple store. : )...
  4. How to successfully develop iphone app and run it : ) 最近无聊玩了玩iphone开发,经过了几番波折,现在把如何设置 如何开发 如何在touch上运行 稍微写一些: ) 目前省去了99$,等开发的胸有成竹了就可以加入计划了 XD 环境 : Macbook...
  5. iPhone Coding: Using the Accelerometer You don’t need to use a lot of fancy routines...

Related posts brought to you by Yet Another Related Posts Plugin.

Tags: , ,

Leave a Reply

You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">