DOTS development status and next milestones – June 2022

Hi everyone!

We’re happy to share that experimental Entities 0.51 and its compatible packages are now publicly available! This completes our second milestone toward reaching an Entities 1.0 version by providing compatibility for 2021 LTS in addition to the existing support for 2020 LTS. Please find more information about this release from Matt Fuad in this forum post .

We updated our public roadmap page, where you can discover more details about the scope of Entities 1.0 and share feedback directly with the product team. We have already collected hundreds of pieces of feedback from you, which we read in detail and leverage to inform our next steps.

We are also excited to present several production stories from DOTS early adopters. Two of those were showcased at the GDC Dev Summit: Lauren Frazier from Ramen VR talking about how the team leveraged DOTS and ECS for the VR MMO Zenith, and Jonas De Maeseneer from Electric Square discussing their own experience with it for the production of Detonation Racing. The latest one is a live stream, on June 29th on the Unity Twitch channel with Fredrik Haraldsson and Rasmus Höök from Stunlock Studios to chat about DOTS in V Rising!

Finally, I recommend the session by Damian Campeanu delivered at GDC, focusing on DOTS authoring and debugging workflows, and our DOTS Q&A session with Jason Weimann at the GameDevGuild conference on May 25th.

The remainder of this forum post is very similar to the post we did on March 15, with minor updates to reflect our progress toward Entities 1.0.

DOTS roadmap
The goal of Unity’s Data-Oriented Technology Stack (DOTS) is to enable you to build more ambitious games with Unity and serve your needs in the production of complex multiplayer, crossplay, and open-world games.

DOTS includes all the packages based on the Entity-Component-System (ECS) architecture. The notion of DOTS is often extended to include the Burst compiler and C# Job System, two technologies that have been created to support the development of ECS but are independent of it. The Burst compiler and the C# Job System are already recommended for production and can be used in any Unity project, regardless of whether ECS is being used.

The APIs allowing you to implement the ECS software architecture pattern in a Unity project are delivered in the package named Entities. To obtain the benefits of the data-oriented architecture, game code and packages need to be based on Entities.

Our short-term roadmap is focused on efforts to bring the Entities package to version 1.0, bringing the package from Experimental to Released status, per the definitions of our package lifecycle. This step is critical because it means that Entities 1.0 and its compatible packages will be supported for production, like any other feature of Unity, and its APIs would remain stable for the duration of the Unity LTS cycle.

In our previous forum post, we explained that we needed to catch up with Unity LTS releases to get to 1.0. We have now reached compatibility with 2020 LTS and 2021 LTS with the availability of experimental Entities 0.51. Our next stop is to reach compatibility with 2022 Tech Stream with the version Entities 1.0 and its compatible packages, which will represent the ECS foundation supported for production moving forward. Entities 1.0 will be a breaking change from Entities 0.51. The amount of work necessary to update will vary from project to project and will be eased with detailed migration guides.

Entities 1.0: What to expect?
First of all, Entities 1.0 represents our ability to support you with ECS in production. During the experimental phase of Entities, to progress rapidly, we did not focus our resources on our testing infrastructure. We were, in a lot of cases, simply not equipped to track, reproduce and fix issues. With Entities and its compatible packages reaching version 1.0, we join the ranks of released packages, applying the quality standards and requirements for the packages to be compatible with platforms supported by Unity.

Secondly, Entities 1.0 is only a first step in overcoming some of the limitations of the Unity engine, enabling creators to build more ambitious games. Entities 1.0 is not the end of the journey; it is the beginning, and we will need a few major releases to make its benefits fully accessible in a transparent way to all Unity users. So, while we’re making a dedicated effort to bring you strong samples, documentation, templates, and other best practices guides, we will recommend Entities 1.0 specifically to seasoned game creators who have the experience of having previously shipped a Unity title.

Finally, Entities 1.0 is focused on consolidating the value we confirmed that early adopters obtained from ECS in their production, not to solve all the problems data-oriented technologies could help with. This is why Entities 1.0 is compatible with GameObjects and contains dedicated APIs and authoring workflows to efficiently bridge existing GameObject systems in Unity with ECS-based ones. This gives you massive flexibility in building games by leveraging the value of ECS for problems it is well known to solve, while still utilizing your existing Unity pipeline and expertise.

Here is the value we start delivering for production with Entities 1.0:

  • Adaptive Game Architecture: Facilitates writing and using an ECS game code architecture that adapts well to constantly changing gameplay requirements
  • Integrated workflows: Ensures compatibility with GameObjects through integrated Editor and baking workflows, allowing you to leverage existing Unity systems and your team’s Unity expertise
  • Control and predictability: Allows you to publish demanding games to the widest range of devices by optimizing client or server runtimes for each platform’s capabilities and constraints
  • Native Code Performance: Preserves the simplicity of authoring managed code, while giving you the performance of native code with parallelization and determinism
  • Made for massive data streaming: Combines Unity’s render pipelines with the efficiency of ECS, so you can achieve spike-less streaming and memory-efficient large-scale rendering
  • Unprecedented simulation scale: Targets a feature-rich physics library, scalable debug tools, and an accessible API to help you achieve efficient runtime and simulation at scale
  • Scalable multiplayer support: Contains the high-level networking foundations supporting the production of medium to large action games using a server authoritative model

To continue grounding this vision in reality, we are preparing more production stories from DOTS early adopters to share with you this year. Those stories will reveal why those technologies were selected, what problems they aimed to solve, and the challenges that accompanied those choices.

