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 facilitate video game creation at a higher level, without game developers 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 video game engines come in a huge range of shapes and sizes. Each engine 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 transferable, much of the development process is usually game engine specific.
Most modern commercial engines such as Unreal Engine, Unity 3D and CryEngine are capable of handling 2D and 3D game development. Most high end commercial solutions feature state-of-the-art real-time graphics rendering, a built in physics engine and have complex built-in visual editors with drag and drop scene editing to help streamline the game design process.
Most commercial game engines are cross-platform, with multiple possible build targets. This makes it easier for the game developer to create versions for all the popular home computer, games console and mobile platforms from the same game code and assets, with minimal changes for each target.
The programming language used varies, with most of the commercial solutions using some variant of C.
Game engines can 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.
Game Engine Licensing
Historically many high level commercial game engines were difficult and extremely expensive to license. This put them out of reach of the very small scale developer. With the advent of casual gaming, the indie development boom and increased competition, many commercial game engines have now switched to a subscription model (sometimes with a revenue share requirement over a certain threshold) and relaxed the entry requirements. Some commercial engines even have a restricted free version. This has made it feasible for even the smallest single person teams to use the top commercial game engines for their projects.
Royalty terms on game revenue vary, with some game engine developers taking a percentage cut from games produced using their engine and some taking no additional cut beyond any flat costs of using it.
Some simpler game engines are open source and free to use.
Most commercial game engines allow building games to all popular gaming platforms, from desktop PCs and Macs to games consoles and mobile devices.
Smaller game engines may target one platform only, or require the use of third party tools in order to build to multiple platforms.
Game Engine vs Game Framework
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 of fully featured game engines used 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 game framework and a game 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 game 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.