Search Unity

Use Entitas until DOTS is finally ready to use?

Discussion in 'Data Oriented Technology Stack' started by Garzec, May 23, 2019.

  1. Garzec

    Garzec

    Joined:
    Mar 3, 2016
    Posts:
    68
    So I just finished some beginner examples and got to know that DOTS will be finally "done" in 2022




    I don't want to make it a competition!

    Entitas is already out there and seems to provide the same features. Yes, DOTS provides the Jobsystem, Burstcompiler etc. but I am not shure if it's worth starting with DOTS when the ECS is still in preview.

    I will not make AAA games so I think performance is not the key case for me. I just watch out for a clean and "fun" code architecture.

    Has anyone ever used Entitas before and compared the two with each other? Would you recommend using Entitas for at least the next year until some things get into "pre-release" / "you can use it now and things won't change anymore".

    Just for your information if you want me to tell you what my goals are (in some years):
    I would like to create a 3D platformer, like Super Mario 64 or Yooka-Laylee.

    Please keep in mind this is not a discussion about which is better or which is worse :)
     
  2. Antypodish

    Antypodish

    Joined:
    Apr 29, 2014
    Posts:
    4,626
    3 years this is long time, to do whole bunch of progress in your project and tons of testings and prototypes.

    And even Unity did provide road map, is not guaranteed, that DOTs will be for production ready on the spot.
    It evolves dynamically, so this is major downside. And by year 3, it may not be anything like now.

    So unless you are happy with that, and ready for often refactoring your ECS code go for DOTs.

    But on other hand, Entitias is for production ready and is mature. There were some discussions somewhere, about transiting to ECS. But probably other than a logic, all will need be rewritten.

    Major downside is, Entitas is not guaranteed, to be compatible with future version of Unity. So unless you are happy to stay on latest compatible Entitias version, you can go to it. Other downside is, you may loose opportunity, to gain extra performance, that DOTS offers. However, Entitas is performance improvement on its own, comparing to OOP.

    How easy, hard is/will be to move from one to other, is not known for me.

    But one for sure is, once you get deep into project progress, transition may become so complex, you may never decide to do it.
     
  3. Jes28

    Jes28

    Joined:
    Sep 3, 2012
    Posts:
    348
    I think you compare not comparable things there :)

    Entitas != DOST
    Entitas == ECS

    As far as I know ECS will be released in 2019 cycle (DOTS timeline say exactly this). But yes it is not mature.

    2022 is Unity plan to make entire engine (every subsystem) run on ECS with Burst on Jobs.
     
    Opeth001 likes this.
  4. Garzec

    Garzec

    Joined:
    Mar 3, 2016
    Posts:
    68
    @Antypodish well maybe I should check if Entitas is still maintained (last commit was 3 months ago)

    @Jes28 Yes, but is Entitas already able to support the subsystems now?

    And will the Unity ECS get to 1.0 this year? (ignore the subsystems for now)
     
  5. hippocoder

    hippocoder

    Digital Ape Moderator

    Joined:
    Apr 11, 2010
    Posts:
    25,219
    There isn't any real major benefit to using DOTS, ECS or Entitas for this sort of thing. In fact it's likely be considerably quicker to develop using simple components and classic Unity monobehaviour patterns.

    You want DOTS for performance by default, or if you want the pattern, for simpler games. I'm not saying its a bad fit, only it's actually challenging by default, to program with an ECS pattern and you will want to try it first with a prototype.

    Sounds like you haven't yet, so I recommend you try Unity's implementation if you will try any, purely because it's native and keeps on being developed. I don't think 3rd party implementations are bad but you 100% will not match the performance of Unity's because of the burst compiler and jobs system.
     
    leni8ec likes this.
  6. Antypodish

    Antypodish

    Joined:
    Apr 29, 2014
    Posts:
    4,626
    I doubt. Physics is still not finished, as many other features.
    And that saying is very basics, yet powerful in right hands.

    You best bet is to ask developer. But to be honest, since is released for free on git, I don't expect much of future support.
    It doesn't have many purchased on its own. So not sure, if owner will be willing compete with Unity from that point onward.
     
  7. Antypodish

    Antypodish

    Joined:
    Apr 29, 2014
    Posts:
    4,626
    This is valid point.
    For simple game like 3D platformer, no much of real benefits using any ECS, in comparison to put effort. At least now.
    Unless you use some form of lots of complex algorithms. Which I doubt.

    OP probably would like to look, into standards of optimization techniques in games.
    Most likely lack of objects pooling, LOD and over killing with effects, often play significant bottleneck of average game performance.
     
  8. siggigg

    siggigg

    Joined:
    Apr 11, 2018
    Posts:
    110
    The roadmap states Entities Core 1.0 will ship with Unity 2019.3. But please note that is the Core, not all the systems built on top of it like the physics and rendering systems.
     
  9. Garzec

    Garzec

    Joined:
    Mar 3, 2016
    Posts:
    68
    @siggigg so you think the "ECS syntax" will not change significantly then?

    I'm not looking for a high performance technology. I'm looking for a clean architecture. Let's say you would want to implement health scripts for enemies, friendly npcs and the player. Using the ECS would give you the possibility to set this up once.

    You can also do with old school code, but I think not that easy as the ECS would do...

    I'm not that much experienced
     
  10. Antypodish

    Antypodish

    Joined:
    Apr 29, 2014
    Posts:
    4,626
    Once you got concept how ECS work, adding abilities components to entity, or system like health, are relatively trivial.
    Rest is more about logic, which concept is more less same in classic OOP as in ECS. Other than need to think in DOD paradigm, rather OOP.
     
  11. eizenhorn

    eizenhorn

    Joined:
    Oct 17, 2016
    Posts:
    1,280
    There is no Entities Core\ECS 1.0\etc it's DOTS Core and this core is complex of ECS, Jobs, Burst, there is nothing about separate ECS, always with Burst and Jobs. It's what road map says. And what Unity says. Not mixing things guys :) ECS not will be released in 2019 cycle as separate thing, it's will be implemented with other things int Core state, prepared for future evolving and growing.
     
  12. siggigg

    siggigg

    Joined:
    Apr 11, 2018
    Posts:
    110
    While that is correct, Burst has already been released as 1.0 and out of preview ;)

    I'm certain it will continue to change until 1.0 release, and hopefully after that it will be more in the form of additions instead of fundamental API changes.
     
    eizenhorn likes this.
  13. eizenhorn

    eizenhorn

    Joined:
    Oct 17, 2016
    Posts:
    1,280
    Yep my bad English :) My point is we should think about ECS not as separate thing, but as part of DOTS :) And moreover Jobs was released in 2018 cycle, even before burst :) youngest ecs boy is late :D
     
    Antypodish and siggigg like this.