| ▲ | nwallin 4 days ago |
| Another datapoint that supports your argument is the Grand Theft Auto Online (GTAO) thing a few months ago.[0] GTAO took 5-15 minutes to start up. Like you click the icon and 5-15 minutes later you're in the main menu. Everyone was complaining about it for years. Years. Eventually some enterprising hacker disassembled the binary and profiled it. 95% of the runtime was in `strlen()` calls. Not only was that where all the time was spent, but it was all spent `strlen()`ing the exact same ~10MB resource string. They knew exactly how large the string was because they allocated memory for it, and then read the file off the disk into that memory. Then they were tokenizing it in a loop. But their tokenization routine didn't track how big the string was, or where the end of it was, so for each token it popped off the beginning, it had to `strlen()` the entire resource file. The enterprising hacker then wrote a simple binary patch that reduced the startup time from 5-10 minutes to like 15 seconds or something. To me that's profound. It implies that not only was management not concerned about the start up time, but none of the developers of the project ever used a profiler. You could just glance at a flamegraph of it, see that it was a single enormous plateau of a function that should honestly be pretty fast, and anyone with an ounce of curiousity would be like, ".........wait a minute, that's weird." And then the bug would be fixed in less time than it would take to convince management that it was worth prioritizing. It disturbs me to think that this is the kind of world we live in. Where people lack such basic curiosity. The problem wasn't that optimization was hard, (optimization can be extremely hard) it was just because nobody gave a shit and nobody was even remotely curious about bad performance. They just accepted bad performance as if that's just the way the world is. [0] Oh god it was 4 years ago: https://nee.lv/2021/02/28/How-I-cut-GTA-Online-loading-times... |
|
| ▲ | godelski 4 days ago | parent | next [-] |
| I just started getting back into gaming and I'm seeing shit like this all the time. It's amazing that stuff like this is so common while the Quake fast inverse square root algo is so well known. How is it that these companies spend millions of dollars to develop games and yet modders are making patches in a few hours fixing bugs that never get merged. Not some indie game, but AAA rated games! I think you're right, it's on both management and the programmers. Management only knows how to rush but not what to rush. The programmers fall for the trap (afraid to push back) and never pull up a profiler. Maybe over worked and over stressed but those problems never get solved if no one speaks up and everyone is quiet and buys into the rush for rushing's sake mentality. It's amazing how many problems could be avoided by pulling up a profiler or analysis tool (like Valgrind). It's amazing how many millions of dollars are lost because no one ever used a profiler or analysis tool. I'll never understand how their love for money makes them waste so much of it. |
| |
| ▲ | bigstrat2003 4 days ago | parent [-] | | AAA games are, largely, quite bad in quality these days. Unfortunately, the desire to make a quality product (from the people who actually make the games) is overruled by the desire to maximize profit (from the people who pay their salaries). Indie games are still great, but I barely even bother to glance at AAA stuff any more. | | |
| ▲ | godelski 4 days ago | parent | next [-] | | > by the desire to
An appropriate choice of words.I'm just wondering if/when anyone will realize that often desire gets in the way of achieving. ̶T̶h̶e̶y̶ ̶m̶a̶y̶ ̶b̶e̶ ̶p̶e̶n̶n̶y̶ ̶w̶i̶s̶e̶ ̶b̶u̶t̶ ̶t̶h̶e̶y̶'̶r̶e̶ ̶p̶o̶u̶n̶d̶ ̶f̶o̶o̶l̶i̶s̶h̶.̶ Chasing pennies with dollars | |
| ▲ | pjmlp 3 days ago | parent | prev [-] | | That has been like that since there have been publishers in the games industry. Back then, the indies stuff was only if you happened to live nearby someone you knew doing bedroom coding, distributing tapes on school, or they got lucky land their game on one of those shareware tapes collection. Trying to actually get a publisher deal was really painful, and if you did, they really wanted their money back in sales. | | |
| ▲ | versteegen 3 days ago | parent [-] | | Shareware tapes collection? Was there really such a thing? If so I would imagine it would be one or two demos per tape? | | |
|
|
|
|
| ▲ | bakugo 3 days ago | parent | prev | next [-] |
| > To me that's profound. It implies that not only was management not concerned about the start up time, but none of the developers of the project ever used a profiler. Odds are that someone did notice it during profiling and filed a ticket with the relevant team to have it fixed, which was then set to low priority because implementing the latest batch of microtransactions was more important. I feel like this is just a natural consequence of the metrics-driven development that is so prevalent in large businesses nowadays. Management has the numbers showing them how much money they make every time they add a new microtransaction, but they don't have numbers showing them how much money they're losing due to people getting tired of waiting 15 minutes for the game to load, so the latter is simply not acknowledged as a problem. |
|
| ▲ | skeaker 3 days ago | parent | prev | next [-] |
| iirc this bug existed from release but didn't impact the game until years later after a sizable number of DLCs were added to the online mode, since the function only got slower with each one added. Not that it's fine that the bug stayed in that long, but you can see how it would be missed given that when they had actual programmers running profilers at development time it wouldn't have raised any red flags after completing in ten seconds or whatever. |
| |
| ▲ | tinyhitman 3 days ago | parent [-] | | I don't know. As a developer there would be even more reason to be curious as to why the release binary is an order of magnitude slower then what is seen in development. | | |
| ▲ | p_l 2 days ago | parent [-] | | At release it was "working fine, same as in dev". It slowed down gradually as the JSON manifest of optional content grew. |
|
|
|
| ▲ | mschuster91 3 days ago | parent | prev | next [-] |
| > It disturbs me to think that this is the kind of world we live in. Where people lack such basic curiosity. The problem wasn't that optimization was hard, (optimization can be extremely hard) it was just because nobody gave a shit and nobody was even remotely curious about bad performance. They just accepted bad performance as if that's just the way the world is. The problem is, you don't get rewarded for curiosity, for digging down into problem heaps, or for straying out of line. To the contrary, you'll often enough get punished for not fulfilling your quota. |
|
| ▲ | LarMachinarum 3 days ago | parent | prev | next [-] |
| > and anyone with an ounce of curiousity would be like, ".........wait a minute" I see what you did there ;) |
|
| ▲ | Ygg2 3 days ago | parent | prev | next [-] |
| > Another datapoint that supports your argument is the Grand Theft Auto Online (GTAO) thing a few months ago.[0] GTAO took 5-15 minutes to start up. Like you click the icon and 5-15 minutes later you're in the main menu. Everyone was complaining about it for years. I see this is a datapoint, but not for your argument. This thing sat in the code base didn't cause problems and didn't affect sales of the game pre or post GTAO launch. This sounds a lot like selection bias. You want to enhance airplanes that flew and returned. Rather than those that didn't come back. Let's say they did the opposite and focused on improving this over a feature or a level from GTA. What level or what feature that you liked could you remove to make way for investigating and fixing this issue? Because at the end of the day - time is zero-sum. Everything you do comes at the expense of everything you didn't. |
| |
| ▲ | pjc50 3 days ago | parent | next [-] | | This is the sort of thing that, if fixed early enough in the development cycle, actually net brings forwards development. Because every time someone needs to test the game they hit the delay. (which makes it all the more strange that it wasn't fixed) | | |
| ▲ | Ygg2 3 days ago | parent [-] | | > This is the sort of thing that, if fixed early enough in the development cycle Is it? It didn't become noticable until GTA got a bunch of DLCs. Sure someone might have spotted it. But it would take more time to spot it early, and that time is time not spent fixing bugs. |
| |
| ▲ | godelski 3 days ago | parent | prev [-] | | I think you have the logic backwards. You are saying it didn't cause problems, right? Well that's the selection bias. You're basing your assumption on what is more easily measurable. It's "not a problem" because it got sales, right? Those are the planes that returned. But what's much harder to measure is the number of sales you missed. Or where the downed planes were hit. You don't have the downed planes, you can't see where they were hit! You just can't have that measurement, you can only infer the data through the survivors. > Because at the end of the day - time is zero-sum
Time is a weird thing. It definitely isn't zero sum. There's an old saying from tradesmen "why is there always time to do things twice but never time to do things right?" Time is made. Sometimes spending less time gives you more time. And all sorts of other weird things. But don't make the classic mistake of rushing needlessly.Time is only one part of the equation and just like the body the mind has stamina. Any physical trainer would tell you you're going to get hurt if you just keep working one group of muscles and keep lifting just below your limit. It's silly that the idea is that we'd go from sprint to sprint. The game industry is well known to be abusive of its developers, and that's already considering the baseline developer isn't a great place to start from, even if normalized. | | |
| ▲ | Ygg2 3 days ago | parent [-] | | > But what's much harder to measure is the number of sales you missed. Or where the downed planes were hit. You don't have the downed planes, you can't see where they were hit! You just can't have that measurement, you can only infer the data through the survivors. Not really. There are about 300 million gamers [1] if you exclude Androids and iPhones. How many sales units did GTA V make? 215 million[2]. It's a meteoric hit. They missed a sliver (35%) of their target audience. You could argue that they missed the mobile market. But the biggest market - Android is a pain to develop for; the minimum spec for GTA V to have parity on phones would exclude a large part of the market (most likely), and the game itself isn't really mobile-friendly. Ok, but we have a counter example (pun intended). Counter-Strike. Similarly, multiplayer, targets PCs mostly, developed by Valve, similarly excellent and popular to boot. However, it's way faster and way better optimized. So how much it "sold" according to [3]?
70 million. 86 if you consider Half-Life 1 and 2 as its single player campaign. I'm not sure what the deciding factor for people is, but I can say it's not performance. > Time is a weird thing. It definitely isn't zero sum. If you are doing thing X, you can't do another thing Y, unless you are multitasking (if you are a time traveler, beware of paradoxes). But then you are doing two things poorly, and even then, if you do X and Y, adding other tasks becomes next to impossible. It definitely is. Tim Cain had a video[4] about how they spent man months trying to find a cause for a weird foot sliding bug, that's barely noticeable, which they managed so solve. And at that time Diablo came out and it was a massive success with foot sliding up the wazoo. So, just because it bugs you doesn't mean others will notice. > "why is there always time to do things twice but never time to do things right?" Because you're always operating with some false assumption. You can't do it right, because the right isn't fixed and isn't always known, nor is it specified right for whom? [1]https://www.pocketgamer.biz/92-of-gamers-are-exclusively-usi... [2]https://web.archive.org/web/20250516021052/https://venturebe... [3]https://vgsales.fandom.com/wiki/Counter-Strike [4]https://youtu.be/gKEIE47vN9Y?t=651 | | |
| ▲ | godelski 2 days ago | parent [-] | | > They missed a sliver (35%) of their target audience.
Next time you're at a party go take a third of the cake and then tell everyone you just took "a sliver". See what happens...Honestly, there's no point in trying to argue with you. Either you're trolling, you're greatly disconnected from reality, or you think I'm brain dead. No good can come from a conversation with someone that is so incorrigible. | | |
| ▲ | Ygg2 2 days ago | parent [-] | | > Next time you're at a party go take a third of the cake and then tell everyone you just took "a sliver". See what happens... Fine, I'll concede it's the wrong word used. But: > Honestly, there's no point in trying to argue with you. Either you're trolling, you're greatly disconnected from reality Wait. I'm disconnected? Selling millions of unit (Half life) is amazing success and tens of millions is stellar success by any measure (Baldur's Gate, Call of Duty, Skyrim). But selling hundreds of millions (Minecraft, GTAV)? That's top 10 most popular game of all time. So according to you, one of the top 5 best-selling game in history is somehow missing a huge part of the market? You can argue a plethora of things, but you can't speculate that GTA V could have done much better by saying "you're trolling"/"no point arguing". And saying that optimizing the DLC JSON loader could have given them a bigger slice of the pie is incredulous at best. You're extrapolating your preferences to 6 billion people. It's like watching a designer assume everyone will notice they used soft kerning, with dark grey font color on a fishbone paper background for their website. And that they cleverly aligned the watermark with the menu elements. |
|
|
|
|
|
| ▲ | Sophira 3 days ago | parent | prev [-] |
| Honestly the GTA5 downloader/updater itself has pretty bad configuration. I wrote a post about it on Reddit years ago along with how to fix it. I don't know if it's still applicable or not because I haven't played it for ages, but just in case it is, here's the post: https://www.reddit.com/r/GTAV/comments/3ysv1d/pc_slow_rsc_au... |