A brief history of the development of game engines
About game development and the formation of the gaming industry

Together with the creation of the first games, programmers came to the conclusion that each game contains common components, even despite the difference in hardware platforms. And the first games took place on slot machines the size of a refrigerator.
The functionality common to games — graphical solutions, game mechanics, physics calculations, and more — began to stand out in separate libraries, but in order to be a “game engine” it was still a long way off. This was largely due to the serious difference between the hardware and software platforms and the uncertainty in the games themselves. After all, genres and types of games had yet to be invented, despite the fact that many of the first games were textual. Actually, it was for the early adventure games and platformers that game engines began to emerge, especially with the development of graphics - the Adventure Game Interpreter (AGI) can be a good example. When developing King's Quest back in 1984, Sierra On-Line programmers faced the inconvenience of low-level development of such a complex and promising schedule in those days of the game - and developed a set of solutions, which AGI became.
However, the engines of that time rarely went beyond the boundaries of the original developer company and, as a rule, were highly specialized for a specific genre of the game.
Start
The situation began to change in 1993 after the release of the Doom game from id Software. Although the development of the Wolfenstein 3D engine was used in its development, a technological breakthrough was made in terms of capabilities and modularity. At that time, video processors were not able to work effectively with three-dimensional graphics, so John Carmack (the leading programmer of the engine) performed all the necessary mathematical calculations used to manipulate three-dimensional objects, light, shading, texture mapping and other things on their own. As a result, the image looked three-dimensional, in fact, not being such. Therefore, the Doom engine (the first version of id Tech) was not truly three-dimensional, but pseudo-three-dimensional. But it’s important that the technical component of this game set the standard for what could be called a game engine. Namely, Doom engine was modular, it was a set of subsystems, in it each clearly separated software layer was responsible for processing its portion of data. As a result, it has become much easier to use it for various games (Hexen, Heretic, Strife) and by third-party developers (Raven Software and Rogue Entertainment). Therefore, the appearance of game engines is attributed to the mid 90s of the 20th century, that is, then the definition of a game engine in the modern sense was finally formed.

The game engine is a kind of highly specialized operating system, since it includes all the modules of the latter. It includes: a memory management system, a graphics subsystem, an input system, an audio subsystem, artificial intelligence, a physical subsystem, a network subsystem, a game level editor, and more. In addition, the engine core can provide a special approach to working with files - a file (resource) system, as well as multithreading tools that differ from the main operating system. Modern game engines also include an interpreter of the scripting language, sharpened to describe the game logic, and often its completely visual editor. Its use allows you to abstract from the description of low-level commands and instructions, and concentrate on the gameplay.
Goals
The game engine is primarily created in order to simplify and speed up development. Therefore, it includes tools for creating the game world - level modeling, importing objects, texturing, loading and animating characters, creating visual effects, tweaking physics, and more.
The second significant goal of developing the engine is cross-platform or platform-independence of the game being developed. That is, the possibility of its launch with the least possible changes. Completely unchanged on another platform, the launch of the game will fail due to hardware differences, including: screen sizes, means and methods of control, etc.
The development of game engines takes place together or under the influence of the development of hardware and software platforms, together with the emergence of new game genres and changes in the tastes of users. In short, the development of the gaming industry as a whole.
Genesis of graphic systems
In the mid-90s, after the advent of video processors capable of processing three-dimensional graphics, software interfaces began to appear that simplified its development. Following the cross-platform OpenGL, Direct3D for Windows came onto the scene as part of DirectX. These 2 visualizers for many years to come determined the ways of graphic output in games.
In 1996, Quake was released on Quake Engine. This engine has had a tremendous impact on the gaming industry.

Quake Engine Engine Tree
Almost until the end of the decade in the middleware market for games (in other words, game engines) id Software set the rhythm almost exclusively. However, in 1998, Epic Games released the successful Unreal game on the engine of the same name - with a real technological breakthrough in terms of graphics. Leading programmer of the engine was Epic founder Tim Sweeney. Tim, along with Carmack, is the most significant figure in the history of the game industry engines - and the Unreal Engine in its 3 and 4 versions is very popular now. A year later, Unic Tournament became even more popular from Epic.

At the same time, rival development company id Software released the multiplayer game Quake 3 Arena (powered by id Tech 3), just like Unreal Tournament, which included online battles.

These two games became the flagships of the industry, determining its development for years to come.
There were not many players on the market. Therefore, their products were very expensive, and the flagship engines were licensed only by large enough developers.
The situation began to radically change around the middle of the first decade of the 21st century. Then a large number of tools for developing games began to appear on the market and in the public domain. The middleware business is gaining momentum. First, the market was filled with graphical frameworks: Ogre, DarkGDK, etc., which provide the programmer with a high-level layer over the graphical API. At the same time, they differ from game engines in the complete absence of in-game editors.
Then, full-fledged game engines came to the market at prices appropriate for a small indie development team, among them: Torque 3D, Unity 3D, and many others. Even those starting as flagship engines - for example, Crytek's CryEngine and the previously mentioned Unreal Engine - began to use a much more affordable pricing policy and became available even to novice developers.

