So… What if someone suggested you a mediocre game engine and said its best ever? Or if it wasn’t mediocre but even worse – total bottom of the barrel? If you wanted to create serious project that will take months or years to finish? Well if you’ve spent all that time using wrong game engine, you would probably regret and not know if you should throw away all your work and start over with better tool, or keep tolerating it.
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 when it comes to the 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.
This is the extended comparison of top game engines. If you prefer shorter version then consider reading this brief article about Unity and UE4. The difference is that shorter version is easier to consume and straight to the point, while this huge guide looks at the problem from all angles and carefully evaluates the winner.
Table Of Contents
Introduction To Game Engines
Game engines are tools for anyone who loves idea of gaming, but would rather take things to the next level (that doesn’t equal to buying Xbox One).
Nowadays, all major games are made in either popular or in-house game engines. Some people don’t like the idea of using an 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, they support different programming languages and platforms, there are free and paid choices, as well 2D and 3D engines, or engines that do both. 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 an engine, framework, or some CMS like WordPress (so what this site was built on).
I always have an idea 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 in what engine the game was made. 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 – teams with more developers, skill, time and budget than you. By creating a game from scratch you actively try to ruin your already small chance for success.
I absolutely love 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 Vs 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 your game million times even without an game engine, like Notch did with 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 no engine at all or 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 a middle-ground – technologies that aren’t as good as 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, targets specifically 2D role playing games.
- Game Maker. Great engine made by YoYo that allows absolute beginners cretion of any 2D game they want. But lacks 3D, and 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 GDScript. Godot was made by Ariel & Juan. Has only 3 developers. The idea behind this engine is great, but Godot is nowhere close to the quality of 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 by Mario & BadLogicGames.
These engines aren’t the worst and each of them has one or two reasons to use them. But by not choosing UE4 and Unity, you’re compromising a lot.
Unreal is a 3D game engine 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, as the popularity gap either increases or stands the same every year.
Major Unreal Features
Unreal’s key features are blueprints, performance and graphics, but 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 all the things that could be 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, which you would either have to code yourself if using Unity, buy or find free alternatives 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 before, but that’s a thing of the past.
- 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 coding games.
- Much easier to learn than C++. C++ is harder to learn and take years to master it. You can use Blueprints fluently after few months of usage.
- Skill not transferable as much as C++. C++ and C# are transferable skills whenever you decide to code other programs or find a programmer job. Here, 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 effort required to learn coding that’s required 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.
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 a 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 even up to few 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 played 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, as well as with many duplicated Blueprints. Then choose engine considering result of this test.
You Prefer Coding In C++ Than 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), 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 number job offers. It’s much harder to land Unreal job. In my area there are two Unreal jobs yearly, and few Unity jobs every month or two. 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 talented developers, their polished games, portfolios and skills.
Unity is a cross-platform 2D & 3D engine suitable for games of 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, tablet 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 2020, 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 the development 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 not 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 any case it will take long to create exact same Blueprint script as on the video, 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 browser game quickly instead of downloading 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 community about 20 times bigger than Unreal.
Not only there’s a lot of already solved issues that you just need to google because someone had this problem before you, but you also 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 you also can choose from infinite pool of text guides. And you will never run out of them. The fact that you can copy code instantly is just great.
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 instead. Games made with visual scripting aren’t any worse than games made with C++.
However, after you go through the basics of coding and Unity, then further learning of C#, Unity Editor and Unity API goes really quick. You will try to improve your game as much as possible, and you’ll know more and more whenever you rewrite code, search better solutions, and improve 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 kinds 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# Than C++
You can code websites and many other apps with C#. It’s multi-purpose language. But the absolute best thing about C# is easiness and well-though 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 than it is for Unity.
I can have over 20 tabs opened, listen to music on YouTube, have Blender in the background, and Unity editor still doesn’t lag.
Which Engine Will You Choose?
Indie game development is 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 is a game engine.
- Why you shouldn’t make games from scratch.
- What are best game engines.
- What are most important factors that determine best engine.
- Who’s the winner in Unreal vs Unity race.
- 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 any sales and recognition, wouldn’t that be incredible?