Jump to content

Unity Releases - Beta vs Tech Stream vs LTS vs Render Pipeline


Adam

Recommended Posts

Hey everyone,

As a publisher we are often blamed for things that are well beyond our control, and in the 2021.2 stream in particular, I have been surprised at how many crash inducing issues have been allowed to flow through to release status. 

Our advice if you want the best stability for your project is to use the LTS version of Unity, not the Tech Stream Releases. If you use Tech Stream Releases, then check out the Unity release notes if you are getting crashes.

The other bit of advice is to use source control for your project. You will have an issue at some point. Guaranteed! Disk crash, accidental delete, nasty crash bug, rogue colleague. 

Your biggest defense against project breaking issues is to check in your changes on a daily basis. When I write software I check in at the completion of every little module, and I can not tell you how many times this has saved me from significant loss of work. The other benefit of this is that you can experiment and then revert just the parts of you project you want to, and can also use it as a collection of IP and techniques you can refer to later.

We use github as our source control system, with the use of .gitignore to exclude things like the Unity Library and other non essentials and .gitattributes and git-lfs to store binary files in blob form (its so much faster this way). Some people like command line, I personally like Git Fork. It has git and git-lfs built in.

We have collated some information here for you to get a sense of where Unity is going, and how it does it releases.

Unity Platform Roadmap

To learn about where Unity is heading then check out their Platform Roadmap.

Builtin vs URP vs HDRP

The new pipelines are awesome, and I am excited for where they are going, but, they are in a massive state of flux, and more often than not they introduce breaking changes.

There was a scenario before 2021.1 where Unity decided to change something and it broke ALL of our our shaders. Thankfully we saw it and were able to speak to Unity, and they opted to go a more compatible route.

The challenge for people using the asset store is that different publishers have different levels of skill, and write their shader to support different patch releases of Unity and the various render pipeline versions. This means that you have an issue where you have Unity changing pipeline releases and publishers changing pipeline releases, and its essentially a partially compatible mishmash not unlike the wild west. While we manage and support our own shaders, we have no control over other publishers do, and we do not support on/for other publishers shaders.

The most compatible approach from a development perspective is to use Built-in. However Unity has said they will deprecate it, and they are focusing on URP and HDRP. The other complexity is that Unity is pushing the engine to Shader Graph only, and it does not support builtin. 

We are not Unity with 6000+ employees. We are a small studio. We build new shaders in shader graph as it offers the best compatibility across pipelines and versions. We love how HDRP looks, and HDRP can also be made to run quite well on lower end machines if configured properly, so all new development is HDRP first, then URP, and then builtin if we can. 

Unity Release Types (and how we support them)

Unity has 3 types of release that they usually run in parallel:

  • Alpha / Beta - Big new releases. They are usually extremely buggy. We do not support.
  • Tech Stream Releases - New feature development. Quite buggy + breaking APIs. We do our best.
  • LTS Releases - The most stable releases. Unity supports these for two years. We support these.

To learn more about the difference between Unity releases then click here.

Unity Release Notes (why is your project crashing)

Our software is tested before release across multiple unity versions and pipeline versions. We do NOT release it if we think there is something wrong with it.

However, it runs within Unity, and is therefore dependent on it, and we sometimes get criticized for crashing Unity. Actually our software rarely crashes Unity, but it may well rely on some Unity feature that is bugged, and by using it you then get intermittent crashes. Terrain and light baking as long been an issue, so much so that we removed the automatic light bake that we put in earlier Gaia releases as a convenience.

If you are seeing something weird then go and look at the Unity Release Notes. There is a drop down on the right hand side of this page.

image.png

Some of the pearlers we are are seeing in 2021.2.x that likely are affecting you are:

image.png

image.png

image.png

image.png

And the list goes on.

image.png

  • Like 5
  • Thanks 1
Link to comment
Share on other sites

  • Adam pinned and featured this topic
  • 10 months later...

Hi, I'm presently using Gaia Pro and Gena in 2021 LTS to generate my Unity game world and am very happy with it so far. My main difficulty is getting my aged brain up to speed in using Gaia and Gena and I find your tutorials and Spawner packs very useful in this regard: bows reverently. Looking forward, to Unity 2022.2, which embodies some kick-ass improvements; such as DOTS 1.0, will Procedural Worlds release Gaia Pro 2022 shortly after Unity 2022.2 goes into LTS, or will there be 2022.2 support releases prior to then? I am waiting to port my Unity 2021 LTS code over to 2022.2, as soon as Gaia Pro and Gena are supported in this version.

Link to comment
Share on other sites

10 hours ago, JohngUK said:

