Dana Vrajitoru
B583 Game Programming and Design

Game Engines

A game engine is a core software component of a video game that is non-game specific.

A reusable library or toolkit that can generate several games. The GE handles all fundamental elements needed to develop a game.

Requirements of a game engine:

Game Engine Components

Game Engine

The Renderer

Example of renderer output

The Physics Engine

Particle System

Particle Life Cycle

Example

Flocking Behavior

Example - modeling fire

Game Cinematics

Entity Manager

Other Managers

Sound Library

Example - Placing the Listener

// OpenGL camera position and orientation
gluLookAt(listenerPos[0], listenerPos[1], listenerPos[2], // camera position
          (listenerPos[0] + sin(listenerAngle)), 
          listenerPos[1], (listenerPos[2] - cos(listenerAngle)), // camera direction
          0.0, 1.0, 0.0); // vertical axis of the camera
// OpenAL - place listener at camera
alListener3f(AL_POSITION, listenerPos[0], listenerPos[1], listenerPos[2]);
float directionvect[6] = {sin(listenerAngle), 0, cos(listenerAngle), 0, 1, 0};
alListenerfv(AL_ORIENTATION, directionvect);

Sound Management

Examples of Game Engines - Top 10 on DevMaster.net 2007
Free

Commercial

Top 10 on DevMaster.net 2009 Free

Commercial

Top 10 on DevMaster.net 2011

Top 10 on DevMaster.net 2013

Case Detail - Ogre - www.ogre3d.org