I think that every novice programmer had an idea to make his own video game.  Perhaps you went ahead and downloaded Unity / UE4 to your computer, and started digging in some huge repositories.  And indeed, the vast majority of games are made on these engines.  But why, in fact, so? 


To begin with, not every developer will choose an already made engine.  For example, in one project in which I worked for a long time, programmers used the environment of another game to make their own.  It was more practical for them to develop the environment than to take a made engine.  It all depends on the specific situation.



"Why should I use something already made?"  thought Tim Sweeney in 1998.  He is the author of the then little-known Unreal game on the Unreal Engine.  Epic Games to this day promote their brainchild.




This toolkit is quite extensive: it allows you to make games for many platforms, any genres;  graphics in conjunction with photogrammetry gives a photorealistic picture.  You can develop your project using blueprints (Blueprint - schemes) or write code in C ++.

Blueprints are nodes that clearly show the interaction of elements and the hierarchy of their relationships.  This tool allows you to prototype games even if you're a beginner!




Despite its intended purpose, UE4 is famous for its photorealism, which allows it to be used for special effects in the movie (for real-time rendering and replacing chromakey).




However, UE4 is quite heavy and requires a productive hardware, which, alas, not everyone has.



If you are not focused on photorealism, which, to be honest, is not always needed in the game - why not choose Unity?  This engine is not so big, but just as convenient.




Let's face it, Unity / UE4 is an eternal debate that you should not waste your time on.  Unity is the breadwinner and prop for small, chamber indie game studios, but with great potential it can compete with UE4.




The main game code is implemented in C #.  The engine has an intuitive structure with intuitive sections for both models and scripts, animations, assets and more.  In case of problems in the implementation of your project, a ton of articles and video tutorials will come to your aid.  Convenient, right?

Of course, these are not all the products that are on the market.  Many studios follow an alternative path: they do not give the engine free use, but only sell the rights to it to other developers.  This approach to novice developers does not play into the hands of either popularity or accessibility among game developers.  Some, in general, create engines exclusively for use within the company.

A confident competitor for Unity / UE4 could be CryEngine from the German studio Crytek.  Especially version CryEngine 5.6 impresses with its capabilities, but they are unlikely to be able to bite off an impressive piece of the market in the foreseeable future.


However, the key point of interest of developers is the concept of the game and the possibility of implementation in the selected environment.  Dota 2 is just a map for World of Warcraft 3 in the past, and Counter-Strike is a mod for Half-life.