1.6. Runtime Engine Architecture 29
Gameplay FoundationsDynamic Game Object Model Event/Messaging SystemScripting System
Static World Elements Real-Time Agent-Based Simulation World Loading / StreamingHigh-Level Game Flow System/FSMSkeletal AnimationDecompressionAnimationKinematics (IK)Inverse Post-ProcessingGame-Specific
Additive BlendingLERP and Animation Playback Sub-skeletal AnimationAnimation State Tree & LayersProfiling & DebuggingPerformance StatsMemory &
In-Game Menus or ConsoleRecording & PlaybackObject AttachmentHierarchical3 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. WrapperCore 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 IdsLocalization Services
AsynchronousFile I/OMovie Player
Memory Card I/O (Older Consoles)Resources (Game Assets)Resource Manager3D Model Resource ResourceTexture ResourceMaterial ResourceFont ResourceSkeleton ResourceCollision ParametersPhysics World/MapGame etc.Human Interface Devices (HID)Physical DeviceI/OGame-Specific InterfaceAudioAudio Playback / ManagementDSP/Effects
3D Audio ModelOnline Multiplayer
Match-Making & Game Mgmt.Game State ReplicationScene Graph / Culling Optimizations Object Authority Policy
(BSP Spatial Subdivision Tree, kd-Tree, ...)Occlusion & PVS LOD SystemVisual EffectsParticle & Decal Systems Post EffectsHDR Lighting Subsurf. ScatterPRT Lighting,
Environment MappingDynamic ShadowsLight Mapping &Front End
Heads-Up Display (HUD) Full-Motion Video (FMV)
In-Game GUI In-Game Menus Wrappers / Attract ModeIn-Game Cinematics (IGC)Collision & PhysicsCollidablesShapes/Rigid Bodies PhantomsConstraintsForces & Casting (Queries)Ray/ShapePhysics/Collision WorldRagdoll PhysicsGAME-SPECIFIC SUBSYSTEMSGame-Specific RenderingTerrain Rendering Water Simulation & Renderingetc.Player MechanicsCollision Manifold MovementState Machine & AnimationGame CamerasPlayer-Follow Camera Through CamDebug Fly-Fixed Cameras Scripted/Animated CamerasAISight Traces & Perception Path Finding (A*)Camera-Relative Controls (HID) Goals & Decision-Making (Engine Interface)ActionsWeapons Power-Ups Vehicles Puzzles etc.Low-Level RendererSubmissionPrimitive Virtual ScreensViewports &Materials & ShadersSurface Mgmt.Texture and
Graphics Device InterfaceStatic & Dynamic Lighting Cameras Text & Fonts
Debug Drawing(Lines etc.)Skeletal Mesh RenderingFigure 1.11. Runtime game engine architecture.