Search Unity

Official DOTS Development Status And Next Milestones - March 2022

Discussion in 'Entity Component System' started by LaurentGibert, Mar 15, 2022.

Thread Status:
Not open for further replies.
  1. elliotc-unity

    elliotc-unity

    Unity Technologies

    Joined:
    Nov 5, 2015
    Posts:
    230
    Generally, enabling that is our whole idea. Yes, you can schedule jobs from bursted main thread code (e.g. the bursted update of an isystem) in 22.2+. But also, we are working to make it faster to schedule a ton of jobs irrespective of burst, especially on machines with large core counts.

    We don't know just how much faster the dots packages overall will be for any specific project, but we are aiming for a whole bunch. You will have to migrate your own systems to ISystem and use unmanaged shared components, enableable components to reduce structural changes, and generally do some work if you want really pedal-to-the-metal speed. Some more speed will also come from us converting a ton of our own systems to isystem and bursting them, so that part should be mostly free for users. Certain APIs have had to change to make that possible, but we hope the speed will make that worth it.

    It is always obviously possible that there is just too much work to do to hit a particular target frame time, and more specific optimizations will be required for specific projects. We just hope we will have made it much easier to get to that point.

    For the build configs, have you tried setting those options in the platform-specific project/player settings? It is supposed to pick up the stuff from those, rather than using platform specific components. (It doesn't really work for NDA platforms to put the platform specific components into the general platforms package, and anyway they were just passthroughs to player settings.)
     
    Occuros, mariandev, iamarugin and 7 others like this.
  2. hippocoder

    hippocoder

    Digital Ape

    Joined:
    Apr 11, 2010
    Posts:
    29,723
    I'm having a hard time finding details about ISystem, what it's for and why I need it - I am super interested though if you would share any links to reading more about it or tell me, thanks!
     
  3. elliotc-unity

    elliotc-unity

    Unity Technologies

    Joined:
    Nov 5, 2015
    Posts:
    230
    That's because while it's technically in 0.5x, it doesn't work for most use cases there; we'll do our best to document it heavily when we release a version of it we actually recommend using (which will come at the same time as all the rest of this stuff).

    That said, the short version is it's an interface you can inherit from instead of SystemBase that lets your system be a struct, and lets you burst your OnWhatever methods. But as you can imagine, for this to be useful for most purposes, we have to make many operations burstable that are not burstable in 0.5x. Thus the wait.
     
  4. optimise

    optimise

    Joined:
    Jan 22, 2014
    Posts:
    2,129
    From profiler, my project super slow performance issue is caused by official dots packages. These systems should migrate to ISystem first and try to make it as fast as possible. The bottleneck mainly coming from Entities and dots physics packages.

    upload_2022-5-13_10-0-8.png

    upload_2022-5-13_10-18-56.png

    upload_2022-5-13_10-19-38.png

    I know u can just choose those platform specific directly from player settings but without platform specific components I need to manually do it myself every time when I need setup something to do different builds. With this platform specific components I can just press build at build config to get the build I want right away. Another reason to do that is I believe there are some platform specific setting at Build Settings doesn't work really well. It requires platform specific components to support it well when building dots project. For NDA platforms I think u can create another NDA platform package just like how graphics team does to strip NDA platforms out of general platforms.


    One more question. For 1.0 release, will it have auto API upgrade tool to auto upgrade API as much as possible? From what I see, 1.0 release will change quite a lot of APIs. One of the most commonly used APIs like Entities.ForEach/WithAll at 0.5x release will change to something else at 1.0 release. I have too many systems and it's too hard to migrate every system manually.
     
    Last edited: May 13, 2022
  5. elliotc-unity

    elliotc-unity

    Unity Technologies

    Joined:
    Nov 5, 2015
    Posts:
    230
    We are unfortunately not staffed to maintain the functionality of maintaining separate build configs, although we do agree it would be valuable to provide that.

    I am happy to report that physics migrating to ISystem has just landed in master, like, this week. :) (It broke some things, which is why master is not public, though.) I'm also curious if you get any speedup from disabling entities journaling, based on those images.

    For auto upgrading, we always do auto upgrading in every case where it's possible, but there are unfortunately going to be a lot of cases where it isn't this time.
     
  6. optimise

    optimise

    Joined:
    Jan 22, 2014
    Posts:
    2,129
    Are u referring to menu DOTS - Entities Journaling? If yes then I didn't enable entities journaling or it's bug that it enables accidentally? I check the player setting there's no ENABLE_PROFILER define at scripting define symbol. It just at there according to profiler.

    For dots physics, I'm curious is that this super convenient API still a thing at 1.0 release? I dun really want to write lots of boilerplate code anymore just to do simple collision detection. Another thing is it seems like until now collision/trigger detection still can't run on main thread. Any plan to support it to better support mobile platform very slow at using job system? Or can I expect bursted job system can solve slow performance issue at mobile platform?

    upload_2022-5-14_1-53-29.png
     
  7. elliotc-unity

    elliotc-unity

    Unity Technologies

    Joined:
    Nov 5, 2015
    Posts:
    230
    Yes, I meant the menu. Not sure about the APIs, probably still up in the air; generally we are trying to help with boilerplate where possible, especially where it won't hurt iteration time or perf.

    We do have some stuff coming in 22.2 that should help some with mobile job perf, on top of bursting schedule sites (which should help as well).
     
  8. optimise

    optimise

    Joined:
    Jan 22, 2014
    Posts:
    2,129
    Seems like it's caused by dots netcode package. It will just enable by default no matter what and can't disable it. Can u make sure it will be fixed at 0.51 release? But for now I would like to get unofficial fix first.

    Another thing I want to feedback is enter play mode is super long at dots netcode project even enter play mode options is enabled. It seems when project getting complex it will start to become very slow to enter play mode. Will it improve significantly at 22.[2|3]?

    At least make sure the following 2 issues will be fixed at 0.51 release and beyond. Another thing is I think try not to change too much for Platform package. I still backport old Platform Android package.
    - Version issue: https://issuetracker.unity3d.com/product/unity/issues/guid/1415919
    - 'Run' option issue: https://issuetracker.unity3d.com/product/unity/issues/guid/1423409
     
    Last edited: May 13, 2022
  9. elliotc-unity

    elliotc-unity

    Unity Technologies

    Joined:
    Nov 5, 2015
    Posts:
    230
    Generally, entering play mode being expensive can come from a lot of things, and very often user code (either packages published by unity, asset store packages, or game code) can make it go very slowly. I suggest profiling with e.g. Superluminal to see what is actually taking the time.

    In particular, I find that specific editor windows can do very expensive things in OnEnable, and closing them can speed things up; also, sometimes asset store packages can introduce expensive behavior in the same place. (This is not to take away from Unity-published code doing the same thing, of course; it just varies.)
     
    goncalo-vasconcelos and Anthiese like this.
  10. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,362
    hi, what is the status of work of entities in 2021.3 LTS ? I dont see the package in the packages manager

    Is the project still going ? March 2022 is past also, is there a new time frame for it ?

    Thanks
     
  11. Escharum

    Escharum

    Joined:
    Sep 2, 2021
    Posts:
    3
    You should refer to the first post of this thread.
     
  12. optimise

    optimise

    Joined:
    Jan 22, 2014
    Posts:
    2,129
    @elliotc-unity After I further dig into the issue, I found it's caused by OOP land scene. Hopefully subscene can fully solve this slow enter play mode issue at editor.

    Sorry I still have questions want to ask.
    1) Will mega-chunks & tiny chunks feature release at dots 1.0 release? Like mega chunk is 256kb of memory for each chunk and tiny chunk is 512 bytes of memory for each chunk.
    2) Will dots addressable support instantiate oop land game object? I think it needs to support instantiate oop land game object since game object is still require at dots project.
     
  13. Antypodish

    Antypodish

    Joined:
    Apr 29, 2014
    Posts:
    10,779
  14. Mohammadreza55555

    Mohammadreza55555

    Joined:
    Jul 30, 2016
    Posts:
    8
    Hello,

    May will end soon. Is there any news about entities version 0.51? It's really bad that version 0.50 is not supported on Unity 2021 LTS. Our studio needs this depensicity for the new physics package.

    Thanks for updating :)
     
    mischa2k likes this.
  15. Antypodish

    Antypodish

    Joined:
    Apr 29, 2014
    Posts:
    10,779
    Please be patient. Equally it may be tomorrow, or next year. No one will tell you, until is released.

    You should not be designing game around future packages. If packages keep delaying, or get canceld and your project fail, it is all on you.
     
  16. Mohammadreza55555

    Mohammadreza55555

    Joined:
    Jul 30, 2016
    Posts:
    8
    Did you know that entities is now part of many packages in Unity, Such as Unity physics, Havok physics, and... so kinda too late for canceling something like this.
     
  17. Anthiese

    Anthiese

    Joined:
    Oct 13, 2013
    Posts:
    73
    Everything depending on it is also in preview. Equally unknowable futures. What Antypodish said applies to those as well.
     
  18. Mohammadreza55555

    Mohammadreza55555

    Joined:
    Jul 30, 2016
    Posts:
    8
    I know everything depending on it is also in preview. I mean the chance of canceling something like this is low because many preview packages depend on it. if we talking about "Relay Allocations" or "Lobby" that's true, because none of the packages depend on these, they are there for their selfs.
     
  19. hippocoder

    hippocoder

    Digital Ape

    Joined:
    Apr 11, 2010
    Posts:
    29,723
    It is being worked on. I think the current problem was thinking about having it separate from 2020 LTS. So I do not think it will be compatible also with 2021 and 2020. Regardless, it shows it's not trivial. Probably some breaking change is possible.
     
    Mohammadreza55555 likes this.
  20. IAmChiagozie

    IAmChiagozie

    Joined:
    Jun 26, 2017
    Posts:
    44
    But the Jobs System is still marked as a pre release package...
     

    Attached Files:

  21. tertle

    tertle

    Joined:
    Jan 25, 2011
    Posts:
    3,761
    That's the jobs package not the job system.
    This package adds extra jobs and features but you do not need the package to use the job system.
    IJob and IJobFor ship with the unity editor and can be used without this package.
     
  22. runner78

    runner78

    Joined:
    Mar 14, 2015
    Posts:
    792
    I think Unity should have named the package differently to make it clear that it's just an additional feature pack, and not the job system itself. Some people think the job system isn't final, I've read that several times now.
     
    NotaNaN and JesOb like this.
  23. IAmChiagozie

    IAmChiagozie

    Joined:
    Jun 26, 2017
    Posts:
    44
    Ok, Thanks for explaining that.
     
  24. inSight01

    inSight01

    Joined:
    Apr 18, 2017
    Posts:
    90
    Apologies if this has been asked and answered. As we are nearing the end of Q2 2022 has there been any updates on this? Is this update still scheduled for release this month?
     
    bradshep, Lymdun, sewy and 6 others like this.
  25. elliotc-unity

    elliotc-unity

    Unity Technologies

    Joined:
    Nov 5, 2015
    Posts:
    230
    Workin on it. We found a bunch of shipstopper bugs we had to fix first. Seems like real soon now to me.
     
    Sylmerria, peaj_metric, sewy and 15 others like this.
  26. hippocoder

    hippocoder

    Digital Ape

    Joined:
    Apr 11, 2010
    Posts:
    29,723
    Lovely! Is the main 1.0 release possible before 2023? I ask because the target is 2022.2 (unless of course 0.51 works with 2022.2 as well.. hopeful?)
     
    NotaNaN likes this.
  27. elliotc-unity

    elliotc-unity

    Unity Technologies

    Joined:
    Nov 5, 2015
    Posts:
    230
    No, 0.51 will not work with 22.2+ (or maybe even 22.1+). The rendering is incompatible. I do personally think it's possible we will have some preview, alpha, experimental, radioactive, etc version of 1.0 before the year is out, but that's just like, my opinion, man.
     
  28. hippocoder

    hippocoder

    Digital Ape

    Joined:
    Apr 11, 2010
    Posts:
    29,723
    Thanks, that's good enough for me - the dude abides.
     
  29. thelebaron

    thelebaron

    Joined:
    Jun 2, 2013
    Posts:
    857
    I’ll just voice my desire for some radioactive preview releases in the space between 51 and 1.0
     
  30. sewy

    sewy

    Joined:
    Oct 11, 2015
    Posts:
    150
  31. shotoutgames

    shotoutgames

    Joined:
    Dec 29, 2013
    Posts:
    290
    agemodediz likes this.
  32. sewy

    sewy

    Joined:
    Oct 11, 2015
    Posts:
    150
    Not sure how their naming works but it appeared today as it is the 0.51 package we've been waiting for.
     
  33. inSight01

    inSight01

    Joined:
    Apr 18, 2017
    Posts:
    90
  34. TCROC

    TCROC

    Joined:
    Aug 15, 2015
    Posts:
    230
    So is DOTS compatible with Unity 2021 now?
     
  35. Kamyker

    Kamyker

    Joined:
    May 14, 2013
    Posts:
    1,091
  36. mikaelK

    mikaelK

    Joined:
    Oct 2, 2013
    Posts:
    284
    Depends on what you mean by compatible.

    I have null refs on build that weren't there before on 0.17. So for me the 0.51 is actually working worse.
    *sad noises

    edit. after few days of fixing and finding solutions. The new update seems to be working
     
    Last edited: Jun 21, 2022
  37. LaurentGibert

    LaurentGibert

    Administrator

    Joined:
    Jan 23, 2020
    Posts:
    173
    Hi everyone, sorry for the small delay between package release and communication. Let's continue our discussion in the up-to-date roadmap post over here!
     
Thread Status:
Not open for further replies.