Live data from Hacker News

What Unity Is Getting Wrong

garry.tv

171–180 of 306 posts

Re: What Unity Is Getting Wrong

#171
post #70
post #56

Earlier quoted context omitted.

I agree with the first statement. I'd go as far as saying that Unity is the JavaScript of game development. Sure, when you start out you get out results FAST, but then you run into limitations, weird behaviours and quirks that have to be worked around, and soon everything becomes a mess. Mind you, I'm a hobbyist in this field so maybe you could chalk it out to inexperience, but I shiver to think to what professional…

> Mind you, I'm a hobbyist in this field so maybe you could chalk it out to inexperience, but I shiver to think to what professional developers have to deal with if the small prototypes I cranked out were that painful. Careful adherence to best practices (often discovered the hard way), banning certain code pitfalls with a linter, and many workarounds :( It took me months to make something semi-usable out of (a subse…

See - exactly like Javascript!

The more you can avoid the "nice" stuff the better your project will be. All those shiny things in the UI that look easy will be painful in the long run once they start disappearing (I swear component references just disappear sometimes) and breaking and making the life-cycle of the application confusing.

Re: What Unity Is Getting Wrong

#172

Earlier quoted context omitted.

And what is the word on Unity in game development communities?

My biggest grief with Unity is that they only made the C#, but not the C++ part of the engine open source. So there can be release-blocking bugs that you cannot fix yourself, due to lack of source code. And when I tried to purchase Unity source code access, I was just ignored. Unreal Engine on the other hand has source code available for everything, so you can be sure that if such a bug hits, you can just patch it yo…

None of that is open source

Re: What Unity Is Getting Wrong

#173

Earlier quoted context omitted.

It's not really necessary to say `This despite Epic developing both a cutting edge game engine + Fortnite.`. Fortnite as most people know it is Fortnite Battle Royale. FNBR was essentially a weekend game mod project to an already existing, but floundering, multiplayer game. Most people that play Fortnite today have probably never even played the original game mode.

League of Legends, DOTA and so on all come from a Warcraft 3 mod as well.

DOTA was a WC3 mod but the rest are new games built from the ground up in that established genre.

Re: What Unity Is Getting Wrong

#174
post #13

Looking at its adoption by Hollywood and TV channels for 3D based animations, Unity is getting lots of stuff right. I guess there is always Godot for those that don't feel the same way.

How does timeline animation work with uneven terrain? You set these key frames but you lose your navmesh so you end up needing a million key frames

Re: What Unity Is Getting Wrong

#175

Earlier quoted context omitted.

I think UE and Unity has complete different markets. Unity is focused on small mobile game developers, those small shops don’t have expertise to work with UE C++ source code and most of them are new grads themselves. I’m not sure what is the overall strategy of Unity but I don’t believe they care much about the PC/Console space and frankly at this point I don’t believe they will ever manage to capture it from UE.

> Unity is focused on small mobile game developers Someone remind Unity of that.

But it's more fun to work on 5 different rendering pipelines! They're definitely trying to please everyone without really catering greatly to anyone. Like the official 2D capabilities are still about as hacky as what I implemented 5 years ago myself in about a month of work at a mobile games studio.

Re: What Unity Is Getting Wrong

#176

Earlier quoted context omitted.

They really do need that reminder. The people making money from Unity-based games are primarily mobile/F2P devs, and smaller indie developers. They need stability and ease-of-use/very-rapid-development much more than they need performance or the latest shiny high-end graphics features.

I thought I remembered there being some bigger games, but looking at a list[1], they are all pretty indie, or at least small. Not sure I saw a AAA game on the list (which doesn't mean there aren't any, but they seem rare). The equivalent list for Unreal Engine[2] does contain quite a few big titles (along with a plethora of less well known ones). I'm not sure if that's cause, effect or marketing. It could be that usi…

AAA studios have a millenia of C++ experience in-house so it just doesn't make sense as a product to them.

Re: What Unity Is Getting Wrong

#177

Earlier quoted context omitted.

Mmm... how’s that unreal engine version upgrade going for you? break your plugins? break your blueprints? can’t actually tell because they don't fail until you run them? :) Just saying; A lot of people say this kind of stuff, but unreal isn’t all roses either. (don’t believe me? read about it yourself https://forums.unrealengine.com/development-discussion/c-gam... )

Great, nope, nope, and nope. I've been continously upgrading a couple months behind new releases on commercial projects since 2015. I've upgraded about 17 times so far. Unreal's update story is light years ahead of Unity's half-hearted "automated" mess. Worse bug I had was back in 2016 when an upgrade lost reset the scale on weighted bones to 0.

Really depends on your code base and project. Unreal upgrades can be painful if you're using APIs that can or are rewritten, and if you have made engine level changes.

