For mobiles Unity is the winner for a long time without doubt, it just ideal for making some small mobile projects. Unreal engine tries to get into mobile market as well but it is just not optimized for it.
But what about AAA title games? “If you want to make a big serious game just get Unreal engine” - so many people say. Well it was true until this year. Unity 2018 has some new technologies and they are really good for big complex game projects.
First of all this is IL2CPP (Intermediate Language To C++). Now anyone can compile Unity project into native C++ binary. I think this is just awesome step Unity team made to bring Unity engine one step closer to AAA. I have long time experience in C++ programming and I hate this programming language. When you write C++ code you need to be extremely careful about memory leaks. All those pointers and destructors really make programming a way too slow. On the other hand if you are experienced C++ developer you can use all the power of C++ programming language to make really fast working code while C# code generally works not so fast due to virtual machine and garbage collection. To get the best of both C# and C++ programming languages Unity now has IL2CPP. So you can use C# language for fast prototyping without any worries about memory management and translate final code to C++ for compilation in Visual Studio. I think this is just awesome!
Another new technology in Unity 2018.1 is the Scriptable Render Pipelines (SRP). Lightweight Render Pipeline (LWRP) for mobiles and High Definition Render Pipeline (HDRP) for AAA games. While good old default render is still available I think one day it'll become legacy. I have not much to say about High Definition Render Pipeline (HDRP) yet because it is in preview mode by now. But it’s clear that Unity team wants to drastically improve engine graphics.
Next gen graphics is cool but what about multicore processor support to render it all? Good news here too! Meet brand new Unity C# Job System, Entity Component System and Burst Compiler. All this stuff not only helps to write more clean and structural code instead of Mono Behavior spaghetti style but it also brings automatic load balancing to get all the power from today’s multicore processors. Basically this is the new way of making Unity games and it shall be ready with Unity 2018.3 release by the end of this year.
So let’s sum things together. This year Unity team makes a real revolution. They create 3D game engine that can be used for mobile games and AAA titles at the same time. This makes Unity game engine number 1 game engine for many years to come. If you have something to add just write a comment.