Settings

Theme

Ask HN: Why is UI design in Unity so hard?

22 points by 41209 4 years ago · 28 comments · 1 min read

Reader

I love Unity , but they’ve been working on UI frameworks for almost a decade , all fall short.

Still I need a 3rd party asset to make a decent UI

oneoff786 4 years ago

I have found unreal’s basic ui editor to be fine.

Unity is, in my opinion, just a poorly managed company with a good product in spite of it. They’ve failed to deliver on many things and the engine has glaring weaknesses, e.g. no networked multiplayer built in. I would bet on the engine generally getting worse over time as management tries to push non functioning new stuff.

  • flafla2 4 years ago

    This is going to sound a bit hyperbolic but I haven’t been truly impressed with any new features in Unity since the introduction of PBR and dynamic indirect lighting in Unity 5.0. If your game doesn’t require cutting-edge technology then you would be hard-pressed to find a significant difference between the latest version and say version 5.4. If your game does require excellent optimization, rendering tech, etc, then Unreal is simply the better option.

    • oneoff786 4 years ago

      I tend to agree. I find unreal to have a higher initial learning curve but then generally be an easier engine to develop for. The core engine components have a wider coverage of basic game concepts like movement and network replication. The difference between fixed updates and tick updates is not a concern which is a trap for newbies. The engine source is available.

      Unity has better support for 2D games. And seems to be more mobile friendly. The asset store is better if you want to just pull in some other peoples stuff, which I find unpleasant for anything but photo realistic mundane objects. That is to say, I think Unity tends to be the best choice for making mediocre games, which is not to say that games made in Unity are intrinsically mediocre at all.

  • 41209OP 4 years ago

    I vastly prefer code over blueprints, and C# is much easier than C++.

    I've tried learning Unreal like 3 times. I still can't even get the build chain working

dleslie 4 years ago

Unity will never have halfway decent audio, networking, or ui; and not for lack of trying.

The problem is that the one size fits all approach that made then successful falls far short of ideal in areas where there simply isn't a good general case for all of the possible use cases of unity.

For UI, is because no single approach is suitable for all possible combinations of glance, grasp, touch, gamepad, mobile, PC, VR, adaptive web, and with all possible projections and rendering approaches. There may be some commonalities, but no package is going to be great at all those things.

jazzyjackson 4 years ago

I'm building a graphics framework based on polygons set into a honeycomb (doesn't have to be a hexagonal honeycomb [0]) - basically you specify a coordinate system, then describe polygons as paths along those coordinates, and then embed text and media within those polygons (flowing the text, clipping the media) -- especially excited about flowing text around arbitrary paths (like you can do in Inkscape/Illustrator but in 3D)

I'm targeting HTML/CSS because it's what I understand, but always imagined I could use the same markup to render in VR / game engines. It would be valuable to me if you described what primitives you expect Unity to give you, and how you wish it worked. Sorry if this is hijacking the thread since I don't have the answer, but I would love to have the answer eventually :)

[0] https://en.wikipedia.org/wiki/Convex_uniform_honeycomb

swalls 4 years ago

As you dive deeper into Unity, you realize more and more flaws. They promise the world, but only deliver marketable features rather than improving what they've got. The UI Framework is just one of those things.

ffhhj 4 years ago

Some history: years ago someone at Unity got in love with one of those 3rd party assets, NGUI (if I remember correctly), they started reproducing it inside the engine and realized there could be problems of interest, so they contracted the asset developer, but relegated him to do boring stuff. The guy got depressed and left the company.

Having worked with the older GUI system I actually like what they have now. But I'd have prefered them to adopt CSS.

Now they bought all those inhouse tools from Peter Jackson they will be busy for years to come plugin them. Someone's dream in Unity is making movies, not UIs.

shetill 4 years ago

The native UI framework and even paid assets are absolute rubbish. I've actively avoided working on these as I realised how difficult and unproductive it is. Especially Editor UIs and Property Drawers is the worst. They have so many projects on Preview (like their supposed new UI system) and has stayed like this for years... disappointing. I've thought on switching to Unreal for long time but never went with it knowing I have to learn C++ too and also Unreal feels very heavy compared to Unity. Some might suggest something like Godot but these kind of engines are still nowhere near the same level as the two giants and their asset stores are either non existent or at infant level. Marketplaces are important for me.

  • oneoff786 4 years ago

    FWIW I learned Unity and unreal blind with no particular familiarity with C# or C++. I’m a Python programmer for a day job. I have found unreal blueprints to be more than sufficient for anything I want to do, and honestly a superior choice because they corral you into best practice methods that actually use the engine’s built in components whereas you might accidentally end up trying to implement them yourself in Unity because a pure code interface isn’t very discoverable.

    I have dipped into C++ for some tasks involving a lot of arrays and what not. It wasn’t that hard to do what I needed to do. I definitely do not know the language but it’s all worked out pretty well so far.

lostgame 4 years ago

What's wrong with it? I prototype UI's all the time in Unity with no issues? In fact I love the anchoring system?

redefine_net 4 years ago

I'm glad I'm not alone with my frustrations over Unity. I feel like Unreal is clumsy as well for new developers, so it's a choice between which shortcomings you prefer. Can't wait for a new engine to fill in the gap.

  • 41209OP 4 years ago

    Honestly this post is like complaining my new car only has manual windows.

    Everything else with Unity is pretty easy. I hate Blueprints or any visual scripting. In the long term Blueprints don't build any real skills, and I learned to program with Unity.

lkschubert8 4 years ago

Honestly this is my experience with ui in most, if not all, game engines.

Shadonototra 4 years ago

multiple reasons

- it's hard to make declarative UIs with C# (recent versions try to make it easier, but it's still not there)

- making UIs is hard, making game UIs is even more hard because there is no rule to make a UI, it depends on many factors (art style, game genre, platform you target, input you support)

- making something customizable, serializable and performant is very hard

you are better making your own that suits your need, hence people rely on 3rd party solutions that exactly solve their use case

  • redefine_net 4 years ago

    I don't get why they don't make HTML-compatible frames you could just rotate in 3D. in my mind - if you said UI you said HTML. (and JS and CSS)

    • Shadonototra 4 years ago

      because web tech sucks, it performs poorly, it's even more true when you start to target ressource constrained devices (mobile and consoles)

      8ms is your framebudget for 120 FPS

toivo 4 years ago

Whats a better UI framework? Been a unity game dev since I learned to program properly so I don't even know any better.

wilg 4 years ago

UI Toolkit is a big improvement over the previous ones, at least.

terrycody 4 years ago

Try godot instead.

  • 41209OP 4 years ago

    Godot has potential, but it’s no where near Unity in terms of ease of use.

    With Unity I can typically buy an asset for whatever I need, but with Godot I might need to implement it myself. Unity has tons of problems, but better off with the devil you know

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection