Links on Android Authority may earn us a commission. Learn more.
Which is better? Unity vs Unreal Engine for Android game development
Both represent a sweet spot between ease of use and power. These are fully integrated development environments that let you write as much code as you need, giving you complete control over the look and performance of your game. At the same time, they both include a lot of built-in physics and scripts out of the box, as well as a huge number of free, ready-made assets for you to use.
Both Unity and UE4 represent a sweet spot between ease of use and power
Both tools are suitable for professional, commercial game development, but a hobbyist with little coding experience can also jump in and make something basic without facing too steep a learning curve.
Unreal Engine is developed by Epic Games and Unity comes from Unity Technologies SF. Both support a wide range of operating systems, making them ideal for cross-platform development. They’re also both free (at least until you start making big bucks!).
But which is better? There’s no simple answer to this question, so we’ve broken down what follows into the strengths and weaknesses of each, so you can make a more informed decision on which is right for your needs.
In terms of sheer performance, Unreal 4 has the edge over Unity 3D. Unreal 4 is simply more powerful, capable of delivering some of the best graphical performance in the business. It powers a lot of AAA-looking titles. The lighting effects are more impressive, and games typically run faster, with fewer dropped frames or hiccups.
This is partly because Unreal uses C++, unlike Unity, which uses C#. C++ gives programmers more control over memory management and is a “lower level” programming language than C#. For programmers that really know what they’re doing, it’s possible to squeeze a little more performance out of a script using C++. On top of this, Unreal offers a more impressive range of visual effects and graphical features out-of-the-box than Unity.
However, UE4 APK files are larger than those created with Unity, and typically require higher system specs to run (though this won’t be a problem in most scenarios).
Ease of use
Both UE4 and Unity make getting started with game development surprisingly straightforward. A lot of the work is done by simply dragging and dropping assets and objects into a “scene.” From there, you can then edit the objects’ attributes or add scripts.
Both interfaces feature a lot of windows and controls which can be daunting at first, but are relatively simple to learn. UE4 offers a visual scripting system known as Graphs and Blueprints, which allows someone with no coding background to add complex behaviors.
Once you actually start coding, the main differences will come down to C# vs C++. C# is the more beginner-friendly of these two options, which may give Unity the slight edge for some.
Unity really comes into its own with its support for 2D games. It is possible to make a 2D game in Unreal using the Paper 2D system, but Unity 2D is far more fleshed out and intuitive, typically offering a better workflow and a more polished end product.
This simple fact has led to the wide adoption of Unity 2D among mobile developers — the majority of mobile games are 2D in nature after all.
Community-made assets are available on both platforms, but there is a larger community of mobile developers contributing to Unity’s asset store (this might also be partly due to the fact that Unity has been free for longer). This can save significant time and effort, as it means they can grab special effects, sprites, animations, enemy AI and more from the store rather than having to develop them from scratch. This also means there are more mobile developers on Unity to share tutorials and offer tech support.
Developers can grab special effects, sprites, animations, enemy AI and more from the store
That said, both platforms have large communities, so you’ll likely not be stuck in this area regardless of your choice.
Unity gets a big win in the flexibility department. It’s very well-suited to creating mobile-first experiences. Both platforms support a huge number of game consoles and operating systems, as well as VR development (Vive, Oculus, Daydream, Gear VR), but Unity seems to be slightly ahead in mobile support.
Unreal’s big advantage in this department is that it is open source. This means a team with the necessary skills would be able to look inside the physics engine itself and make changes. This allows deeper, more fundamental changes to be made to the way games operate — it could even result in further performance upgrades.
Being open source gives Unreal 4 limitless flexibility, but you need a lot of coding knowledge and a willingness to put in serious time and effort to take advantage of it.
So, what should you choose?
As you’ve probably already guessed, I’m going to wuss out and tell you that there is no clear-cut winner here.
You can probably make the decision relatively easily if you arrange this information into a mental flow chart. Unreal is the more powerful and customizable option, but it’s somewhat inferior for 2D mobile development. Most mobile games don’t require the most cutting-edge graphics, meaning Unity will be the better choice — for a lot of beginners at least. It’s also the engine that powers the largest number of games on the App Store, which suggests larger developers feel the same way.
Then again, if you intend on developing a game or app that will be released on multiple platforms, you may want to develop with Unreal so you can push the envelope on PC and release a more pared-down experience on mobile.
If you want to really push the boundaries in terms of graphical fidelity and performance on mobile devices, Unreal is probably the better choice. Then again, it might just be a matter of personal preference or prior experience. Either way, these are both amazing tools which have empowered countless people to bring their ideas to life.
I’d love to know your thoughts on this, so let me know in the comments down below which you use and why. Or did you pick a different method for building games altogether?