Game Engine Architecture

(Ben Green) #1

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.

Free download pdf