Architecture

This section will be divided into various game engine sub-systems sub-pages.

Game-specific Rendering :

- Terrain Rendering

- water simulation and rendering

Front End :

- Heads up display ( HUD )

- Full Motion Video ( FMV)

- In Game Cinematics ( IGC)

- In-Game Gui

- In Game Menus

- Wrappers / Attract Mode

Gameplay Foundations :

- High level Game flow system/FSM

- Scripting System

- Static World Elements

- Dyanamic Game Object Model

- Real time agent based simulation

- Event/Mssaging system

- World Loading/Streaming

Visual Effects :

- Light Mapping & Dynamic Shadows

- HDR Lighting

- PRT Lighting, sub-surface scattering ( SSS)

- Particle & Decal Systems

- Post Effects

- Environment Mapping

Scene Graph / Culling Optimizations

- Spatial Subdivision ( BSP Tree, kd-tree, ... )

- Occlusion & PVS

- LOD System

Skeletal Animation

- Heiarchical Object Attachment

- Animatiopn State Tree & LAyers

- Inverse Kinematics

- Game-specific Post Processing

- LERP and Additive Blending

- Animation Playback

- Sub-skeletal animation

- Animation Decompression

- Skeletal Mesh Rendering

- Ragdoll Physics

Online Multiplayer :

- matchmaking & game mgmt.

- Object Authroity policy

- game state replication

Audio :

- DSP/Effect

- 3d audio Model

- Audio Playback/mgmt

Low-level Renderer :

- Materials & Shaders

- Static & Dynamic Lighting

- Cameras

- Text & Fonts

- Primitive Submission

- Viewports & Virtual Screens

- Texture & surface Mgmt.

- Debug Drawing

- Graphics Device Interface

Profiling & Debugging :

- Recording & playback

- Memory & performance Stats

- In-game menus or Console

Collision & Physics :

- Forces & constraints

- Ray/ Shape Casting ( Queries )

- Rigid Bodies

- Phantoms

- Shapes / Collidables

- Physics / Collision world

Human Interface device ( HID)

- Game-specific Interface

- Physical Device I/O

Resources ( Game Assets )

- 3d Model Resource

- Texture Resource

- Material Resource

- Font Resource

- Skeletal Resource

- Collision Resource

- Physics Parameters

- Game World / Map

- etc.

- Resource Manager

Core Systems :

- Module Startup & shutdown

- Assertions

- Unit TEsting

- Memory Allocation

- Math Library

- Strings and Hased String Ids

- Debug Printing And Logging

- Localization Services

- Movie Player

- Parsers ( CVS, Xml, etc )

- Profiling, stats gathering

- Engine Config ( ini, etc. )

- Random number generator

- Curves & surfaces library

- RTTI/ Reflection & Serializtion

- Object Handles / Unique Ids

- Asynchronous File I/O

- Memory Card I/O ( Older Consoles )

Platform Independence Layer :

- Platform Detection

- Atomic Data Types

- Collections & Iterators

- File System

- Network Transport Layer ( TCP/ UDP )

- HiRes Timer

- Threading Library

- Graphics Wrappers

- Physics/ Collision Wrapper

3rd Party SDKs :

- DirectX, OpenGl

- Havok/ PhysX

- Boost

- STL

- Kynapse

- Granny, Havok Animation

- Euphoria,

- Etc..