A game engine is a system designed for the creation and development of video games. The capabilities of game engines are different one to another. Some game engines only provide a basic framework through which you can program your games in a high level without thinking of the technical subtleties. Others provide a user interface in which you can visually create your entire game, without the need for a line of code. Below is a screenshot of the 2013 game Gone Home, built using the Unity game engine.
If we are to design any form of game engine, no matter how simple, we need to understand the concept first. For this reason we break a game engine into its building blocks.