It's just a tool
Game engine is a tool, so it may be analyzed and rated. In order to do so, we need to understand, what game engine is.
What is a game engine?
I present my own definition : game engine is an abstraction layer over separate autonomous systems : graphics, physics, sound, networking, user input, storage. Design of such abstraction layer may vary.
This is what game engine must be. Flexible, customizable for almost any needs. Now let's find a definition for modern and popular game engines, such as Unity, Unreal Engine, Godot : an ecosystem, that provides means for user to create games, including a visual editor for game contents and assets.
No access to separate engine systems, you get all systems at once, monolith. More than that, 95% of your game consists not of your code, but files generated by engine and useless anywhere beyond.
Most of game developers don't see problem here. Though, what happens if the publisher of this engine changes terms of license? Or even cancels your free license, asking for an annual subscription? Or forces you to use an updated version of the engine, which breaks your game?
When you make a game with such "game engines", you don't really have a game. You have a product, which, de facto, belongs to the engine publisher.
What code architecture is best?
Answering short, best architecture is no architecture.
Limiting yourself with specific programming patterns you decrease your own efficiency. We all love to play puzzles, but doing so while writing game code is not efficient.
Best approach is to avoid building complex abstractions, such as entity component system (ECS), MVC or OOP patterns.
Don't put strict rules on how your game works, allow each system and each entity to decide what and how to do. Especially if you are an experienced programmer.
With time you may develop your own approaches of writing code without useless complexity.
After you can write games with simple and flexible code, using libraries for graphics, physics, sound, user input -- switching to Unity or Unreal Engine will become obviously over-complicated and inefficient.
What programming language is best?
I personally would recommend dynamically typed languages with FFI (foreign function interface) to C or Java.
Python, Groovy, Lua or similar.
Most of game developers explain choosing C++ by it's performance and strict access to memory, though 99% lines of game code don't need that.
That 1% of code you can rewrite on C or Java and call it from a code in dynamically typed language.
What game engine is best?
Following idea of this article, best game engine is no game engine.
My definition of game engine is very close to that. Game engine must be a thin abstraction layer over separate independent systems, so after you just write game logic.
This way, 100% of your game will belong to you. Also, you can port your game between platforms, change rendering methods or networking technologies, encode resources or leave them accessible to user. It won't die in 5 or 10 years because of Windows update or game engine API changes (as it happened to one of my Unity games).
Ambitions
Mostly, game programmers don't understand their desires. What game they want to do. So, they choose a game engine to make an AAA game, usually it's Unity or Unreal Engine. And, usually they end up making 2D platformers or 3D hyper-casual games with low-poly graphics.
If you want to make an AAA game with a photo-realistic graphics by yourself, having no hundreds millions of dollars, think again.
And, even if you do have a lot of money, using Unity or Unreal Engine would be inefficient (look on AAA games we have in 2025).
Game engines keep you from thinking
Unity, Unreal Engine and Godot give their users an illusion of comprehension and development, while they don't clearly understand how most of systems work.
I won't say it is bad or good.
Just consider the fact. Game engines are made for amateurs, who are not capable to make even simplest games independently. As popular meme says, "If you are nothing without this game engine, then you shouldn't have it".
What then?
Instead of choosing game engine, choose programming language and libraries, and start writing games. You will thank me later.
Top comments (1)
I am a developer at Godot, and unfortunately, this is the bitter truth. Despite the fact that Godot is the most free engine in terms of features for the indie segment.
Some comments may only be visible to logged-in visitors. Sign in to view all comments.