Search Unity

  1. Unity 6 Preview is now available. To find out what's new, have a look at our Unity 6 Preview blog post.
    Dismiss Notice
  2. Unity is excited to announce that we will be collaborating with TheXPlace for a summer game jam from June 13 - June 19. Learn more.
    Dismiss Notice
  3. Dismiss Notice

Question 2d Entities with newer (0.6.0+) Entities package [Probably a bug]?

Discussion in 'Project Tiny' started by aveakrause, May 6, 2020.

  1. aveakrause

    aveakrause

    Joined:
    Oct 3, 2018
    Posts:
    70
    So I'm looking at using 2d Entities for the sprite component conversion, however, 2d Entities isn't compatible with Entities 0.10, it's with 0.5.1. A LOT has changed in ECS since January. The whole Entities.ForEach, SystemBase, etc. Tons of QoL improvements. I'd like to use these, AND the 2d sprite conversion. When the last 2d Entities update happened, it didn't bring compatibility with the current Entities package at the time (0.7), so will the next update bring compatibility with the newest Entities update now, and if so, when can we expect it? I'm not interested in using the rest of Tiny, I'm not making a mobile or web game. I just need the Sprite Renderer component conversion and 2d support for ECS. (Honestly though, couldn't you just roll that into Entities so we don't need 2 packages to convert a 3d or 2d object? It's completely reasonable that any game can have both 2d and 3d things in it. Both Sprite Renderers and Mesh Renderers are core Unity components, I shouldn't need 2 different packages/suites of packages to turn both of them into an Entity.)

    Updating Entities to anything other than 0.5.1 throws these errors:
    Code (CSharp):
    1. Library\PackageCache\com.unity.tiny@0.22.0-preview.7\Unity.Tiny.Core\TinyInternals.cs(14,17): error CS1061: 'SimulationSystemGroup' does not contain a definition for 'SetFixedTimeStep' and no accessible extension method 'SetFixedTimeStep' accepting a first argument of type 'SimulationSystemGroup' could be found (are you missing a using directive or an assembly reference?)
    2.  
    3. Library\PackageCache\com.unity.tiny@0.22.0-preview.7\Unity.Tiny.Core\EntityManagerExtensions.cs(52,13): error CS0193: The * or -> operator must be applied to a pointer
     
  2. Ted_Wikman

    Ted_Wikman

    Unity Technologies

    Joined:
    Oct 7, 2019
    Posts:
    925
    Hello @aveakrause ,
    It is correct that the 2D Entities package will only work with the package versions specified as its dependencies.
    We are currently at work on bringing the next package update to 2D Entities. This update will contain the latest package versions of the packages we depend on (such as Entities and the Tiny packages). We have a few more tasks to complete before we are ready to ship the update, but we will keep you guys posted.

    So DOTS is currently split into two runtimes, Unity runtime and DOTS runtime. Project Tiny is built to utilise DOTS runtime, while the hybrid renderer (which gives you MeshRenderer conversion in the editor for instance) is built to utilise the Unity runtime.

    Right now, the way to create 2D projects with the DOTS architecture, is to use Project Tiny and the DOTS runtime. We are talking a lot about whether if and if so, when, we should implement a DOTS solution for 2D in Unity runtime. This is also where we would love to hear more from you what you are trying to achieve, and the reasons why neither classic Unity nor Project Tiny is a good fit for your needs.

    Thanks for highlighting this, and let me know your thoughts!
     
    aveakrause likes this.
  3. aveakrause

    aveakrause

    Joined:
    Oct 3, 2018
    Posts:
    70
    Personally, as someone who has been using DOTS since beginning of December, and streaming it on Twitch at twitch.tv/spherous, and submitting multiple bug reports, I don't see a need for Project Tiny. I'd rather all things Entities related rolled into Entities as 1 complete suite. I don't understand the desire to build a 3rd particle system for Unity. VFX graph is fantastic, and I'd rather see DOTS support VFX graph (and it's GPU particles) with Entities rather than just Game Objects. (I'd rather just do rid of Game Objects entirely, outside of creation of prefabs to be authored). Splitting DOTS into 2 different suites is far too confusing. Just make the single DOTS suite. It's already a high barrier of entry for a lot of devs (from my experience of people asking about DOTS on my Twitch stream), the inclusion of multiple physics systems all named Unity Physics, multiple particle systems, multiple render pipelines, one of which, the legacy render pipeline, not having a clear name for searching, etc etc etc, only serve to muddle the water. KISS (Keep It Simple Stupid). The best thing for DOTS, and reducing the barrier of entry is to not needlessly fragment it, IMO.
     
    shiroto, ithjd and newguy123 like this.
  4. ithjd

    ithjd

    Joined:
    Apr 2, 2020
    Posts:
    4
    This to me as a new developer to unity is absurd.
    The learning curve to get started with a 2D project using DOTS is excessively steep.

    The documentation available for DOTS at the moment can be hit or miss, however this is issue is magnified when trying to work with an outdated version of DOTS. The older docs are generally of a lesser quality, and it is more difficult to find help from the community who are more likely to be using the latest version.

    If wanting to instead use the current version of DOTS, we need to implement our own sprite rendering (and animation) systems. Isn't that crazy ?

    From what I understand, Tiny aims to deliver a modular lightweight engine for "3D&2D Hyper-casual Games".
    What is the expected approach when creating a 2D game that is not hyper-casual?
     
    Last edited: May 9, 2020
  5. aveakrause

    aveakrause

    Joined:
    Oct 3, 2018
    Posts:
    70

    And your own path finding, because they don't have support for nav mesh in DOTS yet as well. Or your own trail renderer. DOTS is still young, it has yet to mature. That being said, project Tiny feels like a step backwards. There is literally no reason that Entities can't author a sprite renderer while 2D Entities can. There are PLENTY of reasons to want Sprite Renderer component data for any given entity without building a hyper casual game or a game for mobile. I want to see the DOTS team focus on bringing core Unity functionality to support. (Trail Renderer, Audio Listener, Skinned Mesh Renderer, Sprite Renderer, nav mesh agent, nav mesh obstacle, VFX Graph, Decal Projector) etc.
     
  6. Ted_Wikman

    Ted_Wikman

    Unity Technologies

    Joined:
    Oct 7, 2019
    Posts:
    925
    Thank you @aveakrause and @ithjd for your input. I think both of you highlighted very well that we need to improve our communication, both around DOTS and Project Tiny. This is something we are aware of and are actively working on improving.

    Regarding the "DOTS" version, every Project Tiny update ships with the latest DOTS packages (Entities, Jobs, Collections, etc). 2D Entities depends on the Tiny packages, which means that the package will be up to date with the rest of the DOTS eco system with every package update.

    As you both stated, Project Tiny is currently labeled as a solution for hyper casual games. However, you can still build executables for many platforms out there.

    Finally, we are hard at work bringing new features and improvements to both the core DOTS packages, and to Project Tiny. But do understand that Project Tiny is early in its development cycle, and it will take some time to bring the feature parity up to classic Unity, for instance.

    Thanks again for your input. It is always great to hear your views on the current state of the DOTS eco system. We will take this feedback into consideration going forward.
     
    V_i_T likes this.
  7. imaginadio

    imaginadio

    Joined:
    Apr 5, 2020
    Posts:
    60
    Is there any news about compatibility 2D entities and SystemBase class? It still not working together?
     
    zichenwang likes this.
  8. aveakrause

    aveakrause

    Joined:
    Oct 3, 2018
    Posts:
    70
    Still not compatible. Still waiting on the update. Last 2D Entities update was on March 5th. At that time, Entities version 0.7.0 was live as of March 3rd, while 0.6.0 was live as of February 17th, 2D Entities disappointingly was not updated to either of the most recent Entities package. So 2D Entities still sits on Entities version 0.5.1 (released on January 29th). We're quickly approaching 2D Entities being 6 months out of date. I'm hoping the next update brings it up to 0.10.0 (or released along side 0.11.0).