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:
- Raise bugs and problems via the Editor or Unity Hub
- 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:
- 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.
- 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.
- 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.
- 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.
- 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:
- 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.
- 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.
- 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:
- 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.
- 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.
- 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.
- 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.
- 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
