The game engine scene has changed a lot in recent years. In 2005, Unity joined the party, releasing its product to the public. In 2014, Epic Games released Unreal Engine 4 with a new subscription model where you pay just $19 a month. Later, it became free with a 5% royalty on gross revenue, and most recently the pricing had changed again to free for the first $1 million in revenue (this massive increase will, of course, have implications in market share). Since Unity’s penetration to the game engine market and Unreal’s pricing model change, online debates about Unity vs Unreal and their pros and cons have flourished, and the popularity is not solely confined to the online arena.
Thanks to the low price (or no price at all), this wonderful world of game engines opened its doors to everyone. Many indie game developers finally had access to it (the word on the street is that Unity is the game engine of indie and mobile game development) and even large game studios abandoned their old engines and switched to Unity or Unreal. Proficiency in Unity or Unreal became a requirement for game developers who want to get hired. The hiring side also had to take this popularity into account; choosing some obscure or homemade game engine involved risking the studios’ ability to find game developers for their team.
The stats paint a very clear picture as well. Both of these engines are currently leading the game engine industry. With Unity having a 48% market share and Unreal Engine 13%, they both are a real force to be reckoned with.
So basically, comparing Unity vs Unreal is almost too obvious, but we still took the bite. Whether to go Unity or Unreal is probably something you’ve been wondering about as a game dev or artist. I guess you’ve already made your choice, but that doesn’t mean you’re not still conflicted. Maybe you’re on the verge of kicking off a new project and thinking of switching, or you just wanted to catch up on some reading – whatever your reasons may be, we’ve got your back with this nifty comparison.
Why Unity? No F***ing Around
What made Unity the leader of the game engine market? Why do so many game devs and artists march proudly with their Unity badge on? Well, it seems there are various reasons.
I would have mentioned that Unity is free as a first reason, but so is Unreal to some extent. So, let’s leave the pricing aside. But before we do, just a nice quote from John Riccitello, Unity CEO, that told GamesIndustry.biz: “There’s no royalties, no f***ing around”. Indeed…
Maybe the most recognizable benefit of using Unity is its ease of use. That’s why so many beginners choose Unity as their engine of choice. It uses C# which is considered easy, it has a very intuitive interface, and the architecture is straightforward (objects and components, that’s pretty much it). Additionally, as of July 2020, the Bolt visual scripting tool is included in all Unity’s plans, at no additional cost, which makes Unity even easier to use. It basically allows Unity users to avoid coding as much as possible. If you want to build a quick prototype for a pitch, Unity could definitely be the way to go. And that’s another reason – it’s fast. Unity is known for its fast iteration cycles (iteration is everything, isn’t it?), partly due to its ability to minimize code usage.
There are, of course, other reasons. It’s truly cross-platform (did somebody say porting?), it has an incredible asset store (expect to feel like a kid in a candy store) and an even bigger community… the list goes on.
Another thing that could put Unity at the top of your list is the fact that it’s damn good in 2D game development. Some of the most loyal UE4 developers among my friends admit as much.
Why Unreal? Graphics, People, Graphics!
Yes, the pricing shift will reel in a lot of indies, but still, Unreal is considered to be the AAA game engine, representing studios that create truly beautiful games (Gears 5, Days Gone, XCom-2, etc.), some of which are known for their photorealistic quality.
You see, Unreal’s bread and butter is its graphic quality (lighting, shadows, textures, and so on). That’s the main reason to absolutely swear by Unreal Engine. It’s not a small thing; the entire gaming world is headed towards photorealistic graphics. Sure, you can create beautiful graphics in Unity as well, but it will probably take you longer and you might not reach the same quality.
As for accessibility, while Unity is more accessible (an engine for beginners), Unreal’s Blueprints makes it also easy in terms of coding effort. However, there’s no denying that Unreal is more complex; the architecture is different and C++, well… is C++, not the easiest programming language on earth.
Other aspects such as community, asset store, and documentation are great as well, although Unity offers a larger community, a bigger asset store, and more documentation. Still, both engines are well set up in that aspect.
Unity vs Unreal: key differences
They say that coders prefer Unity while artists tend to like Unreal. From meeting a lot of Unreal game developers, I can’t say I agree, but I sure do understand why artists would prefer it. With Unreal Engine 4 you can achieve better visuals much quicker. A lot of graphics features (such as volumetric fog, post-processing) are available in Unreal Engine 4 out of the box, whereas in Unity they come as free assets which require separate installation.
Tools that are available in Unreal Engine like Material Editor are handy and are on par with node editors in such 3D modeling software as Maya and Blender. Unity Material Editor’s API is not quite there yet in terms of how rich it is.
In general, Unity does not fall much behind Unreal. You could still achieve AAA-quality results, but it might take you longer to do so.
If you compare Unity vs Unreal in terms of feature sets, both engines are quite competitive, but there are some features I would like to mention separately.
The first one is AI and how well it is implemented in Unreal Engine 4. In UE4 you can achieve impressive results with their Behavior Tree system. It allows you to create complex scenarios with ease using Blackboard and Behavior Tree editors.
Another one is 2D: If you want to make a 2D game, some developers would suggest you go with Unity. Sprite editors, animation tools… all of these make your life much easier if you’re developing a 2D platform. However, Unreal has the Paper2D plugin, so that’s something to consider as well.
And then there’s network support. Unity basically has none of it, and you need to use 3rd party libraries. In Unreal, on the other hand, replication comes out of the box, and you can build multiplayer games both in C++ and Blueprints.
I mentioned this previously, Unity is very popular among indie developers. Unreal, on the other hand, while known for being the engine of the big studios, the AAA giants, is slowly (but surely) taking its share of indies. It’s not just Unreal’s pricing shift. Unreal Marketplace is full of assets that you can use for prototyping, as well as additional plugins (check out Incredibuild plug-in), and the community is rapidly growing. So indies have their plate full, but what about AAA studios?
When it comes to AAA studios, in addition to the graphic’s quality attraction, Unreal is much more scalable than Unity. Big worlds and big projects that are often characteristic of an AAA game are a bottleneck for Unity.
Another reason for big developers to choose UE4 is that it is open-sourced. You can contribute to the engine to boost the implementation of features you want, or completely branch off of the engine. This is what Dice did with Unreal Engine 3.5 in Star Wars Battlefront.
Both engines have this sort of visual code editor (Blueprint in Unreal Engine 4 and Prefab in Unity). They are different though: Unreal’s Blueprint is a piece of code compiled by UE4 codegen to produce a valid C++ class. Unity’s Prefab is just a UI tool that helps you link different scripts together. In UE4 you can build a game using only blueprints because they are valid pieces of code. Then there is this new thing called Bolt – it’s like Prefab on steroids. It turned out so good, that Unity included it in all versions for free. It is still, though, just a UI tool that helps you get components together. Unlike Unreal where blueprints are valid generated C++ classes.
As the code itself, the main programming language for Unity is C# and for UE4 is C++. In my opinion, C++ has a steeper learning curve than C# and it feels it is easier to find a seasoned Unity developer than UE4 one, probably thanks to the C# language.
Both engines have a solid presence in the game dev scene, so it is no surprise that they both have large communities. Let’s see how many followers are in the subreddits: 238K members on Unity subreddit vs. 111K on Unreal Engine. I know, these numbers don’t say much. But it’s still a valid point of comparison: twice as many people in the Unity community, which means more questions, and more importantly, more answers. And of course, a bigger knowledge base.
It’s hard to compare the performance of engines. You need to take a lot of variables into account: quality of textures, number of objects in the games, size of a world… All of these things depend on developers. C++ vs. C# benchmarks won’t help us here, since both engines have their own SDK. And for instance, Epic highly encourages developers to use its memory management framework.
However, Unreal Engine optimizes draw calls, and with the growth of a game world, this optimization becomes visible: Unity steadily and proportionately increases its execution time, whereas Unreal Engine does not. Its performance superiority becomes apparent with bigger game scene complexity.
Another thing is distributed compilation. Incredibuld integrates with Unreal Engine to speed up code builds and shader compilation significantly. Epic uses it internally in its projects. There is no such integration with Unity so it favors UE4 a bit.
Comparison Table – Unity vs Unreal
|Graphics||Physically-Based Rendering, Global Illumination, Volumetric lights after a plugin installed, Post Processing||Physically-Based Rendering, Global Illumination, Volumetric lights out of the box, Post Processing, Material Editor|
|Unique Features||Rich 2D support||AI, Network Support|
|Target Audience||Mostly indies, coders||AAA-game studios, indies, artists|
|Coding||C#, Prefab, Bolt||C++, Blueprints|
|Community||More than 200k members on the official subreddit||About 100k members on the official subreddit|
|Performance||Does not scale well, unlike Unreal Engine||Has support for distributed execution (Incredibuild)|
Well, it’s the final countdown…Unity vs Unreal, which is better?
I have a bit of a disclaimer – I favor Unreal. Partly because of Unreal’s integration with Incredibuild, but not just. I’m a sucker for graphics, which is what Unreal does best. In addition, with the recent MetaHuman Creator that takes down real-time digital human creation from weeks/months to less than an hour, I feel that Unreal is investing a lot of effort performance-wise and it really shows. Unreal Engine 5 is coming up, so I’m expecting a lot of surprises and improvements to come.
However, I will say that Unity has its pros: 2D platformer, learning curve, ease of use, community, and asset store to name a few. Yes, there are legit reasons why Unity has that market share.
It comes down to who you are and what you need. Are you an indie developer? Are you a big studio developer? Do you want to develop 2D games? Are you looking for top-notch graphics (probably)? Answer these questions and you’ll know which way to go. Oh, and if you choose Unreal, don’t forget to take Incredibuild with you ?.