Welcome to the DOTS Samples repository! Here you can find the resources required to start building with these new systems today. We have also provided a forum where you can find more information and share your experiences with these new systems.
We have been working on a new high performance multithreaded system, that will make it possible for games to fully utilise the multicore processors available today without heavy programming headache. The Data Oriented Tech Stack includes the following major systems:
With these systems, Unity can produce highly optimised code for the particular capabilities of the platform you’re compiling for.
For more information about the Unity DOTS initiative, see Performance by Default on the Unity website.
The Entity Component System offers a better approach to game design that allows you to concentrate on the actual problems you are solving: the data and behavior that make up your game. It leverages the C# Job System and Burst Compiler enabling you to take full advantage of today's multicore processors. Moving from object-oriented to data-oriented design makes it easier for you to reuse the code and easier for others to understand and work on it.
The Entity Component System ships as an experimental package that currently supports Unity 2018.3 and later. It is important to stress that the Entity Component System is not production ready.
The new C# Job System takes advantage of multiple cores in a safe and easy way. Easy, as it’s designed to open this approach up to user scripts and allows you to write safe, fast, jobified code while providing protection from some of the pitfalls of multi-threading such as race conditions.
The C# Job System is a built-in module included in Unity 2018.1+.
Burst is a new LLVM-based, math-aware backend compiler. It compiles C# jobs into highly-optimized machine code that takes advantage of the particular capabilities of the platform you’re compiling for. Burst is an experimental package that currently supports Unity 2018.4 and later.
2020.1.9f1or later to use the latest DOTS packages).
+icon in the upper left and select Add package from git URL...
[email protected]and confirm.
This will add the Hybrid Renderer package and all its dependencies, e.g. Entities, Burst, Collections, Jobs and Mathematics. Now you can start to use DOTS in you project.
Note: You can use the Unity Hub to install multiple versions of Unity on the same computer.
The ECSSamples project contains samples to help you get started with DOTS. The project release notes contain a summary of changes.
The PhysicsSamples project contains wide range of physics samples to help you get started with DOTS Physics. The new physics engine is a deterministic, rigid-body dynamics system and spatial query system written from the ground up using the Unity data oriented tech stack. You can find an overview of the samples and the release notes in this repository.
DOTS Physics supports macOS/Windows/Linux. Android ARMv7 still might experience craches due to memory restrictions on some devices.
WIP: Havok supporting consoles when building projects.
Looking for information on how to get started or have specific questions? Visit our ECS & Job system documentation.
Note that from the Unity Editor, you can access the documentation for any package from the Package Manager window.