Live data from Hacker News

Unity Software Inc S-1

sec.gov

251–260 of 294 posts

Re: Unity Software Inc S-1

#251

Out of any software tools I use frequently, Unity is the one that brings me the most joy. Any reasonably complex interface is essentially a game whether it's a music composition app, simulator, MMO or even a basic form. The basic abstractions of entities and components sometimes feel like they could apply to any software project. It's seamless to animate something, add physics, style in ways that would seem mind bogg…

>… Web apps…

I for one am not eager to download a 3D rendering engine when accessing a website. For a good number of reasons.

Re: Unity Software Inc S-1

#252
post #19

I use Unity every day at work. This is a mixed bag for me. Unity gives google a run for their money when it comes to abandoning old features / letting them rot. The editor is kind of crashy, launch times get unwieldy fast. Sometimes there's subtle differences between build version and running in the editor, and solving the disparity is a death march. All that said, it's still one of my favorite environments to work i…

Unity is great and really took the mantle from Flash/Director back in the day. Unity is also a big part of why mobile games have taken off, that combined with the ability of anyone to publish to mobile stores and more.

The problem is definitely churn and shaky foundations.

Unity has a "version 2" problem, the "second-system effect" is a major tenant of Unity engineering which sucks [1]. I really wish they locked down features like they did back when the team was very small. Maybe that is the problem, too many cooks.

The "move fast and break things" has also made very unstable systems and updating a chore. I like moving fast, but only break things if what is gained is more than before, not back to the same footing.

I have been using Unity since 2008, shipped many, many titles on it but due to their churn and every changing APIs/libs/features, updating games is a major pain even mere months out.

Networking is a major problem, always in flux and Photon is still the best probably. There are other third party solutions to it but I don't know I'll ever trust a Unity networking library again.

UI is a major problem, again always in flux, from GUI, to UnityUI, and now to UIComponents. Unity loves to push off all problems with a shiny new future thing that never really solves much but adds more problems.

Everyone knows about IL2CPP, the animation changes, particle system changes, rendering pipeline flux and more so I'll spare you [2].

It seems much of what Unity changes is driven by announcements, marketing/finance over what engineers want. If Unity went back to just making it code based, THEN add on the editor tools to that lib/api then we'd be in a better spot. They seem to drive things through the editor first then allow code/api access. Libraries like particle systems, animation, ui and more all had editor access before code access and that is frustrating. Let developers make tools needed and start with a clean, solid, well designed API that isn't going to change every version, change the guts of that system abstracted to a clean, simple, atomic wrapper.

Unity is still the best multi-platform engine for mobile and other areas, but it is nice that competition is here with UE4, Godot and others. UE4 and Godot are focused on simplicity, UE4 is arguably more simple than UE3 and largely that is because you can take the C++ route, Blueprint route (which rides on their apis) or a mix. Unity's big selling point is their editor, but it clouded their engineering focus as editor first over code first.

Unity really needs to make games on their platform that they must keep up to date with every build like Unreal, that way the pain points hit them more as well, and they will smooth out that process of shipping, updating, actually making games on their engine.

Unity is pushing to be Unreal, Unreal is simplifying to be more like Unity, Godot is almost a better indie/small/medium engine at this point because they are limited by how much change they can make. Progression doesn't have to slow down, we just need cleaner, more well thought out APIs and wrappers for subsystems that can change. People use Unity, Unreal, Godot, others for an engine team to think about these things. I wish more of it was standard in game development so it was a littler harder to change surface level functionality, not to slow things down, but to make a more stable platform/abstraction/atomic surface where shipping games and updating games is easier.

I think overall software today is stuck in the second system effect too much. No one values clean APIs that the surface, signatures, and actions are in a clean wrapped, abstracted, atomic system that the inner workings can change more easily. There are too many leaky abstractions today or no attempt to create atomic/standard interfaces that allow "move fast and break thing" underneath, rather than on the surface.

I liked it when you could read the docs, use the tool, and code libraries, and much of it made sense, simple, good naming, discoverable. Now they rely on training, youtubers and so many other things, probably to create more marketing, that there is less incentive to make it simple again. Engineering is taking complex and making it simple, not taking something simple and making it complex, then another complex system on top of that, then a few to decide from all that are EOL'd in a year or two.

My hope is Unity slows down a bit, works on stability, and really makes locks down some of these libraries. Though I thought that Unity would do that when they went subscription over having to promote new features every year to get you to upgrade. Subscription should have made them focus on stability, it didn't. I am hoping going public will do so, but it could also spawn more of the same.

With that said I love Unity, dig Unreal and others. But I do see people going to custom engines again that are more standard just so that breaking changes are at the whim of the developer, not the engine team that you pay for which force these breaking changes on you at sometimes inopportune times.

