Ahahah Peter77 I know this might sound like sarcasm but I’m finally happy to be able to actually work on my game!
Before I was taking for granted that the editor would break frequently, and that was another problem on its own, but I guess we have to take all the victories we can.
I also usually work on the betas. There is no generic rule. If they offer something you can take advantage of, you get this first, with the prize that you might have to implement some workarounds for things that otherwise are broken. In the past I have done quite well with this strategy and I am looking forward to the 2020.2 beta. I do some test upgrades every now and then to see which assets will break and adjust preemptively. This time nearly everything works except VRIF since there was again some XR cleanup in the API but nothing major. On the have-side, I am tremendously looking forward to Ambient Occlusion in URP 10.
Unfortunately we went down the UI Toolkit route and we needed some lightmap features that were only in the 2020.1 alpha.
Be sure I will stick to 2020.2 from now on, it has been a rough month and a half using this
I’ve found 2020.2a21 to be very stable as well, on a Mac. Noticeably fewer crashes than with a19. I’m hoping it’s not anecdotal if others are seeing this too. In any case, feels like 2020.2 is definitely ready to get out of [alpha].
Actually this is the best way to develop your game. Despite what Unity devs say, and some people, if you shipped games with Unity, then you know working with Alpha is the BEST way. Here is why
If you work with LTS, and assuming your game takes 1 year to develop, then by the time your game is complete, the game is running on a very old, obsolete engine. Unity is not particularly cutting edge, so if you go this route, your game engine will be effectively 4~5 years behind cutting edge. Not very smart. LTS is not particularly stable either, I will explain this in 2)
LTS does not get any new feature updates, only bug fixes, and while this sounds very easy to understand, there is a HUGE catch. Unity will only fix bugs, and guess who decides if a feature/implementation is a bug? Unity does. If they decide that it is too much work, then it is not a bug. Surprised? well, welcome to the real world. If you are not convinced just go around the forum - there is plenty. I am not saying Unity is evil, this is all business and somewhere, someone has to make hard decisions and if you want to succeed, or suffer less, then you have to be well informed. I will give you two examples
There was a case where UI texts would just eat up CPU time, not game breaking but noticeable. Users thought it was a bug, but devs thought the fix was an improvement. The fix/improvement did not make it to the LTS, as it was a new feature. This was a few years ago.
Recently, the 2020.1 HDRP TAA was revamped. Many people think (including me) that it should be ported to 2019 HDRP, but since it is a new feature, 2019 HDRP is not getting it. What is funny is that 2019 TAA is so bad that I consider it broken (it ghosts like crazy) but the devs don’t. “It is bad but not broken”. Remember I said “4~5 years behind?” well, if you are using any LTS now, your game will have the most primitive TAA.
If you start working with Alpha then, if some feature is seriously broken/badly implemented, you can actually provide feedback or report bugs, which eventually will make it to the LTS version of that year. So you basically pave ways for your game.
People resort to asset store/third party when things don’t work and often it holds your project to a specific version.
Lastly, almost all bug fixes get fixed on the latest version then backported. But remember some fixes don’t get backported.
Conclusion:
Starting your new project on LTS is not good. For reasons read above.
Best way is to begin with Alpha and try to match that year’s version’s LTS and game release
You can move on to next year if the project takes more than a year/ or feature you need is missing
Read people posting feedback and carefully decide if you want to skip a version.
Test with a repo project.
It is a bit of a work, but eventually it pays off as you will not be held hostage by versions and will have the freedom to be mobile between versions.
Unless of course they miss the window for the LTS of that year for whatever fixes / improvements you need for your game, and now you’ve gone all in in a variety of not ready features, which leaves you to either wait up to forever for Unity to fix them, or you have to redo a lot of the work you’ve already done.
Depends entirely on your projects timeline, but I agree with jjejj87, I’d never start development in a LTS build (I’d probably not recommend an alpha version to a team starting a project either though.)
One has to make a decision at some point, and have to meet a deadline regardless. On the other hand, going all in hoping Unity would do this-or that is just too risky - LTS or no LTS. The only difference is that in case of LTS, the possibility is zero (feature set is fixed from day one) and Alpha/Beta a more dynamic possibility. So really, what you mentioned is more about risky business conduct rather than engine version choices.
What I usually ask a team is to use different versions of Unity for content creation and use scriptable objects as much as they can for easy import and compatibility between versions.
For example,
We created animations and sequences in Unity 2019 no issues and imported to 2020.2Alpha.
Item data (pretty much all serializable data) and all static data in scriptable objects (2019/2020)
World terrain and layout data in scriptable objects. (2020.1)
With this approach, we have the main project with 2020.2Alpha and other various versions of Unity. We sort of collapse the whole thing about once every two weeks. It doesn’t take long as almost all data is scriptable object (Maybe around 3 minutes?)
In my experience, UI particularly does not play well with version jumping, so I usually go with procedurally spawning and managing UI stuff. In case of HDRP, custom pass, light and rendering related issues occur on regular basis, so be aware.