What is a Game Engine?
Game Engine Definition
Game engines are pieces of computer software and/or code libraries that handle common game development tasks. They allow the creation of video game software at a higher level, without having to worry about programming everything from scratch.
Game engines sometimes feature dedicated editors and tools to make tasks such as level, game object and user interface design easier. Features can also integrate with third party tools for some or all of these tasks.
Game Engine Types and Features
Modern game engines come in a huge range of shapes and sizes. Each tends to have their own particular way of working, in terms of tool pipeline & programming/scripting language used. This means that although some skills (such as programming & design) may be transferred across engines, much of the development process is usually engine specific.
They range from small, free and/or open source engines for 2D games (sometimes focusing on a specific genre of game), right up to huge, flexible, commercial software packages that can be used to create any game imaginable.
Historically many high level commercial game engines were difficult and extremely expensive to license. With the advent of casual gaming, the indie development boom and increased competition, many have now switched to a subscription (or free up to a generated revenue threshold) model and relaxed the entry requirements.
Royalty terms on game revenue vary, with some engine developers taking a percentage cut from games produced using their engine and some taking no additional cut beyond any costs of using the engine.
Most commercial game engines allow building games to all popular gaming platforms, from desktop PCs and Macs to games consoles and mobile devices.
Smaller engines may target one platform only, or require the use of third party tools in order to build to multiple platforms.
Framework vs Engine
Self-contained software packages that provide a graphical user interface and built in editor and build tools, are always referred to as game engines. Notable examples in the commercial 3D gaming world are Unity 3D and Unreal Engine.
Purely code libraries that handle these common game development tasks and require use of third party code editors and tools are often called “game frameworks”. In these instances, where the line is drawn between a framework and an engine is much debated. Often, the terms are used interchangeably.
There is no clear definition when it comes to code libraries. Some argue that all code libraries are frameworks, others argue that a certain level of task specific functionality qualifies a code library as an engine and others use the term game engine for all code libraries.