1
Overview
Game Engines
Commercial Open source
Game Engine Architecture
Physics, AI, Graphics, etc.
What is a Game Engine?
A game engine is the core software component of a computer or video game or other interactive application with real-time graphics Term Game engine was coined in the mid-1990s due to the development of first person shooters
What is a Game Engine?
Main goals of a game engine: Provide for underlying technologies Graphics Rendering Physics engine Sound Scripting Animation Artificial Intelligence Networking Simplify development process Run on multiple platforms
4
Advantages and Disadvantages
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)
The Game Loop
A game is a real-time interactive application Three tasks that run concurrently:
Recompute the state of the world The player interacts with the world The resulting state must be presented to the user (graphics, sound, etc.)
Your Game Game Engine API
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
Hardware Abstraction Layer
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
Gameplay click here
AI Engine
Behaviour & interaction (dialogue) scripts
Especially in adventure games
Flocking Obstacle avoidance Attack strategies
Hiding Attacking player as a team of enemies
Decision making Path planning
Search algorithms Waypoint networks
Crowd behaviours
Panic, riots,
15
Gameplay click here
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
Scripting languages in game engines:
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
What belongs in a script and what belongs in the engine?
Graphics Rendering Shadows/Lighting Occlusion Culling Physics Dynamics Collision detection Raycasts AI Pathfinding Fuzzy controllers Planning/A* search 19 Graphics Time-of-Day Add/Remove lights Loading/moving objects Physics Object mass/friction Collision events Raycasts events AI Path selection Decision making Goals/objectives
ENGINE
SCRIPT
20