Nowadays the video game industry is becoming the most profitable part of the whole entertainment industry. The main reason of this is the increase of interest in video games, because of this the whole industry grown much bigger and reached much higher levels of maturity. In the 80s only a several programmer and designer was enough to create a blockbuster game, and now hundreds of engineers working on a top quality game, which development still takes years.
The method of game development is changed a lot also. In the early days every team made their own game engine for their games, which was enough, but then the development studios realized that licensing of their engine is new source of possible profit. The reusable engines are also beneficial for the other companies, because with these they could increase their development speed, and usually reduce the cost of the game.
A game engine is a complex software, which usually integrates a lot of other game middleware solutions (i.e. artifical intelligence, physics simulation, rendering) and provides tools to ease the creation of the game. Nowadays an engine must be capable of working on multiple platforms, i.e. it should work on PC and consoles or on several mobile platforms.
This document contains guidelines to develop such an engine, which is able to run on multiple platforms, and also explains the engine which was implemented in this manner. The engine integrates several technologies (i. e. Ogre3D. PhysX, Luabind, Boost) to provide sufficient services for a game. The architecture of the software is designed in a modular way, which gives a lot of configuration possibility. This means that the components of the engine can be easily changed (i.e. other graphical interface provider can be used, or other library for physics simulation) and configured. The engine currently running on Windows and Android, which proves that its really multiplatform.