Performance by default

Take full advantage of today’s multicore processors with Unity’s new high-performance multithreaded Data-Oriented Technology Stack (DOTS). Your games will run faster and your code will be easier to read and reuse across other projects.

Rebuilding Unity’s core

We’re rebuilding the core foundation of Unity with the high-performance multithreaded Data-Oriented Technology Stack. DOTS makes it possible for your game to fully utilize the latest multicore processors without the heavy programming headache. DOTS includes the following features:

  • The C# Job System for running multithreaded code efficiently.
  • The Entity Component System (ECS) for writing high-performance code by default.
  • The Burst Compiler for producing highly optimized native code.

These DOTS features provide programmers with a convenient sandbox to write multithreaded code with massive performance gains. DOTS is currently available in Preview.

DOTS’ multithreaded systems enable you to create games that run on a variety of hardware, build richer game worlds with more elements and more complex simulations, and even optimize thermal control and battery lifetime on players’ mobile devices. By moving from object-oriented to data-oriented design, it will be easier for you to reuse your code and for others to understand and work on it.


The C# Job System

The new C# Job System takes advantage of the multiple cores in today's computers. It’s designed to open this approach up to C# user scripts and allows users to write safe, fast, jobified code while protecting against some of the pitfalls of multithreading such as race conditions.

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.

Entity Component System (ECS)

A better approach to game design

ECS is a way of writing code that focuses on the actual problems you are solving: the data and behavior that make up your game.

In addition to being a better way of approaching game programming for design reasons, using ECS puts you in an ideal position to leverage Unity's C# Job System and Burst Compiler, letting you 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 grasp and contribute to it.

Burst compiler

Optimized code

A new LLVM-based backend compiler technology takes C# jobs and produces highly-optimized machine code.

The best of every platform

Optimized for the particular capabilities of 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.

Megacity demo released

At Unite Los Angeles, we presented the Megacity demo to highlight our progress on the ECS foundation and the Burst Compiler. Building on our experiences from the Nordeus demo shown at Unite Austin 2017, our Game Code team combined with the FPS Sample team to produce a futuristic cityscape alive with flying vehicles, scores of highly detailed game objects, and unique audio sources to showcase what’s possible with DOTS in Unity 2019.1.

In fact, Megacity features 4.5M mesh renderers, 200k unique building objects, 100k unique audio sources, and 5000 dynamic vehicles flying on spline-based traffic lanes. Find out how you can leverage Unity’s “Performance by default” to create rich game worlds full of complex objects and simulations.

Learn more about how the project was created and download it here



Unite Austin Technical Presentation

As part of the preview release of the Entity Component System, we worked with our friends from Nordeus to make a version available of the technical presentation that we showed at Unite Austin.

A cut down version of the presentation is available on GitHub. Our focus has been to provide you with an updated version that utilizes the latest Entity Component System and to make available a functioning shader for texture driven vertex animation. This version is not graphically equivalent to the presentation that took place at Unite Austin.

You can find a walkthrough of the development of the Nordeus demo here


Learn how Tic Toc Games uses ECS in mobile puzzle games

Tic Toc Games recently implemented Unity's Entity Component System (ECS) in their mobile puzzle engine, which brought both great performance improvements and faster iteration time. In their “We love performance” session at Unite LA, Tic Toc’s Garth Smith explains how they sped up iteration cycles using ECS, and their experience learning and working with Unity’s ECS package.

Read the full case study here

Where to go next

Get started today

Looking for information on how to get started or have specific questions?

Go to documentation

Learn and share

A repository of examples on how to use DOTS to write systems at scale for learning and sharing. 

Introduction to ECS video tutorials
Unite Austin Technical Presentation
Entity Component System Samples

Join the discussion

Join our our developers on community forums to give feedback and exchange information on experimental and beta previews.

Join forums

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