Game Engine Design / iPhone Game Engine Resources

18 Jan 2010

I’m in the process of writing a simple game engine for the iPhone and have been doing a lot of research about game engine design. I also looked into using a prebuilt iPhone game engine, but decided it would be more fun to write it myself. Here are some resources I found helpful.

Books
Game Engine Architecture - A textbook about game engine design, this presents options and tradeoffs for each piece of the engine. Light on actual coding, so you’ll have to be able to develop things yourself, but jam-packed with useful information. I found this invaluable while in the design stage.
Game Coding Complete - Walks through the process of building a game engine and using it to create a full-fledged game, complete with AI and multiplayer networking. Found it useful in tying the pieces together, but only presents one approach to most problems.

Presentations
Gamasutra has all the presentations from the Game Developers Conference from 2000-2003 (Use the links in the sidebar to navigate year).
Marcin Chady - Theory and Practice of Game Object Component Architecture - The best presentation I found about component driven game object design.
Alex Duran - Building Object Systems - Features, Tradeoffs, and Pitfalls
Scott Bilas - A Data-Driven Game Object System
Rob Fermier - Creating a Data Driven Engine: Case Study: The Age Of Mythology
Doug Church - Object Systems
Mick West - Refactoring Game Entities with Components
Kyle Wilson has a blog with a bunch of strong posts about engine design. Be sure to check out the old posts as well.

iPhone Engines
Unity 3D - Commercial 3D engine. Combines powerful scripting with a visual editor to dramatically speed up the development process. Hundreds of games on the App Store. Well laid out component model.
Oolong Engine - Open source 3D engine. Uses PowerVR POD for storing meshes and Bullet physics.
SIO2 - Open source 3D engine. Toolchain built around Blender and integrates with Bullet physics.
Cocos 2D - Open source 2D engine. Well organized.
Torque 2D - Commercial 2D engine
Torque 3D - Commercial 3D engine
Shiva 3D - Commercial 3D engine. Windows only editor, but supports iPhone publishing

Engines for other platforms
Unreal - One of the most successful game engines on the market. Worth reading through the documentation to pick up on design considerations. Separates out most game logic into a custom scripting language called UnrealScript.
Source - Valve’s engine for Half Life 2 and many mods. Extensive wiki documentation.
idTech 3 - Engine from Quake III Arena, now open sourced. A few years out of date, but shows a lot about client-server programming as well as insane performance optimizations. There are a couple people who have gone through the source and give pointers on things to look at, which is immensely helpful.
Panda3D - Open source engine written in Python and C++. All game logic is written in Python. Does a good job of showing how to separate engine code from script.
OGRE - Open source C++ engine in process of being ported to iPhone
Crystal Space - C++ open source engine