Torque 3D
Casual games have become an important trend in the gaming industry. These, in essence, straightforward, but colorful, not requiring frantic interaction with the keyboard and mouse puzzles from a technical point of view were simpler than three-dimensional hardcore shooters, so for their development did not require a strong modification of universal engines. But, on the other hand, new players appeared in the industry, such as: Torque Game Builder, HGE and others.

Torque Game Builder
At the same time, thanks to World of Warcraft, MMORPGs became very popular in the gaming industry - and in parallel, many genres made more and more bets on multiplayer. A number of engines could not provide users with new functionality for client-server applications, so they went into oblivion. Other engines were adapted for the multiplayer world by developing server solutions for them, so Photon and SmartFox were developed for Unity 3D. The third type of universal engines, initially being a client-server, did not feel the changes. It includes Torque 3D. Also on the market there are new engines designed for global multiplayer games, for example HeroEngine, BigWorld, combining a server solution scalable for thousands of players and a client available to a specific player.

Heroengine
There were browser games on the market since the 90s, and then social networks gave them a rebirth. the need to effectively create games for the browser did not go unnoticed. Developers of universal engines, for example Torque 2D / 3D, Unity 3D, reacted quite quickly to this by releasing plug-ins for browsers that made it possible to display graphics directly in the latter window. At first, a visualizer based on Flash technology gained popularity, but for a number of reasons, this technology is increasingly losing its market share. Therefore, now for visualization on the web, a library for JavaScript is often used - WebGL, which allows you to create interactive 3D-graphics. However, due to flaws in the language, such as the lack of multithreading, the library cannot fully satisfy the needs of game developers.

WebAssembly
At the end of the first decade of the 21st century, mobile technology developed rapidly. Like a bolt from the blue, mobile devices appeared in terms of power comparable to mid-range PCs and capable of launching powerful gaming applications with all the special effects possessed by low-level graphical interfaces. To what developers of game engines responded in some cases by creating specialized converters that create code native to specific equipment (such as Unity 3D), and in others they upgraded their products for cross-platform (for example, Torque 2D, Cocos 2DX). Also, new players appeared on the market, offering cross-platform engines for the entire fleet of mobile devices, running at the speed of the native code. Examples of such tools: Corona SDK, Marmalade SDK, AGK (App Game Kit).

Corona SDK
Also, a number of cross-platform engines have emerged that allow you to develop a game with minimal programming knowledge. Examples include Construct 2 and GameMaker Pro. Using ready-made solutions and visual editors, you can quickly - sometimes within a few hours - create simple games. This turned out to be especially common in the mobile market, where the spread of free2play models and a short gaming session made “simple” games a quite successful genre.
Novelties of the gaming industry
Low-level programming interfaces: OpenGL, DirectX are developed in accordance with video adapters. Once every 1 - 2 years, new versions appear that support and give application programmers (engine developers) the full functionality of iron. DirectX has already reached version 12. On the other hand, OpenGL was replaced by Vulkan, a new cross-platform graphics api developed by the Khronos Group consortium, which includes hardware and software manufacturers.
VR

The latest trend in the gaming industry is virtual / augmented reality. The vast majority of modern game engines have already acquired support for this technology, among them: Torque 3D, Unity 3D, Unreal Engine 4. Many third-party extensions, such as Vuforia Unity Extension, have also been developed. To implement support for VR glasses, engine developers need not only to add visualization to the second screen (for the second eye) with different content from the first (since the first and second eyes can see different scenes), but also add control support from new input devices which are different for different VR headsets and are not yet standardized.
Summary
Over the years the game industry has existed, it has formed 5 large types of games in terms of game engines:
1) Single-player games (with its own specifics for PCs and consoles)
2) Online multiplayer games
3) Games for social networks and browser games in general
4) Mobile games (with specifics for phones and tablets, and Android / iOS)
5) Games for VR / AR
In addition, there are other platforms - from SmartTV to slot machines.
For the development of each type there is a certain set of engines, because from the technical side there are big differences between all types of games. Dozens of engines for every taste are now available on the market: cross-platform and specialized, requiring active work with the source code of the engine and available without programming knowledge in general, with different performance, quality of documentation and price. In more detail about modern engines and how to choose the right one for my purposes, I talk on the discipline “Technical fundamentals of game development” of our program “ Management of Gaming Internet Projects ” at VSBI. By the way, on February 11th we will have a one-day conference with free admission (you just need to register), where at 12:00 I will read one of my lectures about game engines, come in.