by Vasyl Latushko (www.visartech.com)
Unity has announced their big release of Unity3D 2020 and the new functionality it brings to us. We’re excited to describe how the latest features can boost businesses.
The development process has always been challenging. To make a product look gorgeous takes a lot of skills. However, Unity makes the task easier compared to any other engine with similar features.
Now, Unity3D 2020 simplifies a great deal of the hardest processes. So let’s review each feature that Unity3D has announced to be in this version.
7 Core Features of Unity3D 2020 Version
Here is the list of what’s ahead of you in this article:
- Entities 1.0
- DOTS Netcode 1.0
- Editor Speed & Editor UI Redesign
- Visual Scripting (Preview)
- Kinematica (Preview)
- Environment System (Preview)
- Virtual Texturing
Each feature is worth using it in your business. Here’s why!
#1. Entities 1.0
It consists of three components:
- Burst Compiler;
- C# Job System;
To provide the best possible performance, we need to use the hardware to its fullest. That means writing code using low-level languages like C or C++. It enables such optimization techniques as SIMD instructions, custom assemblers, and others that go beyond the scope of the article.
The drawback of writing such code, besides its complexity, is the fact that there’s no way to run it on different platforms.
Fortunately, we won’t need to do so. Unity has already done the heavy lifting for us. They implemented the math-aware Burst Compiler that produces highly optimized code for a chosen platform to get the most out of its hardware.
Additionally, it does all the optimizations for us automatically. You just need to tell it to do so.
How can it boost businesses? Well, as there is no need to write complex code manually it means we can produce high-performance code with less effort, therefore, less money. In its turn, it allows investing remaining funds into further product development.
C# Job System
Writing multithreaded code is painful. It’s hard to debug it, manage and add new functionality. That means it requires much more effort to accomplish what you want therefore more financial investments.
With the C# Job System, again Unity has done the grunt work for us. The main goal was to simplify developers’ lives and save customers’ money. As they put it, they’ve implemented the best practices within the system that informs developers about possible issues by providing verbose logs. This means that potential problems can be found faster therefore less time will be spent on it.
The old Unity Component System was created with OOP in mind. It didn’t work well for games as there are many objects with a lot of states. So processing it all was hard, inefficient, and took much time.
ECS is the core of the Data-Oriented Tech Stack (DOTS).
To ensure CPU works in the best way, the memory layout is supposed to be linear. With the OOP approach, it’s hard to achieve such a layout as objects are scattered throughout the heap. Hence it requires more processor time to find where the memory address is and get the data out of it. In other words, the CPU needs to be distracted from its work searching for data throughout all heap to find all necessary information to accomplish a job. It’s not efficient.
ECS entities with the same set of components are grouped together allowing the CPU to process them in batches. This optimizes the code enormously. As Unity puts it, there’s no need to write C++ code to get the best performance as they found a way to tame the C# language to get almost the same efficiency with a huge advantage of porting to different platforms. It allows building more complex 3D worlds, therefore, having more details and complexity with fewer efforts.
#2. DOTS Netcode 1.0
At first glimpse, networking is not useful in business simulations as there are no such high expectations as in games like shooters. But let’s think closely. In the case of some manufacturing process simulation, where a lot of people should collaborate and the reaction is involved, good networking experience can be very useful.
Unity has announced that version 2020 will have an open-source framework with built-in features such as Client-Side Prediction, Lag Compensation, and Interpolation. We can easily leverage the optimization techniques to implement the best simulation experience where collaboration is required.