[HN Gopher] I cut GTA Online loading times (2021) ___________________________________________________________________ I cut GTA Online loading times (2021) Author : ddtaylor Score : 372 points Date : 2022-06-09 14:22 UTC (8 hours ago) (HTM) web link (nee.lv) (TXT) w3m dump (nee.lv) | thewebcount wrote: | I've noticed similar stupid problems playing Portal 2 with a | friend. Downloading the maps takes a really long time, but I've | got a decent internet connection and so does my friend. It | appears that when his machine is loading, my machine has no | network activity whatsoever, and then once he's loaded the maps, | then my machine will start loading them and his machine has no | network activity. | | The game has a number of other weird issues like this. After | you've played a map, it asks you to rate a thumbs up or thumbs | down, but the hit areas don't match where the button is drawn, | for example. Sometimes the mouse doesn't cause my character to | turn. I can quit and restart the game and it's the same. But if I | open a different game, quit it and then restart Portal, it works | fine. WTF? | | I realize this is an old game so they aren't updating it (I have | to boot into a 32-bit OS to even play it!) but it's a little | depressing that such egregious issues went unnoticed for so long | that we're now probably past the point of fixing them. | victorclf wrote: | I wonder if this code with poor time complexity was written by | the same people who are always complaining about leetcode being | useless. | secant wrote: | I feel like these problems are all around and often present in | games. There's one that particularly infuriates me in | Hearthstone, a Blizzard developed TCG, where when a game ends it | causes the processor to furiously spin up and causes all kinds of | anomalous behaviour like webcam cutting out, mic distortion and | other generally laggy behaviour. | | I'm aware that there's probably a lot going on at the game's end | but I'm still utterly convinced there is a coding bug causing | this amount of processor spiking but I lack the skills of | debugging Unity, which is the game's engine, to determine what | actually is going on. I guess that's the issue, the ability of | conducting the research the kind in the OP article is | extraordinarily rare even among game devs so these problems | persist (Hearthstone is just turning 8 years old now) without | anyone with the deep knowledge to rectify it. | flohofwoe wrote: | Clickbait title ;) | | The problem wasn't strlen(), that just showed up at the bottom of | the call stack when profiling. | | IIRC the actual problem was an exceptionally dumb JSON parser | combined with parsing a pretty big JSON file (which probably also | grew much bigger than the original developer working on that | feature anticipated). | | Edit: the title has been edited in the meantime, originally it | was something about strlen() being responsible for the slow | loading time. | gbraad wrote: | The title is still not right as the poster is not the 'I' as in | the title. | ConceptJunkie wrote: | It's funny though. Several years ago a coworker did some | profiling on one of our server software components and found | that it was spending up to 10% of the CPU time in strlen()... | for very similar reasons. | sfteus wrote: | Had something similar happen with low-level components in a | PHP application I inherited repeatedly calling trim() and/or | str_pad() on values that had already been processed. | Refactoring those out led to a 10-15% performance boost in | our test suites. | Sesse__ wrote: | I've seen PHP applications use 30% of their CPU in the | "realpath cache", which at the time was a super-slow (O(n2) | in this case) home-grown hash table for caching the result of | realpath(), which was called all the time because someone | decided include_once() needed to run its paths through | realpath() in case someone included a file multiple time | through symlinks. And I guess they couldn't trust inode | numbers or Windows didn't have them or something... | | I hope it's gone. I really do hope it's gone :-) | Joker_vD wrote: | The JSON parser was not "exceptionally dumb": it just used | sscanf(s, "%d", ...) for parsing numbers. But most | implementations of C's standard library (yes, including BSD and | Linux's) implement sscanf() by converting the source string | into a dummy FILE* object (which involves calling strlen() to | set the stream's size) and calling fscanf() on it. Apparently | most people who use sscanf() are unaware of this "lovely" | implementation quirk and I can't really blame them. | AlexanderTheGr8 wrote: | Is C's std impl slow because of calling strlen() or due to | converting into a dummy FILE* object or due to calling | fscanf? | unwind wrote: | All of the above, I guess. | | It wants to reuse code in fscanf(), but for that it needs a | FILE * interface. But to create that, it needs to implement | EOF-handling, and to do that it needs to provide a size, so | it has to call strlen(). | | I had no idea. :| | ddtaylor wrote: | strlen() was a major component of the slowdown. Yes, the JSON | file was large and strlen() was indirectly caused by sscanf() | being used. But it's not accurate to say it's a clickbait title | when a bulk of the slowdown was caused by constantly | recalculating the length of the C string. The article shows in | detail how he created a monkey-patched strlen() that cached the | length to avoid recalculating it over and over which was | attributed to the speedup. | | The speedup gains were not caused by reducing the size of the | JSON file or doing any exceptionally better JSON parsing. The | speedups were a direct result of simply not calling strlen() | over and over in an O(N^2) fashion. | flohofwoe wrote: | All true, but replacing the strlen() with a caching version | is just fixing the symptoms (of calling strlen too often... | but the only realistic solution without the ability to | recompile the game - so kudos to the author to come up with | this hack). | | I bet the "official" patch by Rockstar simply dropped in a | less embarassing JSON parser library :) | ddtaylor wrote: | This article was written before Rockstar released a patch | and the 70% speedup is from his strlen() caching. | flohofwoe wrote: | Yes I'm aware, that article basically triggered the | official patch. Would be interesting to know if the | Rockstar patch provided a further speedup though. | aardvarkr wrote: | The author provided an update at the bottom. His hack cut | the tone from 6m to 1m 30s. The official rockstar patch | took it down to 1m 53s. It's MUCH better but still off | the mark by a bit. | kuroguro wrote: | It was 1:50 vs 1:53 - probably just noise. | whizzter wrote: | 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)? | ddtaylor wrote: | 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 valid use cases where one might be re-using the same | char[] buffer with different contents. | whizzter wrote: | How much "state" would sscanf really need? From memory | (and with an extra peek at the man page) each directive | is in sequence of the "format" specifier is sequential | (it's not nearly as flexible as a Regexp) so you really | only need: | | A: a processing state (int/enum). B: a current fmt str | pointer. C: va_list struct to keep track of destinations. | D: a source string pointer. | | Now if what I saw mentioned in another comment is true | that there is some insane conversion to a FILE* stream to | do this, then yes I can see why it happens but it's not | really NEEDED to implement the function as specified. | tialaramex wrote: | 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++. | dusted wrote: | First of all, I find it an impressive skill to be able to do this | on a binary blob. | | Secondly (optimistic version), it really shows that they | (management) didn't care, that nobody ever made a ticket to fix | loading times, since this would be trivial do find with a normal | profiler on a debug build. | | Secondly (pessimistic version), nobody at rockstar had enough | skill and/or professional pride/sense of ownership to find this | out themselves. | malka wrote: | Did rockstar ever release a patch for this ? | MontagFTB wrote: | A user released one first, then rockstar did subsequently: | https://www.pcgamer.com/rockstar-thanks-gta-online-player-wh... | legobmw99 wrote: | Yes - | https://www.gamesindustry.biz/articles/2021-03-16-rockstar-p... | NickRandom wrote: | I'm not sure if you made it to the end of TFA, but yes. And the | author got a 10k bug bounty | Hamuko wrote: | They took his fix, applied it to the game in an update and paid | him a bug bounty of $10,000. | | "Just got awarded $10k through their H1 in-game bounty as an | exception" | | https://support.rockstargames.com/articles/360061161574/GTAV... | yeahSo wrote: | Anecdotally; I still wait 5-6 minutes for online to load, and | 3-4 for single player. | Hamuko wrote: | Digital Foundry measured a 20.2-second boot load time for | GTA V single player on the PS5 and 28.9-second boot load | time on a PC. Not even the PS4 takes 3-4 minutes. | | https://www.youtube.com/watch?v=m5QHInJShQw | yeahSo wrote: | aliswe wrote: | This is why you need a language (on a framework) with high | introspection, with smart insights. Excuse my opinionatedism, but | this is what .NET Core gives you. It even streams JSON | serialization/deserialization without much memory requirements, | iirc. | outworlder wrote: | Nah. | | We just need to stop this idea that JSON(or similar formats) is | an acceptable data storage mechanism. It's fine when | interacting with low bandwidth APIs across different systems, | where the need for debugging is greater than performance. | | But on a shipped game? Just bake this JSON into a better, | binary serialization format. No need to parse data that seldom | changes over and over again. | | It doesn't matter if you can stream json, if you don't need to | call strlen, what have you. Just don't parse unnecessary stuff. | tialaramex wrote: | This is GTA Online, so while it's a "shipped game" that JSON | changes, Rockstar decides to offer the "Pfister Astron | Custom" for $2.5M and they just change the JSON. I don't know | whether it's fetched from their servers on startup, or | whether it's on disk and just updated periodically, but | either way choosing JSON is not as crazy as you seem to | think. | mypalmike wrote: | I'd guess that json is the least of their problems. Even with | the fix, load time is still an unreasonable 2 minutes. This | suggests they aren't doing any of the load performance things | game devs have figured out over the decades, like streaming | loaders and stacked memory pools. | hyperman1 wrote: | He did basic troubleshooting with task manager, on an | obfuscated executable, with a disassembler and a memory dump, | without knowing anything about the code base, and fixed it with | in-memory patching. So while I agree introspection can be a | godsend, this specific case is not a tooling problem. | | Something this blatant is what happens if nobody takes a look. | I can imagine they got tons of complaints, but 'it is slow' is | nebulous enough to consider it basically unsolvable/normal. | Maybe it never got a real bug report, maybe the report never | made it past the service desk, maybe management thought it | would cause a wild goose chase without resolving anything. But | no developer looked into this, as just hitting a breakpoint in | the 4 minute pause would insta-fix this. | 0xFACEFEED wrote: | > This is why you need a language (on a framework) with high | introspection, with smart insights. | | That would be nice if it were true. | | What happens in reality is you end up paying the performance | cost in other areas specifically due to the framework. | Frameworks tend to cater to very broad use cases and will | generally be less performant than custom code written for one | specific use case. Frameworks also tend to be extremely | interdependent meaning that to rip out one part (for perf) you | need to rip out another huge part. | | That is why, to this day, if one's business NEEDS something to | be performant (no do-overs! no second chances!) then industry | veterans will opt for custom systems. Yes they'll have more | edge case bugs. Yes they won't be performant in areas you don't | care about. But you will still sell 165 million copies of your | game because it performs well on a bunch of different platforms | with varying specs. | | This particular case is more of an organizational problem. No | one was responsible for load times, it wasn't a priority to | improve, and users weren't complaining enough about it to | matter. | NickRandom wrote: | Previous submission (as linked in tfa) | https://news.ycombinator.com/item?id=26296339 (Feb 2021, 699 | comments, 3883 points) | blibble wrote: | I tried playing GTA online once and actually gave up due to the | loading times (on a top end gaming rig) | | I can't believe I'm alone, I wonder how much this cost rockstar | SketchySeaBeast wrote: | My exact same experience. As to what it cost, in the old world | paradigm I'd say "nothing, we already bought the game", but I | guess these days there's probably a decent argument for a | cohort of people who are too impatient to wait to get into the | game and who pay extravagant sums of real-world money to get | in-game items immediately. | blibble wrote: | yes, GTA online's business model is making you buy in-game | currency and paid DLC | | which is kinda hard if the game takes 30 minutes to load | hermitdev wrote: | There's other costs: how many times per day to R* devs & | testers have to go through the same loading? How many man- | hours wasted? How many compute resources wasted? How many | upgrades were justified by "I need better hardware to get my | job done in a timely manner"? | dieulot wrote: | Same. Asking around why players tolerate it, the anecdotal | conclusion I've got is that what makes these frequent and | extremely slow loads tolerable is playing with friends on audio | chat. | bastardoperator wrote: | Not much, the GTA5 online scene is alive and well. Considering | they've sold this game over the course of three generations | makes me believe they've made a mega flipton of money off this | game. | [deleted] | blablabla987 wrote: | I know so many people that have stopped playing due to the | loading times. Just because a scene is active and alive, | doesn't mean it couldn't be even more active and alive with | such a minor fix that could be implemented within a day. | | I am pretty sure they lost >100.000.000$ by that. Just shows | how shitty the management over there is that they never tried | fixing that problem. | bastardoperator wrote: | By the time you get to the loading screen they've already | profited. The fact that they continue to sell the same game | over and over means individuals have likely purchased the | game multiple times meaning they don't care about loading | times, they just like the game. | | It's easy to say their management is shitty from the | comfort of your computer, but the reality is Rockstar | produces great games, and they're making a ton of money | because there games are good. I find most multiplayer games | have a start up cost, glad they shortened it, but I don't | think it's stopped anyone from playing that really wants to | play. | | https://www.thegamer.com/gta-5-rockstar-2-5-million-per- | day/ https://www.tweaktown.com/news/80912/grand-theft-auto- | made-o... | zerocrates wrote: | The action is, as always, on the margins. Those people | who _kind of_ wanted to play but got frustrated at the | load times, you want them. In some senses you care _more_ | about them, the people you can gain or lose with changes, | than your more committed users who are a little bit | locked in. | | GTA V has sold, and continues to sell, amazingly well. | But Online, where this slowdown was exclusive to, is the | real moneymaking engine. Any little marginal push to keep | people out of Online, from feeling they could just jump | in whenever, was significant. | | The real baffler to me is just thinking about all the | time spent by people internal to Rockstar sitting on that | same screen. | blablabla987 wrote: | My statement is mostly based on the assumption that a | large part of their revenue is based on | microtransactions, for which satisfied customers are key. | Therefore if I stop playing due to the loading times, | they effectively loose money since I certainly won't buy | any in-game money with my real money. But you are of | course right that I have already bought the game. | | Regarding the management: If it takes >5 minutes on top | high-end gaming rigs to load a game and if your loading | times have become a meme in the internet, I think a | somewhat reasonable product manager should ask their | developers to at least invest 5 minutes in figuring out | why it takes so long (that's probably about the time | needed to figure it out given the tools the developers | have) and if it can be decreased in a reasonable amount | of time. I was just amazed by how simple the problem | actually was for an issue that has led me and many others | to stop playing. (And I actually really wanted to play, | but I just didn't want to look 15 minutes at loading | screens for having 5 minutes of actual playtime.) | mrandish wrote: | > they've made a mega flipton of money off this game. | | It can be simultaneously true that they made a lot off the | game && with lower loading times they could have made even | more. In-game microtransaction ARPU scales with playtime. >4 | min per session spent waiting to load instead of playing == | lost rev. | seanp2k2 wrote: | Think about how many human lifetimes worth of extra minutes | were wasted from everyone waiting for this x number of players | X years this has been a problem. Even if you can't implement | bubble sort on a whiteboard in your sleep, 5+ minute load times | should have been setting off alarm bells in many engineers | heads. I'm sure this did actually cost R* real money. Bounce | rates for websites increase 32% for 1s vs 3s load times, | according to Google: https://www.thinkwithgoogle.com/marketing- | strategies/app-and... Obviously we don't have public data on it | but I'm quite sure that some at least some people got | frustrated with waiting and just stopped playing. | p49k wrote: | Your comment reminded me of this: | | https://www.folklore.org/StoryView.py?project=Macintosh&stor. | .. | jawarner wrote: | If you think about it, those lives actually were saved. | People either didn't play the video game, or they spent a | moment in the loading screen in quiet contemplation. | glenneroo wrote: | To play devil's advocate we should balance those out with | the impatient gamers who acted out aggressively (e.g. the | 100th time proceeded to kick a PC, smaller family member, | throwing a mouse across the room, etc) or consumed more | unhealthy snacks/drinks :( | | I personally was often frustrated waiting several minutes, | thankfully I don't have any violent tendencies, snacks on | the other hand... :/ | asdff wrote: | We are in the era where its impossible to be bored. In the | elevator? Phone out on instagram. Loading screen? Same thing. | Instant dopamine the minute you need a drip. The playerbase | clearly doesn't care. To be honest, these loading screen | times are as bad as they've always been for console games | (especially considering it was only a generation ago that | they ran off a disc). | jml7c5 wrote: | From complaints I saw online, users emphatically cared. It | was a common complaint, and some users would report that | the load times would deter them from playing the game. | asdff wrote: | Probably nothing. Loading times in rockstar games on consoles | have always been this bad. GTA4 was just as bad too. | baby wrote: | You're probably wrong. I remember e-commerces trying to | quantify how many millions of dollars they would lose when | clicking would take too much time on their websites. | | EDIT: things like https://www.fastcompany.com/1825005/how- | one-second-could-cos... | | > Amazon's calculated that a page load slowdown of just one | second could cost it $1.6 billion in sales each year. Google | has calculated that by slowing its search results by just | four tenths of a second they could lose 8 million searches | per day | asdff wrote: | That's ecommerce. This is a video game and a unique one at | that, so there are other factors at play. I don't think | many people go "game took forever to load, guess I'll play | for less time then." There could even be a bullwhip effect, | a long load time might make you want to stay playing for a | longer period of time. | zionic wrote: | The same thing happened to me. GTAO earns billions/year, crazy | that "fix the insane loading times" didn't bubble up to their | top-priority. | blobbers wrote: | A heart warming story of a hacker turned game dev! Nice job. | | They offer you a job too? | debdut wrote: | Please add RSS to your blog! | Tarragon wrote: | I assume there is an upcoming: Show HN: Passive karma farming to | 10k | | Two submissions an hour, 24 hours a day... | lostgame wrote: | Wow. I wanted to call you out for just being an asshole, but | _seriously_ - is this account just a bot? And who cares about | karma on HN? | Tarragon wrote: | Both things can be true. | | There's clearly a bot here but ddtaylor has commented on this | thread, so there's also a person in there somewhere. | [deleted] | kingcharles wrote: | I used to be a video game developer. | | I guess it's down to priorities and passing the buck. | | Our priorities were always on profiling the running game to make | sure we got every ounce of juice out of the hardware and the game | ran smoothly on the lowest systems. I can't think of one time we | would have had the spare time to look at loading times. In those | days we were being pushed into 80+ hour weeks just to make the | game work at all, never mind finding time for "luxuries" such as | this. | | And of course, on a big team, a problem like this would always be | someone else's problem. | blobbers wrote: | You are saying a game had a 6 minute load screen and everybody | would throw their hands up and say "but look at the dynamic | lighting once it loads... it'll all be worthwhile!" | | If that's not group think gone bad, I don't know what is. | barrysteve wrote: | The customer has put up with 6 minute load times, but a low | framerate kills sales quickly (unless you're Star Citizen). | kingcharles wrote: | And kills reviews. Most reviewers won't freak about the | load time, but the framerate they will. | outworlder wrote: | Not to mention, unless they have a really clever system to do | hot code reloading, EVERY SINGLE DEVELOPER AND TESTER would | have been plagued by these load times. | | I wonder if the watercooler rooms at Rockstar are | exceptionally furnished as a result. | kingcharles wrote: | Sometimes testers aren't even working with the full data | set. And testers might have some seriously shit-hot | hardware that is max spec too. When I was developing | everyone would go buy the absolute best PCs out there at | the start of every new game to make sure they lasted | through dev. | thatswrong0 wrote: | I cannot fathom how dysfunctional Rockstar must be that this | slipped through the cracks for so long given the fact that GTA | Online is Rockstar's cash cow. | | 6 minutes is insanity and must have turned off so many people | from playing.. this person deserved far more than $10k | swarnie wrote: | Because the user experience isn't important. | | Enough still play it and buy a few micro tractions per month | regardless of the load times Dev time is better spent | reskinning a hat or something. | ssharp wrote: | Certainly there has to be some portion of the potential | audience who would have become microtransaction purchasers | who didn't because they were turned off by the long load | times. | rvba wrote: | You are probably being sarcastic, or cynical about current | corporate business world where nobody cares. | | But user experience is important. With faster lpad timea they | probably could get more players. More players probably means | more money, since there are more chances to convert someone | from a player to a paying customer. | | Perhaps if someone can endure a 6 minute load time they are | more likely to buy something in the game (a fan of the | series?), but we could say that those who like fast load | times also use their wallets fast. But it is pure speculation | - we dont have the data. Also obviously Rockstar doesnt have | this data - they couldnt A/B test if load time converts to | more sales - their game only had bad load times. | s-xyz wrote: | Wow, wow, wow! This was such a nice read. Definitely buying the | guy a beer (there is a button at the bottom). | kevinventullo wrote: | 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. | madrox wrote: | This was discussed a bit in the original post [1] but I believe | this comes down to the problem being sufficiently deep in the | stack that there was an assumption that this wasn't something | that could be improved on. I'm sure the loading code looked | good. | | It took someone who didn't know what that code looked like | being curious about what was actually happening. | | 1: https://news.ycombinator.com/item?id=26296339 | boredemployee wrote: | where I work at, it is completely discouraged to do anything | out of what was asked you to do. so I don't judge the | workers/slaves. It's not allowed to be creative/careful in most | places if it's not harming the bosse's wallets. | ReaLNero wrote: | In order for a worker to bother with this | | 1) It has to be alright to make miscellaneous changes like | this, and | | 2) It has to contribute to getting promoted. | | The second point is IMO why random QoL changes like this are | rare in large corporations. | Thaxll wrote: | #2: Just do your assigned task well, that's it. | switchbak wrote: | I've had this situation fluctuate at my workplace. When | misc changes are supported, and those improvements are | actually valued by management, I've seen the system improve | dramatically. | | I've also seen a single-minded focus on pushing cards | across a board, which seems to typically correlate with | higher levels of a dogmatic SCRUM process. | | Pushing cards is great, but not when it prevents the | various little things that have to happen to cultivate | quality software. Especially not when there's a gatekeeper | prioritizing these things into oblivion. | aidenn0 wrote: | I don't know that #2 is universally true. I am at a point | in my career now where I will be able to comfortably retire | without ever being promoted again (i.,e. CoL raises only). | Judging by the salary ranges I see on offer for jobs for | people with 5+ years of experience, this can't be _that_ | rare. | | When I see a pain point that looks soluble, I take a crack | at it. Sometimes it works, sometimes it doesn't. Sometimes | I get recognized for it, sometimes I don't. One, relatively | minor (to me) thing, ended up being a big business win and | my manager made sure I got a fat bonus for it. Other things | have seemed more like a win for me that nobody but 2 of my | peers ended up caring about. | | #1 is true to the nth power though. I've seen places where | if you do something even one millimeter outside of your | silo, it will come up as a negative in your performance | review. As in, if you write a 5 line perl script that makes | you significantly more productive, _do not_ share it as you | will be asked time and time again why you wasted your time | on something outside of your job description. | | I think something missing for the context of TFA is that | the gaming industry tends to be much more deadline focused | than other industries. In theory you might be free to "make | miscellaneous changes like this" but only if things aren't | already behind schedule, and things are _always_ behind | schedule. | ReaLNero wrote: | > As in, if you write a 5 line perl script that makes you | significantly more productive, do not share it as you | will be asked time and time again why you wasted your | time on something outside of your job description. | | This sounds like something I'd see in a Dilbert comic. Do | you mind sharing what industry you work in? Perhaps you | saw this in old-fashioned industries like banking or | insurance? Have you experienced this in tech? | aidenn0 wrote: | This specific story was a friend working for a large | defense contractor. I've never worked directly for a | defense contractor, but know enough people that have that | I should note that culture varies _greatly_ from site to | site; different sites of very large companies might as | well be different companies (and in many cases _were_ | different companies before being purchased). | | That sort of thing also varies with perceived team | performance. If your team is perceived by upper mid- | management (or higher) as being "good" then individuals | on the team have more freedom. If your team is perceived | as being "not good" then every deviation from standard | practices is clearly the cause of the poor team | performance. | jenscow wrote: | I strongly believe that R&D teams should have some time | reserved to "do what you want" (limited to product improvement, | obviously) | | Perhaps this might not be appropriate in the gaming industry... | and who knows if Rockstar don't already have this. | | However, the GTA loading time is horrendous (and I had a | spectrum sinclair when I was a kid) - surely there must have | been a work item, ticket, bug reports, or whatever, for this. | themerone wrote: | I have a solid 2-3 years worth of work assigned to me in my | issue tracker, with new issues rolling in every day. | | All I can do is prioritize and hope nobody gets too unhappy | that their pet features is never going to happen. | havblue wrote: | You would think that the more time people spend playing the | game, the more money the game makes. I would think online | loading metrics would be a similar problem for whomever is | responsible for input latency. | azemetre wrote: | 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 about wanting to have driven curious | employees to solve complex issues or challenges but you just | get stomped with a boot to your face if you do anything outside | your lane or simply ask why. | | It's also worse because I'm starting to realize how lucky I was | to be raised as a curious individual from my parents who never | went to college but at least were curious themselves about | different things (pottery, soldering, gardening). | | The quote "Curiosity is insubordination in its purest form" | suddenly has a different context when working for a company. | rexpop wrote: | I'd never heard that Nabakov quote, but it's terrifically | cynical and, I hope, false but, in my experience, not | entirely untrue. | | Designers' unnecessary desire to delight users staves off the | more Kafkaesque user experiences, and we all live in the gap | of cops' unnecessary (occasional) sympathy for (some) nominal | outlaws (we're all nominal outlaws).[0] | | When you mentioned curiosity I thought of a firm where | colleagues scoffed at me as I rummaged through conference | room drawers, saying, "you're not going to find anything | interesting in there." I'm curious about cupboards as well as | log traces -- an almost ubiquitously "eyes-glaze-over" boring | artifact of modernity that, alongside popularly mind-numbing | "code", I am equipped to find interesting. | | Is it any wonder, then, in this workplace where such | innocent, cheap, curiosity were scoffed at, I was not too | long after threatened with the extraordinarily archaic (in | our at-will state, at least) legal notion of | "insubordination"? | | It's a shame, because insofar as "all ambiguity is resolved | by actions of practitioners at the sharp end of the | system,"[1] the liberated curiosity of individual | contributors is often the only "crack in everything" that's | "how the light gets in."[2] | | 0. "With two lines of a man's handwriting, an accusation | could be made against the most innocent." (Francoise Bertaut | de Motteville) | | 1. https://how.complexsystems.fail/ | | 2. "Anthem" - Leonard Cohen | ramesh31 wrote: | >Every company talks about wanting to have driven curious | employees to solve complex issues or challenges but you just | get stomped with a boot to your face if you do anything | outside your lane or simply ask why. | | That's because "curiosity" translates to "more work" at | #BigCo. And people work at #BigCo so that they can | comfortably do as little work as necessary to maintain their | lifestyles. This is a hard rule for any organization. So if | you want what you're describing, it will only be found at | small startups where everyone has skin in the game. | TheAceOfHearts wrote: | Don't blame the people, blame the environment. | | People might start off curious but eventually they keep | running into political roadblocks and other nonsense, which | slowly beats the interest out of them. | | If those are the kinds of people that continue surviving then | those are the kinds of people which your environment | cultivates. | azemetre wrote: | That's totally fair, I honestly meant to blame the | environment and not people. It just sucks to see the | pattern of curiosity get stamped out of people due to | environmental changes that aren't obvious. | [deleted] | miahi wrote: | Discussion from today: "Do you know if feature X works? A | customer is asking about it" "No, it was disabled because | of a bug a while back" "Hmm, found the ticket, it's from 4 | years ago!" "Yes, basically it's a bug from a new version | of a 3rd party software that made it unusable. At that | point it was basically decided that we will not try to find | a workaround, we just tell the customer that it's a 3rd | party issue." | | The funny thing is, all the people who made that decision | left the company/project and now we have the option to | change it. Can't wait to see what happens next, if the new | leadership changes that or not (my money is on "not"). | | The other funny thing is, I can think of at least two | workarounds that only need a day of work and a couple for | testing it. | [deleted] | mrandish wrote: | > I want to believe you can make people curious | | In my experience it's the opposite. Most people are born | innately curious. It takes intense systemic conditioning to | suppress their natural curiosity. For many of us that | conditioning begins in the traditional education system and | is completed in the workplace. | jrlowe wrote: | >It takes intense systemic conditioning to suppress their | natural curiosity. | | Yep, the public school system in America excels at | squelching curiosity and any desire to learn. | sassy_quat wrote: | Just to be clear, you are saying, matter of factly, that | the whole point of the American education system, is to | suppress free thought. | | You better tell Congress, the last thing they want is for | America to fall into totalitarianism. | NateEag wrote: | John Taylor Gatto was an award-winning public | schoolteacher who more-or-less agreed with this | sentiment. | | https://en.wikipedia.org/wiki/John_Taylor_Gatto | sassy_quat wrote: | How are you incapable of understand sarcasm? In fact | you're arguing from Appeal to Authority now. I just, I | don't understand. The weird thing is that your argument | is extremely convincing at first glance even though the | entirety of your argument is in a link to wikipedia? | wizzwizz4 wrote: | Sharing knowledge and understanding doesn't have to be an | argument. | jgust wrote: | I found this on the ground, did you drop it? </s> | heurisko wrote: | It's not a particularly American phenomenon. | | I can remember reading "Deschooling Society" by Ivan | Illich whilst in the UK's comprehensive school system. | | On retrospect, I don't think I realised the importance of | schools facilitating socialisation, rather than just | learning. | samstave wrote: | My brother is the polar opposite of me when it comes to | curiosity. | | I ALWAYS ask questions like "How did this come to be, How | much did this cost, who designed this and why" etc. | | My brother gets annoyed that A) I ask and question | everything, and B) Laments he doesnt know as much as me. | | However, this is spurred by my ADHD... and I at times wish to | be able to have a more precise control of my focus. | asdff wrote: | Curiosity has to come from the top and fall all the way down. | As others and you have noted in other comments, its the | environment for the workers that sets up whether or not they | will even be able to pursue curious things, and that's on the | managers to create that environent. However, the managers | themselves have bossess too, so that has to trickle up, to | their bosses bosses all the way up the chain. | | In short, every job needs to be able to have autonomy to | enact on the ground solutions for what their immediate team | needs. You shouldn't be penalized for going off the | reservation and coming back with a creative solution. The | problem is corporate structure for the past few decades has | been about rooting out this autonomy and anything opaque | about job responsibilities. There is a lot that's been done | that would need undoing to change those environments, and imo | you are better off finding another workplace than bringing | about the monumental change required. A mature corporation is | like a boulder tumbling down a mountainside; you can hardly | change its course much less stop it short of where its | heading. | khalladay wrote: | 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? | | Lots of incredibly talented people worked on GTA Online, it's | worth trying to think through why a team of smart developers | might not have prioritized this, rather than assuming | something negative about them. | asveikau wrote: | I agree with the sentiment. However, it is a tad surprising | when you consider the productivity hit, even just | internally speaking, that ~5min of cpu time in strlen() on | every start of the app incurs. | | How much time did perfectly qualified engineers, who could | have attached a profiler at any moment, spend sitting at a | loading screen spending most of its time in unnecessary | strlen() calls? I understand we see this through 20/20 | hindsight, serendipity can work against you, etc., but | that's a crazy irony. | r00fus wrote: | A toxic culture resistant to change can obtain these | results no matter how brilliant/skilled the people. | asveikau wrote: | It's true, but also, you can get this result with a | competent team and good culture, curious people, etc. You | could just have bad luck and nobody happened to check it. | delusional wrote: | You might say that assuming this was due to inherent | incuriousity amongst the developers is quite incurious. | 867-5309 wrote: | it was a feature - they served ads during loading screens | azemetre wrote: | 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. | Griffinsauce wrote: | You are assuming curiosity was the problem instead of a | lot of other possible factors like bandwidth. | azemetre wrote: | I wasn't blaming this problem solely existing due to | being incurious but more of lamenting how corporate | environments don't encourage people to be curious. | blowski wrote: | 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. | dingleberry420 wrote: | 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. | blowski wrote: | I play GTA, am annoyed by those loading screens, and have | found those forums while looking for solutions. | | Companies are successful not because they delight every | customer consistently, but because they do just enough to | make the customer spend money with them. | | After all, I will still buy the next version. | [deleted] | azemetre wrote: | 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. | nwallin wrote: | Loading times were the #1 complaint from users about the | game. I personally wouldn't play a game where 5 minute | loading times were the norm, 10+ minute times are common, | and 15+ minute times are not unheard of. | | It's the #1 complaint. The thing that makes this | egregious isn't so much that they didn't fix the #1 | complain, the thing that makes it egregious is that it's | a simple enough flaw that a mediocre developer could have | just run WPR/WPA against it and see that 90% of those 5+ | minutes was spent in strlen. Maybe it's not their area, | maybe they don't know how to fix it, but they will | recognize that it's a problem with a likely easy fix. | | So even if we completely ignore the fact that it's the #1 | complaint, it's still egregious that it's been allowed to | go on for this long. | s0l1dsnak3123 wrote: | Screw this. Developers should advocate for their craft | and for quality, and business metrics should hold an | _adversarial_ position to balance things out. We | definitely should not be accepting the narrative that | developers just do what they are told and don 't push | back on what _we_ know is good for product - we are in a | unique position of power, we should recognise this and | use it for the betterment of the industry as a whole. The | alternative is we let corporate greed slide our standards | of quality into the gutter thereby making the job at hand | miserable. | blowski wrote: | Sounds like an extremely false dichotomy. There is also | the solution that you set up your own company, or | convince your manager your time is best spent on this. | | I've worked around too many startups ruled by developers. | They're being run into the ground because those | developers think technical NFRs as defined by them are | the be all and end all. They're not. Those same | developers will happily spend months fiddling with the | system without making any actual improvements and call it | "paying down technical debt". | | Give me a PM (or good engineer) that understands the | bigger picture every time. | s0l1dsnak3123 wrote: | > There is also the solution that you set up your own | company, or convince your manager your time is best spent | on this. | | This is the definition of a flippant comment. Why should | society require we become the lord of our own domain or a | political chameleon just so that we can advocate for | decent standards? Should people who live on flood plains | "just move" when the tide comes in? Ridiculous. | | Understanding the bigger picture _includes_ understanding | the developer 's point of view. | | > I've worked around too many startups ruled by | developers. They're being run into the ground because | those developers think technical NFRs as defined by them | are the be all and end all. They're not. Those same | developers will happily spend months fiddling with the | system without making any actual improvements and call it | "paying down technical debt". | | Sounds like those super-clever managers didn't understand | what the hell was going on to me. Perhaps they should've | held their nose and tried to learn about their product so | they can understand and communicate that bigger picture | they speak of instead of abdicating their adversarial | role and leaving dev teams rudderless. | blowski wrote: | What makes you think they didn't understand the | developers' point of view? Maybe they understood it, but | didn't agree with it. | s0l1dsnak3123 wrote: | > Give me a PM (or good engineer) that understands the | bigger picture every time. | | I was referring to this sentence: you're now telling us | that the ideal good engineer understands the developer's | point of view but doesn't agree with it. It sounds like | you just want to be surrounded by yes men to me. The | perfect recipe for a failed startup. | pdimitar wrote: | Even if your parent comment presented false dichotomy, | you responding with the other extreme isn't convincing. | | As a senior programmer I respect business priorities and | I don't go fixing technical debt for months. | | That being said, we the people suck at moderation. See, | the problem I faced was exactly the opposite of what you | encountered: I've been too accommodating and allowed | myself to be micro-managed to the point of a manager | telling me _how_ should I do my job; that 's when it | finally clicked with me on what a toxic workplace have I | landed back then. | | So neither of both extremes is good. I agree business | priorities have to be respected; absolutely. At the same | time we shouldn't allow the businessmen to tell us we | can't ever fix technical debt. | s0l1dsnak3123 wrote: | Exactly. Managers are there to facilitate people and | communication, business leaders are there to facilitate | capital and strategic vision, engineers actually make the | thing and master the detail in the process. Good | businesses learn to listen: not just to their customers, | but also to their domain experts. | heretogetout wrote: | This is why I try to hold developers accountable for | actions their software performs or allows, like auto- | banning accounts or not supporting billing limits. | tshaddox wrote: | > Developers should advocate for their craft and for | quality, and business metrics should hold an adversarial | position to balance things out. | | What makes you think this _isn 't_ the case? Business | metrics holding an adversarial position over other | interests obviously doesn't preclude business metrics | _defeating_ other interests. | pdimitar wrote: | In my experience, business interests always override | everything else. Often times to the detriment of the | business, and often as soon as mere 3 to 6 months in the | future. | sreekotay wrote: | Very much agree with this. | | That said given the quality of what they have put out, | I'd surmise the issue here is morelikely they don't feel | the same pain on load times? | | Bandwidth too good, rigs too powerful, dev envs | overpowered, etc. to enable developer velocity can often | also mask real world problems. | | Hell, even hot reload can mean you don't see load as | often and are able to easily rationalize as "not that big | a deal" - I wouldn't necessarily take it as a sign they | are not deeply invested in their craft. | foobarian wrote: | I don't know, this seems like it was a pure CPU problem | on good hardware. But anyway a developer who has 10 hour | days and backlog stretching beyond the horizon will not | have idle time to go try things out. It needs to be | someone's explicit job to go hunt down things like this. | | And given it was data-size dependent, I wouldn't be | surprised this was not an issue at the start while | someone who's job it was to look for this kind of issue | was looking. And the issue appeared after they got | retasked to something else. | | In fact maybe this is the only kind of issue that you end | up with after all is said and done. Just like in WW2 they | reinforced the parts of the fuselage on returning fighter | craft without bullet holes, because if a bullet hit | there, the craft would not return. | s0l1dsnak3123 wrote: | I very much agree with you as well actually. | | One of the things that I've instituted at my work is our | methodology for acquiring test phones for our product | (WhatsApp for hospitals, basically). We go to a | supermarket and buy the most eye-catching box of the | budget phones available in the phone aisle. | | We've squashed _so_ many bugs and performance problems | this way. It 's cheaper, it instils empathy in product | decisions, and our customers love the user experience as | a result. | | Similarly, one of my first big decisions after joining | was to wean ourselves from our AWS addiction using | Kubernetes. This also allowed us to design a dev env that | fits on a modern machine comfortably, but can scale to | entire Hospital Trusts in production. Once again: | focusing on portability now means we can sell our product | on-prem and hybrid, because we designed our _developer | UX_ this way. | terafo wrote: | Game was out for almost EIGHT YEARS by the time this bug | was fixed. There can be no reasonable explanation for them | not fixing that. 5 minute load every time you try to go | into multiplayer. The amount of revenue lost to that one | single bug is staggering. This bug was a reason why I never | played GTA online, for example. | alach11 wrote: | 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. | asdff wrote: | Why are they working so hard on an 8 year old game? Aren't | they just basically producing content packs now? Doesn't | even seem like the playerbase cares when there are | gamebreaking bugs ongoing for months. | switchbak wrote: | 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 | time to fix it. If you're "busy" all the time, but put up | with things that slow you down, you're hamstringing | yourself by not fixing the brokenness. When only a small | number of people take the time to fix things (typically | other's issues), that becomes very demotivating. | | That would be like being on an all-day ski tour, and | feeling too rushed to bother getting rid of the slush on | your skis. Yes, you feel rushed because you're moving | slower that usual. Taking 4 minutes to kick the slush off | will make you much faster on the overall trip. (Sharpening | the saw analogy, etc). | | Sometimes "busy" is a state of mind, more than it is a | reflection of reality. I know each situation is unique, but | I've seen this enough times to understand that it's often a | form of dysfunction rather than a reasonable reaction to | the work situation. This is like when people used to say | "we're too busy to write tests". Well, maybe you need to | get better at communicating the trade-offs to the broader | business, and be a bit more assertive about non-functional | aspects that are still important to address. | 0xFACEFEED wrote: | > 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 time to fix it. | | You will quickly shed yourself of this philosophy if you | become a business owner. You can test those waters by | releasing a non-trivial open source project that gains a | non-trivial amount of users. | | There will always be at least 100 things that are broken | in some way but not impacting the core business. You'll | have to pick only 1 to work on. And, if you're unlucky, | some frustrated customer may write a blog post about | issue #65. An issue that you're fully aware of but | haven't prioritized. | | Guess what you'll do as a business owner? You'll | prioritize that issue since it's now very visible and | maybe even throw $10,000 at the customer who took time to | do their research; as is what happened here. | | > This is like when people used to say "we're too busy to | write tests". Well, maybe you need to get better at | communicating the trade-offs to the broader business, and | be a bit more assertive about non-functional aspects that | are still important to address. | | Or perhaps the need for tests was communicated and the | business made the decision to not prioritize it. | | You may not like that decision. | | Mind that the decision to "not write tests" is never | explicitly stated so simply. No one wants to look bad. | Instead that decision is expressed through minimizing its | level of priority compared to other things. | | Still don't like the decision? Well you have three | options: | | 1) Ignore the stated goals of the company and do what you | think is right instead. In which case you're acting | against the interests of the company that's paying you. | | 2) Sacrifice your own free time in order to provide your | idea of value to the company (that may actually be | valuable! but that the company doesn't value enough to | prioritize) | | 3) Do what the company asks with plausible deniability. | Also known as kicking the can. Also known as not my | problem. | | Sometimes doing #1 or #2 could greatly benefit you. | Perhaps that thing you're doing (eg: writing tests) will | somehow measurably improve the business in the future | WITH PROOF so that you'll get get recognized. Or perhaps | there's management shake-up and the new leadership | perfectly aligns with your philosophy, etc, etc. | | But that's rare. | | More often than not your attempt at fixing the company's | problems behind the scenes will go unnoticed and | unrewarded. And if you do get rewarded, often times it's | a pittance compared to the amount of time you invested. | | My personal philosophy is I simply do not work for | companies that don't align with what I value. For | example, to me, it's exhausting and unrewarding to work | at a company that doesn't appreciate a GREAT user | experience. | glenneroo wrote: | 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. | jdwithit wrote: | +1 to the other replies here, I think it's very poor form to | throw the engineers under the bus for not being curious. The | most likely explanation is they were under insane time and | resource constraints, _especially_ in the games industry. | They wrote something that worked, then were forced to move on | to the other 5000 tasks in their backlog that had to get done | before release. When you 're already being told to crunch 80+ | hour weeks for months or years at a time, you run out of gas. | | I guess it's possible that the engineers who were talented | enough to create this extremely impressive game in the first | place somehow threw up their hands and said "guess it can | never take less than 7 minutes to load, best we can do". But | it seems much more likely that they were well aware, but | never allowed by poor management to go back and fix it. The | game was released and printing money, why bother. They're on | to the next title. | azemetre wrote: | It wasn't my intention to blame engineers but I agree with | the other reply to you, someone needs to be responsible for | creating these environments. It's not like we're dealing | with fundamental forces of nature here, this is all self | afflicted. | ALittleLight wrote: | 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. | mrandish wrote: | 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 frame the problem in an | understandable business context when communicating the | issue and options to management. Some of the best work | experiences I 've ever had were in orgs with such | experienced developers and managers. Working together we | were often able to solve apparently intractable problems | with creative options which would never have been | conceived absent the clarity of thought and communication | on both sides. | 420official wrote: | 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. | delusional wrote: | "the managers aren't even in a position to understand the | problem or the reasons for it." Which is again the fault | of management. It is the responsibility of management to | facilitate proper management. | blowski wrote: | As a shareholder, I'd be rather happy with the management | of GTA - it's phenomenally profitable. That sounds like | proper management to me. | ajuc wrote: | In gamedev where crunch is the default and people are | routinely working for 10, 12 or more hours a day, sometimes | including weekends, sometimes for months on end - it's not | very kind to assume it's curiosity that they lack. | azemetre wrote: | Yes but death marches are typically a sign of bad project | management IME. As for lack of curiosity, the environment | obviously plays a huge role in what is encouraged. | | I feel like history is repeating itself here (at least in | regards to death marches): | | https://en.wikipedia.org/wiki/Erin_Hoffman#%22EA_Spouse%22_ | b... | rvba wrote: | It is not that developers arent curious. They probably are in | their cages set by bad project managers who dont even play | own game and dont notice it takes forever to load. | | The project managers could put load times as a priority but | they genuinely dont see it as a problem or dont care at all. | It happens all the time. There is a lot of unoptimized | software. | | Perhaps the issue comes from the top: the project managers | are supposed to only do things that increase revenue and all | other things are not rewarded at all? Perhaps executives only | care if they hit quartely results? (Short term gain traded | for long term loss - the game is made for whales who are so | invested that they will play even when it is technically bad | - so milk them now with new content for whales and ignore | everththing else, who cares that new players will be | discouraged by bad load times). | | In my opinion if nobody plays own game / eats own dogfood, | they dont even see its problems. Blizzard is at this stage | now - some of their games barely work. You buy Starcraft 1 | through the launcher... and it doesnt work(I think it works | now, but it took them 1 month to notice it and another to fix | it). Heroes of the storm - downloaded a 137mb patch every run | - it took them half a year to notice it and do something with | it. It is like nobody cares about the brand at all. Game | company where your games dont work. | | IMHO a problem with people - that comes from the top. They | want only story points for things that bring money. The | project managers either dont care, or cannot deal with other | problems at all. I bet they dont care. This happens in many | companies - there were few people who tried, they got burned | for that: terminated or quit -> so now nobody cares. "The | game is good enough to still sell some skins to the whales, | so why bother". | | Look at the results: they got an external comment what to | fix. Did they launch their own internal project to optimize | the game? Did they check for other things that make it load | slow? It looka that someone else did a partial fix that is | "good enough" so everything is back to usual and nobody cares | about load times. | jonwinstanley wrote: | To be fair, the person that found the issue was persistent and | did some serious digging to figure out what was going on. | | I imagine that even if you were on the GTA team, you'd most | likely think the long loading time was unavoidable due to some | complexity you were not aware of. | | Great work to solve it from outside of the company. | shultays wrote: | Serious digging was needed because he does not have the | source. Any devs could easily profile the game during loading | and that sscanf or strlen would be at top | | Maybe they saw sscanf and assumed it is normal that it takes | time, but more likely there were so much stuff to do and | somehow no one checked | baby wrote: | Shows that dogfooding is one of the best thing you can do for | your product. I remember reading a story about Valve when they | were working on Dota 2, I think Gabe said that every day after | work they would play for hours and couldn't stop. | pinche_gazpacho wrote: | nor the incentive | [deleted] | xwolfi wrote: | 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. | roastedpeacock wrote: | Although a bit different rather sad seeing Take Two/Rockstar | attempt to censor other fan projects through DMCA or lawsuits. | holtkam2 wrote: | Perhaps my favorite thing I've ever read on HN :) I love to see | it crop up again | maccard wrote: | 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). ___________________________________________________________________ (page generated 2022-06-09 23:00 UTC)