Unity often feels like rolling the dice with upgrades, basic things can break from version to version, but I've done many Unity upgrades with no or minimal issues, and seen extremely painful Unreal upgrades

Re: What Unity Is Getting Wrong

#178

Earlier quoted context omitted.

While it might not be a good fit for a some people, Monogame is still active, still ports to most systems, and it's totally free. I ported my old XNA/Xbox 360 game to that pretty much in one night (since it's based on XNA) and have been working on remaking it for desktop/mobile/eventually console. It's still being used for some pretty mainstream Indie games, like just-released Streets of Rage 4, Flinthook, Celeste, B…

That's an extremely impressive list of titles. As a hobbyist game dev I'm looking at moving to a multi-platform 2D game engine (last few games were done for the web using Phaser). The two engines that seem interesting are Monogame and Godot. My limited understanding is that you get more tooling and ready-made things with Godot compared to Monogame. I'll have to do another deep dive of these two engines soon.

Godot looks impressive too from a casual look into it, and is also free, and definitely has more included. Monogame is more of a framework rather than a toolset, except for a Content Pipeline tool you're going to be writing just about everything in code.

Monogame has the advantage that it has been used for commercial games, so you can get a good feel of what it can handle. Most of what I've seen showcased from Godot are more toy games, not really commercial. Now granted someone has to be the first to do it on Godot, but part of the reason you don't see it might be because it has some limitations you'll run into (but probably won't as a hobbyist developer).

XNA also had a really large community at the time, and a lot of questions you have with Monogame, if you can't find the answer noromally, you can just look up the answers to for XNA and it will be the same answer, so there's a good amount of history to reference there as well.

The important thing is just to pick something and start. After XNA died out, there was several years where I didn't make any progress because I kept going back and forth on what platform or tools I should use. I do recommend picking something open source and free, though, because I've had games get stuck on old proprietary platforms in the past and have had to port them to other platforms (i.e. Flash, Cocos2d iOS).

Re: What Unity Is Getting Wrong

#179

Earlier quoted context omitted.

I think it comes down to power in the company. Unity was extremely simple and small before, once they got John Riccitiello it become a management/business focused company over engineering leaders in terms of power and direction. Unreal has Tim Sweeney, and old school guy that understands how to make a game engine and has done it over and over. They learned alot from Unity, and are now doing it better than them once t…

I recently read that Tim Sweeney still writes code for UE, something absurd - 80% of the codebase is his?

Source? 80% of such a massive codebase seems like a stretch. Ue3 alone had over 3 million lines

Re: What Unity Is Getting Wrong

#180
post #60

As a Unity user emphatically sharing these frustrations, I'd be really curious to hear from long-time Unreal devs whether the grass really is greener on the other side. How's Unreal's - API stability? - Editor stability? (I have some old experiences of it being quite crashy too, and you know, C++ ...) - Backwards compatibility and upgradeability?

I've used both Unity and Unreal in a professional capacity. The best way to describe Unreal is that is has a specific way that things should be done and once you stray from that, it gets painful. But a lot of the time, you don't know what that way is.

Unreal is extremely powerful, but horribly documented. You know the blueprint editor? The same APIs are available for your own use if you want to make a similar graph editor, but you're on your own. You're best bet is generally to look at the editor source or a plugin that uses the APIs that you're interested in. That really applies to most of the API. If you want to use it, the documentation is generally of little to no help.

Blueprints can easily call C++ functions, but the opposite is extremely painful to the point that you shouldn't do it if you have any other options. But it's incredibly annoying to see that there's a blueprint function that does exactly what you're looking for when you're working with C++. If you're lucky, the BP function will actually be implemented in C++ and you can figure out the actual class name and call it directly. If not, then you'll either have to rewrite that functionality in C++ or attempt the aforementioned horror of trying to call into a blueprint from C++.

Blueprints are powerful, but they quickly become convoluted when doing non-trival things. If I have a blueprint function with more than ten nodes, I'm itching to rewrite it in C++. Doing things like loops and complex flow control is just so much easier and compact in C++. Need to set a couple of variables? Enjoy having that take up half of your screen.

Did I mention the lack of documentation? It took me an embarrassingly long time to write some code to figure if a targeting reticule widget is over a specific point in the world. The relevant functions were vague on exactly which coordinate space they use. It took a while to figure out that when one function projects a world location onto the screen, it actually means the viewport. While the widget absolute positions are actually relative to the overall window/screen, which matters in the editor because the viewport doesn't take up the screen and there's UI scaling on top of that.

Unity's documentation is great compared to Unreal. It also has the benefit that searching for most things will generally bring up a relevant forum post somewhere. There's also only one way to do things in Unity. You don't have to deal with trying to find out something for C++, only to have all your results be about blueprints.

Post reply on HN