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.
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.
Get many of the advantages of hand-tuned assembler code, across multiple platforms, without all the hard work.
Watch our official Unite and GDC talks
Data-Oriented Technology Stack (DOTS) and Megacity demo release
At GDC 2019 we announced Burst Compiler coming out of preview and our Megacity demo. Learn how it leverages our Data-Oriented Technology Stack (DOTS), for big productions already today, and how you can use for inspiration for your future projects.
Announcing Unity and Havok Physics for DOTS
At GDC 2019 we announced our partnership with Havok to build a complete physics solution for DOTS-based projects in Unity. Unity Physics is available as a Preview package now, and Havok Physics will be available later this summer.
Entity Component System (ECS) "Megacity" walkthrough
At Unite LA, we revealed the Megacity demo built on our data-oriented design tech alongside tons of optimizations we're aiming to bring to Unity in 2019. The results are jaw-dropping.
Converting Your Game to DOTS
At this GDC 2019 session, we demonstrated what's involved in migrating existing game code to the new Data-Oriented Technology Stack (DOTS). We also show you the performance benefits you can expect from these systems. Finally, you'll learn when it makes sense to use them, and when to stick with the regular components you've used in the past.
Understanding Data-Oriented Design for Entity Component Systems
Unity's new ECS features enable huge performance improvements over traditional object-oriented ways of designing game systems, but the data-oriented design is a much different way of thinking. At this session recorded at GDC 2019, we show how to think in a data-oriented way so you can take advantage of these new features.
Learn what “Performance by default” means and more about new high-performance multithreaded systems that will make it possible for games to fully utilize the multicore processors available today without a headache.
A Data-Oriented Approach to Using Component Systems
Mike Acton demonstrates best practices for component design to achieve a high degree of parallelism, minimum synchronization, and high-performance.
ECS for Small Things
Learn about Unity's new solution for creating smaller, faster, lighter experiences that will enable you to reach everything from entry-level devices to wearables.
Unity's CTO and Co-Founder, Joachim Ante shares the principles behind evolving Unity from a GameObject engine to be Entity Component System (ECS), and the benefits it will bring to developers.
Job System & Entity Component System
Learn about Unity 2018.1’s new C# job system for game code, as well as a new (experimental) Entity Component System implementation to go along with it.
C# to Machine Code
Get an overview of the performance initiatives underway at Unity and share a deeper look at the technology developed to transform high-level C# code to efficient machine code.
Keynote: C# Job System
A peek into the future of high performance computation in Unity with the C# job system and compiler.
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.
Unite Austin Technical Presentation
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.
From the blog
Announcing Unity and Havok Physics for DOTS
During our GDC 2019 keynote, we announced our partnership with Havok to build a next-generation physics system for Unity. Today, we want to give you more details on what we’ve been collaborating on. Learn more about what Unity Physics and Havok Physics and what the best solution is.
On DOTS: Entity Component System
The new Entity Component System provide a way to easily define how data is organised in memory and how it is accessed by the CPU. This is a big departure from the structure used in Unity today. Working with linear data and systems that process sets of data vs singular monobehaviour scripts we can provide a more scalable foundation for the future.
On DOTS: C++ & C#
A brief introduction to our new Data-Oriented Tech Stack (DOTS), sharing some insights in how and why we got to where we are today, and where we’re going next. We’re planning on posting more about DOTS on this blog in the near future.
The Heretic, Megacity release, real-time ray tracing, and more news from GDC 2019
At GDC 2019 we released we announced Burst Compiler coming out of preview and our Megacity demo. Learn how it leverages our Data-Oriented Technology Stack (DOTS), for big productions already today, and how you can use for inspiration for your future projects.
What is a Job System?
Looking for a way to get started writing safe multithreaded code? Learn the principles behind our Job System and how it works together with the Entity Component System (ECS) and the Burst compiler from this brief intro!
Animation C# Jobs
In Unity 2018.2, the Animation C# Jobs feature extends the animation Playables with the C# Job System released with 2018.1. It gives you the freedom to create original solutions when implementing your animation system, and improve performance with safe multithreaded code at the same time.
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.
Where to go next
Get started today
Looking for information on how to get started or have specific questions?
Join the discussion
Join our our developers on community forums to give feedback and exchange information on experimental and beta previews.