In modern game development, it has become more and more common to use a game engine to create your game. These days developers are absolutely spoiled for choice with a ton of game engines to choose from. There are however two that are currently the most popular options, Unity and Unreal Engine. Today we are going to look at the strengths and weaknesses of both, to help you decide which engine is right for you.
Before we jump in, let’s make a couple of things perfectly clear. This isn’t going to be a contest to determine which is better, they are two very different very good engines, with their own strengths and weakness. Which is a better fit is often decided by your personal preference or the type of game you are creating.
Additionally, Unity and Unreal are by no means the only options out there, they are simply the two most popular. I have an entire YouTube channel full of different game engines, all with their individual strengths and weakness. Perhaps in the future, I will do different versions of this format of video for other engines… let me know if you’d be interested and what engines specifically if so. If you are specifically wondering about the Godot game engine, I already did a video on why you would (and would not) choose Godot over Unity or Unreal.
There is a video version of this guide available here or embedded at the bottom of this page.
A Quick Overview of Each Engine
UNITY
Unity started life as a commercial product back in 2005. It wasn’t particularly relevant to me at the time, nor to most others frankly… because it was a Mac exclusive back then. In 2007 however, Unity was brought to the Windows platform and things really started to grow from there. The next year saw the launch of the Apple App Store and the mobile game goldrush that came with it.
Designed from the very beginning to make game development more approachable, opening it up to a wider audience and I think few can argue they succeed in that regard. Along the way, they also launched a highly successful advertising platform and created the single developer marketplace of any engine out there.
Since then they have continued to add features and perhaps, more importantly, target platforms, to the point that Unity can target pretty much every single platform you’ve ever heard of at this point. In more recent years a lot of focus has been on bringing better performance and rendering technologies to the engine, making Unity a true AAA engine. Features like DOTS and the scriptable rendering pipeline have resulted in massive improvements in visual quality.
If you are interested in learning more about the early to mid year history of the Unity game engine, be sure to check out this excellent article. https://web.wpi.edu/Pubs/E-project/Available/E-project-030614-143124/unrestricted/Haas_IQP_Final.pdf
UNREAL ENGINE
The history of Unreal Engine is much more traditional… it was the game engine powering… you guessed it… Unreal released back in 1998. Back in those days, there were a couple of companies licensing their engine technology to other developers ( NetImmerse, Renderware, LithTech, and perhaps most relevant to this conversation, idTech ). In the case of idTech, you got the code and tools made to create id software games like Quake/Doom and… well, that was about it. Epic Games on the other hand focused more resources on “productizing” their engine, with polished tools and support. Another thing to keep in mind, licensing game engines back in those days had a 6 – 7 figure license cost attached. At this point, Epic became a game and game technology company, a structure that continues to this day.
If you take a look at the games made with various versions of Unreal Engine over time, it’s a who’s who of gaming greats. Titles such as Unreal Tournament, Deus Ex, Bioshock 1/2/3, Splinter Cell, Batman Arkham games, Borderlands series, Gears of War series, Mass Effect, Mortal Kombat, PubG, Fortnite and of course Goat Simulator! Among big-budget games not built with in-house technology, Unreal Engine has easily been the king of A-AAA games. What you will notice missing however are mobile titles. Until Infinity Blade, Unreal was a relative unknown in the mobile space, but this is improving in time and the massive success of Fortnite really focused their efforts on improving their mobile support.
They started playing with an indie version with Unreal Engine 3, but with the release of Unreal Engine 4, the licensing system changed greatly. Instead of needing hundreds of thousands of dollars upfront like UDK 3, Unreal Engine 4 changed to initially a small subscription + royalty structure, then eventually went to a straight royalty system.
The Programmer Experience
Each game engine takes a very different approach to how developers, specifically coders, work with each engine. One major difference is that Unreal Engine has its source code available on GitHub (not technically open source though), meaning you can change any aspect of the engine yourself including the ability to build the entire thing from scratch. Unity on the other hand is closed source unless you fork out huge amounts of cash (rumored 6 figures numbers) for a source license. They are however slowly releasing more and more, with many packages being open-sourced and some of the parts of Unity being opened up for reference only (you still can’t compile the engine yourself, nor fix bugs).
In terms of gameplay programming, there are two main ways to program for Unreal Engine, C++, and Blueprints. C++ has a full garbage collection system built underneath it and has a live reload system now powered by Live++, which makes C++ feel much like a scripting language. Blueprints is a visual graph-based programming system, probably the best visual programming option available. It is also capable of being compiled to C++ code reducing the performance cost of using it. Build times in Unreal Engine are… not great.
In Unity, there used to be several supported scripting languages, C#, Boo (Python-like), and UnityScript (JavaScript/ECMAScript-like). In recent years Boo and then UnityScript support were dumped, leaving C# as the primary way to develop your games. On the plus side, since Mono was made free, Unity has a current implementation of C# now, instead of being stuck nearly a decade behind language development. Unity is currently migrating towards DOTS or Data Oriented Technology Stack, a combination of a high-performance subset of C#, ECS, or Entity Component System and parallel computing focuses Jobs system, promising native C++ level performance. Build times in Unity are very quick.
Both game engines have app stores that offer additional ways to program gameplay made available by 3rd parties.
Features
At this point, I would generally do a giant checklist comparison of features available between each game engine. Truth is, this is probably a complete waste of time at this point. If a new platform is launched, both engines will support it within a release. Both engines are absolutely loaded with tools and features… animation tools, profilers, DCC importing tools, terrain, physics, audio, VR, cutscenes, version control integration… they all have it. In terms of feature specs, Unity and Unreal are easily the most and second most feature rich game engines out there.
There are two areas where Unity shines over Unreal though… 2D and Web. In the last release, the HTML platform in Unreal was spun off into a community project. In terms of 2D, Unity has a MUCH bigger focus in this regard. Unreal has Paper2D, but development here seems to have stopped a couple of years back. 2D can be done in either engine, but Unity seems to be the better option in this regard.
The area where Unreal seems to still have an edge is visual quality… it currently has better performance rendering AAA quality graphics. Unity is trying to quickly close the gap here though with the move to DOTS and with the programmable high-end pipeline, the HDRP, which are currently in beta.
Unity platforms:
Unreal Platforms:
Unreal Engine 4 enables you to deploy projects to Windows PC, PlayStation 4, Xbox One, Mac OS X, iOS, Android, AR, VR, Linux, SteamOS, and HTML5. You can run the Unreal Editor on Windows, OS X, and Linux.
Please note, with either game engine you still need to have a console ( Microsoft, Sony, Nintendo ) developer license agreement in effect before you can develop for any of those platforms.
Community
Both Unity and Unreal have vibrant communities and alongside that all the books, tutorials, and other materials that go along with large communities. That said, Unity’s community is much larger with perhaps 3-4x more published books available, as well as a massive number of community driven tutorials. Both engines however do a good job making learning material available so learning either engine shouldn’t have much of a problem finding good sources. Both communities are large enough that getting a technical question answered should generally be possible, although it would be easier to hire an experienced Unity developer than an Unreal Engine developer.
Another aspect of the community is the developer marketplaces available. The Unity app store pretty much pioneered the concept and is a huge resource of free and commercial scripts, models, levels, graphics, etc… Unreal also has a developer store but it is a fraction of the size of the Unity market. That said, Unreal Engine does a developer give away of marketplace content the first of every month giving developers a huge amount of high-quality free assets over time.
Published Games
Both game engines have a massive catalog of published commercial titles. Unreal Engine dominates the big-budget AAA space and is trying to break more and more into the indie and mobile spaces. Unity is the opposite, with a huge number of mobile titles published and being the engine of choice for small to mid-sized developers, especially several high profile professional KickStarter titles.
Notable Unreal Engine Titles:
- Fortnite
- Mortal Kombat Series ( UE3 derived engine )
- Ace Combat 7
- Ark: Survival Evolved
- Batman: Arkham City/Asylum
- Gears of War 4/5
- Kingdom Hearts 3
- PUBG
- Sea of Thieves
- Street Fighter V
- Borderlands 3
- Blood Stained: Ritual of the Night
Notable Unity Titles:
- Hearthstone
- Cuphead
- Pillars of Eternity 1 and 2
- Firewatch
- Shadowrun (multiple)
- Battletech
- Ori and the Blind Forest
- Kerbal Space Program
- Recore
- Cities:Skyline
It’s safe to say there are many more Unity titles published than Unreal Engine titles, but Unreal Engine has the lead in terms of big budget mass market AAA titles.
Price
Unity and Unreal Engine both take massively different approaches towards monetization, each approach having advantages and disadvantages based on the ultimate size, scope, and total sales of your game.
Unreal Engine
We will start with Unreal Engine’s pricing scheme, as it’s the most straight forward. Unreal works off a straight royalty scheme after you’ve made a certain amount of income:
UE4 is free to use, with a 5% royalty on gross product revenue after the first $3,000 per game per calendar quarter from commercial products.
If you are expecting your game to ship an absolute monstrous amount of copies, you can also negotiate flat rate up front license fees with Epic.
Unity
Unity has a more traditional per-seat subscription approach, with multiple plans available often geared to the developer’s income levels. Unity just had a price increase January 1st, 2020 as well as getting rid of annual plan pricing.
There is the personal or free tier for developers whose revenue or funding don’t exceed 100K US per year.
Next is the PLUS tier, 40$ a month. This tier gets you additional features like access to their premium learning, analytics, cloud hosting, etc. The biggest difference is you can make upwards of 200K per year with this license.
Then there is the Professional tier at 150$ per month per developer. Again, this ships with a number of additional features but completely removes the revenue limitations.
Finally, there is the option to negotiate a source code license with Unity, the terms of which are not public.
Pros and Cons
Here is a quick breakdown of some of the major strengths and weakness of each engine:
Unity – Pros
- Support for every major platform
- Massive community and support network (books tutorials etc)
- Largest developer market by far
- Easiest to hire for, certification and training programs easy to access
- Much better support for 2D game development
- Engine more genre-agnostic adapts well to strategy titles, RPGs, etc.
- Faster development cycle, much quicker build times
- Ad network… Unity Ads is huge for mobile developers.
- Open and quick iterations on developments, very transparent with regular alpha and beta releases
- Modular redesign of engine should result in faster releases
Unity – Cons
- Out of the box visuals inferior to Unreal
- Performance issues
- No ability to build from source or fix bugs
- No major AAA title to point and say “We can do that!”
- Visual Scripting support is just starting
- A modular approach to development is making projects much easier to break, dependency hell
- The engine is in an in-between state… new UI slowly coming, new programming model slowly coming, some new features dependent on other new features that aren’t available yet.
- New programming model (DOTS/ECS) will require a major relearning process for existing developers and currently is far more complication than GameObject/MonoBehaviour workflow
- C#… C# or C#. Want to use C#?
Unreal Engine – Pros
- Support for every major platform
- Source code available, fully public development cycle
- Graphics… all those graphics
- More modern editor, less legacy cruft
- Excellent performance, often out of the box
- Exceptionally battle-tested. Literally hundreds of professional titles have been shipped using Unreal Engine in a broad swath of genres and styles
- Free assets are given away every month
- Free to use license wise if the game is published on the Epic Game store
Unreal Engine – Cons
- 2D has been all but abandoned
- Design of engine is very focused toward 3rd and 1st person titles
- Questionable future commitment to HTML platform
- Extremely slow build times
- Asset importing can be excruciatingly slow
- Smaller marketplace for assets, both for sellers and buyers
- No C# support
- Smaller developer community, harder to find experienced developers
Conclusion
Unreal and Unity are two products that are in many ways becoming more alike than different as time goes on. The biggest difference is where they started. Unity started life aimed thoroughly at the hobbyist market and found great success there. A lot of developments around Unity now are around scaling it up to work at the AAA level. Support for larger projects, higher fidelity graphics, and tighter control over performance.
Unreal Engine, however, from it’s very first day when it powered Unreal was first and foremost a AAA game engine, with a focus on high performance and graphic fidelity. With the release of Unreal Engine 4 there was a huge focus on making it easier to use, better documented, and more accessible.
With each new feature release, you can almost like clockwork expects the other engine to follow suit. They both have huge amounts of money behind them and there is little to no risk of either company going away. Both are adding features at a pretty staggering rate, although quite often those features might be years away from being stable enough to work in a production environment. Both are also pushing heavily into the services market. Currently, one major feature Unity offers that Unreal does not is an ad monetization service, which is huge in the mobile space but less important on desktop and console platforms.