I had the opportunity to work with Unity game engine for 5 years while working on The Painscreek Killings. During that time, I came to understand what a game engine is, understand the capabilities and the limitations of Unity, both on a visual and technical scale. Moving to our next game project, Scene Investigators, the opportunity of using another game engine became a possibility. Making the switch to a new game engine also meant new challenges for us and stepping out what we are comfortable with. I decided to take some time to familiarize with Unreal Engine 4 (UE), see what the differences were between the two game engines, and what that could mean for the development of our next project. I also want to point out that as a level designer, this brief test will be more on the visual and technical features.
GETTING TO KNOW UE4
Transitioning to the Unreal Engine wasn't too difficult, but working with UE for the first time was like being on another planet. There were certain rules and principles that are the same, yet everything felt so different. Concepts like shaders and materials exist in both engines, but are presented quite differently. While navigating through UE's UI, I found myself being able to understand it quite well and use the tools it provide properly. With the help of some Gnomon Workshop tutorials, the learning curve shortened drastically.
There is, however, one big difference between the UE and Unity: the large amount of content Unreal has compared to Unity. As I started working more with UE, I became a little overwhelmed with the amount of information that was thrown to me and had to constantly look at the documentation to understand what they were. For example, in unity, you start with absolutely nothing. If you want to add any post processing effects, you need to add them manually. UE already had post processing effects added when you create a new scene, such as auto exposure and Space Screen Reflection. That, however, meant I had to scour the documentation for UE to tweak these already added settings. Because of this, I sometimes find myself asking what else does UE have already added that I may not know about. In contrast, I know exactly what my Unity scene will have because I added all of them myself. With the limited but adequate knowledge gathered, it was time to do a comparison test to see how much of a visual difference UE could achieve compared to Unity. This small test would also allow me to see how much I understand UE.
I first started with the Unity scene. Unity recently added a feature called the package manager and with that, I was able to integrate a few new tools into the test, namely planer reflection, vertex painting, and decals. Everything you see below was created with out of the box Unity tools and utilizing Unity's HD rendering pipeline.
Next, the same scene was replicated in UE. Replicating the scene wasn't too difficult, with most of the time spent on trying to get the tools to work the way I wanted it to. What surprised me was that navigating through in UE felt smoother, even though the amount of content in both Unity and UE's scene were almost identical. In addition, the scene in UE felt more optimized. With UE's default settings, the MIP maps of my 4K textures were lowered/applied quicker. This resulted in the textures looking low resolution even at a reasonable distance. In other words, UE optimizes the look and certain technical aspects of imported assets by default. Although this seemed automated, it isn’t a problem as all these settings can be tweaked to the level designer's needs.
MY IMPRESSIONS SO FAR...
Both engines are good choices for our project and UE is definitely a strong contender. Although UE offers more features and tools for a level designer, it has a much higher learning curve for beginners. I'm not sure I would have been able to understand and apply most of the features of UE without knowing Unity. Another point to consider is a possible change in our work pipeline. Files are interpreted differently in both engines with Unity reading the source files as they are while UE creates its own format. Also, I was always able to make quick edits of an image file in Photoshop when working with Unity. It is not so with UE. I would have to find an alternative method of making those quick edits or change my workflow in order to achieve the same productive level. The decision to switch now lies in our main programmer.
All in all, it was a good test.