I like comparing products because it’s always stupid easy to tell who’s the winner, does the job better and will leave you more satisfied. That however, is not true in case of eternal race between Unity and Unreal Engine.
When comparing, one option is usually significantly better than the rest, at least in most important factors that will make the product good or bad. Perhaps this engine is faster and games made in it are more performant, it’s easier to code in it, it can be learned real fast, a lot of successful games were made in it, and so on.
And usually this is how easy it is to tell the difference between products and pick the best one. Unity and UE4 however are both, exceptionally good engines. So choosing better engine requires lot of brainstorming, collecting facts, and analyzing.
Table Of Contents
Introduction To Game Engines
Game engines are revolutionary tools for anyone who loves idea of gaming, but would rather take things to the next level while also being productive.
Nowadays, all major games are made in either popular or in-house engines. Some people don’t like the idea of using a game engine as it simplifies the work too much and forces certain style on you. But it also significantly shortens the way to results.
What Are Game Engines?
Engines are revolutionary game design tools that significantly speed up the development process. There are many kinds, that support different programming languages, platforms, 2D and 3D, free and paid, and some even target specific very genres.
Engines are one (huge) step above frameworks and libraries, however for some people frameworks count as engines. I wouldn’t say that because engines simplify and help much more than frameworks do.
If you want to develop a serious video game then you absolutely should use an engine. But what if you don’t want to?
Making Game From Scratch
Many people, including me, don’t like to use third party technologies whether it’s engine, framework, or some CMS like WordPress (so what this site was built on).
I always have an idea of my own about how such tool should look like, behave, and what result should it produce. A concept that, in my head, is significantly better that current mainstream options.
There are many issues with this approach:
- Most people overestimate their capabilities. They think creating a great game, engine, or any other product is in their reach. That’s not entirely false, however you should probably add a year or two to the deadline. Or, if you are developing an engine on your own, probably 10 years.
- Users don’t see what engine was the game made in. They only see the results. So that time and effort should be spent on the game instead.
- Creating a successful game is hard, even with engine. That’s because of the ever-growing competition that has more developers, skill, time and budget than you. By creating game from scratch you actively try to ruin your already small chance for success.
I absolutely love thinking about creating my own complex systems from scratch, but if you want results in competitive game industry then there’s just no way to do it without an engine.
Why Only Unity & Unreal?
If you did your research, you may have other engine in mind. Or you may wonder why would I compare only two engines when there’s a lot.
Indeed there’s a lot of options, by looking at that list its actually hard to choose. But how many of them are top options? Produce results? Results that later make sales?
The answer is not binary, as in you can’t say that only few from that list will bring you results. You could sell you game million times even without an game engine, like Notch did with his MineCraft.
However choosing from the best of the best assures biggest chances of finishing our game and with less time required, while not cutting on quality. Choosing wrong engine can result in lot of wasted years, regret, and less or no sales.
Top Mainstream Alternatives
We filtered out the bad, and will focus on the best engines. However there’s an middle-ground – technologies that are less developed than top options, but they aren’t entirely bad either.
List of middle-ground technologies:
- Amazon Lumberyard. Engine made by Amazon to allow developers host their games on Amazon servers.
- RPG Maker. Engine of small caliber made by Kadokawa, targeting specifically 2D role playing games.
- Game Maker. Great engine made by YoYo for absolute beginners allowing to make any 2D game you want. But no 3D, and no networked multiplayer.
- CryEngine. Good 3D engine made by Crytek that would probably be top option if not Unity and Unreal.
- Godot. Completely free and completely open source 2D and 3D engine that supports coding in C++, C# and more. Godot was mainly made by Ariel & Juan. Has only 3 developers. The idea behind this engine is great, but Godot nowhere close to the quality Unity and UE4.
- LibGDX. Most popular Java framework for making games. Mainly 2D games but has 3D support and is open source. Allows to create games for mobile and desktops with same code-base. Here, you can compile only once, and game will indeed run on both phones and computers. LibGDX was made mainly by Mario & BadLogicGames.
These engines aren’t the worst and each of them has one or two reasons to use them. But as I said, by not choosing UE4 and Unity, you’re compromising a lot.
Unreal Engine 4
Unreal is an 3D game engine that was made by Epic Games & Tim Sweeney in 1998 and specializes in creating first and third person shooters, racing, Battle Royale and multiplayer games, however now it’s so developed that you can make 3D game of any kind in it.
Unreal was here long before Unity. However UE4 popularity is still much lower than Unity because the latter was the first mainstream “free” to use engine, while Unreal was locked behind a paywall for years to come. It’s unlikely that Unreal will ever become as popular as Unity.
Major Unreal Features
Unreal’s key features are blueprints, performance and graphics, however let’s look closely at every reason that could convince gamedevs.
C++ is relatively lower level, faster, harder and older. The fact that it’s low level means the language is faster and more suitable for coding heavy programs, games, and operation systems than higher level applications, such as websites. The higher level language is, the less place for optimization (often manual, difficult, and time consuming).
It’s older than C# therefore not as well-thought. When its initial versions were made, creators didn’t consider the infinite pool of possible options that could be later added to it, which is common case among all languages.
Then C++ was being fixed with updates, but there’s limit of how much a language can change without ruining backward compatibility (older programs wouldn’t compile with new updates). So the syntax isn’t as consistent, intuitive and clean as in C#.
Unreal has many great tools built in, that you would either have to code yourself if using Unity, buy or find free alternative on internet.
Some of these tools are Niagara Editor that is really great at creating particle effects & Chaos Destruction system used for destroying huge objects in realistic physics-powered way. And there’s more.
Blueprints are visual scripting nodes that “contain” ready code in them. With Blueprints you can create games without being a coder. You can create such nodes with mouse, and it will work like real code.
Some people truly hate Blueprints, because it makes game designer job seem less hard than it really is. Others hate it because it stops them from learning C++ as it’s easier way. And finally there are people who love them because they don’t involve as much effort as coding does, at least seemingly.
- You don’t need to be a coder. Just choose graphical node from window and it will work as code.
- Blueprints are as fast as C++. They were slower in the past but now they are equally fast.
- Often very fast to create and edit. In simple cases you can create a Blueprint script before Visual Studio will load.
- You can’t make as many mistakes as in C++. In C++, its easy to make errors. Especially if you are doing coding games.
- Much easier to learn than C++. C++ is harder to learn and take years to master it. You can be use Blueprints smoothly after few months.
- Skill not transferable as much as C++. C++ and C# are transferable skills whenever you decide to code other programs or find a typical programmer job. Here, even after spending long time learning Blueprints, that skill won’t help you in other, even related fields.
- You actively try to not use C++. Even if you have a strong will, even if you tell yourself you will not, even if you force yourself to write in C++ instead – you will still use Blueprints. Because the urge to pick easy way is too strong.
- In huge amounts they slow editor. With time your Unreal Editor may lag even on good computers. 100 small scripts with code inside won’t lag. But 100 Blueprints?
- You have to learn Blueprints. There’s almost same amount of work that is required to learn coding that it is to learn visual scripting in UE4.
- Harder to keep them clean & organized. Even in small projects you will face “Blueprint spaghetti” where many nodes are required for simple tasks, where they overlay each other, and where they take ton of space. It’s detrimental to your game creation process because it will add more complexity than learning programming would.
Visual look of Unreal Editor especially in comparison to Unity from before recent updates is just fantastic. It feels like expensive, serious software. And it’s black.
Unity default skin for free users is a combination of white, silver, and gray, and looked real bad until it got updated. Now it looks much better, but free users are still left without black version. It’s only a color, but it makes significant difference.
When To Pick Unreal
Now you know what Unreal excels at. But when should you use it? This section contains a list of possible situations in which you could seriously consider Unreal.
You Are Too Lazy To Learn Coding
Unreal is heaven if you for some reason don’t want to learn coding. Don’t have time? Don’t understand it at all? Then pick UE4 and create your game with Blueprints.
Games made with UE4’s visual scripting aren’t any worse than games made with C++, can make sales and acquire players.
You Don’t Mind Long Compile Times
If you decide to code instead of using Blueprints, then not only you will have to deal with ugly C++, but also with long compile times whenever you save a file and want to test changes.
It may take minutes whenever you do it, while its nearly instant in unity. Sounds like a deal-breaker to me.
You Have Exceptionally Good PC
You need a really good computer for Unreal. Most heavy games you’ve ever player are not comparable to how heavy this engine is, and it only grows along with your project.
My suggestion is to install it, and see if editor lags with many objects added to the level. Then choose engine considering result of this test.
You Prefer Coding In C++ Over C#
I don’t understand how one can prefer C++ from C#, excluding cases where one doesn’t want to admit how much time he had spent on this language.
C++ is not worse than C# in any way, but it’s much harder, less bearable and intuitive. If you have a specific reason to learn and use C++, or have no troubles coding in it, then go for it.
You Plan Creating Multiplayer Game
Unity is also perfectly capable of creating multiplayer games of any kind. The difference is that Unreal does it natively, while Unity has it in plans. Unity’s current native networking is deprecated. There are however many great frameworks that are perhaps as good as Unreal’s networking.
If you want to create multiplayer game of any sort (MMO, matchmaker, rooms, and so on), and don’t want to use third party frameworks in Unity, and wait for Unity’s native networking, then go for Unreal.
You Aren’t Scared Of Less Job Offers
Unreal is used by 20 times less developers than Unity. And there’s similar difference in job offers. It’s much harder to land Unreal job. In my area there’s one per few months, and few Unity jobs per one month. Therefore Unity is safer to learn career-wise.
Game design however, is not the easiest field to get a job in. That’s because there aren’t many game studios, for example in comparison to companies that make websites. And to get a job in game studio, you will be competing against really exceptional and skilled developers, their polished games and portfolios.
Unity is a cross-platform 2D & 3D engine suitable for games of literally any kind. First version was made in 2005 by Unity Technologies and it was supposed to target Mac OS X.
Developers expanded interest and now Unity excels at making computer and mobile phone games (for both Android and iPhone). It also supports export to over 25 platforms.
Best Unity Traits
This section lists best features of Unity. For majority its C# support and easy to learn interface. But there’s more.
C# is relatively higher level, almost as fast, easier to code in, younger and has garbage collection. People worry that C# is slower because it’s higher level, and that’s usually true.
But the difference is so small that you won’t feel the it. That’s how thing are in 2019, and it will change for the better when Unity Technologies finishes rebuilding Unity’s core.
Unity Editor takes 4 times less space than Unreal Editor. And not only that, it also works faster, even in case of huge projects and many files. That’s partially because your project has smaller files (no Blueprints, just code), but also because Unreal has way more features, that unfortunately impact the performance of editor.
Have you ever tried developing something on laggy computer? That’s the worst. Simple things will take you a lot of time. And that doesn’t only happen to basement computers from year 2000.
Editor speed is major factor, the faster your computer is and the more program is optimized, the more responsive program will be. If Unreal editor is not responsive enough for you, then you will triple developing speed by choosing faster engine, perhaps Unity.
In Unreal, you will most likely wait for few minutes till your C++ scripts compile, though some people report waiting even 30 minutes and more. And that’s just to see small change, like changing the color, fixing the letter case from lower to capital, and such.
Imagine having to wait few minutes each time you compile code just to see if it works, then checking social media out of boredom, and in the end forgetting about your game for next 30 or more minutes.
Time is valuable so don’t do that. This is absolutely huge Unity benefit, as it impacts the designing speed. Unity C# scripts open and compile instantly. The only exception to this rule is if you have a really huge project (e.g. loaded with unoptimized assets from Unity Asset Store), but if you don’t do that, then scripts compile instantly, even in medium and big projects.
This may seem like a placebo or small benefit, but it’s actually huge factor. As a developer of any kind, whether you code websites, games, programs or OS – you will search internet a lot to find advice, solutions, and sample code.
It’s stealing, I’d say it’s more like borrowing, learning, improving and implementing the code that you found online. You will do this all the time. I’d even go as far and say that, as a newbie game designer, you will only copy code from internet instead of writing your own. And that’s alright. If you are beginner.
In case of Unity, all it takes is two clicks to copy and paste. In case of Unreal, you will either find videos (that take long time to follow and replicate, even up to few hours just to create simple things) or screenshots.
In both cases it will take long to create exact same Blueprint script because you will have to pick nodes while pausing the video every second. And it may not work in the end. Super frustrating.
This is great because who doesn’t like browser games? Unreal has browser export of poor quality, if not discontinued. Unity browser export is satisfying and even huge games don’t lag.
Creating a browser game gives you access to audience who would never otherwise hear about your game. Have you ever wanted to play some browser game quickly instead of these huge standalone AAA games? Then Unity is for you.
Huge community is another great benefit. Unity, according to Google Trends and many other sources, has a developer community about 20 times bigger than Unreal.
So not there’s a lot of already solved issues that you just need to google because someone had this problem before you, but also you can ask online whenever you have an issue. You will get help in possibly as soon as few minutes. And talking to alike-minded people is cool.
Ton Of Tutorials
With popularity comes huge community, and with huge community comes ton of user-generated content, including advice and tutorials.
Not only you’re not forced to pause the video every second and create Blueprints accordingly, because you are coding instead, but also you can choose from infinite pool of text guides. And you will never run out of them.
When To Choose Unity
Now you know best features of both engines, but in what situations should you pick Unity?
You Want To Learn Everything
Unreal is heaven if you for some reason don’t want to learn coding. Don’t have time? Don’t understand it at all? Then pick UE4 and create your game with Blueprints. Games made with visual scripting aren’t any worse than games made with C++.
However, after you go through the basics, then learning of programming, C#, and both Unity Editor & API goes really quick. You will want to improve your game as much as possible, and it will make you rewrite your code whenever needed, google better solutions, and think more about game structure.
With Unity you can’t just randomly pick Blueprint nodes hoping one of them will work. Here you have to write real code and it won’t work until you do it properly. You become a better developer whenever you fix your code after Unity forces you to. Isn’t that awesome?
You Just Love Programming
Personally, I don’t like the idea of visual scripting, because you could be programming instead. And we all know that programming brings more fun and more sense of accomplishment when we make something work.
It’s a great, transferable skill that we can later use to develop other kind of applications, not just games. So if you love coding, or want to love it, then Unity is the right choice.
You Want More Job Offers
Unity is popular mainstream game development solution. Although getting job in this field is hard, you can be sure it will be much easier to land an Unity job than Unreal job. Due to its popularity.
If you feel like game development is too serious time investment to later not be able to even get a job, then pick Unity. Don’t believe me? Check any website with job offers.
You Prefer Coding In C# Over C++
You can code websites and many other apps with C#. It’s multi-purpose language that’s worth learning. But the absolute best thing about C# is easiness and syntax.
You just can’t hate this language. If you previously coded in Java, PHP, JS, C, C++, you should feel huge relief the moment you get used to C#.
You Have Average Or Slow PC
I will not lie to you, you need a good or at least average computer for any kind of game development. However, the bar is much bigger for UE4 and it is for Unity.
I can have over 20 tabs opened, listen to music on YouTube, have Blender in the background, and Unity still doesn’t lag!
- Quora about AAA games.
- EDUCBA‘s visual approach.
- Long article from author with similar preferences.
- Medium about CryEngine.
Summarizing The Post
Indie game development is absolutely great hobby regardless if you want to find a job later, make a game for fun, or profit on Steam sales.
Whether you want to compete with other games, or save time and money, or just make things a little bit easier, you need a game engine.
Fortunately in 2019 there’s a lot of choices, and the best ones, Unreal and Unity, are really valuable pieces of software that come from reputable brands and are filled with cutting-edge functionality.
In this post you learned:
- What are game engines.
- Why you shouldn’t make games from scratch.
- What are best options.
- What are most important factors that determine best engine.
- And finally what engine you should choose.
The only thing left is to pick an engine and start developing ;). Its hard hobby, but who knows, maybe you will become second Notch? And even if not, if your game will bring you sales and recognition, wouldn’t that be incredible?