A game engine is a piece of software which provides common game functionality for computer games. The purpose of a game engine is to allow the reuse of code from one game project to another, reducing time and cost of game development.
Some functionality provided by game engines are;
Game engines vary in the amount of functionality provided in the areas mentioned above. Some game engine only provide graphics capability and should therefore be termed graphics engines.
Game engines were first popularized by the game "Doom" in the mid-1990's, developers licensed the core functionality of the game and created new games by changing the game assets, (levels, characters and weapons).
Games engines typically come in two forms;
Games engines are an example of "middleware", software provides high level solutions for games and other type of applications. Middleware normally provides an interface to a low-level API such as OpenGL or DirectX. Middle ware usually provides platform abstraction, allowing the same game to be run on different platforms
Middleware solutions can be integrated engines where all/most of the required functionality is brought together in a single package.
Alternatively a middle ware solution can be designed as a set of loosely connected components (Renderware)