Hi everyone,
Thank you very much for your patience. My name is Laurent, Product Manager for DOTS. I’m jumping in here to share an update on where we are before we share a larger and more detailed communication at the beginning of 2022.
To make it very clear: We are actively developing DOTS. Over the last year, the teams working on ECS solutions have been focused on leveraging the lessons learned from early adopters’ productions to converge toward a stable first release. Getting to a first fully supported release has been and remains our main focus.
Our original intent with the development of DOTS was that it would be fast, generally stable, and straightforward to support. Our enthusiastic commitment to this new way of building games reinforced a belief that we would get out of experimental and unsupported mode quickly. Not only did it take us more time to build a solid foundation than we envisioned, but we also realized it required a more comprehensive approach that touches almost every aspect of the Unity development experience. As such, we ended up having to rewrite APIs more often than we wished, and at times we struggled to deliver the fixes at the speed and quality that we hold ourselves to. We ended up pausing releases altogether while trying to figure out the best direction earlier this year.
We’re now confident that we have reached the point where we will be able to restart releasing public patches to our packages.
We will do this with two milestones. The first is a set of experimental packages updated to version 0.50, compatible with Unity 2020 LTS at first and targeting compatibility with the upcoming Unity 2021 LTS later in the coming year. This release will allow you to get easier access to patches and fixes compatible with ongoing LTS versions. Those packages will remain in experimental mode with this milestone, meaning they are still not recommended for production. We are targeting the first quarter of 2022 for this release.
The second milestone is the actual transition from experimental packages to full release status with the version we call Entities 1.0, which will be fully supported much like any other released feature of Unity. The 2022 LTS cycle is our preferred target for this release, but we have yet to confirm it. Entities 1.0 will not be compatible with earlier LTS versions. We will be releasing the details of the provisional scope of this version and future steps at the same time we release version 0.50. This plan will be detailed in our public roadmap space so that you can easily share your ideas and feedback.
The goal of Entities 1.0 is to augment the Unity Engine with an opt-in way of writing game code that’s compatible with the existing Unity architecture. Entities 1.0 is focused on enabling specific scenarios and types of games that were previously challenging to build in Unity. This will be illustrated with new, real-production examples from some of the early adopters of DOTS and crystallized in updated versions of DOTS samples.
DOTS Shooter will be a starting point for creating a networked shooter game with simple main thread game code. The netcode uses client/server architecture with what you expect from a complete solution with client-side prediction, interpolation, and lag compensation.
Megacity will show how to use Entities and baking workflows to author content using subscenes. As we make the authoring experience in the Editor much more integrated and robust, the subscene workflows get closer to existing Unity workflows while ensuring that they can scale to the Megacity complexity.
Unite Austin/Nordeus will show large-scale simulation of entities and how to write high-performance multithreaded game code.
Entities 1.0 is all about getting Entities to a released state, with the support, documentation, and learning content expected of a released workflow, so you can safely choose to use our ECS solution for your productions. Our current scope for this release covers APIs, authoring, and debugging workflows for entities, physics, netcode, and rendering. We are giving particular attention to ensuring that the authoring, baking, and visualization workflows are well integrated into the Editor, and that iterating and debugging Burst for game code is a productive developer experience.
Not all of Unity will have complete Entities compatibility, and based on many successful experiences of our early adopters, we are fully embracing the hybrid nature of our 1.0 release. This means the scope of 1.0 includes strong conversion workflows allowing you to choose ECS for its value in solving specific challenges while leveraging GameObjects for other aspects of your production. Our goal is to enable teams that are able to ship a GameObjects-based production to leverage ECS for reaching goals beyond what Unity used to be able to support.
To wrap this all up, we plan to share more information with you during the first quarter of 2022 with the 0.50 update to experimental packages that will enable us to ship patches again. The full list of packages will be shared closer to the release. We also intend to present at the same time the scope of 1.0 and beyond to continuously validate our direction with you as we go.
We hope that this update helps to clarify the current, ongoing work and gives you a clear overview of what to expect next.
Your feedback is important to us and will help us build the DOTS solutions you need. We love your passion for Unity and will increase our efforts in engaging with you more frequently and in an open and honest way. Please feel free to share your questions and feedback around this announcement in the thread below and we will do our best to answer.
Laurent