Search Unity

Official DOTS development status and next milestones - June 2023

Discussion in 'Entity Component System' started by LaurentGibert, Jun 1, 2023.

Thread Status:
Not open for further replies.
  1. LaurentGibert

    LaurentGibert

    Administrator

    Joined:
    Jan 23, 2020
    Posts:
    173
    Hello everybody, here is our Q2 2023 update for the DOTS roadmap!

    What is DOTS?
    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 can be used in any Unity project, regardless of whether ECS is being used.

    Do check out our conversation with Jason Weimann during GameDevGuild 2022 where we dive into the details.

    The Road to Using ECS in Production
    Since Q1 of 2022, we’ve been focused on bringing the Entities package to a released version. Specifically, this meant bringing the package from Experimental to Released status so that users can be supported when using ECS for Unity in production. This was done via the following milestones throughout 2022:
    • In Q1 of 2022, we shared experimental Entities 0.50, compatible with 2020 LTS.
    • In Q2 of 2022, we shared experimental Entities 0.51, compatible with 2020 LTS and 2021 LTS.
    • In Q3 of 2022, we shared experimental Entities 1.0, compatible with 2022.2 Beta.
    • In Q4 of 2022, we shared pre-release Entities 1.0, compatible with 2022.2 Tech Stream.
    Based on the bugs and issues raised by users throughout our pre-release duration since Q4 2022, we’ve also had a regular cadence of smaller releases and hotfixes throughout Q1 2023.

    ECS for Unity 2022 is now Released and supported for production
    ECS for Unity is now released and compatible with 2022 LTS (2022.3.0f1) and above. With this release, the corresponding ECS packages are supported for production, and can now be easily discovered and directly installed via the package manager in Unity 2022 LTS. Packages with released status mean that Unity supports them with thorough testing and corresponding bug fixes and that these packages are safe to use in production across all platforms including desktop, mobile, consoles, or XR headsets. As with our pre-release in Q4, this ensures creators experience the same support for production on all platforms, the same as any other Released feature of the Unity engine. Specifically, being supported for production means users can:
    1. Raise bugs and problems via the Editor or Unity Hub
    2. Leverage Unity’s success plans to get more out of ECS
    Packages are only granted a released status once they pass several testing stages and validation procedures, which means more stable APIs and more robust testing in terms of integration with other Unity engine features. The types of changes relating to the packages in the future are likely to include bug fixes, trivial changes, and documentation updates typical of patch updates based on Unity’s Semantic Versioning strategy.

    Key Differences Between Pre-Release and Release
    Since our pre-release, we’ve been making further improvements and adjustments based on user feedback. Some highlights include:
    1. Updated Transform System: We significantly simplified the transform system with fewer components and systems to prevent scenarios where transform data would not be up to date, especially in projects with multiplayer and physics elements.
    2. Streamlining authoring components for Unity Physics and Havok Physics for Unity: As we look towards streamlining our Physics authoring experience across GameObjects and ECS, we’re aligning our ECS authoring experience with the built-in components, and have moved the custom Physics authoring components into the package samples.
    3. Build to WebGL with ECS, and render via Unity’s Scriptable Pipeline: With ECS for Unity pre-release, we noticed that there were various loading errors that prevented users from loading Entity data and rendering on WebGL via SRPs. These have been fixed with this release and users can reference the HelloCube scene for a simple demonstration.
    4. Forward+ Support on XR devices: Forward+ support for XR platforms is now available, unlocking new lighting capabilities in XR. Specifically, this allows creators to have more than one directional light in the scene.
    5. Experimental Character Controller package: The experimental Character Controller package is now available and compatible with the release of ECS for Unity 2022 LTS. This package was previously distributed on the Asset Store, under the name "Rival - DOTS Character Controller", and is now being distributed via the package manager in the editor, as we continue to consolidate workflows around ECS for Unity.
    For more details, please check out the detailed changelog for each of the corresponding packages.
    Studios using ECS in Production
    With each release of ECS for Unity, we’re also seeing sophisticated stories from creators successfully using ECS for Unity in production. Most recently, we’ve had the pleasure of diving into two exciting titles at GDC 2023, in addition to the stories we told in 2022:
    • Stickylock Studios - Histera (March 2023): Jamel Ziaty, producer from StickyLock shares their journey and experience using ECS for Unity, Netcode for Entities, Game Server Hosting, and many more Unity Gaming Services for the creation of Histera, a competitive FPS that mixes prehistoric settings with war-torn 20th-century cities through time travel.
    • Sunblink Entertainment - HEROish (March 2023): Justin Larrabee, CTO at Sunblink Entertainment, shares how their clever use of ECS for the production of HEROish helped them achieve performance, reduce production risks, and empower designers.
    • Walaber Entertainment - JellyCar Worlds (December 2022): Tim “Walaber” Fitzrandolph, Solo Developer at Walaber Entertainment dives into using ECS for Unity to create a soft-body physics system for the JellyCar title.
    • Kasedo Games - IXION (August 2022): Technical Director Jérémy Guéry walks us through how ECS has powered heavy NPC simulation for their city builder in space.
    • Stunlock Studios - V Rising (June 2022): In a 3h-long Twitch stream, lead developers Rasmus Höök and Fredrik Haraldsson presented their use of ECS, from world-building in the editor with custom visual scripting to scalable open-world streaming.
    • Ramen VR - Zenith: The Last City (March 2022): CTO Lauren Frazier explains how ECS helped them scale up their gameplay for managing a VR MMO game architecture.
    • Electric Square - Detonation Racing (March 2022): Lead Developer Jonas De Maeseneer covers the use of ECS for deterministic gameplay for QA and design loops, as well as streaming for a high-pace Apple Arcade racing game.
    Rider 2023.1 compatibility with ECS for Unity 2022 LTS
    To help creators write and update ECS code more efficiently, JetBrains has added support for ECS for Unity 2022 LTS in Rider 2023.1. Specifically, Rider 2023.1 includes new customizable file templates for ECS, recognizes ECS object types, and provides helpful features such as navigating to the generated source. Rider 2023.1 also makes it easier for users to bridge the gap between behaviors and components by generating necessary authoring and baking boilerplate code for MonoBehavior or component data respectively. For more information, check out this article by JetBrains.

    Dive into Megacity Multiplayer
    Based on the feedback gathered over the last 2 years, we’ve also noted that many users are looking to build large-scale competitive multiplayer titles with tons of concurrent players. To illustrate how users can build such ambitious titles with ECS for Unity and related tools and services from Unity Gaming Services (UGS), Megacity is making a comeback as Megacity Multiplayer, which will be available for users to dive into later this month.

    Specifically Megacity Multiplayer showcases how creators can build ambitious multiplayer titles that support more than 64 concurrent players, and leverage UGS services like Game Server Hosting, Authentication, Voice Chat, and Matchmaker.

    Roadmap
    We’re expecting a large amount of feedback from creators as they leverage ECS for Unity 2022 to build ambitious titles. So far, we’ve seen large amounts of feedback relating to Animation and Open-World creation capabilities, but we’re also hearing tons of feedback relating to ECS workflows. Our roadmap continues to be stable for the upcoming year, and we’re expecting to invest in the following areas:
    1. Consolidation of ECS workflows: We’re dedicating a significant amount of resources to understanding and working on feedback from users adopting ECS in production. Based on the feedback that we’re getting, we’re acting on opportunities to further consolidate ECS workflows so users have a better time iterating and discovering gameplay in their projects.
    2. Enabling cross-play multiplayer game creation: Multiplayer games continue to be a key focus, and our teams are working hard to provide efficient out-of-the-box support for a variety of multiplayer genres. This includes investigating capabilities around cross-platform determinism.
    3. Enabling open-world game creation: Scalable open-world authoring and runtime capabilities continue to be important for the Unity editor. This is currently being developed on two main fronts, animation, and worldbuilding. On animation, we continue to progress toward a highly performant, customizable 3D animation system that’s powered by our ECS foundation. For worldbuilding, we’re working on better environment workflows more broadly.
    Resources to get started
    Over the course of our experimental releases, we’ve also heard from you that samples and documentation are very useful to get started. Based on that feedback, we’ve prepared the following to reduce the learning curve and help you get started quickly:
    1. Entities API Overview, ECS Samples and Learn Content: The Entities API Overview, ECS samples and Learn Content reflect the latest APIs available with ECS for Unity in a bite-sized format. These resources will be especially useful for new users to learn about fundamental concepts of data-oriented design.
    2. ECS Network Racing: If you’re looking for a smaller-scale multiplayer sample with ECS for Unity, ECS Network Racing showcases the capabilities of Netcode for Entities and how you can easily build a multiplayer game out of the box. Specifically, the sample exemplifies an implementation of client/server architecture with client-side prediction, interpolation, and lag compensation.
    3. Megacity: The Megacity sample showcases how you can stream thousands of entities into the game scene at a stable 60 FPS, with thousands of active physics colliders and dynamic vehicles actively performing collision avoidance.
    4. Megacity Multiplayer: Megacity Multiplayer extends the Megacity sample, and showcases how creators can build ambitious multiplayer titles that support more than 64 concurrent players, while leveraging UGS services like Game Server Hosting, Authentication, Voice Chat, and Matchmaker.
    5. Experimental Character Controller Package: For users looking to quickly jump into building their game, the experimental character controller package also contains bite-sized samples illustrating how you can quickly drag and drop the experimental character controller into your scene, and get prototyping quickly.
    Please note that we’re in the midst of updating the ECS Network Racing and Megacity samples to be compatible with the latest released ECS packages. To learn more about other features that are shipping with 2022 LTS, do check out this page, where we dive into other exciting capabilities.

    Feedback is a gift
    We’ve also updated our public roadmap page, to reflect what’s available and what we’re planning to deliver next. As usual, your feedback is carefully reviewed by the team and provides a significant impact to drive the direction of the product.

    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.

    We are also actively engaging with many of you via the DOTS channel in Unity Discord, as well as here in the forums. Most recently, we’ve also introduced some of the team members responsible for different areas of ECS for Unity, do drop in to learn more and say hi!

    It’s been a long time since we first announced Unity’s Data-Oriented Technology Stack, and this is a major milestone for us. We want to thank you again for staying with us throughout this journey and always being there to provide us with feedback so that we can build better products. We look forward to seeing what ambitious games are created with ECS for Unity and look forward to our next roadmap update.

    And finally, I personally want to congratulate the DOTS teams for their incredible work!

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

    Laurent
     
  2. JohngUK

    JohngUK

    Joined:
    Aug 8, 2019
    Posts:
    11
    Well done guys.
    I updated my bloated 2021.3.25f1 100 Gig project, built on the ruins of my 2019 and 2020 Projects, to Unity 2022.3.0f1 LTS and it just works. Impressive!
    I can now get stuck into ECS with a vengeance.
     
    Last edited: Jun 1, 2023
  3. Endlesser

    Endlesser

    Joined:
    Nov 11, 2015
    Posts:
    89
    Any chance to get a experimental or pre-view DOTS Animation package late this year? I've got my eyes on it for 3+ years : )

    ------

    https://forum.unity.com/threads/animation-status-update-q2-2023.1445425/

    https://forum.unity.com/threads/animation-status-update-q2-2023.1445425/#post-9064204

    Case close~
     
    Last edited: Jun 8, 2023
    rc82, tjumma, keepupalltime and 5 others like this.
  4. Dog_Like

    Dog_Like

    Joined:
    Nov 24, 2017
    Posts:
    25
    I'm glad to hear that the DOTS will support cross-platform determinism. Does this mean that I can now develop my lockstep game using float and Unity.Mathematics, and when the new version is released, I can switch to deterministic calculations with minimal cost?
     
    Volshar and PwnkDev like this.
  5. IsaacsUnity

    IsaacsUnity

    Unity Technologies

    Joined:
    Mar 1, 2022
    Posts:
    94
    Thanks for the input! We're early in the stages of understanding more about cross-platform determinism requirements so no details to share as of yet, but we'll continue to be mindful of upgrade paths in future experiences!
     
    Volshar, saskenergy and Dog_Like like this.
  6. filod

    filod

    Joined:
    Oct 3, 2015
    Posts:
    224
    pls pls share more about open world creation.. terrain ? detail rendering ? non-destructive edit/generating ? water system? spline? dyanmic navigation? world streaming? etc...


    (btw, i do see some interesting streaming samples , but still too basic though)
     
    Last edited: Jun 2, 2023
    Lionious likes this.
  7. Volshar

    Volshar

    Joined:
    Mar 14, 2021
    Posts:
    15
    Hi! Why is “Burst Determinism” on the roadmap still “Under Consideration” and not “In Progress” since it is mentioned in the post that you are working on it? Or is the "investigating capabilities around cross-platform determinism" something else...

    Thanks!
     
    Last edited: Jun 4, 2023
  8. Dog_Like

    Dog_Like

    Joined:
    Nov 24, 2017
    Posts:
    25
    Deterministic and predictive rollback may be one of the biggest applications of DOTS. The idea of using Burst Compile to achieve deterministic is brilliant. Keep up the good work, your efforts are meaningful.
     
    Volshar and NikolaNikolov like this.
  9. IsaacsUnity

    IsaacsUnity

    Unity Technologies

    Joined:
    Mar 1, 2022
    Posts:
    94
    Great question! Since we're early in the process of investigating these capabilities, we want our roadmap to accurately reflect this early stage. As we mature our plans over time, we'll be sure to move it to in progress when we have more to share.
     
    UniqueCode, Antypodish and Volshar like this.
  10. RichardFoulks

    RichardFoulks

    Joined:
    Jun 20, 2023
    Posts:
    1
    Thank you so much for the information, I really appreciate this.
     
    IsaacsUnity likes this.
  11. elliotc-unity

    elliotc-unity

    Unity Technologies

    Joined:
    Nov 5, 2015
    Posts:
    230
  12. uwek

    uwek

    Joined:
    Jan 24, 2015
    Posts:
    1
    Found in the beta forum:

    upload_2023-6-23_9-52-31.png

    As I cannot ask in the other forum, I ask here: are the packages now officially compatible with 2023.1? Thanks :)
     

    Attached Files:

    TieSKey, silveryw and DoctorShinobi like this.
  13. bnmguy

    bnmguy

    Joined:
    Oct 31, 2020
    Posts:
    137
    They compile fine for me, and I assume it is supported now that that build has moved to stable tech stream.
     
  14. TieSKey

    TieSKey

    Joined:
    Apr 14, 2011
    Posts:
    226
    They compile for me too but I have an instant crash on some entity related part of the code when running a windows build (while using 2022.3 to build the same code yields a working player).
     
  15. bnmguy

    bnmguy

    Joined:
    Oct 31, 2020
    Posts:
    137
    hmmm I'm not sure what the official status is though. Might not be "officially" supported.
     
  16. elliotc-unity

    elliotc-unity

    Unity Technologies

    Joined:
    Nov 5, 2015
    Posts:
    230
    Definitely not supported. Might work, might not. We're working on actually supporting later unity versions.
     
    bb8_1 and uwek like this.
  17. bnmguy

    bnmguy

    Joined:
    Oct 31, 2020
    Posts:
    137
    Thanks for the response! Much appreciated.
     
    uwek likes this.
  18. castor76

    castor76

    Joined:
    Dec 5, 2011
    Posts:
    2,517
    I do have crash case for built player using Unity 2023.1.6f1 while it works fine in the editor. Sending bug report as I am writing this. I guess I will downgrade to 2022 for now.
     
  19. tertle

    tertle

    Joined:
    Jan 25, 2011
    Posts:
    3,761
    2023 is not currently supported, however, as you've found out, I believe for the most part it works in editor but will not build properly.
     
    bb8_1 likes this.
  20. MichielVanOmmen

    MichielVanOmmen

    Joined:
    Feb 12, 2019
    Posts:
    6
    With "later unity versions", do you mean Unity 2024 and beyond, or are 2023.2 or at least 2023.3 LTS going to be supported?
    Or is there going to be an official announcement next month, a Q3 2023 update, where all these concerns are being addressed?
     
  21. elliotc-unity

    elliotc-unity

    Unity Technologies

    Joined:
    Nov 5, 2015
    Posts:
    230
    Working on both 23 and 24. We'll be ready for 23 sooner, as you might expect.
     
    Opeth001, JohngUK, Tony_Max and 4 others like this.
  22. ashley_unity

    ashley_unity

    Unity Technologies

    Joined:
    Dec 18, 2016
    Posts:
    21
    filod and JesOb like this.
Thread Status:
Not open for further replies.