-
Notifications
You must be signed in to change notification settings - Fork 0
Game Engine Architecture
A game engine is a large-scale runtime software used for videogame development in an integrated environment (IDE). Modern game engine architectures are designed in multiple layers which divides a software into specific services. One of the multiple layered architecture upon which we have built the game engine is the Model-View-Controller (MVC) architectural pattern. The main purpose of the MVC is to introduce a clear separation between the data layer and the presentation layer, making the domain objects (model) unaware of the presentation objects (views and controllers).
The Game Engine Architecture is an event-driven MVC separated in three main independent layers: application layer, game logic layer, and game view layer. The application layer deals with the core system such as low-level libraries, hardware and the operating system. The game logic layer manages the overall game state and rules the game system. The game view layer presents the game from different perspectives, implying that multiple views can be attached to the game. We distinguish three type of view; the Player view which makes use of graphics, sound and device controllers; the AI view which controls an agent in the game and the Remote view which manages a player over network. As we will see, the architecture is flexible enough to encapsulate and separate every game component into one of these three independent layers which are communicated through an event-driven system. Our Runtime Game Engine is developed using object-oriented design patterns written in C/C++ and integrates the following components: Core system, Graphic system, Audio system, Physics system, Networking and A.I. system.
Wiki
Game Engine
Graphics
Game Engine Showcase