Abstract
The game engine is the part of code that actually brings everything else together and makes it into a game. In some context it can be synonymous with Base System or Simulation. The main idea of the game engine is to provide a powerful and intuitive system for creating any game we require.
Vision
Core functionality
- Provides communication between all objects in the game.
- Provides access to external services(engines) for all objects in the game.
- Provides and handles external events and stimuli for all objects in the game.
- Is highly modular and allows runtime modifications to the game
- Is data-driven. Does not require coding and recompilcation in order to introduce new game objects.
- Provides correct data at the correct time to all objects in the game. Nothing more and nothing less.
- Provides correct data upon request to all objects in the game, given that the object is allowed access to that data.
Optional functionality (could be in a different engine)
- Manages game assets
- Manages game logic
Interfacing with other engines/services
Examples
- Physics engine
- AI engine
- Audio engine
- Network engine
- 3D engine
- GUI engine
UCs
Check out TechUCs
Implementation Ideas
Notes (Translate into other sections)
Something needs to map player interaction to game actions. How are these related to other parts of the system?
Needs to be very configurable, so that we can accommodate all the mini-games.