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.
#3. Editor Speed & UI Redesign
This feature may seem as not so important. But if you think a bit more, it goes without saying that UI is the workspace where developers and designers work every day. So if they can arrange and optimize it in the most suitable way, it can increase the overall development speed. Especially for the Artists who work with Unity3D.
Additionally, Unity claims that Editor’s speed is much higher now and selecting a lot of objects at once is not laggy from now on. It is a big advantage as Level Designers would be able to build 3D worlds faster without a need for high-end hardware.
#4. Visual Scripting
This feature will increase the prototyping speed which is a major stage of development. Game Designers would simply learn this simple scripting tool and prototype on their own. It helps them to test a lot more mechanics without misunderstandings between them and developers.
Previously a Game Designer had to describe different mechanics required for implementation within a document for developers. Then everybody should play it and decide if a particular mechanic is cool or not. With the Visual Scripting, Game Designers can simply prototype their ideas (mechanics) and choose only the best ones.
So the old way suggests many people being involved in development and testing, therefore, some great features may pop up in someone’s head. On the contrary, the Game Designer solely decides if certain mechanics are worth implementing or not within the new approach. That’s the only drawback I can think of. However, the prototype made by a designer could be also played by several people. So, this shortcoming is mitigated.
#5. Kinematica (Preview)
Although this feature is announced to be in Unity3D 2020 preview, it is a really cool tool, which includes Machine Learning (ML) to structure a lot of raw moting data. Therefore, the ML model can be trained by this information to produce high-quality animations reducing the number of state machines of animation controllers.
The old way was to record animations using motion capture and then build an advanced Unity Animation Controller to blend all of them. Now, ML will save tons of time so the team would be able to focus on better art as they will have more time for it.
#6. Environment System (Preview)
A lot of conflicts emerged previously on the terrain assets while working on the same terrain. So it was impossible to build a big team for that purpose.
With this feature, you can build teams working in a layer-fashioned style. Hence, multiple artists can operate on different parts of the terrain simultaneously, which saves tons of time and money. Therefore, you can build bigger teams to produce more content in less time. Which is awesome as it allows us to deliver new content faster.
The release date isn’t known yet, but it’s scheduled for 2020. As Unity states, a big team is working on this feature, so they should be able to release it within the specified terms for sure.
#7. Virtual Texturing
Currently, there is Occlusion Culling, which compartmentalizes the scene by cubes. Each cube has some part of the terrain and 3D objects which then are culled if the camera view doesn’t see it. It’s a great optimization technique that considerably saves resources of the hardware.
Also, there is a great way to optimize memory by applying LODs (Levels of Detail). It reduces the object quality depending on the distance to the users’ eyes.
But Unity didn’t stop on that and implemented the Virtual Texturing that saves even more resources by displaying the best textures closer to users and the improper ones where users won’t see them. And even if they’ll see distant objects, they would think those are in good quality. Although the graphics card will say thank you to the optimization technique. Therefore, bringing less performance overhead. In its turn, it helps to build more advanced worlds with better textures that will make users experience even more immersive.
As the tendency shows, Unity makes every effort to further simplify the development process by providing an increasing number of services. They no longer require to manually develop own server for networking or apply different optimization techniques for visual texturing to have high performance, etc.
That means, that we can be more focused on the main idea of a game or simulation, spend more time on designing cool things without thinking about optimization and other tools to simplify the process. Unity has already taken care of it!