Live data from Hacker News

I cut GTA Online loading times (2021)

nee.lv

91–100 of 221 posts

Re: I cut GTA Online loading times (2021)

#91
post #37

Earlier quoted context omitted.

Sadly at Rockstar it's likely that employees are curious, but are under so much pressure for deadlines, and working such long hours, that they don't have time to follow their curiosity.

When problems are this obvious, it's surprising that someone doesn't have a look, even if they're busy. Maybe I'm asking too much/projecting here, but I just don't understand how people put up with fairly obvious semi-breakage as much as they do. I have this at my current job, I seem to be the only one (not really, but seems like it sometimes) interested in finding out why things are slow/broken and investing the tim…

From reading a lot of comments on HN, I think you might be in a semi-privileged position if you have enough time left over (and/or are allowed by management) to find slow/broken code and then are allowed to even commit code with doesn't have a JIRA ticket (created by someone else) attached :)

Dysfunctional... possibly true but isn't that (unfortunately) more or less the norm in IT? Not to say it shouldn't be fixed but at the end of the day you have 'x' time to ship 'y' features in order get paid 'z' dollars so that the company can continue to survive... combined with "management" often under-estimating with respect to time, requirements and (un)foreseen hurdles.

Re: I cut GTA Online loading times (2021)

#92
Seconding the other comments here - I'm a developer and I'd have to agree it's about priorities. Every game I've worked on has had load time targets but those targets were set based on what the loading time of the game was at the time the target was introduced, so the goal would be to not make them regress.

The other thing to note is that with this particular problem, the issue is parsing a json blob on a live environment. I can count on one hand the number of times I connected a development client to a live environment _ever_, it's just not the done thing. Developers likely have local environments that have a much smaller json blob to parse (and that's likely where the load time benchmarks were run, if they exist).

Re: I cut GTA Online loading times (2021)

#93

Earlier quoted context omitted.

