1.6. Runtime Engine Architecture 29
Gameplay Foundations
Dynamic Game Object Model Event/Messaging System
Scripting System
Static World Elements Real-Time Agent-Based Simulation World Loading / Streaming
High-Level Game Flow System/FSM
Skeletal Animation
DecompressionAnimation
Kinematics (IK)Inverse Post-ProcessingGame-Specific
Additive BlendingLERP and Animation Playback Sub-skeletal Animation
Animation State Tree & Layers
Profiling & Debugging
Performance StatsMemory &
In-Game Menus or Console
Recording & Playback
Object AttachmentHierarchical
3 rd Party SDKs
DirectX, OpenGL, libgcm, Edge, etc. Havok, PhysX, ODE etc. Boost++ STL / STLPort Kynapse Granny, Havok Animation, etc. Euphoria etc.
OS
Drivers
Hardware (PC, XBOX360, PS3, etc.)
Platform Independence Layer
Platform Detection Atomic Data Types Collections and Iterators File System Network Transport Layer (UDP/TCP) Hi-Res Timer Threading Library WrappersGraphics Physics /Coll. Wrapper
Core Systems
Module Start-Up and Shut-Down
Parsers (CSV, XML, etc.)
Assertions Unit Testing Memory Allocation Math Library Hashed String IdsStrings and Debug Printing and Logging
Profiling / Stats Gathering Engine Config(INI files etc.) Random Number Generator Surfaces LibraryCurves & RTTI / Reflection & Serialization Object Handles / Unique Ids
Localization Services
AsynchronousFile I/O
Movie Player
Memory Card I/O (Older Consoles)
Resources (Game Assets)
Resource Manager
3D Model Resource ResourceTexture ResourceMaterial ResourceFont ResourceSkeleton ResourceCollision ParametersPhysics World/MapGame etc.
Human Interface Devices (HID)
Physical DeviceI/O
Game-Specific Interface
Audio
Audio Playback / Management
DSP/Effects
3D Audio Model
Online Multiplayer
Match-Making & Game Mgmt.
Game State Replication
Scene Graph / Culling Optimizations Object Authority Policy
(BSP Spatial Subdivision Tree, kd-Tree, ...)Occlusion & PVS LOD System
Visual Effects
Particle & Decal Systems Post Effects
HDR Lighting Subsurf. ScatterPRT Lighting,
Environment Mapping
Dynamic ShadowsLight Mapping &
Front End
Heads-Up Display (HUD) Full-Motion Video (FMV)
In-Game GUI In-Game Menus Wrappers / Attract Mode
In-Game Cinematics (IGC)
Collision & Physics
CollidablesShapes/
Rigid Bodies Phantoms
ConstraintsForces & Casting (Queries)Ray/Shape
Physics/Collision World
Ragdoll Physics
GAME-SPECIFIC SUBSYSTEMS
Game-Specific Rendering
Terrain Rendering Water Simulation & Rendering
etc.
Player Mechanics
Collision Manifold Movement
State Machine & Animation
Game Cameras
Player-Follow Camera Through CamDebug Fly-
Fixed Cameras Scripted/Animated Cameras
AI
Sight Traces & Perception Path Finding (A*)
Camera-Relative Controls (HID) Goals & Decision-Making (Engine Interface)Actions
Weapons Power-Ups Vehicles Puzzles etc.
Low-Level Renderer
SubmissionPrimitive Virtual ScreensViewports &
Materials & Shaders
Surface Mgmt.Texture and
Graphics Device Interface
Static & Dynamic Lighting Cameras Text & Fonts
Debug Drawing(Lines etc.)
Skeletal Mesh Rendering
Figure 1.11. Runtime game engine architecture.