DOTS Packages

Our Data-Oriented Technology Stack (DOTS) will make it possible to take full advantage of today’s multicore processors without the heavy programming headache. DOTS is in preview and we’re continuously adding new packages to the stack.

DOTS packages

As we’re rebuilding the core of Unity with DOTS, we’re continuously adding new features. Here’s an overview of the essential DOTS packages we’re working on at the moment.

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.

With ECS, we are moving from object-oriented to a data-oriented design. ECS lets you leverage Unity's C# Job System and Burst Compiler to take full advantage of today's multicore processors and the CPU cache.

Data-oriented design also 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 create gameplay using ECS y. Watch the Options for Entity interaction talk from Unite Copenhagen 2019 to get tips on choosing your code strategy. We also recommend getting these Entity Component System samples from GitHub.

The Entities package also includes Unity Live Link. With Unity Live Link, you can make changes in the Editor and see the changes reflected on any connected devices running the standalone player. This enables you to get direct feedback on the actual device performance.

Also included, the new Conversion Workflow converts your GameObjects to entities with one click so you can work with DOTS using GameObjects as you know them today.

Learn more
C# Job System

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 parallelized code. 

Take advantage of multiple cores

The C# Job System exposes Unity’s internal C++ Job System, allowing C# scripts to run as jobs alongside Unity internal components.

A safe environment

Provides protection from some of the pitfalls of multithreading such as race conditions.

Learn more

Burst Compiler

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.

Less hand-coding
Get many of the advantages of hand-tuned assembler code, across multiple platforms, without all the hard work.

Watch our Unite Copenhagen talk to get started and download the companion code from GitHub.

Learn more

Unity Physics (preview)

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, 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++.

Learn more
Learn what’s new for DOTS-based projects in Unity 2019.3, including DOTS-powered animation, FPS netcode, Conversion Workflow, Unity Live Link and more.

Unity NetCode (preview)

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.

Find out more about the future of Unity networking from this Unite Copenhagen 2019 talk.

Learn more

DSPGraph (experimental)

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.

Learn more
3D video game character running through level

Unity Animation (experimental)

You can see an early version of our upcoming animation system for DOTS in action in the DOTS Sample project. It offers core functionality such as animation blending, IK, root motion, layers and masking, with more features planned.

Get additional samples
Tiny Racing Demo in Unity editor

DOTS Runtime (preview)

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.

Learn more

Getting started with DOTS

Entities documentation offers an overview of the essential packages you’ll need to create DOTS-based projects. See this guide for information on how to install DOTS packages that are in preview from Unity's package registry server. Also, learn what to expect from packages in different stages of their lifecycle.

DOTS packages documentation

Entities (preview)

The Entities package is the core of DOTS. It contains our Entity Component System (ECS) and is a prerequisite for using Conversion Workflow and Unity Live Link. This package is currently in preview, and isn’t available for browsing from the Package Manager window. Follow these steps to install com.unity.entities.

 

 

DOTS Editor (preview)

The DOTS Editor package contains additional data analysis and visualization tooling. For example, it includes the Entity Preview Inspector that enables you to look deeply into how your GameObjects get converted into entities. This package is currently in preview, and isn’t available for browsing from the Package Manager window. Follow these steps to install com.unity.dots.editor.

Hybrid Renderer (preview)

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, and isn’t available for browsing from the Package Manager window. Follow these steps to install com.unity.rendering.hybrid.

Burst Compiler

The Burst Compiler translates jobified C# code into native code using LLVM. It optimizes your output for the platform you’re compiling for.

Unity Physics (preview)

We’re developing a brand-new highly performant physics engine built on DOTS technology. Use the Unity Physics package to benefit from a deterministic rigid body dynamics and spatial query system. This package is currently in preview, and isn’t available for browsing from the Package Manager window. Follow these steps to install com.unity.physics.

Havok Physics (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.

Unity Transport (preview)

You can use the Unity Transport API to create and configure a server and a client for your multiplayer projects. The package is currently in preview and only supports Windows, Linux, Mac OSX, iOS and Android platforms. This package is currently in preview, and isn’t available for browsing from the Package Manager window. Follow these steps to install com.unity.transport.

Unity NetCode (preview)

The Unity NetCode package provides a dedicated server model with client prediction that you can use to create multiplayer games. It’s currently in preview, with a focus on the architecture needed for synchronizing entities. This package is currently in preview, and isn’t available for browsing from the Package Manager window. Follow these steps to get started with NetCode.

Unity Mathematics

The Burst Compiler uses this math library to compile C# into highly efficient native code. It provides vector types and math functions with a shader-like syntax. This package is a dependency of the Burst Compiler package.

Where to go next

Sample projects for DOTS

Do you want to dive right into the code? Take a look at our library of samples on GitHub.

Entity Component System samples
Unity Physics samples

 

DOTS tutorials

Get an overview of the key terms and concepts in DOTS with simple examples. Then dive deeper into specific areas with talks from Unite 2019.

What is DOTS? Tutorial
Unite Copenhagen talks on DOT

DOTS Forum

Join our community forums to give feedback to the DOTS team and exchange information on new and upcoming DOTS features.

Join DOTS forum

We use cookies to ensure that we give you the best experience on our website. Visit our cookie policy page for more information.

Got it