[1] https://en.wikipedia.org/wiki/Second-system_effect

[2] https://garry.tv/unity-2020

Re: Unity Software Inc S-1

#253

Earlier quoted context omitted.

Not only Unreal. I think the even bigger question is how does it compare to all the incumbent tools of the industries they are trying to replace.

Well, who are the other leaders in the industry? Is there any other major player besides Unity and Unreal? (I'm not overly familiar myself?) What's their respective market share? EDIT: Never mind, I found it. Unity and Unreal are the market leaders with approximately 15% & 25% market share respectively. Nothing else including Havok, Godot, Cryengine or Source even come close.

Not the _other leaders_ in the industry, but the leaders in the _other industries_ they are pushing into, like architectural/automotive/simulation visualization. In each of those they have to face very different competitors with very different feature sets.

E.g. one of my past clients is using Viz4D for interactive architectural visualizations on their website for marketing purposes. For them that existing tool is already so integrated into their processes, and the feature set so well tailored to their industry, that I doubt Unity will be able to offer something competitive to what they have _today_ in the next ~3 years with their slow pace of development.

Re: Unity Software Inc S-1

#254
post #57

Earlier quoted context omitted.

If you go through this list https://store.steampowered.com/curator/31285130-Unity-Engine... Most of it is a lot more impressive than projects completed with React. Unity has a high learning curve once you want to move away from tutorials. I believe React is the same, I kept trying to learn it but would get discouraged with the new tooling and eventually give up.

I hear you that Unity has created some great projects, but that's kind of like saying that C is a better language than your favorite language because C was used to write Linux and your favorite language has never made any project that impressive.

What?

Your comparison was nonsensical in the first place, your entire take is painfully uneducated, but the comment you replied to is playing along. Then you're complaining they did?

Unity has created projects on a scale that would have failed if they were using a product that justifies hundred developer engineering departments to build crud apps with dynamic content...

> Unity to me seems like a team with a fantastic marketing department to contrast with a much weaker engineering department.

No one who has used Unity for any extended period of time would ever say this, and really this is where most people who use Unity would stop reading.

It hard to directly refute because Unity marketing was almost non-existent for years of their early success. It wasn't until they shifted to cloud based value-adds their marketing even had any teeth, and that was almost a decade after 2.0, which was where Unity really picked up it's stride

-

And that blog post, so much ignorance about the technology you're trying to bash!

You could find the answers to half your complaints by hopping on Stack Exchange or Unity Answers (yes, Stack Exchange, Unity Answers exists because there has an immense amount of knowledge that is Unity specific, and it predates Game Dev SO by years..

And half your complaints just read like someone who's used to a web framework that takes 1GB of ram if you leave it's creator's website running for too long.

Null behavior is due to the link between managed and unmanaged code, the two have separate lifecycles, so that's why it works that way. It's a reflection of the fact that a lot of what you use from Unity is written in unmanaged C++ so that you can actually do useful things with it...

GetComponent should be cached in Awake not because it's slow, but because that's common sense, you don't want to do more than you have to while the game is running. You want to be rendering at least every 16.7ms, why would you waste cycles peppering GetComponent calls everywhere?And as a bonus your complaint about missing editor references in code that's not called often becomes non-existant since your component fetch will fail immediately instead of at access

Also how old is this blog post, it's been half a decade since GetComponent didn't cache internally, and even before that it wasn't the reason for problems unless you were doing something really dumb, it was a best practice to cache, not a requirement for a performant game.

Really, for a title like "Unity is fundamentally broken" this list is almost comical. What's broken is your understanding of what it takes to make a game engine as widely useful as Unity, as confirmed by your first comment:

> why is it so hard to make a good game engine?

If you don't know why, you're in no position to be calling anything "fundamentally broken"

Re: Unity Software Inc S-1

#255

Out of any software tools I use frequently, Unity is the one that brings me the most joy. Any reasonably complex interface is essentially a game whether it's a music composition app, simulator, MMO or even a basic form. The basic abstractions of entities and components sometimes feel like they could apply to any software project. It's seamless to animate something, add physics, style in ways that would seem mind bogg…

> Any reasonably complex interface is essentially a game whether it's a music composition app, simulator, MMO or even a basic form. I've been out of the game development arena for a while, but I can't help but pause here. Are people really writing DAWs and big desktop app interfaces in Unity ? The last time I played with a game engine, I would have said UI was its weakest aspect. Clunky, slow controls, visually unapp…

Yes, I guess. I was installing an app called Rekordbox (its a library manager and a performance app for digital DJ hardware on the Pioneer DJ platform) and, sure enough, spotted a bunch of Unity DLLs being copied in the setup program.

Re: Unity Software Inc S-1

#256
post #19

I use Unity every day at work. This is a mixed bag for me. Unity gives google a run for their money when it comes to abandoning old features / letting them rot. The editor is kind of crashy, launch times get unwieldy fast. Sometimes there's subtle differences between build version and running in the editor, and solving the disparity is a death march. All that said, it's still one of my favorite environments to work i…

Exactly!

I used to do .net for a living and it was like every single interface or library I wanted to use was off-limits because it was claimed by the engine. Want to serialize your objects? All you get is an undocumented, doesn't-even-work .to_json function cause we somehow broke all the other .net serializers. Have fun!

Re: Unity Software Inc S-1

#257

Earlier quoted context omitted.

Again, Unity isn't an IDE.

The Unity editor gives you compiler errors and warnings in its console window. Why shouldn’t it give you these warnings as well? The Unity editor also has lots of features that IDE’s have already, including a profiler, ability to inspect the world hierarchy, inspectors for components on that hierarchy, and ability to pause and restart execution.

How about a code editor? All IDEs have code editors, you know. Unity doesn't. Because, again, it's not an IDE.

Re: Unity Software Inc S-1

#258
post #25
post #19

I use Unity every day at work. This is a mixed bag for me. Unity gives google a run for their money when it comes to abandoning old features / letting them rot. The editor is kind of crashy, launch times get unwieldy fast. Sometimes there's subtle differences between build version and running in the editor, and solving the disparity is a death march. All that said, it's still one of my favorite environments to work i…

I use it a lot for hobby projects, and have used it and Lumberyard in a serious capacity. Whew boy does Unity absolutely put Lumberyard to shame. Unity, for me, is absolutely busted but also extremely approachable and generally good to use.

Lumberyard is essentially the CryEngine Engine that Amazon bought. It is more complex but it also shipped excellent games on it. I think game engines should always be built around games shipped. Unreal is quite nice in that aspect. Yes the engine becomes more tuned to the game types that you ship, but many of the pain points are smoothed.

I'd love a game engine platform that would come along and promise API/library stability for 5 years. Any game you built on that engine will be able to run 5 years later if you need to update it.

There isn't a ton that changes with game development surface level, the subsystems change quite a bit, that is fine. That is what the engine is for, to simplify the subsystems and create a stable platform on top to speed up development, not have a bunch of leaky abstractions and new unstable platforms on top of that.

I wish that game engines had more standards that were industry respected and you could bounce between engines more easily as well, like other frameworks do with standards.

We are in a "move fast and break things" age and I can't wait until it gets back to "let's move fast but not break things if we can help it unless it makes massive improvements that make it worth the cost/time and most importantly, maintenance tax on updates that aren't needed or break things for no reason. And when we do break things we will do it in a way that is parallel and if possible just swaps out the subsystem not requiring massive surface level changes that just get you back to baseline functionality".

Re: Unity Software Inc S-1

#259

Unity has completely destroyed my faith in their ability to deliver on anything other than marketing. - It took them YEARS to deliver their new input system. Think about that. A company with Unity's resources took YEARS to develop a system that takes inputs from keyboards, mice, and gamepads and routes them to C# callbacks. YEARS. - They completely abandoned their networking system (UNET) without a replacement system…

I really like making games and apps in Unity, and I don't like Unreal's workflow, but this is the hard truth. Unity's strategy is adding as many features as possible to cover as many cases, a tool to make anything, an asset market to find anything, but you know one more half-baked feature will replace another broken feature soon, or you'll need to buy an asset to make it right. Being messy is their strategy, unless they make a new engine with a unified plan and solid features, Unity won't be the best engine.

Re: Unity Software Inc S-1

#260
post #93

Ehh. I really hope Unity raises tons of money , and inspires some decent competition here. Unity is the worst game engine, aside from all others. UE4 is a convoluted mess. I've tired several times , but even getting it setup with the C++ build chain is a pain. Godot ( which epic funded recently ) isn't done yet. I'm going to stick with Unity until someone else can build an easy to use game engine. Ultimately Unity do…

I'm a highly experienced programmer and I can't get started with Unity. Maybe I'm just an old curmudgeon now. But I just want to see some code and drive from code. The workflow of starting from objects and scenes in a GUI and attaching scripts is totally foreign to me. And then most of the tutorials seem to be videos, which I have no patience for, with text I can skip around and tailor my learning to my personal need…

You can instantiate, position and script objects in code too. It is helpful to have an asset pipeline to import your models, textures, etc. but then, once you have your prefabs, you can reference them from code and instantiate as you see fit. There is a performance penalty to instantiate at runtime so best practice is to initialize your objects from code at load time, or the start of a scene. Object pooling is also very helpful.
Post reply on HN