This page looks best with JavaScript enabled

Unreal Engine 4 vs Unity

 ·  ☕ 5 min read

Overview

Last Global Game Jam (2021 edition), I had the pleasure to work in Echo (more info here). At first, we intend to use Unreal Engine, but after establishing the core idea, Unity looked more suitable for this small project (even if I have not touched or done anything with it since version 2017).

Unity or Unreal Engine 4?

Our main reasons to use Unity over Epic’s Engine were simply:

  • 2D
    Paper2D module is available to use build-in in unreal, but compare to unity 2d tools and features (specially lighting components), we prefer to give it a chance.
  • Input
    The new input system and controllers can be programmed the same way as in unreal (with some minor differences). The feature that was more suitable for this game was the ability of leaving the game or change gamepads on the fly with ease. For example, asign the keyboard to the player 2 and a XBox controller to player 1. So we can use this as a small example for future small party oriented games.
  • Compilation times
    I prefer C++ over C# (I have more experience with C++), but damm, some times it’s to slow to compile new actors or components (specially when some small adjustments were done).
  • Gain experience with other engines/frameworks
    I’m not an Unreal Engine expert, but changing to another engine gives me another perspective about implementing features, also it i can see what can I do with other engines, and if some of that knowleadge can be transfer between engines/tools.

Bringing Unreal architecture to Unity

I still remember that time I programmed Ronin Koleo with unity… i felt like i could do anything. A new behavior? just create a new script component an attach it to a game object. New enemy? I created a new script and done. but without control or a defined structure, it’s really easy to end with a tons of redundant scripts, a lot of ugly yarn ball dependencies and adding more features to the game became an almost impossible mision.

Unreal isn’t immune to this, but offers a more define Framework to start working and use in almost any way you want, you just need to deep dive in the documentation to understand how each new class/actor/component interact with each other (it have a bigger learning curve compared to unity, but in the end, it pays off).

Dividng the game in our own prefab/components structure similar to unreal helps us to keep organized the project and give us the flexibility to keep growing our game if we want to.

It reminds us the double egde sword that it’s unity’s scripting aproach to solve problems. On one hand, it let’s you do literally anything without almost no restrictions, on the other hand, it let’s you do anything without almost no restrictions. Learning some software design patterns and good design practices helps a lot, either you are using the unreal engine, unity, godot or any other library/framework available.

Personal thoughts

I have to admit it, I kinda liked my experience working with unity one more time. It was fun, easy and fast (even if at least 3 years have passed since the last project I have to work with unity). But also it made me apreciate even more some unreal features like:

  • It’s Gameplay Framework
    Having a well defined set of actors/components to implement features or behavior helps a lot when you start even the most simple game prototype ever. Also includes the network replication almost out of the box, so creating online multiplayer games it’s easier.
  • Auto saving
    There’s no Engine or Editor that it’s free of bugs or crashes, neither unreal or Unity are free of those, and most of the time loosing progress because the editor crashed hurts… a lot. Saving progress constantly is always a good idea, but there are moment when you just forget about it. So, I don’t understand why unity have not implemented it yet.
  • Asset creation
    I had a prticular issue while developing Echo movement. Since we use curves to calculate the speed movement of are pawns, we didn’t found a way to create and share curves between other game objects, and more times than I remember, the editor crashed and our curve movements were lost :(. In unreal we just create a new asset curve and set the reference in our actors… that’s it.
  • Sequencer (Cutscenes xD)
    It’s like having your own video editor. Maybe it’s too much for the small cutscene we did for echo, but have more tools and options to work with (also, blueprints and no need to be a guru to use it).
  • Blueprints for prototyping
    Designers or Artist can be involve in the prototyping stage of the game, and even if they are not gurus programming can use it to implement basic stuff with ease. Unity have the bolts package, but it feels incomplete compared to (bolts 2 on the other hand looks promising).

None of this means that the unreal engine is superior to untiy by any means, each one of them tends to provide different ways to aproach a problem. In the end it’s about choosing the not only right tool for the job, but that makes less painful the development cycle.

Share on

Jesús Mastache Caballero
WRITTEN BY
Jesús Mastache Caballero
Game Developer