Notice on DOTS compatibility with Unity 2021.1

Hi!

With the release of Unity 2021.1, DOTS is at a crossroads in terms of compatibility with the currently available Unity versions.

While certain parts of the DOTS ecosystem (Burst, Jobs, Math, Collections) are compatible with the 2021.1 TECH stream, other packages such as the entire entities suite is not.

For your projects there are now two upgrade scenarios depending on your use of DOTS packages.

Scenario A - My project is not using entities based packages

You will find that the Burst package and its accompanying packages are visible and present in the package management system, and you can continue to upgrade into the 2021 tech stream of updates.

Scenario B - My project is using entities based packages

You must stay on Unity 2020 LTS and on Entities 0.17 for now. Future releases of Entities will not be compatible with Unity 2021 until the end of the year at the earliest. Upgrading to 2021.1 and using current or future Entities packages will not work and is not expected to work.

As soon as we can, we will provide further information on how we will continue to develop and release Entities and Unity in lock step to provide a faster path of releasing DOTS to the Unity community.

I will leave the thread open for questions, but please understand that this is the information we can share at this point in time.

34 Likes

Thank you for the post and... OOooof.
Appreciate it's a complex set of interdependencies but are there particularly problematic areas some of us may be able to avoid (e.g. Hybrid Renderer) or is it pretty much everything ecs?

5 Likes

Will future Entities packages still be released, even though they won't be compatible with any available Unity version? Will we still be able to try them out in some form (or at least see their changelogs)?

2 Likes

How does 2021.2 factor into this?

The short answer here is that Burst and friends are considered production ready, where as entities and packages depending on entities are still considered to be in preview. With the way package management works from 2021.1, we have to have different ways of delivering Entities packages to our users.

4 Likes

Yes, Entities 0.18 is on its way.

13 Likes

We will expand on this specific point in the next posting we make on DOTS releases.

8 Likes

Should we expect new Entities releases to target 2020 LTS until 2021 compatibility is reached? Or are new releases going to be awkwardly incompatible with anything in the interim?

5 Likes


Appreciate there may be reasons you couldn't respond to the question more directly. I think we all understand Burst & Jobs are still good to use and understand Entities will be in preview for a long time yet. Over on the discord a number of us have no idea what delivering Entities packages differently means - any clarification possible?

13 Likes

Holy moly, time to downgrade when 0.18 comes then. In a strange way it's refreshing to hear you guys admit it's going to take longer :smile:

3 Likes

Hi @MartinGram . Can u make sure il2cpp build won't lauch game straight crash anymore in next Entities 0.18? If I remember correctly il2ccp crash bug exists starting from 0.13 or 0.14 something up until 0.17 still haven getting fix yet.

I believe this is related to subscene bug.
(Case 1311658) [Netcode][IL2CPP] Player build crash or not working properly
https://issuetracker.unity3d.com/issues/netcode-il2cpp-android-app-crashes-on-null-pointer-dereference-when-launching-it
https://issuetracker.unity3d.com/issues/netcode-entities-il2cpp-il2cpp-builds-crash-with-entities-and-netcode-packages
https://issuetracker.unity3d.com/issues/hybridrender-plus-il2cpp-crashes-when-running-x86-build-on-a-x64-system

I believe this is related to dots physics bug.
(Case 1315723) [IL2CPP][Physics][Netcode][Entities] Android build crash
https://issuetracker.unity3d.com/issues/android-il2cpp-netcode-development-build-crashes-on-signal-11-sigsegv-upon-app-launch

Hybrid Renderer bug
(Case 1327493) Error spamming when remove RenderMesh component at Authoring
https://issuetracker.unity3d.com/issues/hybrid-renderer-error-is-spamming-to-the-console-when-rendermesh-component-is-removed-at-authoring

And also CompanionGameObjectUpdateTransformSystem and CompanionGameObjectUpdateSystem generating gc every frame. Can you make sure it will also getting fixed?

4 Likes


From my understanding, it sounds like 0.18 won't work in 2020LTS either? It's not clear
[quote]
You must stay on Unity 2020 LTS and on Entities 0.17 for now.
[/quote]
this statement sounds like it could mean we have to stay on 0.17, but it's unclear if that's what it was meant to mean or not

5 Likes

This actually poses quite a heavy challenge to overcome now. The latest unity alpha has just fixed a critical bug related to the HDRP compositor and ui workflow. My project heavily depends on both ECS as well as newer HDRP workflows. Sadly, the HDRP change required an editor based change (in 2021.2a12) which means I can't just use the hdrp package in LTS.

I however do not use any additive packages that depend on Entities. Physics, netcode, etc. are unnecessary for the project.

I have been able to build and run my project with the latest alpha, so I'm trying to rationalize why taking a step backward may be necessary on solely enities based projects.

11 Likes

Honestly this has to be one of the worst posts ever by Unity.

So entities 0.18 obviously runs on something.

And what that is, is the only useful/actionable information.

Of course you don't have to stay on entities 0.17 and LTS. There will be some version 0.18 runs on.

Or I guess they could just top this post off by releasing 0.18 against a Unity version nobody has access to. In a strangely twisted way that would actually fit.

You created this whole situation with packages. And now you don't know how to deal with it. You refuse to use accepted approaches because of some idea about protecting some segment of your user base from itself. But in practice that has only created confusion and created annoyances for most of us. This post is hilariously bad but it's just one in a long comedy of errors when it comes to packages.

20 Likes

Buried alive?

1 Like

To clarify does this mean that future Entities, Netcode, Physics, etc. will continue to be released for 2020 LTS? Can we expect Entities 0.18 on 2020 LTS?

10 Likes

So it's impossible to have all the preview packages / features in a stable tech stream? This is too good!

Imagine If Unreal Engine 5 was missing an important preview feature that is only being developed in Unreal Engine 4.

So game developers who want to develop with bleeding edge technology are going to be missing entities, while LTS users who want stability will need to upgrade to the tech stream to fix critical graphics bugs with HDRP and URP?

10 Likes

In my opinion, #IPO . It looks bad when a bunch of script kiddies complain about unity not working when they install 10 experimental packages and have no idea what is wrong.

1 Like

So what exactly am I losing, feature wise, by using 2020 LTS vs 2021 Tech stream, as an ECS programmer? Faster IL2CPP is one thing I know of. Anything else that would be pertinent for DOTS programming?

1 Like


You can check out the release notes, but I was looking forward to some of C# 9 syntactic sugar.
[quote]
Scripting: Updated C# language version to 9.0 for compilation and IDE's We will support a subset of the language features from: https://docs.microsoft.com/en-us/dotnet/csharp/whats-new/csharp-9
These is the features that we support:
- Pattern matching enhancements
- Function pointers
- Target-typed new expressions
- Static anonymous functions
- Target-typed conditional expressions
- Extension GetEnumerator support for foreach loops
- Lambda discard parameters
- Attributes on local functions
- New features for partial methods.
[/quote]

But in general, DOTS people are the kind of people who love the new tech, so not being able to update for a year will hurt...

10 Likes