Wednesday, 11 April 2012

Game Engines

Game engines are used to bring games to life via functions such as physics, rendering, collision and sound as well as animation. Other game engines require a little extra, for example an MMO-RPG would require networking.

Here are some examples of game engines and games they've been employed in the making of:
CryEngine - Crysis, Far Cry, Aion
Crystal Tools - Final Fantasy XIII
Gamebryo - The Elder Scrolls IV: Oblivion, Fallout 3
Source - Half-life 2, Team Fortress 2, Portal 1 and 2, Left 4 Dead etc
Unreal - Mass Effect, Gears of War, Borderland

Types of Engines
According to Jeff Ward, a co-founder and lead programmer at Orbus Gameworks, there are three types of game engine, from lowest to highest level he describes them as: Roll-your-own, Mostly-ready and Point-and-click.

Roll-your-own: These are when companies make their own engine from the ground up however they can still use publicly available applications help by obtaining middleware (explained later) for such functions such as physics and sound. Havok, for example.
The good thing with this is that you can pick and choose what you want for your engine, so the programmer has a lot of control and flexibility. However, because outsourced libraries may not work together it is required to build the engine up from scratch meaning these often take the largest amount of time and are less attractive to a lot of game developers.

Mostly-ready game engines: Already pre-packed with most of the goodies you'd expect in an engine like renderers, GUI, physics etc and even tools so there's very little programming required (if any at all). However these are a tad more restrictive than Roll-your-own engines due to being optimized for general application. That said, these engines have been made professionally and long hours have been spent fine-tuning them.
Examples of Mostly-ready engines: OGRE, Unreal and id Tech.

Point-and-click engines: Designed to be as user friendly as possible these engines come equipped with a full array of tools and require very little coding. Unfortunately, they are severely limiting, allowing for only a couple genres or one or two graphics modes. To their credit they allow you to work quick and play quick so it's not all bad.
Unity3D, Torque and GameMaker are three examples of this style of engine.

For many years game developers created their own engines and updated them when necessary, keeping them in house. However, the cost of creating your own engine has increased considerably and so companies have opted to make only specific parts of an engine, like physics for example, and then outsource the rest. These smaller packages are called middleware. These engines often do a particular job more convincingly than general purpose engines like Unreal.
For example: Speedtree was used in The Elder Scrolls IV: Oblivion for more realistic trees and vegetation whereas Havok provides a concentrated phsyics simulation system accompanied with a plethora of animation and behaviour solutions. Assassins Creed, Bioshock, Elder Scrolls and Fear are but a few of the big titles Havok has been used on.

No comments:

Post a Comment