So let’s start a little with history. Unreal Engine is an engine created by a professional team of developers. And Unity 3d was also created in 2005 by a professional team of developers.
Unity immediately gained a huge fan and developer base due to its simplicity and convenience. After abandoning the distribution model of two versions – a stripped-down free and functional paid Pro version in favor of a fully functional free version, its popularity has sharply increased and continues to grow.
Now any interested programmer or a small studio can freely download the latest version of the engine, make a game in it, publish it and start making money from sales or in-game purchases for free. While Unreal at this time could only operate with trained professionals with extensive experience. The threshold for entering Unreal is obscenely high. To start programming games on it, you need to know C ++ and a ton of small details of how the engine works, and this is not one year of training as a programmer and learning the engine itself. In a unit, any person who is not deprived of the logic and basics of Pascal will be able to write a simple game in a week. In Unreal, this will take 10 times longer and this is an indisputable fact.
Ease of use
Epic Games (the developers of Unreal) know their strengths and weaknesses. So the release of Blue Print was not long in coming and really lowered the threshold for entering the UE. But just for “prototyping”. Serious projects are still “highly recommended” to be written in C ++ with all the implications. The market is now “by eye” Unreal developers 1 in 10 or even 20 compared to Unity.
Hence follows the main disadvantage of unreal engine android. Development for it is an order of magnitude More Expensive and More Complicated. There are few specialists, in fact good specialists are taught only by “already established specialists” from Epic itself or other large offices that have been developing games on Unreal for years. If you are a small team or Indie developer, then your limit in Unreal games is ready-made multiplayer FPS shooters. Because in fact it was and remains the engine for the unreal game development services. All engine logic is tailored for first / third person shooters over the network.
Flexibility
Unreal Editor is just a mockery of artists and everyone who is somehow connected with the creation of art, sound, animations, textures and more. Its main and gigantic disadvantage is that it is not connected with the file system of your PC. You cannot just drag a file from folder to folder, into the editor window itself. Now you will have to Import any file of 3D model or texture using the button and nothing else. If you need to change the model a little, then you will have to Delete the Imported Objects by Hand and Re-Import them as many times as you want to improve your file. Of course, reimport “exists” there, but it works so unstably. For example, Vertex Color is never reimported. All created animation clips are overwritten when reimporting, etc. If you have not suffered a lot of your time in this editor, then get ready for the fact that 80% of the time you will be engaged in import and re-import. And if objects in your location is 100-200-300.
2D
Just know, you can not press the export button in your favorite 3D package and get everything in the same form in UE. You will have to carefully arrange each object with your hands, naturally forget about materials and so on. Because UE, in addition to Diffuse + spec + Ao + metallic, is imported nothing will happen, not to mention the second UV channel on the assigned texture or tiling and other details. I suffered enough to write my own exporter from 3ds max Vray to Unreal and spent several months on it just not to suffer with the Unreal editor. This made it possible to translate scenes from 1000 objects into Unreal in just 30 minutes of computer time, but even that did not help me 🙂
New features
New Features come to the engine in such a state in which it is often impossible to understand them without a bottle, because the set of checkboxes and console commands for the functionality of the “feature” goes beyond all reasonable boundaries. Want some cool fabric? Hair? Are flat reflections not a post effect? Be so kind as to read the entire documentation 5 times, and after two days with red eyes, you will find out that the feature is not available until you click the checkbox in the menu that you have not even heard of, nor the entire UE developers chat in the telegram. Also, in the process of work, bugs, freezes and crashes of the editor itself are not uncommon, especially in new versions of the engine, on weak computers and heavy projects, which developers of any level face.
The Unity Editor is an absolutely clear, easy-to-use mechanism, fully controlled and certainly its killer of features is that you can write plugins for it on Unity itself, but write a simple script in the UE editor for arranging objects – only in C ++ using the source code of the engine. Hence the unrealistic number of plugins for the unit and a few units useful for the UE.
Community
On the Internet, in various languages, you can easily find many forums and articles dedicated to the Unity engine, where you can find a solution to a particular problem or problem, which greatly simplifies the process of getting to know the engine and reproaches development.
So, what should you should choose?
The conclusion is simple, if you are a rich successful developer with a lot of experience and self-confidence and you love beautiful 3D graphics and multiplayer, then your choice is UE. In all other cases you choose Unity.