Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

ECS and the Unity Roadmap

Discussion in 'Entity Component System' started by Matt-Cranktrain, May 14, 2018.

  1. Matt-Cranktrain

    Matt-Cranktrain

    Joined:
    Sep 10, 2013
    Posts:
    129
    Hi, I'm trying to work out how best to follow along with the current state of the job system, ECS and the Burst compiler. It's not immediately obvious which bits are currently available, which are available if you play around with the manifest.json, and which haven't shipped in any form yet.

    The Unity Roadmap (https://unity3d.com/unity/roadmap) lists the Job System a handful of times in different contexts, but only in 2018.1. How can I not miss out on when various updates hit?
     
  2. Corvwyn

    Corvwyn

    Joined:
    Nov 15, 2013
    Posts:
    114
    I just checked 2018.1.0f2 and found the the Job System in the Unity.Jobs namespace. The Job System seems to be available as part of Unity, and is not in a package. Not quite sure why though. It seems you need a package if you want to use it with ECS though. Updates will probably be in release notes or this forum.

    One way to check for ECS updates is to use the package manager and check when updates are available. I guess this is most practical if you're playing around with it anyways. Just follow the installation instructions from the documentation and check the package manager for updates:
    https://github.com/Unity-Technologies/EntityComponentSystemSamples (found in the Samples/Documentation thread)

    The other way would be to check for updates in this forum, which I assume will be updated when there are changes.
     
  3. avvie

    avvie

    Joined:
    Jan 26, 2014
    Posts:
    74
    At this time you need to be looking at dates and realeses and what example reffers to what.
    I have found line of code in the Documentation that is outdated and compiler would produce an error.

    With the ECS and the job system it seems to be so early that things are still all over the place, which is expected with any such big feature and its rollout.
     
  4. rz_0lento

    rz_0lento

    Joined:
    Oct 8, 2013
    Posts:
    2,361
    Job System is a built-in Unity feature where ECS and Burst are delivered as separate package.

    Job System was already part of 2018.1 and therefore works on both 2018.1 and 2018.2. They are adding more things to work properly with job system on each release, 2018.1 got the basics and async raycasts, 2018.2 adds animation stream for the job system. Expect more to be added along the way.

    Burst is special compiler for job system alone, I think they shipped experimental version for 2018.1f2 but I didn't test if it really was included). Biggest limitation on 2018.1 was that you couldn't yet use Burst in built standalone game. We were supposed to get standalone support on 2018.2 but I haven't checked if it's there already or if it's still coming later on. Burst definitely works on 2018.2 editor atm.

    For ECS, it's compatible with Unity 2018.1 and 2018.2, but you need to manually edit the manifest file to get it. You can check the latest ECS manifest example here:
    https://github.com/Unity-Technologi...es/blob/master/Samples/Packages/manifest.json
    (not sure if latest ECS version works on 2018.1 or if you have to use older version). After you have set the dependencies and registry for staging url, you will be able to update these with the Package Manager. You only need to modify the manifest file manually on the first time for each project.
     
    Last edited: May 16, 2018
  5. Matt-Cranktrain

    Matt-Cranktrain

    Joined:
    Sep 10, 2013
    Posts:
    129
    I've actually been playing around with the Job System for a little while, and this week have been trying out ECS, so I confirm what you guys are saying. Job system is in 2018, editing the manifest gets you into ECS, and Burst is coming later.

    Still interested in how all this fits into Unity's public roadmap though!

    I suspect that because the changes are so foundational, it might actually be the case that Unity's public roadmap fits into ECS more than the other way around.

    Another question I have: are the Rosyln Compiler and the Burst Compiler essentially the same thing? Roslyn is focused on modern C#7, but I'm guessing we shouldn't expect a choice of two different compilers?
     
  6. rz_0lento

    rz_0lento

    Joined:
    Oct 8, 2013
    Posts:
    2,361
    You can probably get most info on their future plans if you watch these GDC talks, especially the first one on the playlist:
    https://www.youtube.com/playlist?list=PLX2vGYjWbI0S8ujCJKYT-mIZf7YCuF-Ka
    They have a vision of how these will be, there's not a clearly written text based roadmap for all relevant parts, probably because people tend to see those things as promises (which they are not) and because things evolve while the tools develop further.
    Like mentioned on my previous post, Burst is a special compiler (from Unity) for job system alone and at the moment, it's at least available in Unity editor. Burst and Roslyn are two completely different things. Burst is a special compiler that turns job system code and job system code alone (which you write) into machine code, it tries to do all possible optimizations for the performance it can, automatically. I'll quote Unity ECS repo explanation (check the GDC talks for more info):
    Roslyn is .net compiler. Unity uses it as basis for their experimental incremental compiler: it compiles all your c# code (not limited to job system) into IL. It supports c# 7 and you get incremental compiles, which speed up your c# compile times. More info about Roslyn based compiler here: https://forum.unity.com/threads/unity-incremental-c-compiler.523993/

    The idea is, that if you enable Burst, it will only compile and optimize the job system code you've written (and more specifically, only the parts of it that you've tagged to be used with Burst), rest is dealt with the c# compiler (mono, roslyn) and additionally with IL2CPP if you choose to use it.
     
    Last edited: May 15, 2018
  7. Matt-Cranktrain

    Matt-Cranktrain

    Joined:
    Sep 10, 2013
    Posts:
    129
    Thanks for clearing that up Rizu!
     
  8. MartinGram

    MartinGram

    Administrator

    Joined:
    Feb 24, 2017
    Posts:
    72
    The C# Job System was released as part of Unity 2018.1. The Job system is part of the Unity namespace and will update with the major Unity releases.

    ECS and the Burst compiler were released as preview packages alongside Unity 2018.1. The 2018.2 release will contain a few modifications that allows us to expand usage of Burst compiled jobs for standalone players (for a few selected platforms).

    We are planning to elaborate on the ECS and related roadmaps at Unite Berlin in June.
     
    Last edited: May 17, 2018
    5argon, FROS7, optimise and 1 other person like this.
  9. optimise

    optimise

    Joined:
    Jan 22, 2014
    Posts:
    2,113
    Hi @MartinGram. Will Unite Berlin record as videos and available at Unity youtube channel?
     
  10. MartinGram

    MartinGram

    Administrator

    Joined:
    Feb 24, 2017
    Posts:
    72
    I assume that the talks will be recorded and released. :)
     
    optimise likes this.
  11. pbhogan

    pbhogan

    Joined:
    Aug 17, 2012
    Posts:
    377
    Since ECS is literally the second listed feature in the 2018.1 release blog post, why isn't it available in the Package Manager as a preview package?
     
    MadeFromPolygons likes this.
  12. MartinGram

    MartinGram

    Administrator

    Joined:
    Feb 24, 2017
    Posts:
    72
    There were various different reasons why, that doesn't really mean much in a public space. We are in the process of making it fully available via the Package manager.
     
    FROS7 likes this.
  13. djkpA

    djkpA

    Joined:
    Mar 28, 2016
    Posts:
    14

    Are Humanoid animations supported in ECS now ? Any examples ?
     
  14. MartinGram

    MartinGram

    Administrator

    Joined:
    Feb 24, 2017
    Posts:
    72
    There are no ECS examples as of yet. You can however find samples for the Playables API using the C# Job System here