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.
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.
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.
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 :)
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.
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.
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.
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.
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.
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.
- 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
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
oneoff786|4 years ago
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
41209|4 years ago
I've tried learning Unreal like 3 times. I still can't even get the build chain working
dleslie|4 years ago
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.
catmanjan|4 years ago
jazzyjackson|4 years ago
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
ffhhj|4 years ago
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
oneoff786|4 years ago
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
redefine_net|4 years ago
41209|4 years ago
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
Shadonototra|4 years ago
- 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
toivo|4 years ago
hyferg|4 years ago
vgel|4 years ago
bryan_cooper|4 years ago
wilg|4 years ago
terrycody|4 years ago
41209|4 years ago
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