Sunday, January 28, 2007

Week 17: Game Engines

A game engine is the core software of a game with real time graphics. They will control tasks such as rendering the graphics, physics, animation, scripting and networking, and can help make game construction easier, faster and cheaper.

Developers can choose to construct their own game engine to suit their needs or can purchase an existing engine such as the Unreal engine. Developers can also purchase 'middleware', engines which can be tacked on to an existing engine to provide a different function. Examples of these are the Havok physics engine, which can be used to control ragdoll physics, and SpeedTree, which can procedurally generate trees once given examples or specifications. Both of these examples of middleware can save developers time.
Developers can also develop their own middleware and swap and share amongst each other. I seem to remember Naughty Dog and Insomniac sharing their weapon engine and environment creation engine.

Subtractive and Additive are terms used to describe the way a level is created within the game engine. The Unreal Editor for example uses subtractive creation. The game level begins as a solid block and the user uses brushes to carve away shapes. The brushes have many different qualities, and can add solid, semisolid or nonsolid objects to the game level. However this method can cause problems and lead to crashes in the editor due to the way the brush effects are memorised. Using mesh objects such as those created in 3D studio max can help to solve the problem as they are easier to process.
An additive level editor begins as a blank space and is then built up rather than being carved out.

The advantages of using an existing engine are that you know it works, it's ready to go and only needs minor adjustments, and you can focus on the artistic elements of your game. However, the engine may not do exactly what you want it to and your game will have to work around the limits of the engine with its gameplay. If you build your own engine, you can focus on exactly what you want your game to achieve, can make the code as complex or simple as you want and have the option of selling the engine later, ensuring more money from the game.

The key issues for next gen engines appear to be based around light and shadow. New dynamic shadow and light mapping is being developed for the Source engine, and the Unreal 3 engine site boasts of its support for four methods of shadowing techniques .

No comments: