It’s become a bit of a clichéd debate in game development circles, but it’s the biggest question new developers usually have.
As someone new to game development, unless you’re a highly skilled software engineer capable of building an engine in tandem with developing a game, you’ll almost certainly use a third-party option like Unreal Engine, Unity3D or Godot Engine. These engines take care of a lot of the heavy lifting, allowing developers to focus on creating content and mechanics that make their games unique instead of worrying about the underlying technology that brings everything together. For this guide, we’ll focus on the two most popular ones and their rivalry; Unreal Engine vs Unity.
Both engines offer a set of features that are in many ways very similar and the Unity vs Unreal Engine comparison can at times seem pointless as both engines allow you to make virtually any game you can think of. That said, there are a few notable differences that could swing the pendulum towards one engine over the other depending on your circumstances and requirements. Below I’ll outline what I believe to be the three biggest differentiators between the two, but there are of course countless smaller features that I might compare in a future article.
Coding languages, C# or C++?
Unity uses C# and Unreal Engine uses C++, ignoring visual scripting for now, this is the biggest and most significant difference between the two engines. If you know either of these two languages already from a non-game-related software development background, choose whichever language you already know and its corresponding engine. In the case of C#, you could consider a past career as a Java developer as highly beneficial, as the syntax of the two languages are very similar and you’ll have a pretty easy time moving from one language to the other.
If you’ve never written a line of code before C# is without a doubt the easier place to start, its syntax is more readable than C++ (meaning that at a glance you can tell what the code is supposed to do), and it’s a higher-level language that takes care of things like garbage collection and provides compiler warnings for dangerous code. On the other hand, C++ is a far more performant language that has direct hardware access and allows you, if so inclined, to optimize your game far better.
In this category C# definitely takes the win as a more beginner-friendly language, but keep in mind that if your goal is to work on the next Battlefield or Assassins Creed, you will most likely be required to know C++ and by extension the Unreal Engine development environment. And while it can be difficult to learn, you can check out our Unreal Engine 5 tutorial guide to get started.
What sort of developer do you want to be?
Do you want to get hired at one of the big studios and work on the next blockbuster AAA franchise that sells in the millions? Or do you perhaps want to make a smaller game all on your own or with just a few of your friends? Or perhaps both?
It’s a simple but vital question, as a small or one-man team, you will never have the time or resources to make big and graphically intensive games, so the benefits Unreal Engine provides here might be meaningless to you. You can of course still make nice-looking games as a small studio, but they’re likely to be stylized or 2D. For this type of game, either engine will do just fine, but if your goal is to make a 2D game, Unity is again slightly better because of more specialized features for 2D development and just generally being easier for beginners to navigate.
However, if your goal is to make games with photo real graphics like these Unreal Engine 5 games or to be part of a larger team in a triple-A studio then Unreal Engine is definitely the right choice. Having C++ as its programming language lets Unreal get more out of the hardware it’s running on, allowing you to push demanding features such as higher-definition textures, demanding physics interactions, and advanced AI. And with Unreal Engine 5’s Nanite and Lumen features you get incredibly detailed large-scale game worlds with real-time lighting, reducing the need for time-consuming and tedious game-asset optimization and prerendered light maps.
That’s not to say Unity is a slouch in this area either. In particular, it’s made great strides towards photo-realism and performance in the last few years with its DOTS framework, VFX Graph and High Definition Render Pipeline (HDRP), but Unity hasn’t caught up to Unreal Engine quite yet and lacks a response to Lumen and Nanite.
Target Platforms?
So, you have a game idea, but what platform(s) do you want to release it on? PC, Xbox, Playstation, Nintendo Switch, Web, Phones and Tablets? Perhaps all of the above? The type of game you want to make will of course help you determine which platform is likely to be the best home for your game, but the choice of engine should also be considered here.
As I’ve mentioned earlier in this guide, the comparison of unity vs unreal engine 5 is also a comparison of C# vs C++. C# has an advantage in that compiles into the Common Intermediate Language (CIL) which can be executed on virtually any operating system without the need to convert and recompile. Unreal also supports most popular platforms, but as it doesn’t compile into CIL it understandably doesn’t support quite as many as Unity, missing out on things like Smart TVs, WebGL, HoloLens and a few others. On the other hand, Unreal using C++ means it has access to low-level operations like memory and hardware control allowing for better visuals and performance on higher-end hardware like the Playstation 5, Xbox Series X and high-end gaming PC’s. For PC’s just remember make sure your own rig is up for the task by meeting the Unreal Engine 5 system requirements.
Final Verdict: The unpopular “it depends”
It’s perhaps a bit boring and non-committal, but the answer to “unreal engine vs unity for beginners, which is best?” is really up to you to determine based on your needs, previous experience, and goals for your career as a game developer. Hopefully, with this guide, you’ve gotten a better idea of the three most important factors that should influence your decision.
Not happy with the nuanced answer? Fine! Have it your way! You should use Unity, no Unreal, no Unity, yeah Unity! Unless…