Making a video game can be compared to building a house. But no-one wants to go through years building their house and being unhappy with their decisions. And no-one wants to waste their time using a game engine that just won?t work for their game. Let?s not waste any time picking the wrong engine. Let?s pick the engine that is powerful and efficient enough to do what we need to do with our game.
I want to show you a list of game engines I consider are worth using. I have been programming for about five years and a couple of these engines would just be downright hard to use, so I?d like to show you which and maybe save you some time. I also have a section at the end, ?Which engines lack programming the most??
A showcase for games being made with Godot.
Godot is a completely free and open source game engine being developed by hundreds of volunteer contributors around the world.
Use Godot if you are:
- Making common 3D games, because the Godot 3D renderer will not yet suffice for a AAA game. What this means is that Godot must be optimized before it is simply easy to have lots of graphical detail in your games. The ability to use Godot for AAA game titles will hopefully come with update 4.0.
- Making any 2D game, because Godot is unique from almost every other 2D/3D engine, in that the 2D renderer is entirely separate from the 3D renderer, allowing for smaller, faster running 2D games. Not to mention the absurd amount of features available for making 2D games out of the box, including 2D lights, gridmaps, shaders, and physics.
- New to programming, but don?t want to make it hard on yourself as you make games. Godot uses a custom-built language known as GDScript that is similar to Python, but for making games. It is very fun to use. More here. You can also script using blocks!
- Making games that can bring hefty royalties in other engines, such as gambling software.
- Immature software. You will encounter bugs in the engine when working.
- Documentation just sucks at times. They have written a lot of documentation for the engine in specific parts, including entire tutorials. But there are still lots of classes that have only programming reference attached, like functions and values, rather than actual usage examples or descriptions.
Godot is shaping up to be the best game engine for most developers. It has one of the very best 2D renderers, and its 3D renderer is quickly catching up to the big fish like Unreal Engine 4, with volumetric fog, motion blur, and multi-threaded rendering coming in Godot 4.
They are writing more documentation every day. And I estimate its immaturity should no longer be visible by the release of Godot 4.
A showcase video boasting graphical fidelity. Keep in mind this was made by a team of professionals, your games won?t look this great!
Unity is a game engine that I?m sure everyone reading this has heard of. It is known to be easy for beginners in programming. I kindly disagree.
Unity is a great engine for small teams, but sometimes it is hard to know what problem Unity wants to solve with their engine. The best way to imagine using Unity is to think about the top phone games on the App Store or Google Play Store. For example, games by Ketchapp use Unity.
Use Unity if you are:
- A beginner or professional with C#, or programming with C-like languages.
- Making common phone games, like the chart-toppers on the App Store or Google Play Store.
- Monthly fee-based licensing.
- No visual scripting. Some paid visual scripting languages can be bought on the asset store.
- Many things are not included out of the box, so you will be spending much of your time on the asset store or the new package manager.
Unity has been working on a lot of advanced technology, such as the Burst compiler, and their new incremental garbage collector. Basically, this makes it easier to develop larger games with greater performance. It felt like Unity never had much to brag about for a long time, until very recently.
Unreal Engine 4
The Unreal Engine is another one of those engines everyone reading this will have heard about. Unreal Engine 4, or commonly shortened to UE4, is an engine being utilized by some of the biggest AAA titles, such as Rising Storm 2: Vietnam, Fortnite, Squad, and many more.
Clearly, what?s special about Unreal Engine 4, is its ability to deliver large, beautiful, and highly performant games at the cost of development complexity. When using Unreal Engine 4, you may become impatient and feel overwhelmed by the complexity of working with tools usually operated by professional individuals of a large team. That is not to say making indie games with Unreal Engine 4 is impossible, nor hard.
I see it best to use Unreal Engine 4 if you are:
- Making high-fidelity 3D games. Unreal Engine comes with everything you?d need to make an awesome 3D game out of the box. You could download Unreal Engine 4, then throw your router away, and come out with a best-selling video game. But you would need some other programs for models and audio; it isn?t an all-in-one solution or anything.
- Making very portable 3D games.
- Working with several other people on a 3D video game. Unreal Engine is designed with teams in mind.
- 5% royalty on annual game sales. While this is a very low royalty rate, I still consider price a con to anything.
- Making a 2D game with Unreal Engine 4 sucks. It will be hard, and there is terrible support for it. If you want to make a 2D game, Godot is your best bet.
Unreal Engine is like a dominating restaurant chain that will just never go away. Its goals for bleeding edge technology is never fleeting. Bugs exist that have existed for years, and I doubt that will change much.
I estimate more than a couple hundred teams across the world must use Unreal Engine for their work, and will use it for many more years to come. Unreal Engine is, and will always be a great option for working on a large game.
A showcase of games being made with CryEngine in 2019.
The CryEngine is a quirky one at best. It used to dominate in the domain of large detailed words with its 64-bit by default geometrical precision. Now, Unity or Unreal Engine 4 can do the same fairly easily, and so there is not much reason to go out of your way to learn this odd game engine.
There are yet a few things it still does better than the others, though.
Use CryEngine if you are:
- Making large and highly-detailed worlds with lots of foliage and puddles and other natural details. CryEngine supports great puddles and foliage out of the box.
- Experienced with C++ and C# or Lua game programming, and looking for an alternative to Unreal Engine 4.
- Has never held a lot of attention, so the number of active users is lower than most of the common game engines.
- Scripting with C#, Lua, or their node-based language Flowgraph is not awesome. Flowgraph is slow and limited, and you will be required to export more C++ functions to C# and Lua in order to use those. Basically, they don?t have access to as many functions as C++ does, so you will need to be able to write C++ to work with those.
- Windows development only.
CryEngine always innovates with impressive technological feats, but has equally always been lacking in good documentation. Thus, it is usually harder for new teams to get started using the engine. While they have been working on their documentation, it still needs much more work, and so I don?t believe it will be better any time soon.
A video by Gamefromscratch detailing the latest Lumberyard 1.21 release.
Amazon Lumberyard is a free derivative of the CryEngine 3.0 by Amazon, which had the old major parts rewritten using new code. Amazon paid millions for this, and while many people believe you should now instead go to Lumberyard for CryEngine, it is rather lacking in user size. Though, I estimate it should grow pretty quickly when it exits beta. Unfortunately, you do have to have an account with Amazon Web Services (AWS) to even start the engine, but the account and engine is free.
I won?t go too far into detail about what this engine can offer, but here?s the summary: you will get a C++ -oriented engine for building AAA games, with not the greatest documentation (lacking a lot like CryEngine?s) with a smaller community than any of the engines listed here, but networking backing by Amazon with their promotion of AWS and Twitch services. If you use online, you have to pay them.
Which engines lack programming the most?
For those of us who really want to make a game, but can?t program for shit!
- Godot has visual scripting out of the box, and it is the simplest and easiest to use of them all.
- Unreal Engine has Blueprint visual scripts, but require much more effort to learn and work with when just starting out.
- CryEngine has Flowgraphs, which are very similar to Unreal Engine blueprints, but much slower (you should not program your entire game with them), and a lot more lacking in what actions you have available.
- Unity only supports C# programming out of the box, but there are several paid visual scripting packages on the asset store, namely Bolt and a few others.
If you think any of these engines might be too difficult to use or learn, please try GDevelop, it is the best free option for making games without any code. The best paid options are Construct 3 and maybe GameMaker: Studio 2.
A video by Gamefromscratch talking about the latest GDevelop 5.