Hi, I'm presently using Gaia Pro and Gena in 2021 LTS to generate my Unity game world and am very happy with it so far. My main difficulty is getting my aged brain up to speed in using Gaia and Gena and I find your tutorials and Spawner packs very useful in this regard: bows reverently. Looking forward, to Unity 2022.2, which embodies some kick-ass improvements; such as DOTS 1.0, will Procedural Worlds release Gaia Pro 2022 shortly after Unity 2022.2 goes into LTS, or will there be 2022.2 support releases prior to then? I am waiting to port my Unity 2021 LTS code over to 2022.2, as soon as Gaia Pro and Gena are supported in this version.

 

Link to comment
Share on other sites

Sorry Guys, just noticed Gaia 3.3.3 (10.12.2022 latest update) now works with Unity 2022.2.0f1 (Engineering version) So will keep full incremental back-ups and port my Game over to  Unity 2022.2.0f1. Thanks for update. Just what I needed 🙂

  • Like 2
Link to comment
Share on other sites

  • 5 months later...

Just a heads up, I mentioned it in discord around 16f1 or 17f1 but figured I would bring it up here as well as it's still happening. I haven't been able to get Gaia Pro working on any version of HDRP 2022.2 after 2022.2.12f1 (the last one that worked for me). Create a fresh HDRP project in a fresh install and it ends up with compilation errors the next time launching Unity.

For example, fresh 2022.2.19f1 HDRP importing Gaia Pro 3.3.6 on relaunch gives..

Screenshot 2023-05-13 160149.png

 

 

 

(posting just incase noone has come across it yet..)

Link to comment
Share on other sites

Sorry just saw that screenshot is useless..

 

Assets\Procedural Worlds\Gaia\Gaia Pro\HDRP Time Of Day\Scripts\HDRPTimeOfDayProfile.cs(284,59): error CS1061: 'VolumetricClouds.CloudPresets' does not contain a definition for 'value' and no accessible extension method 'value' accepting a first argument of type 'VolumetricClouds.CloudPresets' could be found (are you missing a using directive or an assembly reference?)

Assets\Procedural Worlds\Gaia\Gaia Pro\HDRP Time Of Day\Scripts\HDRPTimeOfDayWeatherProfile.cs(117,59): error CS1061: 'VolumetricClouds.CloudPresets' does not contain a definition for 'value' and no accessible extension method 'value' accepting a first argument of type 'VolumetricClouds.CloudPresets' could be found (are you missing a using directive or an assembly reference?)

Assets\Procedural Worlds\Gaia\Gaia Pro\HDRP Time Of Day\Scripts\HDRPTimeOfDayProfile.cs(1125,55): error CS1061: 'VolumetricClouds.CloudPresets' does not contain a definition for 'value' and no accessible extension method 'value' accepting a first argument of type 'VolumetricClouds.CloudPresets' could be found (are you missing a using directive or an assembly reference?)

 

Link to comment
Share on other sites

Importing the stand alone HDRP Time of Day 1.2.0 asset also gives this (if useful):

 

Assets\Procedural Worlds\Gaia\Gaia Pro\HDRP Time Of Day\Scripts\HDRPTimeOfDayProfile.cs(284,59): error CS1061: 'VolumetricClouds.CloudPresets' does not contain a definition for 'value' and no accessible extension method 'value' accepting a first argument of type 'VolumetricClouds.CloudPresets' could be found (are you missing a using directive or an assembly reference?)

Assets\Procedural Worlds\Gaia\Gaia Pro\HDRP Time Of Day\Scripts\HDRPTimeOfDayWeatherProfile.cs(117,59): error CS1061: 'VolumetricClouds.CloudPresets' does not contain a definition for 'value' and no accessible extension method 'value' accepting a first argument of type 'VolumetricClouds.CloudPresets' could be found (are you missing a using directive or an assembly reference?)

Assets\Procedural Worlds\Gaia\Gaia Pro\HDRP Time Of Day\Scripts\HDRPTimeOfDayProfile.cs(1125,55): error CS1061: 'VolumetricClouds.CloudPresets' does not contain a definition for 'value' and no accessible extension method 'value' accepting a first argument of type 'VolumetricClouds.CloudPresets' could be found (are you missing a using directive or an assembly reference?)

