Our Data-Oriented Technology Stack (DOTS) makes it possible to take full advantage of today’s multicore processors without the heavy programming headache. The stack consists of a growing number of packages.
As we’re rebuilding the core of Unity with DOTS, we’re continuously adding new features. Here’s an overview of the major feature areas.
A better approach to game design
With our Entity Component System (ECS), you can write high-performance C# code that focuses on the actual problems you are solving: the data and behavior that make up your game.
In addition to providing a better way to design and build games, ECS lets you leverage Unity's C# Job System and Burst Compiler to take full advantage of today's multicore processors.
With ECS, we are moving from object-oriented to a data-oriented design, which means it’s easier to reuse code and easier for others to understand and contribute to it.
Read the ECS documentation for information on how to get started using ECS to create gameplay. Watch the Options for Entity interaction talk from Unite Copenhagen 2019 to get tips on choosing your code strategy when working with ECS. We also recommend getting these Entity Component System samples from GitHub.
C# Job System
The C# Job System takes advantage of the multiple cores in today’s computers. It’s designed to empower C# programmers to write safe, fast and jobified code.
Take advantage of multiple cores
The C# Job System exposes the Native C++ Job System allowing C# scripts to be jobified alongside Unity internal components.
A safe environment
Provides protection from some of the pitfalls of multithreading such as race conditions.
A new LLVM-based backend compiler technology takes C# jobs and produces highly optimized machine code.
The best of every platform
The Burst Compiler optimizes your output for the platform you’re compiling for.
Get many of the advantages of hand-tuned assembler code, across multiple platforms, without all the hard work.
We developed a brand-new Physics engine built on DOTS technology, enabling you to create physics simulations that deliver exceptional performance compatible with modern networking needs. Unity Physics is currently in Preview, available via the Package Manager, and compatible with Unity 2019.1 and later versions.
For customers who need to produce very complex physics simulations, we offer Havok Physics for Unity. It’s backed by the industry-leading Havok Physics engine, which powers over half the top titles of this console generation. It’s written using the same C# DOTS framework as Unity Physics, but includes the features, performance, stability, and functionality of the closed-source, proprietary Havok Physics engine, written in native C++.
If you’re thinking about making a multiplayer game in Unity, our DOTS Sample project is a good place to see our progress in this area so far. The NetCode that’s included provides client-side prediction, authoritative server and interpolation, making it easy to create a networked FPS game. Install the Unity Transport and Unity NetCode packages from the Package Manager to get started.
Find out more about the future of Unity networking from this Unite Copenhagen 2019 talk.
The foundation of the upcoming DOTS audio system is the DSPGraph (now in Preview). Our new low-level audio engine works with the Burst Compiler and is completely extensible in C#, enabling audio programmers and audio system developers to build their own custom audio system.
Join the DOTS audio discussion forum to ask questions or share your audio needs with us.
The new Conversion Workflow converts your GameObjects to entities with one click. Check the new Entity Preview Inspector to see how DOTS turns your GameObjects into entities. You’ll get the hyper-optimized, streamable data you need while using GameObjects as you know them today.
With Project Tiny, Unity’s upcoming new highly modular runtime powered by DOTS, you will be able to build instant games that are small, light and fast. Download our Tiny Racing demo to get an early look at what we’re working on. It includes a preview of initial 3D rendering features and build targets for iOS/Android/HTML5/Windows & Mac.
The Hybrid Renderer is a new pathway that gives the existing renderers the instance data they need in order to render objects. To convert GameObjects in a Scene to entities, the conversion system looks for a MeshRenderer and MeshFilter component on each GameObject and converts them into a RenderMesh component on the entity. This package is currently in preview.
Havok Physics is a closed-source solution for customers who need to produce very complex physics simulations. It shares the same input and output data formats as Unity Physics, which means that you can swap between the two options at any time. Subscription plans for Unity Pro users are now available in the Unity Asset Store. This package is currently in preview.
Where to go next
Documentation & samples
You can also always find links to documentation for packages in the Package Manager straight in the Unity Editor.
Unite Copenhagen talks on DOTS
Learn how innovative game studios use DOTS to make great games faster, and how all the upcoming DOTS-powered components, including Unity Physics, the new Conversion Workflow, and the Burst Compiler, work together.
Join our community forums to give feedback to the DOTS team and exchange information on new and upcoming DOTS features.