Choosing a version of Unity, the google spreadsheet.

Hello all.

Choosing the editor version of Unity is an adventure so to make it a little bit easier I maintain this spreadsheet as I use versions in production.

If you want to add something, lmk or add a comment and if you want to add a lot, I’ll give you edit permission.

6 Likes

this fix one is quite important for large projects,

Which version fixed this?

looks like starting from 2020.1.0a19
Bug: 4GB limit to Textures in standalone build page-5#post-5300130

added, thx

It appears to me that all the versions listed are broken in some way. :sunglasses:

For VR:
2020.3 has the best performance on quest. 2021lts is slightly slower and 2022.1 is a whole other performance issue.

It’s always been like that since 5.0. I’m hoping that this document expands enough to help navigate this minefield.

I don’t see the point of using 2021.LTS in production when 2020.3.37 runs so smoothly and yeah 2022.1 is a “must skip” release.

2021 lts has faster build times, better vfx graph, better shadow rendering, better il2cpp generics support, better openxr support for android, and native visual scripting.
Quite a list I like, but sadly not worth the performance downgrade

Is visual scripting usable in that release? and how’s its FSM? last time I checked it was a binding nightmare and ended up making my own.
also got some specifics on better in vfx graph & shadows & oxr & generics? stuff that you found out in-production because if I start adding the changelist that list’ll need a proper database.

How much slower is runtime?

Haven’t used visual scripting myself, but more people are picking it up since it’s official apart of the engine now.

(Skinned) mesh sampling is something in vfx graph which can be very cool if used properly (since you can’t always bake an sdf)

For shadows there is Conservative Enclosing Sphere, which has better frustum culling for shadows. Especially with high FoV HMDs this might be useful

OpenXR is out of preview for android iirc. At least it shows up properly by default. Not sure about changes under the hood tho

Haven’t used generics much lately, so can’t tell much about that, but it can be very beneficial to some.

Performance wise on the quest there is a 10-30% performance dip (really depends per project. I actively monitor the vr forums, and saw these reports).

If you really really need any of these features you might want to upgrade to 2021lts, but for 90% of games/applications there is no noticeable benefit outside of faster build times

Cool, I added vfx skinmesh sampling and crazy perf dip.

1 Like

For Nintendo Switch and built-in renderer, 2019 LTS is better than 2020 LTS and 2021 LTS. Tested with many isolated projects and my current game which is a commercial grade large project (128GBs).

I also have other reports and tests that I did with URP (7, 10, 12,13) vs Built-in on the Nintendo Switch that might be nice to add it to the google docs:
My findings are, overall URP is faster in absence of lighting, probably due to GPU buffers not being constantly updated (thats SRP Batcher good plus). However in presence of dynamic lighting (specially with shadows) the drop is quite significant (50%). In this regards built-in does a better overall job, slightly less in absence of lighting but way way more with lighting. In other words, URP is a better choice if your game has little to no dynamic lighting/shadows (or is fully baked) and really bad if your game does dynamic lighting/shadowing.
I tried many types of environments and scenes situations for my testings (most from my game): outdoors, indoors, small, large, few & many mesh/material instances, dynamic lights, static lights, baked lighting, not bakes, you mention.
Also, in all testing, 2019 had the fastest runtime player averaging 5-7fps higher (from a 30-60fps cap rate) for both Built-in and URP versions.
Keep in mind, this is only on Nintendo Switch with Unity (2019, 2020 and 2021) LTS versions. I can’t comment for other consoles/platforms.

1 Like

Would you mind using procentual values please? Since 7 fps are a different magnitude in the 40-60 range than in the 200+ range.

Yeah, I forgot to mention that Nintendo Switch fps are maxed to display refresh rate, so games are always in the 30 - 60 fps range. In my tests 5-7fps represents around 8-11%.

2 Likes

Added

How do you suggest I add that?

I did similar tests but only with one directional ligth, URP was much faster than builtin in 2020.1.17 https://elefantopiainc.blogspot.com/2020/10/benchmarks.html
then to sustain 60 fps i chose to go lightless and ultimately got 2X or something like that
so the speed delta maybe be caused by specifics to your project. i know that the frustrum culling and umbra are dog slow on unity and it’s possible that SRP makes things worse. My project didn’t hit this much because of the style but that’s interesting enough to investigate.
stress test:
8324844--1093263--bench 6 stress test.jpg

I don’t know but something like this I guess should do it: with multiple visible lights with shadows built-in is faster, with only one directional light (or no lights at all) URP is faster.
Basically, depending if your game target Switch hardware and the amount of visible lights with shadows.

1 Like

I added to the 3D render column and added the stub to a render pipeline choosotron.
You make NGSS2, it’s quite low level so you must have seen the guts of the engine so how’s your experience across unity version and RP, any trend?

I think once DOTS settles in (more specifically DOTS instancing and DOTS occlusion culling for SRP is fully working) both HDRP and URP will skyrocket. As of now, my findings suggest that, if your project need lot of lights with shadows, Built-in (deferred or custom single-pass forward) is a better option. If have little to no lights URP is a better option. As soon as you have moving lights with shadows, SRP batcher loses its advantage and behaves like the old built-in batcher.

1 Like