Jayanam compares two engines to help you choose the most suitable one.
Jayanam who uses UE4 and Unity5 for professional game development compares these two engines in this video. He first shows the UI editors for level creation which are in his opinion very similar. They come with a content browser for the project’s assets, scripts and other files of the project. GameObjects can be dragged into the scene view an are added by that to the hierarchy of gameobjects used in the scene.
Also the transformations of the objects in the scene editor by using the tools move, rotate and scale are very similar, properties of the objects are shown for Unity in the Inspector, in UE4 this part is named Details.
After that he shows the possibilities of Prefabs in Unity and compares it to Blueprints.
Both engines have assets like static meshes that can be moved, rotated or scaled and skeletal meshes, which are also geometrical objects that are bound to the bones of a skeleton and are used for animated characters. They can be created with tools like Blender or Maya.
The animations that are included for skeletal meshes can be imported as well, they are attached to the imported object as animation clips for Unity, in UE4 they are known as animation sequences.
In order to control the animations in Unity so called animation controllers can be used, in UE4 there is a analog concept named animation blueprints.
Both engines have state machines to define transitions from one animation to another one, UE4’s system is called Persona, the one of Unity is named Mecanim. Also retargeting of skeletal meshes to other skeletons is possible, but Unity focuses on humanoid skeletons for that.
Animations can be edited in UE4 with an animation editor, in Unity this is not really supported, especially not for humanoid animations. The author has the opinion that professional character animations should not be done inside of the engine but in tools like Blender or Maya which have better support this kind of animations. The characters can be imported then into Unity5 and UE4 as FBX.
After importing objects the attached material is added to the project but it’s properties like the used shader or textures have to be added to the material manually.
In Unity this can be achieved by setting the shader in the material’s combobox and assigning the textures to the particular slots like the diffuse, normal or roughness map. Own shaders have to be coded with shader language or 3rd party tools like shader forge or ASE have to be used.
UE4 offers a very powerful material editor out of the box that is based on nodes like the blueprint system.
Coding with UE4 is done with C++ which some people are afraid of because of complexity and long compile times but Jayanam thinks that the API of UE4 is really clear and also the compile times are acceptable. UE4 has a very powerful and elaborated visual scripting system known as Blueprints with that you can implement almost everything that can be done with C++.
In Unity 5 the languages C# or JS can be used for coding. The API and it’s concepts are very similar to the one of UE4. When using a managed language like C#, the programmer is not forced to use e.g. pointers and the compiling is fast. Unity does not come with a visual scripting system, in order to use something like that the developer has to buy 3rd party assets like Playmaker.
For 2D development Unity has some great tools like Sprite creator, Sprite editor and Sprite packer. UE4 also supports sprites with a tool like Paper 2d but the Unity tools are more powerful, it also comes with a separate Physics engine for 2D objects.
Post-processing is a built-in feature in UE4. You can apply post-processing effects like Bloom, Tonemapping or Antialiasing globally in the scene, for special parts of a level the PostProcessVolume component can be used.
In Unity there is a post-process stack that can be downloaded from the Unity’s Asset Store. The effects can be attached as a whole stack or as scripts only globally to the camera, which makes it less flexible then UE4’s post-process volumes.
When creating videos or sequences also known as cinematics the Sequencer in UE4 can be used. This is a powerful tool to which every object can be added in a timeline for creating cinematic sequences.
Unity 5.6 has no cinematic system at the moment but they are developing a system called the timeline editor and cinematics which will be added to Unity 2017.
The author concludes that both engines are extremely powerful, perhaps there is a bit more flexibility for the developer when using UE4. For developing a 2D game he personally would use Unity 5 but when creating an extensive 3D game for example with open worlds he would try UE4.