Given the constant negative vibes, responses, and overall attitude on the forum toward the engine we all build in, I’d like to ask: what would make you happy with Unity?
I’ve been waiting for someone to make this thread so i could make this reply.
In regards to Unity this is the feature I would be most happy about:
If Unity built in easy to hide/expose variables within inspector windows within the Editor. Imagine if you could select multiple variables in the inspector window, highlight them, right click and select “hide” and it automatically added the [HideInInspector] tag to them, or simply hid them through some other inspector logic magic. We would be able to expose them again from debug mode by right clicking and choosing “show” (since they would now be hidden in normal mode).
(as opposed to having to open up a script and add [HideInInspector] or [ShowInInspector] AFTER I spend 50 bucks on Odin Inspector and figure out how to get it working)
Even better if there were built in enums that generated and existed at the top of an inspector window and allowed us to expose variables the way Odin allows us to “showgroup” based on conditions (enums being the best).
So here are some organizations I’ve done so people know TF what I’m talking about:
It’s nice using Odin, but it’s also kind of a pain in the butt and requires a good bit of excess code and overhead. If we could group variables, and select many at a time directly from the inspect and be able to have various settings exposed, and quickly organize our windows on the fly, it would be GAME CHANGING.
Like imagine you click on a variable (its text in the inspector, not its value), have it greyed across horizontally to show the variable is “selected”, shift click all the way down across 20 variables, see them all selected now right click and be able to “group them” to “movement variables” then be able to choose “movement variables” from a built in enum and they would only be exposed in the inspector when shown and other variables would be hidden. Now imagine you could select 3 values and instantly right click tell them to be stacked horizontally and now they are displayed in a horizontal group not taking up so much space and allowing you to better organize values that align together.
I could blather on and on about other features but i’ll just start with that one. If Unity added the above feature I would be so gosh d@mned happy.
That would be super handy. Big agree.
Time. I need to see that the changes they’ve proposed and are implementing will have a long lasting positive impact on the company.
Super valid, I’m not going to pretend like I haven’t gone through a pretty hard negative cycle, especially last year where it seemed like every announcement coming out of them was either layoffs, feature cuts, or poorly communicated and poorly considered pricing changes.
Something like Lumen in SRP, improved SSGI, perfect Screen space reflections, less or equal 500 milliseconds on every action in the editor with HDRP for example less than 500 milliseconds of C#script compilation with HDRP.
I would love to see a robust GI solution, too! I think that’s something that is just universally useful; there isn’t a single game that wouldn’t benefit from a better lighting solution.
-
A comprehensive tutorial about how to make a massive open-world game with DOTS, to see the maximum capabilities of the game engine’s built-in tools
-
Something similar to Nanite, so we won’t have to create LODs anymore
-
A quick real-time GI like Lumen, because it can be useful sometimes
-
Extend the grace period of the Always Online requirement to three months or remove it
- Development timelines should be under 5 years for a production ready package, we’re onto year 8 for some systems like UI Toolkit if counting from pre-production. I’ll retire before UI Toolkit will get worldspace support and many other basic features. Per recent forum posts, Worldspace isn’t even on their radar yet.
- Public roadmaps are a joke that they update as PR material before Unite or some other event maybe once a year if even that. Some roadmap sections haven’t been updated in years. This makes it hard to understand the state of the engine and what actually is being worked on. You need a paid representative at Unity to actually gauge what is up. Just update them properly like actual roadmaps instead of adding items once something is done for optics.
- Package development should be open to public feedback. In 2020 they acquired Bolt visual scripting, cancelled Bolt 2 and said they’ll reimplement relevant Bolt 2 features into Unity Visual Scripting (the Bolt 1 reskin). It’s been 4 years with exactly zero features reimplemented. In fact, no progress has been made on the state of the tool and it’s unusable in production. And there have been zero public progress updates on the current state of their reimplementation of tool since November 2022 when they said they’ll take another 2-3 years to redo this thing from ground up. Everything is happening behind closed doors.
- Actually execute your vision. Part of the reason they cancelled Bolt 2 was the unification of all graph based tools in Unity under a new graph tools UI framework called Graph Tools Foundation. Bolt 2 didn’t align with that vision. After four years we are no closer to this goal. Shader Graph and VFX graph use their own separate forks of early Graph Tools Foundation package. The package itself was discontinued in 2021 in favor of integrating it as engine module. The engine module was recently cancelled in favor of some new package titled Graph Tools Authoring Framework per 2023.3 beta 3 changelog, but this package can’t be found anywhere . The new Muse BT graph uses its own home baked solution as well. Four years gone and we are no closer to this unification idea.
- The engine fragmentation has to end. UI Toolkit is still generally unusable - no custom shaders, no custom text effects, high initialization cost, lacks basic styling features, no worldspace, etc. And they refuse to give low level access so we can fix these things ourselves because of some weird development philosophy that the base version of the package will support these features eventually. Meanwhile, UGUI hasn’t been meaningfully updated in a half a decade or more. There’s no pressure for them to finish anything, and they just point to legacy features in maintenance mode as the solution and continue to not deliver indefinitely.
- Fix iteration speed with CoreCLR migration that they’ve been teasing for years and that still is probably a couple of years away or more.
TL;DR: It’s essential to fulfill the commitments made four to five years ago within timeframes that ideally won’t surpass the span of the current decade. But at this point, it’s unlikely.
Yeah, wanting them to do the things they said they would do seems like a pretty reasonable ask.
Perhaps there is some sort of solution (I doubt it though) but while I like the Inspector for setting values they are not “documented” in any way. So some way to “push” them to the code (or at least a file).
If I was to code the settings I would be able to see them all and if I experiment with the settings or I replaced a component the settings that I wanted would always be there. As it is I spend too much time (sometimes) trying to find out what values I had set and forgetting one can make huge difference at runtime.
Speaking of which… if for example one routinely turns off navigation on a UI button or changes pivot points on a Rect Transform does one tend to create a prefab or just remember to set all these things every time?
Have you tried using Presets? I haven’t used them yet myself, but I wonder if they would help.
I would like systems like Mecanim or UGUI to have meaningful development. I understand wanting to create new or better systems (especially with how much others seem to despise Mecanim), but just forsaking old features in the meantime sucks, especially because the “new” system seems to inevitably be abandoned so we wasted years at this point on languishing systems.
Agree 100%. I actually like Mecanim quite a bit, if they just hid away a few variabes and renamed things to make them more obvious what they do and streamlined the system a bit, it would be fantastic. Maybe they could do things on the back end to implement DOTS and ECS for it, I dunno. But it’s a great system that’s just a little confusing in a few ways.
Found this quick video that gives a fast overview of the feature working in the Editor:
https://www.youtube.com/shorts/vyACcDpIR94
And this reminded me of something else that would make me happy in Unity. Imagine if videos like this that show the full power of a feature were imbedded into Unity somehow or in the documentation. I find this stuff infintely more useful and faster to digest while directly showing the use case and we can see in realtime how the feature works.
It would be awesome if Unity had a small team that made small videos like the one above and linked them throughout Unity to demonstrate awesome workflows and features.
Oh, and if Unity REALLY wanted people to be excited for a return to form, they’d get these short videos narrated by this chipper MF’er:
Another feature people don’t know about that’s extremely powerful is Layouts. You can open a whole slew of inspector windows for a certain set of skills or items or whatever, save that UI loadout, and at any time load it and BOOM you have all those windows all set up so you can get back to tuning that set of content again. Other obvious use cases are setting up windows to allow for animations, particles, etc. But the real strength is being able to save a state of things you work on in tandem for future use.
What would make me most happy is to see a different long-term approach to development of the engine, where there is a lot less fragmentation of features and shiny object syndrome.
The way I see it now, Unity has a spectacularly strong and well-built core, on top of which has been added (especially in the last 5-10 years) a giant brittle shell comprised of half-finished ideas and concepts. From the outside, it appears that the package manager has been abused as a means of adding things without needing to finish them. 95% of what is still carrying the engine was built back when its claim to fame was being the go-to indie engine, and almost all the new features (at least the one’s I’ve encountered with) have a huge swathe of users who won’t touch it for some reason, usually because some crucial thing is broken or nonexistent.
That is not to mention all the divergent expensive acquisitions that fizzled out, which could have been spent on much more useful things, and the cancellation of far more crucial and less expensive projects such as Gigaya.
What I also don’t like is the big focus on AI right now, as if that has anything to do with the problems the company is currently facing. If anyone is hoping that AI is going to just deploy into Unity like some kind of healing spirit and merge the chaos into perfect order, I think they will be disappointed. Right now what Unity needs is to call in people with the kind of approach that was taken when the foundations of the software were laid and get to work cutting out and replacing a lot of junk.
…
That said I think it’s about time for the general negativity to stop. By this time everyone should have decided on moral grounds whether they are still willing to use the engine or not, and either departed for another ship, or stayed put with positivity and a focus on what to do to make things better.
As much of a faux pas as Unity made, it seems to me they simply jumped the gun on what virtually every platform like this is either considering or planning to do at some point. It blew up in their face and rightly so, but I wouldn’t be so sure that pretty much every other engine will not try that or something similar in the future. Just look at Apple, they have introduced their own runtime fee for certain parties. This is alongside the ‘standard’ 30% gouge which is an order of magnitude higher than the royalties Unity are asking for, for a much simpler service than providing an entire game engine. I wonder why there isn’t so much hue and cry about that? Perhaps they are simply far more skilled at pulling off stunts like that compared to Unity, but I wouldn’t call that a virtue.
Game Development driven leadership.
Release of the long awaited new animation system.(I swear if they’ll cancel it it will be my last day here on the forums)
Release of the long awaited new environment system.
Good built-in streaming and instancing, support for large open world, ability to paint grass on any geometry not only terrain.
Procedural workflows support(equivalent of Unreal’s PCG graph)
Unification of UI of graph tools
Unification of srp’s lighting and postprocessing system(physical light units in URP, physical camera in URP, ability to use HDRP’s postprocessing on URP and vice versa)
Better SSGI(see h-trace 2.0), better SSR, better SSAO
Lumen and nanite equvalents
URP environment settings moved to volume system from lighting window, better URP fog with blending to skybox.
New modern theme for editor, customazible workspaces like in blender, modern title/menu bar.
Feature complete UIToolkit, feature complete svg support with antialiasing and other features, support for animated svgs like lottie.
Built-in modern FMOD-like audio editor.
Suport of the modern video/audio/texture file formats
Latest c#, CoreCRL
New NavMeshAgent or ability to create custom agents. Better local avoidance. Navmesh support for moving platforms.
AI tools (behavior trees/GOAP/HTN). Futher Muse behavior development.
Do not clutter project with tons of settings scriptables. Move everything into project settings window. Ability to customize where AdressableAssets and TextMeshPro folders created, don’t create them at the root of project.
And many more that I can’t remember right now.
At this point You should just switch to UE XDDDDDD
As for the thread…a good starting point is to speed up editor workflow. And fixing somehow SRPs or something…dunno
C++ API, source code access, out of the box builtin gltf support. Alternative royalty-based license.