Failed to find entry-points:
Mono.Cecil.AssemblyResolutionException: Failed to resolve assembly: 'Assembly-CSharp-Editor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' ---> System.Exception: Failed to resolve assembly 'Assembly-CSharp-Editor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' in directories: C:\Program Files\Unity\Hub\Editor\2022.2.19f1\Editor\Data\MonoBleedingEdge\lib\mono\unityjit-win32
C:\Program Files\Unity\Hub\Editor\2022.2.19f1\Editor\Data\PlaybackEngines\MetroSupport
F:\MVG\Unity\Library\PackageCache\com.unity.burst@1.8.4
C:\Program Files\Unity\Hub\Editor\2022.2.19f1\Editor\Data\Managed
C:\Program Files\Unity\Hub\Editor\2022.2.19f1\Editor\Data\PlaybackEngines\LinuxStandaloneSupport
C:\Program Files\Unity\Hub\Editor\2022.2.19f1\Editor\Data\PlaybackEngines\WindowsStandaloneSupport
F:\MVG\Unity\Library\PackageCache\com.unity.burst@1.8.4\Unity.Burst.CodeGen
F:\MVG\Unity\Assets\Procedural Worlds\Frameworks\Common5
F:\MVG\Unity\Library\PackageCache\com.unity.visualscripting@1.8.0\Editor\VisualScripting.Core\Dependencies\DotNetZip
F:\MVG\Unity\Library\PackageCache\com.unity.visualscripting@1.8.0\Editor\VisualScripting.Core\EditorAssetResources
F:\MVG\Unity\Library\PackageCache\com.unity.collab-proxy@2.0.4\Lib\Editor\PlasticSCM
F:\MVG\Unity\Library\PackageCache\com.unity.visualscripting@1.8.0\Editor\VisualScripting.Core\Dependencies\YamlDotNet
F:\MVG\Unity\Assets\Procedural Worlds\Flora\Scripts\Core
C:\Program Files\Unity\Hub\Editor\2022.2.19f1\Editor\Data\PlaybackEngines\MacStandaloneSupport
F:\MVG\Unity\Library\PackageCache\com.unity.testtools.codecoverage@1.2.3\lib\ReportGenerator
F:\MVG\Unity\Library\PackageCache\com.unity.ext.nunit@1.0.6\net35\unity-custom
F:\MVG\Unity\Assets\Procedural Worlds\Frameworks\Common5\Editor
F:\MVG\Unity\Library\PackageCache\com.unity.visualscripting@1.8.0\Runtime\VisualScripting.Flow\Dependencies\NCalc
F:\MVG\Unity\Assets\Procedural Worlds\Frameworks\CleanUp4\Editor
C:\Program Files\Unity\Hub\Editor\2022.2.19f1\Editor\Data\Managed\UnityEngine
F:\MVG\Unity\Library\ScriptAssemblies ---> Mono.Cecil.AssemblyResolutionException: Failed to resolve assembly: 'Assembly-CSharp-Editor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null'
  at Mono.Cecil.BaseAssemblyResolver.Resolve (Mono.Cecil.AssemblyNameReference name, Mono.Cecil.ReaderParameters parameters) [0x00105] in <853812ae52c341daaef3c62ecdb86b32>:0 
  at zzzUnity.Burst.CodeGen.AssemblyResolver.Resolve (Mono.Cecil.AssemblyNameReference name) [0x00013] in <e897daa8366b4183b121ad602adf2292>:0 
   --- End of inner exception stack trace ---
  at zzzUnity.Burst.CodeGen.AssemblyResolver.Resolve (Mono.Cecil.AssemblyNameReference name) [0x00060] in <e897daa8366b4183b121ad602adf2292>:0 
  at Burst.Compiler.IL.AssemblyLoader.Resolve (Mono.Cecil.AssemblyNameReference name) [0x0007e] in <e897daa8366b4183b121ad602adf2292>:0 
  at Burst.Compiler.IL.Server.EntryPointMethodFinder.FindEntryPoints (System.String[] rootAssemblyNames, Burst.Compiler.IL.Hashing.CacheRuntime.HashCacheAssemblyStore assemblyStore, Burst.Compiler.IL.AssemblyLoader assemblyLoader, Burst.Compiler.IL.NativeCompilerOptions options, Burst.Compiler.IL.Server.ProfileDelegate profileCallback, System.Boolean includeRootAssemblyReferences, System.Boolean splitTargets) [0x00055] in <e897daa8366b4183b121ad602adf2292>:0 
  at Burst.Compiler.IL.Server.FindMethodsJob.Execute (Burst.Compiler.IL.Server.CompilerServerJobExecutionContext context) [0x0011e] in <e897daa8366b4183b121ad602adf2292>:0 

While compiling job:

 

Link to comment
Share on other sites

  • 4 weeks later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Tell a friend

    Love Canopy - Procedural Worlds? Tell a friend!
  • Need help?

    We work with some of the biggest brands in global gaming, automotive, technology, and government to create environments, games, simulations, and product launches for desktop, mobile, and VR.

    Our unique expertise and technology enable us to deliver solutions that look and run better at a fraction of the time and cost of a typical project.

    Check out some of our non-NDA work in the Gallery, and then Contact Us to accelerate your next project!

×
×
  • Create New...