Unity, Unreal, Godot...How to choose the best real-time 3D solution?

23 October 2019
Image d'un paysage en 3D sortant de l'écran d'un smartphone
For several years now, software programmes enabling real-time 3D solutions have been seriously developed becoming indispensable for video-game developers, as well as manufacturers who use them to develop innovative solutions notably with Virtual Reality and Augmented Reality (e.g. the driving simulator we wrote about a few weeks back).

The most popular software programme on the market is Unity 3D but there are others. The aim of this article is to present the most advanced solutions and help you make the best choice.

Unity 3D – The market leader

Unity is the most popular engine on the market. Released back in 2005, it started gaining popularity among developers in the late 2000s. Previously, Unity was reserved for MAC OS users. Its free distribution (basic version only) and online store have significantly contributed its success. It helps artists sell their work (textures, scripts and 3D models) and developers buy resources to develop games more quickly. It has been made easier to use thanks to its simple programming language (C# is simpler than C++), and its numerous tutorials and large community provides users with assistance.

Asset store homepage

Figure 1: Asset store homepage (https://assetstore.unity.com)

 

In terms of its characteristics, Unity is a comprehensive game engine:

3D rendering

Unity achieves high quality graphics thanks to Physically Based Rendering (PBR). Characteristics of different materials are taken into account (texture, type, metallic nature, shininess, roughness, etc.), as well as their environment in order to obtain the best possible 3D rendering by replicating the ambient luminosity in terms of the texture of objects.

 Example of renderings with a radio

Figure 2: Example of an object in different environments

 

Highly effective programming

Unity uses C#. Recently, Unity Technologies introduced a new programming method called ECS (Entity Component System). It allows you to write high-performance code i.e. by switching from object-oriented programming to component-oriented programming. The results? Incalculable time savings and performance gains. People working on the same project can re-use the same code thus improving collaboration and their contribution. Unity’s Job System can write multi-thread code. Therefore, you can develop bigger, more dynamic, richer and more complex 3D solutions that work on a range of different devices. Finally, the “Burst Compiler” can produce highly optimised native code for specific destination platform capabilities (smartphones, computers and consoles).

Unity also features a “Profiler” for data collection and performance analysis on the processor, graphics processor, memory usage percentage, and audio and graphics. The aim is to detect any anomalies to evaluate and optimise the performance of projects.

example of Unity profiler graphs

Figure 3: Unity profiler

 

Tools adapted to large teams

Unity offers a range of tools that address the needs of large teams. “Collaborate” works a bit like “Git” in that it enables teams to work together on the same project thanks to the ability to synchronise actions and information while versioning the code. This tool is directly and intuitively integrated into the Unity editor. It is also possible to add communication and conversation tools, such as “Discord”, “Slack” and “Jira”.

Unity also offers a “Cloud Build” system that automates the project compilation process. The advantage of this solution is that it makes it possible to compile a project in the Cloud on several platforms at the same time. So, you can distribute your build where you want.

Cost of use

Naturally, a very important criteria for companies is the cost of the chosen solution. Unity Technologies’ business model is highly advantageous. If your turnover is less than €100K then you can use the software free of charge. Above €100K, you have to subscribe at a cost of €35/month. Above €200K, you also have to subscribe but for €125/month.

If you subscribe for at least two years, you can then keep your version of Unity. You can also halt your subscription while continuing to use it.

And you can contact Unity to purchase the engine’s source code.

To learn more

The author of this article has published many articles on developing real-time 3D solutions with Unity, notably a book on creating innovative applications:

cover of Anthony Cardinale's book "Developing Innovative Apps with Unity"

Unreal Engine – The preferred solution of AAA studios

Although the project was launched in the early 1990s, the Unreal Engine was only made available to developers in 1998. As the solution was so costly, Unity remained the preferred choice of the general public. It wasn’t until 2015 when the engine was made free that the Unreal Engine saw its popularity soar. Today, both software programmes enjoy almost identical levels of popularity.

AAA rendering

For many years, Unreal - for whom quality is a priority - was better than Unity in this respect. Used by major games development studios, Unreal gave rise to many AAA titles (the classification given to very high quality video games).

Unity has now caught up and both game engines are able to achieve the same quality thanks to similar parameters. The main difference is that Unreal activates default post-processing effects unlike Unity which requires the intervention of a developer. 

Interior architecture visualization from Unreal's blog

Figure 4: Unreal blog (https://www.unrealengine.com/en-US/tech-blog/real-time-ray-tracing-in-unreal-engine---part-2-architectural-visualization)

 

C++ for high-performance code; visual scripting for beginners

The Unreal Engine enables developers to write scripts in C++, the preferred language of real-time 3D developers. It also makes it possible to optimise this code to obtain better performances.

For novices, Unreal has launched “Blueprint” i.e. a visual programming language that does not require the need to write to code. The developer simply assembles blocks using links for rapid and easy programming results. A simple way to start creating games without any in-depth knowledge.

Example of Blueprint code

Figure 5: Example of Blueprint code (https://openclassrooms.com/fr/courses/2675311-developpez-votre-premier-jeu-video-avec-lunreal-engine-4/3188250-blueprint-dans-les-grandes-lignes)

 

Ever more advanced tools resulting in hyper-realistic rendering

Unreal proposes a wide of range of tools to integrate realism and immersion in your real-time 3D solutions. The engine is incredibly responsive in terms of new additions (hardware/software) i.e. implementing the latest technologies - Ray-Tracing, dynamic shadows, 3D reflections, post-processing effects, special effects, animation tools, advanced audio systems, etc. The software also focuses on studying and developing solutions to design Virtual Reality & Augmented Reality simulations.

Cost of use

Unreal’s business model has changed over the last few years becoming simpler: 5% of what you earn from end-consumer sales goes to Unreal.

This is good news for manufacturers as this 5% rule only applies to the sale of products (games, simulations, etc.) to end users. It means that in-house solutions (Virtual Reality training) and demonstrators (virtual architectural tours) that will not be sold to external users can be developed free of charge i.e. without paying any royalties or purchasing a licence. .

Godot Engine – The Open source challenger

In the early 2000s, game engines as we know them today did not exist - well, not on the market. Studios relied on in-house solutions and game engines were still very specific i.e. you could only develop one specific playing style.

Godot was developed in 2001 to be more generic than existing game engines. It offered a solution that allowed the creation of various types of games (2D, 3D, platform games, action, adventure, etc.). But it wasn’t until 2004 that Godot was made free and accessible to everyone. In just a few years, the engine has evolved considerably and now incorporates all the key features found in other 3D software solutions. Although Godot is a little late compared to its competitors, it has the advantage of being 100% completely free and open source. Its goal is to do as well as Blender and become the go-to free reference, as well as giving the two aforementioned giants a serious run for their money.

High quality 3D graphics

Even though Godot is a little behind its competitors, it integrates all the features necessary to obtain high quality rendering. Like its competitors, it incorporates PBR materials, and can create its own shaders (IT shader to adjust the absorption and scattering of light by an object, as well as its texture and shadows), a system of overall illuminations and post-treatment effects.

Godot Engine homepage

Figure 6: Godot Engine homepage (https://godotengine.org/)

 

Programming with GDScript

Godot uses “GDScript”, which is very similar to Python. This language is simple and ideal for beginners. Godot also proposes other languages e.g. C# in the mono version of the software and C++. Finally, for those looking to create games without learning how to code then Godot offers a visual programming language (Visual Scripting) similar to Unreal’s Blueprint.

GDScript vs Visuel Scripting

Figure 7: GDScript vs, Visual Scripting (https://www.pinterest.com.au/pin/251779435403569598/)

 

Tools that meet the community’s needs

Godot proposes a wide range of solutions to facilitate development. Highly appreciated tools (Git, Mercurial, etc.) support collaborative work. The game engine can also optimise code and projects thanks to its Profiler.

Godot works very closely with its community. This means you can ask developers to implement features that seem relevant to you, or develop them yourself and offer them to Godot.

Cost of use

In terms of cost, Godot is distributed under an MIT licence; the licence is free and you own what you develop using this engine.

To learn more

Documentation and resources in French are rare. To help with this, the author of this article published a book (in French) on developing games with the Godot Engine:

Cover of Anthony Cardinale's book "Developing games with Godot Game Engine"

Conclusion

All three solutions have their benefits. It is important to the choose the solution best suited to your company. For companies with in-house C# developers, Unity is the best choice. For companies with C++ experts among their ranks, then Unreal is the way to go. And finally for companies who usually work with Python developers then Godot is the one.

Developing Virtual Reality and Augmented Reality solutions is very simple with Unity and Unreal but far more complicated with Godot as many features are not yet implemented natively i.e. you’ll have to develop them yourself.

If the quality of the rendering is an indispensable factor for you then you will want to opt for Unity or Unreal. However, if you want to use free tools then Godot is by far the best choice.

At AUSY we use Unity as it remains the most popular choice for developing Virtual Reality and Augmented Reality solutions. It also allows us to capitalise on and train our teams in a wide range of different technologies. Moreover, programming is done with C#, a language we also use for developing software, mobile applications and websites. Nevertheless, we are always on the lookout for the evolution of other technologies through continuous monitoring in order to offer our customers the best solutions for their needs.

 

Avatar d'Anthony Cardinale

Passionate about new technologies and innovation, Anthony specialises in developing immersive simulations in Virtual Reality/Augmented Reality using Unity 3D. He loves to learn and share his knowledge, and has already published many books on developing real-time 3D solutions e.g. Developing Innovative Apps with Unity by Editions d-booker 13 April 2017 in which he explains how to use Virtual Reality to create six innovative applications. Anthony is head of AUSY’s 3D/RA/RV Hub in Sophia Antipolis. With the project team, he helps customers develop their innovative projects.

Don’t hesitate to check out our web page on Smart Innovation

Let’s have a chat about your projects.

bouton-contact-en