What is the "game engine", is it like a library for writing games?
Let's be honest - the term "game engine" ("Engine" in English) is quite abstract. And the trouble is that not all developers approach the question so that we can talk about some "engine". But this is not a library.
Roughly speaking, imagine you're a single programmer, it's easier and faster to make a toy on Objective-C because you know this language well. Here you made it, most of the code was written by hand. Everything works beautifully and well - but where is the "engine"? The game is simply written in one of the programming languages. Although if you have introduced some unique elements into the code, someone else might call it a "self-writing engine". But you yourself have not considered the game at all.
Same story and when it comes to the companies developing the game. Even sometimes large ones don't use any particular "engine", but simply write in accessible and convenient languages, using ready-made or "self-written" libraries and other programming delights.
But there is another approach - the company, not just develops the game. Conceptually, it was decided at first to make a part of the code without the gameplay which will correspond to the future functions and possibilities of the game not created yet. The main time is spent on it, and then, considerably for less, on the basis of this code and some basic platform the game itself, the gameplay, graphics, storylines and so on are created.
This very basic code (platform for the future game) and is called the "engine". And this is more of an approach to development than a mandatory and independent part of the game. As in the previous example, we see that even without such an "engine" it is possible to write a game from scratch (and even a rather complex one) and it will have no effect on its structure or performance.
However, this approach has one advantage. By creating an "engine" we can make several more games based on it. In this case we will save time on writing the game from scratch, because we will have to work on the environment and the gameplay, excluding the basic (let's call it that) programming. Moreover, we can also sell such an "engine", as a result another developer will create his game faster and easier, and you will get additional earnings.
Unity 3D is one of the representatives of this approach. Only it wasn't created for a particular game, but for "sale" so that developers could create their projects faster and easier. And there's also a bit of confusion here, because in addition to the software component of the "engine", Unity also has an interface - that is, a separate software package specially written for users (not necessary for the game itself), which facilitates the creation of the game, allows you to do it visually (not just with the help of code) and quickly as possible. If to speak exaggerated - this is the kind of "Photoshop" for games, only which is not engaged in "drawing", and allows you to control the "engine" and build on it already your elements, your specific game.
There are many such engines. Some of them were initially created for "sale", others were created by developers for their own games, but later turned out to be so convenient that they were also started to be provided by subscription.
Below is a list of some representatives available for any developer:
https://unity.com - without it, the list is certainly not complete. As it is one of the most popular tools. And this is no coincidence: first, it has a free version for individual developers. Secondly, it is quite intuitive and easy to use. And thirdly, it allows you to create a game at once on a variety of modern platforms.
https://www.unrealengine.com - Unreal Engine is another celebrity from the world of games. At first it was created for internal use, then it was actively sold and promoted for corporate clients, and now it is available to any developer. If I am not mistaken, they have an interesting approach to monetization. You do not need to pay for its use, but if the game is gaining a certain threshold for profit, the company just takes a percentage from it. Which is useful for "Indy" developers, without the initial budget.
https://gamesalad.com - perhaps not so famous, but no less interesting. According to the statements of the developers will allow you to create a game "without writing a single line of code". How true is this? Try it yourself, but perhaps the "engine" will be a good option if you have little or no programming knowledge.
https://www.appgamekit.com - another less popular representative of the industry, but "conquered" its audience. However, because of its low popularity, some users complain that it does not correct errors for a long time. On the plus side, it allows you to create games for multiple platforms.
https://cocos2d-x.org/ - Cocos 2D is popular for casual games. But it is difficult to call it the "engine" to the full extent. It's a "framework" (see, again, confusion). However, it would be foolish not to specify it either, because with certain programming skills it can be an excellent and free help in creating your game.
https://developer.valvesoftware.com/wiki/SDK_Installation:ru - Source Engine SDK, another famous "engine" from Valve. Half-Life 2, Portal games are created on it, and any third-party developer can also use this platform to create a "mod" or own game.
There are many other different engines. Some of them are used only for internal use, others are available for a wide audience. This is for example:
Doom engine - as clearly created for classic games Doom, as well as Heretic, HeXen, Strife.
Build Engine - used 3D Realms in its time
Quake engine - by the way, it is considered the world's first fully three-dimensional engine created by id Software.
id Tech of different versions - as it is possible to guess also belongs to id Software and is used in particular in "reincarnation" of Doom games series.
Construct Classic - was once designed to develop games on Windows, but is no longer supported.
Crystal Space - designed to develop various 3D applications
Delta3D is essentially a "vinaigrette" of the famous free projects, originally developed by U.S. Navy.
Game Editor - a cross-platform representative for creating 2D games
Godot is another open cross-platform 2D and 3D game engine under MIT license.
And also: Falco 3D Engine, Infinity Engine, M.U.G.E.N, Nebula Device, OGRE, Piston, Ren'Py, Stratagus, URQ, DX Studio, Game Maker, CryEngine 3 SDK, Blender Game Engine(BGE), Corona, and many, many others.
Author: Sergey Ulyashenkov