Choosing a Professional Game Engine
To create professional 2D and 3D games you need a game engine. While most larger game studios use their own proprietary engines, two generally available game engines are widely known and popular: Unity and Unreal Engine.
Unity vs Unreal — 3,2,1… go

As you will see the battle is a close one…
Both game engines offer integrated development environments (IDE) with advanced lightning, animation, physics simulation and are compatible with many third party tools. They also both offer an asset marketplace.
Fees
Both of them offer a free version. For Unity it remains free as long as your gross annual revenues are below 100'000 USD. Then some license fees are due. Unreal is free as long as your gross revenue from the game does not exceed 1mio USD. Unreal does not use a license model, but charges a 5% royality fee. In short, both game engines are free to learn and for small to mid-size projects, but request a fee if you create a highly successful game.
Sounds fair, doesn’t it?
Learning

Both engines have their own learning content to get you started.
However when searching the web, I found that there are slightly more courses for Unity.
Community

It is easy to get stuck when you are learning something new. That’s why an active community is a great asset.
Both platforms also have their own communities, both on their site as well as on social media.
Coding
Unity uses C#, while Unreal uses C++ as its coding language. C++ is generally considered one of the most challenging coding languages to learn, while C# is an easier option if are a beginner.
C# and C++ are both C-based languages, which results in a similar syntax. C++ is an older language developed since 1979 and first standardized in 1998. C# was created by Microsoft as an alternative to Java in 2000.
Thus C# also has similarities to Java and while it works on all main operating systems it is mostly used in a Windows environment. C++ wins on speed and performance. C# wins on clarity and simplicity. An example: C# offers automatic garbage collection and thus manages memory allocation, C++requires the programmer to manage this manually. Thus in C++ there is far more control over the hardware, but it requires advanced skills and understanding.
While coding languages should not be the only point to decide about a game engine, it should, in my opinion, still be a consideration. Game development requires a variety of skills… and if you are completely new to game development and programing, there will be enough challenges without choosing the hardest coding language available. If however you are already familiar with C++ then this sounds like an important plus for Unreal.

Platforms
There are only minor differences in terms of supported platforms. The editor for both engines is available for Windows, MacOS and Linux.
Both game engines support the most common as well as some more exotic platforms for deployment.
Unity deploys on:
Windows, Linux, MacOS, Linux, WebGL, PlayStation 4, Xbox Series X, Xbox One, Nintendo Switch, Android, iOS, AndroidTV, tvOS, Google ARCore, Google Stadia, Oculus Rift, Microsoft HoloLens, MagicLeap, Steam
Unreal Engine deploys on:
PlayStation 5, PlayStation 4, Xbox Series X, Xbox One, Nintendo Switch, Google Stadia, Android, AR, VR, Steam, HTML5.
Important: Some platforms are only available if you are a registered with their developer program.
Additional tools and applications
Both platforms are also used in other industries such as automotive, architecture, broadcasting or marketing.
Unity offers a range of additional tools and services, ranging from cloud services to version control or industrial services, you can find them here: https://unity.com/products
For Unreal you can find some of these applications on their homepage: https://www.unrealengine.com
So what games can you make with…
Here are some famous games made with each platform.
Unity — Valheim, League of Legends: Wild Rift, Assassin’s Creed Identity, Blizzard Heart Stone
For a longer list see: https://en.wikipedia.org/wiki/List_of_Unity_games
Unreal -Fortnite, Shenmue III, Borderlands 3, Street Fighter V
For a longer list see: https://en.wikipedia.org/wiki/List_of_Unreal_Engine_games
So which one should you choose?
As we have seen both engines are great and offer much. Thus in my opinion it is a matter of personal preference where you start.
I have chosen Unity and here are my reasons:
- The coding language used in Unity is C# which easier to learn and thereby gives me time to explore other topics in game development such as animations, sprite creation, 3D objects, game design etc.
- There are a huge number of tutorials and courses available for Unity.
- There is a fantastic community.
- Unity’s asset store is well stocked, which makes it easier to quickly test out an idea, before spending too much time creating all the assets.
- I prefer the licensed based pricing model of Unity.
- And last but not least, I was lucky to be admitted to a great training program for Unity with the intensive GameDevHQ professional developer program.
Am I going to drop Unreal completely?
No, I am definitely planing on getting back to it at some stage. But there are only so many hours a day and I prefer to master one engine first before I start on the second.
What is your choice?
Image attribution: The explosion in the top picture comes from a photo by Luke Jernejcic on Unsplash / The community picture is from Photo by Josue Escoto on Unsplash