Game Engines
How to Plan & Design a Game Engine
Game Engines are complicated and like all complicated projects it's best we understand the problem space, the decisions we need to make, and the different solutions available.
We must choose which components of a game engine we want, which features we want per component, and which designs we want to undertake to build the components.
Core Components of a Game Engine
* = components often required to create a game engine
Secondary Components of a Game Engine
** = components broken out into their own because multiple components depend on them
Example Organization
Implementation & Design Considerations
Structure of Presentation
What do we want to build?
AI
Responsibilities
Sub-Components
AI > State Machines > Finite
Responsibilities
Features
AI > State Machines > Fuzzy
Responsibilities
Features
AI > Path Finding
Responsibilities
Features
AI > Steering Behaviors
Responsibilities
Features
Animation
Responsibilities
Features
Asset Management
Responsibilities
Features
Audio
Responsibilities
Features
Core
Responsibilities
Features
Debugging Utilities
Responsibilities
Features
Easing
Responsibilities
Features
Entity
Responsibilities
Features
Entity Management
Responsibilities
Implementations
Event System
Responsibilities
Features
Files & Streams
Responsibilities
Features
Game Loop
Responsibilities
Implementations
Game Patches & DLC
Responsibilities
Features
Gaming Services
Responsibilities
Services
Input
Responsibilities
Features
Localization
Responsibilities
Features
Maps
Responsibilities
Implementations
Math
Responsibilities
Features
Multithreading
Responsibilities
Features
Networking
Responsibilities
Features
Networking > Client
Responsibilities
Features
Networking > Gameplay Server
Responsibilities
Features
Particle Effects
Responsibilities
Features
Paths
Responsibilities
Implementations
Physics
Responsibilities
Features
Profiles
Responsibilities
Features
Rendering
Responsibilities
Features
Screens
Responsibilities
Features
Scripting System
Responsibilities
Features
Spatial Database
Responsibilities
Features
System Integration
Responsibilities
Features
Tasks
Responsibilities
Features
Tools
Responsibilities
Tools
User Interface
Responsibilities
Controls
Types
Features
Responsibilities
What designs / solutions are available?