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..