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