Your feedback is important
As mentioned at the beginning, please visit the DOTS roadmap page to gain a more complete and detailed view of the scope of our next milestones.

Each card on this interactive board is clickable, giving you more details about each topic while providing you with the option to share your feedback. If you accept to use functional cookies and log in using your Unity ID, then it’s as simple as clicking a card, selecting how important the topic is to you, adding your point of view, and submitting. This feedback is directly routed to the proper product teams.

With the release of experimental Entities 0.51, a regularly updated roadmap toward Entities 1.0, frequent forum communications, and production stories from DOTS early adopters, we hope you’re excited to see those years of efforts translating to concrete deliveries. The teams behind DOTS are working very hard to bring you the solutions you need for your ambitious projects.

As usual, please let us know what you think in this thread!

Laurent

32 Likes

Thanks for this new update :slight_smile:

The only thing I can think of is → please make early ECS 1.0 preview.xx package accessible as soon as possible so we can start bring feedback about it

9 Likes

We’re working on it! :slight_smile:

19 Likes

I have some questions for dots 1.0 release

  1. Since HybridComponent feature has been deprecated, will dots 1.0 release has any new hybrid solution that able to put game object into entity and able to instantiate the entity by dots addressables? So when instantiate the entity, the game object will auto instantiate together that associated with entity just like how HybridComponent does or similar.

  2. Will dots addressables support putting subscene into dots addressables like game object land that put scene into adressables?

2 Likes

Sounds good. I am also down for 1.0 - even if radioactive!

2 Likes

Any chance the bugs around CopyAndReplaceEntities are on somebodies radar?

https://fogbugz.unity3d.com/default.asp?1425370_sl2paqrmfhihfo0s

(older one: https://fogbugz.unity3d.com/default.asp?1331165_hoa8tf4ctdlcj4ag)

1 Like

Nope, we dropped the ball on both. Thanks for the heads up.

2 Likes

I’ve researched these things some, and this work is currently ongoing and has not yet landed in master. The tentative answers I’ve gleaned are that 1) TBD for individual gameobjects, and 2) yes, seems likely, assuming the PR lands in master as planned and hits no unforeseen issues.

Just for my understanding (since the hybrid serialization interop is not my forte), what is your use case for 1)?

3 Likes

If there’s anything I can do to help. I would happily iterate on the test case if there’s a better way to implement rollback. This is the test case I submitted. https://github.com/nykwil/EcsRollbackTest

My use case is to enable auto entity association with game object, game content update for both entity and game object, game object pooling by default. Currently I use addressables to achieve game content update for game object and then manually do entity association with game object. But it starts not working really well after I upgraded project to Unity 2021.3.4f1. It seems like there’s bug at Unity 2021 that blocking addressesables WaitForCompletion() API that keep blocking the main thread. It’s also another main reason why I need to have official support that I can make sure it will always working out of the box.

I see what but don’t see when. Is there any broad deadline like before? i.e. 2022Q3/4

Is it possible to step in Entities 1.0 all the way directly from Entities 0.17? by skipping 0.50 and 0.51?

I might reconsider for an official update of 1.0 more cuz wait another 4~5 months is affordable since all the years of previews has lived through, spare me plenty of time for game creating instead of api updating.

I can tolerate any roadmap obsolete or deprecated as long as Entities 1.0 arrives as light of god in this year:)

2 Likes

I uploaded a implementation of the CopyAndReplaceEntities bug using 0.51. My implementation does not share any code with nykwil’s implementation. CASE IN-8077.

1 Like

Massive Thanks to you, guys, and your hard working years will definitely fructify.

Hi there, Gotta Love The Progress DOTS Has Made

I Have A Question though, I Can’t Find Anything On The DFG Package(Data Flow Graph Package) And It Doesn’t Seem To Be Compatible With The Latest Release OF Entities

I’m Using It To Create A Custom Animation Solution That’s Based On The Animation Samples

So Any Kind Of Guidance Is Appreciated

Hi @elliotc-unity . Can u make sure these 2 issues about platform package will be fixed at dots 1.0 release? Case 1415919

  1. Unity Issue Tracker - [Plaforms] Build Configuration General Settings only lets to change Major and Minor versions in 0.50 Platforms version
  2. Unity Issue Tracker - [Platforms] Build Configuration does not have an option to Run the build

Btw I would also like to ask how much new code changes for platform 1.0 compares with platform 0.51? Is that just almost the same?

We were informed, there are many significant upcoming changes.
But there will be migration documentation provided.

Please checkout this vid, for more details

https://www.youtube.com/watch?v=p4ct4vHWYt0

1 Like

Hi everybody, continuing to share production stories for DOTS, after Ramen VR - Zenith and Electric Square - Detonation Racing at GDC, I will be Live Streaming today with Stunlock Studios to chat about how VRising (https://playvrising.com) leverages DOTS!

Editing the original post to add this information.

20 Likes

I’d also be interested in that. We’re currently using an older version of Entities and it still seems to work okay’ish. We have started porting over to 0.50/0.51 - but that has been kind of nightmare’ish. If 1.0 is a significant diff from 0.50/0.51 we may actually want to wait for 1.0 (unless going via 0.50/0.51 is likely to be less painful).

Did you get info about animations in their project? What are they using? Is it custom or hybrid with GO? I wonder what was that as this is the biggest hole in DOTS now.

3 Likes