Unity is a great tool for developing both single and multiplayer 2D and 3D games for over 25 platforms but there are some things to keep in mind when it comes to large team collaboration and triple-A game development.
Even though Unity is a perfect cross-platform game development engine for small and mid-sized games, and it does provide decent capabilities for building more competitive (AAA) games, it still has some serious drawbacks that we will discuss in this article.
As the main Unreal Engine competitor, Unity game development engine is a very powerful tool which has at least five pillars that make it truly great:
However, since 2017, Unity is smoothly deprecating UnityScript. UnityScript can be converted into C# using the conversion tool that Unity is actively upgrading.
Just for your information, with the release of Unity 5.0, in 2014, Unity has dropped the Boo support (Python-style-like language for .Net) excluding its accessibility from the menu.
Anyway, the main functioning language in Unity is C# which is perfect for performance-driven games thanks to the automatic memory management.
With Unity, you’re able to create reusable assets which allow for fast game development.
Unity’s Prefab system allows you to create complex hierarchies that are easy to maintain, configure, and update across multiple levels. A prefab asset is a template that should not necessarily be identical to the previously created one.
You can easily edit and create new prefab assets from the existing ones. When it comes to asset modification, the extension is done by association and not by hierarchical inheritance which allows for logic and code consistency. Moreover, when an object is edited, it doesn’t break the whole chain of objects of the same type but simply modifies the current object without messing up the code.
Unity’s Prefab system significantly speeds up the prototyping and overall development process.
Unity has two separate physics engines for 2D and 3D games which helps developers to focus on the right editor without trying to find a turnaround playing with a single multi-purpose editor.
The main difference between the two physics engines is that the 2D engine is purely customized for 2D app development and has a higher frame rate results (FPS) showing ~4x increase in performance.
Keeping in mind that the use of a 3D physics engine for 2D app development would slow down the development process; it’s good to have two separate engines which allow developers to switch between the two depending on the type of the project.
High-quality graphics in Unity can be achieved thanks to real-time global illumination, physically-based shaders, dynamic lights, and a solid particle control system (for water, fire, etc.) using scripting.
However, most of the graphical achievements in Unity can be bound to the Asset Store which allows developers to sell their own frameworks and plugins.
Among the most popular plugins are “Amplify Color”, “FXAA Fast Approximate Anti-Aliasing”, “Time of Day”, “Relief Terrain Pack”, “Alloy Physical Shader Framework”, and others.
Even though the majority of graphical advancements were made by independent developers, Unity is busy working on new trendy tech – ray tracing. Unity is planning to add support of the ray tracing feature and provide access for developers making Unity’s graphics even better.
Unity does a great job animating simple things, however, Unity’s animation is used for GameObjects animation and not for physical level animations.
In other words, Unity’s animation is used to influence the gameplay while other software like Blender is used to create complex characters or object animation.
There are several benefits of Unity’s animation:
Unity has great troubleshooting and real-time editing systems.
Considering current market demands, it’s crucial to have a quick and responsive troubleshooting system empowered with real-time editing which allows trimming the project according to the client’s vision and demands.
Unity developers find especially useful systems and modules such as:
In 2018, Unity introduced Unity Monetization SDK 3.0 which extended the monetization opportunities for marketers.
The list of app monetization features includes:
Configuring ad campaigns with Unity, marketers are able to create, edit, delete, budget, and schedule ad assets as well as track and selectively target user groups.
As you can see, Unity is an amazing tool with great out-of-the-box capabilities and monetization opportunities.
If it’s so great, why should you not consider Unity for AAA app development or if you have a large team?
There are multiple reasons why Unity isn’t yet a good fit for large teams and AAA games.
From code accessibility to Unity project management and features overload, Unity developers encounter various issues which keep them from collaborating efficiently.
One of the reasons why Unity is not a good fit for AAA games which require custom solutions is the source code accessibility.
On March 26, 2018, Unity published an article under a very clickbait title “Releasing the Unity C# source code” where they pointed out that they are actually not going to make their software open source for two reasons:
However, they were forced to release separate sources of code which were developed using .NET since developers cheated and disassembled the .NET assemblies anyway.
Ideally, you have to get a license to be able to edit and create new logic within the Unity Engine. For example, you need a license to:
For these and other reasons, AAA game developers usually choose a tailor-made engine to be able to modify it quickly and have it crafted for specific needs.
Even though AAA games require specific functions in their game development engine, it doesn’t mean they are building it from scratch.
Usually, companies utilize open source software that’s already available:
However, the software is heavily modified and created to serve specific needs. For example, these games used a tailored game development engine:
A custom game development creation pays off with time. In the beginning, it might slow down the process; however, if you’re building a game series or a franchise, it’s wise to think about custom solutions and not off-the-shelf software.
Lastly, Unity has a complicated team collaboration system which still has many bugs and “ifs” which you may want to avoid when you’re trying to meet the needs of the demanding customers.
One of Unity’s features is a solution called “Unity Teams” which has it’s expert’s guide to Collaborate. While reading this guide as a non-developer, I personally found a lot of limitations.
However, developers on different forums point out the following problems when collaborating in Unity:
If you google the top 10 games built with Unity, you’ll find that most of these games vary from small to mid-sized mobile games; however, there some very solid games build for PC such as Rust and Deus Ex: Mankind Divided.
Unity is a very competitive engine which has a lot of advantages that easily beat the drawbacks, especially when it comes to mobile game development.
If you’re looking for fast prototyping, idea testing, or even full-cycle mobile game development opportunities – Unity is the right choice.
At Game-Ace, we provide Unity game app development services as well as Unity mobile app development services to help you build your dream application.
Having over 10 years of experience in gaming and non-gaming app development, our team of certified Unity developers is ready to collaborate on your project and become your reliable technological partner.
For further information, team availability questions, prices, or other inquiries, please contact us here.
Author: Philip Volna