xex70
I was not accusing you of overengineering, I’m not accusing you of working for FAANG (I don’t even know you, come on), I was making the point that people default to where they’re comfortable, and if you’re going to put yourself in a a position of authority and claim that Unity is bad (and Unreal is worse), you need to be comfortable in the environment and practices in which they are intended to be used. There is a minimum level of comprehension required to criticize an implement of another profession, otherwise someone proficient in COBOL would pick up a torque wrench and ask “why is this necessary? This design is just bad.”
You used subjective indictment terms (“bad,” “worse”) to describe positions that you don’t have experience to develop. That’s fine. Elevate your argument and understand the why behind some of them. Example: we don’t give two shits about deprecations because they’re a distraction from a ship date and we ship vendored artifacts including the engine.
You selectively quoted more than one thing I said to twist a personal attack from them, by the way, but that’s your prerogative. It’s also odd to do when you’re crying ad hominem foul.
Edit: I took the time to read your essay, respond to it candidly, and we are ending this conversation with you lecturing me on tone, politeness, and productivity. Even in the face of great hems and haws I doubly endeavored to remain polite. One would be forgiven for thinking you are not approachable with criticism.
I was responding to you. The game industry is fundamentally different from other industries, and approaching it with questions like “why not Git?” or “why no type safety?” or “what about GPL?” marks you as not really understanding the industry, its product, or its motivations. I realize there’s a huge clutch of cash and free time that lets the average Web dev schedule meetings about and argue type safety and microservices and so on among their peers, but game development is an industry driven by a whip and is closer to Hollywood than San Jose. We look to indie to innovate and put in our 80 wishing we had the time.
I took the time to read what you’ve written. Just about every single point you made in that essay can be distilled to “Web developer with strong convictions about Web software engineering and expecting game development to look like familiar territory,” with only a couple exceptions. I read that essay and I walk away with “that person is going to have a hard time if they pursue professional game development,” not the intended conclusion you had about Unity’s lackings. That’s reflected in nearly every concern about Unity expressed in this thread because this is a Web forum.
Unity has deficiencies we are all aware of in the industry, but none of them are in your essay. Several of your points are misunderstandings, several are just wrong, and all of them paint a picture which also gives a lot of AAA shops pause about hiring Web folks (and that I’ve had to deal with): there’s a pretty strong strain among the Web industry of “if you don’t do software like FAANG does, you’re doing it wrong and your stuff is terrible.” Meanwhile, the stuff you call bad/terrible/worse is generating billions in revenue and employing thousands. Seriously, Unreal is worse than Unity? Nearly stopped reading there.
I’m reminded of a friend who does control development for factories and had someone come in straight from a Google internship who started trying to reimplement SCADA from first principles using Kubernetes. The Web is one way to do software engineering. There are others, and one of those others is reflected in the design of Unity.
Perforce and systems like it are the competition here (pay attention to how many games announce changelists in their logs), and AAA studios are quite comfortable with what they have.
If your problem with Unity is how it does source control it speaks more to your unfamiliarity with industry practice than it does a deficiency in Unity. They added Git ability because enough people complained about it, but as this thread points out, it took gymnastics to implement because it’s simply not how that market operates — web folks operate on a pile of text files and games don’t look anything like that. I’m not just talking about graphics, either. The AAA I’m working on has about 75 KB of code and 46 GB of binaries and a few hundred actively committing, so Git is very comfortably a nonstarter.