Game Engine
Game Engine
Overview
Game Engines
Commercial Open source
Why use a game engine: Less development time required Less testing and debugging Many features directly available Better focus on the game design Why not use a game engine: No control over the implementation of features Adding features not yet in the game engine might be cumbersome Dependent on other licensing scheme for release Other libraries/toolkits linked with the game engine (physics, AI)
Graphics Engine
Sound Engine
Physics Engine
AI Engine
Scripting Engine
Hardware Abstraction Layer DirectX, OpenGL, Hardware Layer sound card, graphics card (physics card, AI card)
Hardware Layer
Physical Graphics card Sound card Physics card Input devices (keyboard, mouse, joysticks, game pads, steering wheels, )
Drivers
Low level interface 9
DirectX HAL Components DirectDraw, Direct3D DirectSound, DirectMusic DirectInput, DirectPlay (DirectSetup) Still low level routines OpenGL Others
10
User Interface
Rather simple Monitors input devices and buffers any data received Displays menus and online help (can nowadays be pretty complex) Should be reusable, especially as a part of a game engine
11
Graphics Engine
Higher level interface, tuned to a particular graphics and game type Sprite-based Isometric Full 3D Can deal with higher level modeling concepts Sprites Solids Characters (articulated)
12
Graphics Engine
Handles more complicated display aspects Mini map Multiple views Overlays Special effects Some of these engines are for sale or available on the web Often remade or heavily tuned for each game Too much time and money is spent on this
13
Sound Engine
Function of sound
Effects to enhance reality Ambience Clues about what to do Clues about what is about to happen Sound formats Wave (high quality, lots of memory, fast) MP3 (high quality, compressed, slower) Midi (lower quality, very low storage, limited, adaptable) CD (Very high quality, fast, limited to background music)
14
AI Engine
Crowd behaviours
Panic, riots,
15
Physics Engine
Handles the simulation of the world Collisions Terrain changes Waves in the sea Explosions Object destruction Limited or non-existent in simple games
16
Physics Engine
Physics hardware
NVidia/Ageia PhysX
Physics is more and more integrated into the gameplay and game subsystems Physics-based animation Interaction with objects using physics
17
Scripting Engine
Advantages: Easy control of many (or all) features in the game engine Scripting language often provides full control Promotes data-driven design
Disadvantages: Performance Development support tools Learning curve
18
Scripting Engine
ENGINE
SCRIPT
20