You don't think that it's a bigger WTF that sscanf implementation calls strlen when parsing a number (when it iirc even ignores any non-digit characters for the actual number parsing so no reason it couldn't terminate that part w/o the extra call)?

sscanf is essentially being used as a tokenizer for the JSON grammar, which means something like this: {"foo": "bar"} Is potentially turning into 5 different tokens: { "foo" : "bar" } After each token the "state" of sscanf is being discarded and each invocation of sscanf is independent. The API simply isn't descriptive enough to know that a string is immutable and hasn't been changed and there are certainly many vali…

Even with the cache, calculating strlen() just once was already a waste.

The JSON to be parsed was read in from somewhere, either a file or received over the network. When that happened the machine knew how long it was.

One of the few places where C++ is sometimes better about things than Rust is providing information gathered which is ancillary to the direct purpose, in case you wanted it, so that you needn't then ask for the same information a moment later. In Rust this information may have a difficult to ascertain lifespan, and so it's dangerous, but in C++ they figure the out-of-date nature of the report is your problem. Sometimes to your detriment of course, but often you could really have used that and must now go measure it yourself because the thing you just called knew it but didn't tell you.

Here though it wouldn't matter, Rust's array types, and both the owned mutable String and reference &str types know how long they are, so you are never flailing about counting even once. You also would just serde_json this data in Rust because serde is practically part of the Rust Standard Library, whereas there's nothing quite so ubiquitous in C or C++.

Re: I cut GTA Online loading times (2021)

#94

There’s an implicit story here which I find quite sad that not a single developer at Rockstar in the prior eight years had the autonomy or bandwidth to discover and fix this themselves.

I work in a company where that can happen. In fact we had just a case today. For the last 20 years, our ever growing C# monster application used across the world to make millions, literally, had random crashes. Comes with volume spike, usage spike, we never quite knew: everything would display a red cross, the gdi handlers would reach 10k and bam.

For 19 year we just looked at it in defeat. For the last year, bit on and off. Starting last monday it crashed every morning for a user sitting next to me, a big nasty german boss (Im French).

I sat down, read his logs, saw it failed on ImageList creation again for some fucking reason, looked how many of these things we used and what they did. 2 hours later this 20 yo mystery bug dozens of devs had noped out of was fixed. We fully get it now. Wasnt even a matter of priority, it took 2 hours of looking at it. A lunch break basically.

I dont have a sort of morale of the story or whatnot, but well, Rockstar would have figured it out eventually. Just need a nasty fucker next to you whining abt it everyday.

Re: I cut GTA Online loading times (2021)

#95

Earlier quoted context omitted.

The problem with this way of thinking is that it basically absolves everyone of blame. Bad stuff happens and nobody's at fault. You point to the managers, because the engineers were so busy, but the managers are going to claim they were busy too. Again, from the manager's perspective - the managers aren't even in a position to understand the problem or the reasons for it.

Having been on both sides of this (as a developer and later a senior manager with product/feature responsibility), I'd say it can be both. A really good manager/executive has enough knowledge and experience to ask the right questions and parse the answers even when they are technical. Sadly, many managers aren't that good (at least yet). On the other side, a really good developer has the knowledge and experience to f…

This thinking implies nothing is worth doing unless it has a clearly articulable direct business value whereas a lot of technical debt simply doesn't. When the only people affected by a problem are people who have already spent their money or people who have no autonomy it's unlikely the decision makers will decide to investigate and fix it. If you're lucky you can convince decision makers that there is an impact to hiring or efficiency but in my experience these arguments are extremely challenging to make in the face of other stuff that decision makers feel directly impact business, and for good reason. I'd say this is a big reason autonomy is crucial when it comes to cultivating a curious team because without autonomy you are limited to things that can achieve consensus in an environment where people inherently have different interests to attend to.

I feel like the "20% time" paradigm where one day out of the week is left up to the developer to schedule (within reason) is the right way to balance the conflicts of interest and still leave room for people to be curious.

Re: I cut GTA Online loading times (2021)

#96

Earlier quoted context omitted.

I’m starting to slowly realize how terrible it is working in environments where people simply aren’t curious. It’s so hard for me as an individual contributor to decouple this way of thinking. Curiosity is how we find better ways of doing things or finding out hidden flows that can be better. Incurious people are a contagion, but I want to believe you can make people curious. It can’t be innate. Every company talks a…

I'd be careful about painting the developers at Rockstar as "not curious," that feels like an incredibly unfair conclusion to draw from this. Those developers have other pressures, and deadlines to hit. There are a million reasons why this bug wasn't solved by the team there. When a user complains about a bug in software you wrote, is it because you just "weren't curious" enough? Or is the situation more complicated?…

it was a feature - they served ads during loading screens

Re: I cut GTA Online loading times (2021)

#97
post #78

Earlier quoted context omitted.

I wasn’t trying to blame engineers that wasn’t my intention, but someone needs to own establishing the environment that actively encourages or doesn’t encourage curiosity. Talented people are found everywhere, but hopefully someone with authority over them doesn’t slowly poison the drive out of them.

Why should developers necessarily be trying to cut loading times? Perhaps GTA is phenomenally successful because they have good BAs and POs who are able to identify and convince engineers to work on what matters to the bottom line.

You've clearly never played it nor read any of the community discussions about the game. The #1 complaint is (or was) loading times. It's why I've personally stopped playing years ago.

Re: I cut GTA Online loading times (2021)

#98

Earlier quoted context omitted.

I'd be careful about painting the developers at Rockstar as "not curious," that feels like an incredibly unfair conclusion to draw from this. Those developers have other pressures, and deadlines to hit. There are a million reasons why this bug wasn't solved by the team there. When a user complains about a bug in software you wrote, is it because you just "weren't curious" enough? Or is the situation more complicated?…

I wasn’t trying to blame engineers that wasn’t my intention, but someone needs to own establishing the environment that actively encourages or doesn’t encourage curiosity. Talented people are found everywhere, but hopefully someone with authority over them doesn’t slowly poison the drive out of them.

You are assuming curiosity was the problem instead of a lot of other possible factors like bandwidth.

Re: I cut GTA Online loading times (2021)

#100
post #78

Earlier quoted context omitted.

I wasn’t trying to blame engineers that wasn’t my intention, but someone needs to own establishing the environment that actively encourages or doesn’t encourage curiosity. Talented people are found everywhere, but hopefully someone with authority over them doesn’t slowly poison the drive out of them.

Why should developers necessarily be trying to cut loading times? Perhaps GTA is phenomenally successful because they have good BAs and POs who are able to identify and convince engineers to work on what matters to the bottom line.

I mean that's fair, but I'm talking about wanting to be curious and encouraging environments where curious individuals can be lauded instead of dismissed. Not everyone on a team HAS to be curious but for those that aren't they shouldn't be smacked upside the head with corporate bureaucracy.
Post reply on HN