The separation between experimental and preview features should be better explained.

Personally, I think it’s currently quite confusing how it’s laid out. From this thread from 2017, it explains that preview means that the feature is already in a beta or release build, near completion, just that it’s rough around the edges. In other words, it’s a beta. Experimental, on the other hand, means that it’s for feedback only, and you should not use it outside of testing. In other words, it’s an alpha and may even be removed in the future.

Makes sense.

However, in 2020, the package manager provides no distinction between preview and experimental builds. Everything is bundled together under one label, whether it’s almost near completion like the Input System, or if it’s basically in a pre-alpha state like the Transport package and Project Tiny.

It’s even explained in the manual that preview packages should not be used except for testing and feedback, and may even be removed in the future. It’s almost as if preview just means experimental now. There’s no distinction between near-complete beta features with stable APIs and incomplete alpha ones.

The manual does include a section about experimental features. However, it just includes Look Dev from many years ago with a link to Unity’s Github. It’s almost as if it’s abandoned? Unity still uses the experimental label, as seen in the State Of Unity 2020 talk on page 6.

Contrast this to Unreal’s explanation of experimental and beta features. Experimental features are for feedback, planning and testing only. The APIs may not be stable. Meanwhile, beta features aren’t completely bug-free yet but they guarantee a stable API and backwards compatibility so you can at least develop on it.

That is so much clearer, in my opinion.

Thoughts?

2 Likes

Experimental and Preview are interchangeable the way Unity uses them and generally they mean a feature is : almost ready / completely broken / abandoned / forgotten / useless / useful / months to decades away from release / someone’s code dumping ground.

The one constant is you can’t complain about experimental / preview feature because “it’s a preview what were you expecting?”.

So all in all, it seems pretty clear to me.

4 Likes

Yeah, I guess that’s my point, it needs to be better explained and separated.

Double post: Update, I just found this blog that I think pretty well explains it, actually. Unity Blog

Basically, preview = alpha, released = beta, and verified = release.

Triple post: But no packages sport the “released” label without being “verified”?

2 Likes

I mean if that’s true, they should just call them alpha beta and release. What does obfuscating them do, if that’s what they are?

But they’re not. There is no consistency for any label, just as LTS has no meaning because you are not supposed to break controller support for a whole platform for months on LTS, but that’s what they did.

Unity labels mean nothing.

1 Like

Nobody can agree on exactly what “alpha” and “beta” mean, so they would actually be really bad terms to use. Coming up with their own and providing clear definitions sounds like a good idea to me, as long as they stick to it.

As for the thread’s topic in general, “preview” and “experimental” and “beta” and anything < 1.0 all mean “not production ready”, regardless of any additional detail given. Go ahead and mess around with them, but I wouldn’t include them in anything where I was relying on them.

Heck, even “stable” software often has issues, and that’s not specific to Unity. The further back you go from that the more risk you bring upon yourself.

Yeah… but then Unity keeps using them as excuses. You have issues with the input manager? Use the new input stuff. LTS is crashing? Just move to latest Tech (I was told this by QA).

So the fact that they’re not production ready matters only when it suits them.