Search Unity

Feedback What are the downsides of using DOTS at this point in time

Discussion in 'Entity Component System' started by BitPax, Dec 17, 2020.

  1. BitPax

    BitPax

    Joined:
    Oct 4, 2019
    Posts:
    89
    I guess most of the Asset Store is still Monobehaviour world and won't work with Entities. Networking solutions are sparse with DOTS. Documentation and examples are still changing.

    What are other factors that should be considered before deciding to build a whole game all the way to production using DOTS?
     
  2. brunocoimbra

    brunocoimbra

    Joined:
    Sep 2, 2015
    Posts:
    679
    If you are talking specifically about ECS (Entities package), then the first and more important thing to consider is the thing that people most forget: it is still in preview and is not production ready.

    I only recommend you to use it in production if you are sure that you will be able to work you way around any issue you might find, such as modifying the package yourself in case of critical bugs that might block your progress, as it is not unusual to only encounter those kind of issues when it is already "too late to go back".
     
  3. DreamingImLatios

    DreamingImLatios

    Joined:
    Jun 3, 2017
    Posts:
    4,271
    I will further elaborate on this, as I think this confuses a lot of people. If you are not willing to take ownership of the DOTS packages yourself (in other words, if Unity stopped working on DOTS for a couple years but didn't break engine APIs, would you be willing to modify the packages and add the improvements and bug fixes you need yourself) then DOTS is not production ready.
    However, if you are willing to take ownership of the packages, then DOTS is usable in production.

    You should evaluate DOTS the same way you evaluate Asset Store packages.

    Also by "DOTS" I am referring to an Entities-focused project over a GameObject-focused project. If all you need are NativeArrays, basic job types, and Burst, then that stuff is production ready.
     
  4. nyanpath

    nyanpath

    Joined:
    Feb 9, 2018
    Posts:
    77
    It's still in its early phase and a lot can and will change and there is so much conflicting and lacking documentation out there as a result of this, so you could potentially (like me) spend too much time trying to get into it. It seems to be for those with a lot of time currently...

    Only use it if you have the time, the budget, and extreme performance concerns.
     
  5. Guedez

    Guedez

    Joined:
    Jun 1, 2012
    Posts:
    827
    IMO it's just 'officially no support'.
    Most of what I use works flawlessly from start to finish and anything that does not work I can just Monobehaviour the issue away.
    The biggest issue I'd believe would assume you can do anything with ECS, scale your game in a way that only ECS can handle, and then turning out the feature is buggy.
    It's probably safe if you use it only to do things you know for sure you could do with Game Objects in worst case scenario.
    But honestly? I feel that it is just a legal defense against sues. I am using in 'production', as production as my game can be called and so far I think there was only 3 or 4 issues that got instantly solved by updating. The biggest 'actual issues' is that the 'best practices' move with time and you will find yourself with a ton of outdated systems, and some times with tons of deprecated after updates.
     
    Antypodish and BitPax like this.
  6. vectorized-runner

    vectorized-runner

    Joined:
    Jan 22, 2018
    Posts:
    398
    Aside from what others mentioned, basically you have build most things yourself. There is no animation system, no navmesh agents, no skinned mesh renderer and probably many more you will realize down the road.

    If you need a team probably will take some time for everyone to learn. Advanced concepts with not so good tutorials.