Search Unity

Official DOTS: get in touch with the teams behind it!

Discussion in 'Entity Component System' started by LaurentGibert, May 9, 2023.

  1. Fancisco_Greco

    Fancisco_Greco

    Joined:
    Jan 26, 2021
    Posts:
    20
    @vkrasnotsvetov I've added some examples in the tracker as requested, something that could handle what I posted would be pretty useful even if it can't handle 100% of cases
     
    officialfonee likes this.
  2. Occuros

    Occuros

    Joined:
    Sep 4, 2018
    Posts:
    300
    I would like to express my gratitude to all the team members who took the time to come and introduce themselves and share their stories. It is reassuring to witness the passion that the team has for working on DOTS. I highly appreciate your dedication and enthusiasm.

    One area where DOTS presents more challenges compared to the traditional OOP approach is AI. A while back, @philsa-unity shared a prototype of a visually appealing IAU (Infinity Axis Utility AI) editor for the Dots stack. Will this potentially ever see the light of day as an official unity package, as it looked very promising?
     
    daniel-holz and apkdev like this.
  3. AdrielCodeops

    AdrielCodeops

    Joined:
    Jul 25, 2017
    Posts:
    54
    That's great! Please, take a look at the Jobs Samples in the EntitiesSamples project. The first step in the examples shows the implementation in monobehaviour, and in the following steps it is modified to make use of the job system.

    Something like this could be really powerful when teaching ECS. I feel that although one can understand how the ECS flow works and the paradigm shift it implies, it seems to me that the most complex thing is to "translate" solutions with OOP structures and patterns to ECS. In fact, I miss more such documentation. Not so much on the ECS features themselves, but of the differences with OOP in practice. OOP singleton to ECS singleton, how c# events fit into the ecs architecture....

    In my case, for example, I have been working on an in-game command console that is a static class that can execute commands from a database, the commands are classes that inherit from the abstract class Command, stored in a dictionary. I've been thinking a lot about how to do something like this in ecs and... I don't even know where to start .... Should each executed command be an entity? Our a component added to an entity? Can I build a general system that queries the command entities and executes code based on its components? Does such a system makes any sense in ECS? For me these are the kind of questions that are the hardest to ask in the transition to ECS.

    *Apologies in advance if I have overlooked any existing documentation or made any terminological mistakes, I have only been learning ecs for a few days.
     
    Last edited: May 16, 2023
  4. davenirline

    davenirline

    Joined:
    Jul 7, 2010
    Posts:
    982
    I've tried this but it doesn't work like I expected. I thought that the Bakers of the components in the prefab would be executed but they're not. Maybe I'm using it wrong. How do you exactly use this? I just want to convert a prefab into an entity prefab without going through subscenes.
     
  5. optimise

    optimise

    Joined:
    Jan 22, 2014
    Posts:
    2,129
    @LaurentGibert I would like official to invest more resources to dots AI tooling that I believe is one of missing core feature. Currently I really want professional dots utility AI implemented by official that has enough features and works nicely. I dun really want to use third party solution that always has high risk will stop updating one day and I have no resources and skill to implement myself.
     
  6. Immersive-Matthew

    Immersive-Matthew

    Joined:
    Mar 24, 2020
    Posts:
    137
    Unity is alive. Nice to see this community outreach as I and others were getting a little worried about the future of Unity.
     
    IllTemperedTunas and Unifikation like this.
  7. KikiSaintonge

    KikiSaintonge

    Unity Technologies

    Joined:
    Mar 24, 2022
    Posts:
    12
    Hi everyone!

    I'm Kiki and I am the senior product manager on the multiplayer team - specifically the netcode tech stacks (Netcode for GameObjects and Netcode for Entities). I also help drive the tools and general multiplayer workflows solutions for the Unity editor/engine. I've been working in tech for 9 years, and game tooling for around 2-3 years. Nice to meet you all!
     
  8. vadersb_ru

    vadersb_ru

    Joined:
    Jul 5, 2017
    Posts:
    15
    Hi! A question to the DOTS team: can we still feel safe about GameObjects/MonoBehaviours not getting deprecated in favor of DOTS/Entities? Thanks!
     
  9. Laicasaane

    Laicasaane

    Joined:
    Apr 15, 2015
    Posts:
    361
    I'm just a user but I can assure you that GameObject won't be deprecated even in the far future. DOTS is not the solution for every problem. Your fear will only come true if there is something better than GameObject, but that's not DOTS unfortunately.
     
  10. xVergilx

    xVergilx

    Joined:
    Dec 22, 2014
    Posts:
    3,296
    That's accessibility issue, not the core issue. You can definitely make literally anything with Entities.
    Its even better [from companies perspective] with multiple projects.
    Because code re-use % is way higher than any MB.
    Meaning faster iteration & product delivery.
    Potentially higher quality, since performance bottleneck is reduced, testing [as written Unit tests] being more common etc.

    Problem right now is editor / consistency / subscenes.
    Subscene entities already display as GOs by the way.

    And of course lack of experience & desire to learn from newcomers because of the rough state of the editor.
    Over time it should get better though.

    So, I'd rather bet on soft phase out than never.
    Meaning its probably gonna be removed at some point in future when nobody uses MonoBehaviours anymore (guesstimate 10-15+ years). Then again, SendMessage exists in 2023, soo...

    Anyway, nice to see actual people working up on the Entities / DOTS.
    Keep up the good work.
     
    Last edited: May 25, 2023
  11. IllTemperedTunas

    IllTemperedTunas

    Joined:
    Aug 31, 2012
    Posts:
    782
    This is really interesting, can anyone explain why this is?
     
  12. xVergilx

    xVergilx

    Joined:
    Dec 22, 2014
    Posts:
    3,296
    Because generic systems and generic data can be pretty much copy&pasted from one project to another while maintaining test coverage.

    Meaning you can pretty much dump features from project to project with minimum changes [if any at all] and they will still work.

    While it is possible with MonoBehaviours, its much more tricker to do due to interdepencencies between components (or any other random logic that they might have). Due to this MB require more changes done. Either to cleanup or to polish feature. And as a result - longer iteration times.
    Systems & data are more decoupled overall than OOP objects.
     
  13. IllTemperedTunas

    IllTemperedTunas

    Joined:
    Aug 31, 2012
    Posts:
    782
    That's great to hear, maybe Unity could do some hype videos on this and explain how all these changes will lead to better tools that are easily implemented in more projects. This has always been the promise of Unity, but this is the first time I'm hearing the DOTS/ Entities aspect of these engine revisions actually serve this notion, as opposed to just making implementation of things harder for nothing but performance gains.

    Feels like there's a messaging/ optics issue here that you guys at Unity could work on if I'm understanding this correctly. If you guys create the proper buzz and educate people about these general concepts, people would be a lot more excited for the future. It may not just motivate the user base but the management to realize how awesome the promise of all this is: a Unity store, and dev teams filled to the brim with superior tools and products.
     
    Shizola, xVergilx and daniel-holz like this.
  14. mischa2k

    mischa2k

    Joined:
    Sep 4, 2015
    Posts:
    4,347
    Hey everyone. Someone already asked about Mike Acton earlier.
    I was wondering, is Joachim Ante not leading the DOTS team anymore?
    There was no mentioning in this thread, and from what I've heard Joachim is not CTO anymore either?

    Sorry to be blunt, but I guess many here would be curious about why - and what's the new plan?
     
    Last edited: May 26, 2023
  15. xVergilx

    xVergilx

    Joined:
    Dec 22, 2014
    Posts:
    3,296
    IllTemperedTunas likes this.
  16. AdrielCodeops

    AdrielCodeops

    Joined:
    Jul 25, 2017
    Posts:
    54


    According to this interview with John Riccitiello 3 days ago, he is on sabbatical.
     
  17. IllTemperedTunas

    IllTemperedTunas

    Joined:
    Aug 31, 2012
    Posts:
    782
    Only several minutes in, but this is a fantastic watch. Shame this isn't posted in the general forum! Also first time I'm seeing the thread with great insights Vergil linked from a couple months back.

    There's gotta be a better way of cataloguing this information so that people wanting to keep current on the goings on of Unity can see the inner workings, this would do A LOT for our confidence in the future.

    I know this conversation has been had before, but maybe a new forum could be opened up and call it, "Unity News" make it open to everyone so anyone could post in it (maybe make a rule where no one can post their own content that they're making a profit off of) and require that the posts be in regards to an official insight from a Unity employee or piece of Unity media. Wouldn't require Unity employees to keep it updated, but users would have a consistent place to post links like the ones we're finding in this thread to major happenings or discussions in regards to the engine. Would also be a great landing page for anyone from Unity to quickly get up to speed on things as well, if they feel so inclined, they could post right there. Could even end up being the defacto place for Unity employees to talk about what they're working on that's kosher for public consumption.

    Information is scattered, inconsistent and most all times isn't highlighted in key areas like the twitter feed. As someone who's spent a little time in this forum finding little bits of info the past week, I can say that the more information garnered, the more confidence builds in this engine. We don't need to know big announcements or overarching strategies, just that core systems are getting positive progress and systems like animation are moving forward and things are actually coming together and talented hard working employees are still at it optimistic about future stuffs.

    It sounds as though you guys are in a much better spot than many believe, why not do the bare minimum so the user base can know this? There are fantastic kernels of information out there... people just can't find them. But I repeat myself. This seems like low hanging fruit.

    After watching the interview: I'm seeing why you guys cut all work on visual scripting. All this AI generating code stuff is going to be the future, no question. This talk really puts into perspective how game changing the future of AI tools are going to be and I have a newfound respect for Riccitiellio, eye opening to hear him speak outside of a corporate keynote speech or clouds of character accusations. Dude really seems to know what he's doing and has a passion for this stuff and the staff at hand.

    I had a bit of a "Keyser Soze" realization while watching the interview where all the talks about DOTS/ ECS, and the new AI revelations started coming together and now wondering if you guys have been playing the fool all along because this AI stuff is actually going REALLY well and the ramifications of all this proprietary tech coming together needed to be kept under wraps in this AI arms race putting you guys in a unique position to create the future of all digital content.

    So strange to consider the leaps going on that we're not privy to that might be around the corner, or 20 years down the line, who knows! Anyhow, enough blathers, going to go smash at some code with my club and keyboard like a caveman before I go down too many rabbit holes and lose all motivation to make games the old fashioned way.

    Edit: Slept on these thoughts and I'm probably being too optimistic and disregarding various criticisms, there is a general sentiment about some things posted above that have been brazenly disregarded. I must admit I don't know what kind of job Riccitellio has been doing, in hindsight this interview comes off as much as a defense of himself as the future of the company, the interview did kinda of feel a bit like a hostage situation with Jason having to smile and nod and ask the right questions, and if you take a step back, there are obvious issues with the direction he has taken the company. Is everything burning around him? He comes off as a bit of a Pandora's box. Is he as bad as everyone says? Or is he misunderstood like most anyone in positions of power who make tough calls? Maybe it's a bit of both. Tend to be overly optimistic hoping things are going to turn around for this engine.
     
    Last edited: May 27, 2023
    ClementSXD likes this.
  18. PolarTron

    PolarTron

    Joined:
    Jun 21, 2013
    Posts:
    94
    I wish i could do everything through the dashboard, or at least some unified space where I don't get lost all the time. unity.com? unity3d.com??

    The amount of search boxes scattered around the unity ecosystem makes me not want to use them. I use google, and then I get results for packages from versions years ago.

    It needs an improvement for sure.
     
    Unifikation and IllTemperedTunas like this.
  19. LaurentGibert

    LaurentGibert

    Administrator

    Joined:
    Jan 23, 2020
    Posts:
    173
    Hi @vadersb_ru, there is no specific plan to deprecate one in favor of the other. But to fully answer that question I would be tempted to rephrase it to: "can we still feel safe about object-oriented design (GameObjects being an implementation of it) not getting deprecated in favor of data-oriented design (ECS being an implementation of it)". I would frame it this way because I think we should separate your question into the following 2 concerns:
    1. Could we change our underlying frameworks like MonoBehaviour without abandoning object-oriented design? For sure we could, it's often a topic of consideration to modernize our scripting infrastructure for many reasons: performance, parallelism, determinism, memory management... If we were to do this, it would likely not break projects authoring data since we're still having the same object-oriented semantic, but likely APIs would evolve. If we were to get there, rest assured we would communicate a lot about the plan to help you understand how this would impact your projects. At this time, the only plan we have announced is the migration to CoreCLR.
    2. Could we abandon object-oriented design in favor of data-oriented design? This would be both project-breaking and API-breaking in a massive way across the entirety of the Unity engine. While the rhetorical question is interesting (I would love to have a long chat about it around a drink ;)), it is both not very practical to do so, and likely not very interesting from an authoring experience standpoint. Humans think easily in hierarchical concepts, and that's something object-oriented design does so well, I am not sure we could ever get rid of the concept from an authoring experience point of view. We could imagine some generalization of data-oriented design under the hood though for runtime optimization, with some clever engineering tricks. I am wondering what you all think about it?
    Does this help?
     
  20. TheOtherMonarch

    TheOtherMonarch

    Joined:
    Jul 28, 2012
    Posts:
    866
    I feel that it is too early to have a definitive opinion. SystemBase can already support object-oriented programming and allow better ordering of your code.

    At the end of the day C# just has a lot of limitations for determinism and high-performance. I think ECS should initially focus on use cases that truly need determinism such as lockstep RTS and RPG games.
     
  21. vadersb_ru

    vadersb_ru

    Joined:
    Jul 5, 2017
    Posts:
    15
    Hi, @LaurentGibert! Thank you for the detailed answer! :) As my projects are not CPU-demanding, I strongly prefer my gameplay-related code to stay OO, GameObject/MonoBehaviour based, while taking advantage of data-oriented design where I need it (using Jobs and Burst for particles, etc). So, yeah, hopefully both approaches will keep to co-exist in Unity!
     
  22. TheOtherMonarch

    TheOtherMonarch

    Joined:
    Jul 28, 2012
    Posts:
    866
    Built-in particles are currently not supported. You need to use MonoBehaviour for those.
     
  23. boyaregames

    boyaregames

    Joined:
    Jun 23, 2021
    Posts:
    75
    Any News on:
    DOTS Animation
    DOTS UI
    DOTS NavMesh
    DOTS Audio
    ... ?
    Cuz Imagine a game without this basic things :)
     
  24. DatCong

    DatCong

    Joined:
    Nov 5, 2020
    Posts:
    87
    i checked 2022.3.0 lts and there is no aniamtion or navmesh in ecs. So they ll be added in next release. We could use audio hybrid, UI hybrid but animation is out of mind =))
     
  25. KoganBoss2

    KoganBoss2

    Joined:
    Jun 1, 2023
    Posts:
    1
    In theory, of course, ECS is cool... But in practice, I spent several hours trying to get the object to move and it didn't work... So it's a tool for badass programmers only.
     
  26. vadersb_ru

    vadersb_ru

    Joined:
    Jul 5, 2017
    Posts:
    15
    Right, I was talking about custom particle systems implemented via Jobs, something like my sample project:
    https://github.com/vadersb/Unity_SpriteBatcherTest
     
    Laicasaane likes this.
  27. PolarTron

    PolarTron

    Joined:
    Jun 21, 2013
    Posts:
    94
    Just wanted to say huge congrats to the DOTS team for reaching this milestone. I'm looking forward to meeting some of you at Unite Amsterdam ^^
     
  28. Laicasaane

    Laicasaane

    Joined:
    Apr 15, 2015
    Posts:
    361
    Thank you. This test gives me a way to implement a sprite sheet animation system.
     
    vadersb_ru likes this.
  29. Shezraan

    Shezraan

    Joined:
    Mar 23, 2023
    Posts:
    4
    Just a tiny question: is there a performance benefit to using the ECS Graphics package with an SRP instead of the built-in render pipeline? Asking this because it seems the package is disabled if an SRP is not detected.

    This is also in light of using frameworks which have some rendering performance constraints for particular SRPs (I'm looking at https://learn.microsoft.com/en-in/windows/mixed-reality/develop/unity/known-issues#active-blocking-issues -- it may get updated beyond the time I am writing this post).
     
  30. SteveM_Unity

    SteveM_Unity

    Unity Technologies

    Joined:
    Nov 21, 2017
    Posts:
    41
    The Entities Graphics package doesn't support the built-in render pipeline. It relies heavily on the SRP Batcher, as far as I understand.

    https://docs.unity3d.com/Packages/c....0/manual/requirements-and-compatibility.html

    To answer your question: I have seen significant performance improvements with Entities Graphics + SRP compared to the SRP just rendering GameObjects. The BatchRendererGroup API that Entities Graphics is built on is magic :D
     
    Shezraan likes this.
  31. Enderlook

    Enderlook

    Joined:
    Dec 4, 2018
    Posts:
    50