Explicit domain modelling in video games
David Llansó, Marco Antonio Gómez-Martín, Pedro Pablo Gómez-Martín, Pedro Antonio Gonzalez-Calero · 2011
The state-of-the-art in software engineering for game engines, recommends the use of a component-based software architecture for managing the entities in a game. A component-based architecture facilitates the definition of new types of entities as collections of components that provide basic pieces of functionality, providing a flexible software that can adapt to changes in game design. However, such flexibility comes with a price, both in terms of software understanding and error checking: a game where entity types are just run-time concepts is harder to understand than one with an explicit hierarchy of entity types; and error checking that, in a more traditional inheritance-based architecture, would come from type safety at compile time is now lost. To alleviate these problems, a component-based architecture employs blueprints, external data files that specify the particular combination of components for every entity type.