DOTS development status and next milestones - May 2024

Noice. I always thought that aspects are just for splitting and confusing code. We already has queries and systems why even bother. And I’ve seen how people in TG group was asking questions about “how to XXX but i have aspects” noone was answering cuz noone use aspects or dont know the right way how to do XXX with aspects
Edit: deprecating Entities.ForEach finally!!!

1 Like

The future looks exciting! Although I will have to go back and rewrite my ECS code that uses aspects.

1 Like

Thanks for the update.

I’ve a few interrogation regarding the unification of entities and game object, physics and scene management.

Will we be able to query any game object with a mono behavior component from a system without having to make a baker for it and add it to an entity as managed component ?

Will the current work allow for mono behavior and systems to perform queries against the physics world(s) with single api call ?

Since all game objects will have an entity, does it mean that scenes will be baked like subscenes making subscenes irrelevant and allowing cross reference between game object and entities in the scene view?

2 Likes

Fantastic thread. Lots of things worthy of discussion here and I look forward to reading more about other devs’ thoughts about these updates. Like the others, it would also be nice to hear more about the optimizations of pre-existing Unity systems like the LOD update system and the jobs in it, the LocalToWorldSystem, and the Culling jobs. But, I guess those are for the rendering side of things.

More ECS-specific one - would love to hear more about handling open-world games. Will there be a guide or a recommended approach for generating SubScenes at runtime? Things that would improve streaming open worlds. I’ll definitely keep an eye on the Worldbuilding forum.

1 Like

Still no roadmap or mention of DOTS for the Web platform? Browsers are ready, and browser deployment is critical for enterprise usage (and many others)… Given Unity is forcing non-gaming users up to Industrial licences at 2.5x the price of Pro, this gap needs addressing.

Question - WebGL and DOTS - Unity Forum

3 Likes

Hi Team,
Any plans for supporting 2D content (drawing 1000s of sprite renderers)

2 Likes

Yes, please bring Burst support to WebGL, it’s needed for a variety of things like cloth sim.

1 Like

I also think that Burst & DOTS should be brought to Web platform.

Especially now that WebGPU is coming, and that multi-threaded jobs are enabled (on Web) in Unity 6. Web platform will have so much potential.

With Compute shaders in WebGPU, entities rendering with high performance should definitely be possible.

So, the possibilities are here. Web browsers are ready. It’s up to Unity to decide whether to move on.

3 Likes

In our project, we use 16 aspects and all of them are for the purpose of accessing optional components in IJobEntity. We use them to avoid writing the extra code required for IJobChunk. A simple replacement that would provide all of the functionality that we need in our project would be to add support for an [Optional] attribute for components in IJobEntity.

2 Likes

There should be more DOTS tutorials. I want to learn DOTS, but there are too few tutorials.

1 Like

Checkout Code Monkey and Turbo Makes Games on youtube, they both made a DOTS tutorial, for beginner and intermediate.

2 Likes

I really don’t understand why we can’t have exactly this, it makes so much sense, it’s probably not that straightforward though and caveats must exist or else I feel like this would have been fantastic for a lot.

For this case, we’re looking at a means of implementing long-running jobs. This will likely involve managing state so these jobs can be paused and resumed in a controlled fashion, but the key will be to ensure it is easy and stable to use. We are also hoping to explore e/p core usage, but how we end up taking advantage of that is still uncertain. i.e. if you have 4 efficiency cores and each has a worker thread, and you have 7 background jobs, they still need to be able to alternate processing in some fashion.

5 Likes

I imagine E-cores need some kind of extra control. On my i7-13700K if I am multitasking a lot, I occasionally hit an E-core which basically locks up some apps. Having control over what gets sent to an E-core or just not using E-cores is extremely beneficial for real-time applications.

E-cores shouldn’t need it. They’re just stripped down cores from previous generations.

Windows 11 does not have proper thread scheduling for E-cores it often messes up and suggently you drop from 120 FPS to 0 FPS while you wait for the E-core.

Intel suggests otherwise.

https://www.intel.com/content/www/us/en/support/articles/000091284/processors.html

Don’t assume this. These kinds of assumptions are awful for plenty of reasons that I would rather not derail this thread describing.

2 Likes

Intel E-cores are Intel’s way of matching AMD’s core counts. I am not even sure if E-cores will remain in the market in a few generations. Intel’s small E-cores have a lot of real-world issues.

1 Like

Thanks you, this all sounds amazing actually. I would still love to constrain jobs to only certain cores for reasons stated here though, but there is a hack I came up to do that, so not too critical.
Will be waiting for further updates!