Most active commenters
  • (3)

←back to thread

3883 points kuroguro | 38 comments | | HN request time: 2.05s | source | bottom
Show context
breakingcups ◴[] No.26296724[source]
It is absolutely unbelievable (and unforgivable) that a cash cow such as GTA V has a problem like this present for over 6 years and it turns out to be something so absolutely simple.

I do not agree with the sibling comment saying that this problem only looks simple and that we are missing context.

This online gamemode alone made $1 billion in 2017 alone.

Tweaking two functions to go from a load time of 6 minutes to less than two minutes is something any developer worth their salt should be able to do in a codebase like this equipped with a good profiler.

Instead, someone with no source code managed to do this to an obfuscated executable loaded with anti-cheat measures.

The fact that this problem is caused by Rockstar's excessive microtransaction policy (the 10MB of JSON causing this bottleneck are all available microtransaction items) is the cherry on top.

(And yes, I might also still be salty because their parent company unjustly DMCA'd re3 (https://github.com/GTAmodding/re3), the reverse engineered version of GTA III and Vice City. A twenty-year-old game. Which wasn't even playable without purchasing the original game.)

replies(40): >>26296812 #>>26296886 #>>26296970 #>>26297010 #>>26297087 #>>26297123 #>>26297141 #>>26297144 #>>26297184 #>>26297206 #>>26297323 #>>26297332 #>>26297379 #>>26297401 #>>26297448 #>>26297480 #>>26297806 #>>26297961 #>>26298056 #>>26298135 #>>26298179 #>>26298213 #>>26298234 #>>26298624 #>>26298682 #>>26298777 #>>26298860 #>>26298970 #>>26299369 #>>26299512 #>>26299520 #>>26300002 #>>26300046 #>>26301169 #>>26301475 #>>26301649 #>>26301961 #>>26304727 #>>26305016 #>>26311396 #
1. xyst ◴[] No.26296812[source]
is it really unbelievable? companies this big tend to prioritize hiring a shit ton of middlemen (VPs, project managers, developer managers, offshore managers) in order to avoid paying out for talent to build and constantly maintain the project. I guess paying a shit ton of money to 1 person to manage 10+ poorly paid contractors works out for them, accounting wise.

If one really examined the accounting for GTAO, I would bet that most of the billions of dollars that were earned in micro transactions went to marketing, product research, and to middle management in the form of bonuses.

replies(3): >>26296937 #>>26296939 #>>26296958 #
2. spuz ◴[] No.26296937[source]
Even if you view this as a business decision rather than a technical one, any smart project manager would realise a 6 minute loading time literally costs the company millions per year in lost revenue. (How many times have you felt like firing up GTA Online only to reconsider due to the agonising load time). I would guess this was simply a case of business folk failing to understand that such a technical issue could be so easily solved plus developers never being allowed the opportunity to understand and fix the issue in their spare time.
replies(2): >>26297079 #>>26297233 #
3. IshKebab ◴[] No.26296939[source]
It's kind of hard to believe. GTA5's online mode is their cash cow, and 6 minute load times are common?! It's kind of amazing people even play it with those load times. It's such a simple problem that one dev could have found and fixed it within a day.
replies(1): >>26297225 #
4. xyzelement ◴[] No.26296958[source]
I am always amused by comments like this. You have no idea what development practices they follow (neither do I) but it's hilarious to read your tone.

GTA has achieved tremendous success both as an entertaining game and as a business. It's enjoyed by millions of people and generates billions in revenue. As per this article, it has startup problems (which don't seem to actually really hurt the overall product but I agree sound annoying) but the bigger picture is: it's a huge success.

So - Rockstar has nailed it. What exactly is your platform for analyzing/criticizing their processes or even having a shot of understanding what they are? What have you build that anyone uses? (not saying you haven't, but.. have you been involved with anything remotely close to that scale?)

And if not, whence he high horse?

replies(5): >>26297807 #>>26297944 #>>26297957 #>>26298568 #>>26298634 #
5. alien_ ◴[] No.26297079[source]
The people who observe the slow loading time already paid for the game, so I guess R* won't lose much revenue because of this nasty bug.
replies(6): >>26297111 #>>26297112 #>>26297137 #>>26297138 #>>26297411 #>>26298127 #
6. bcrosby95 ◴[] No.26297111{3}[source]
The game has microtransactions. Coincidentally, also a large reason why load times were so slow.
replies(1): >>26297219 #
7. delecti ◴[] No.26297112{3}[source]
The online mode has microtransactions. People not playing anymore aren't paying for microtransactions either.
8. ◴[] No.26297137{3}[source]
9. ◴[] No.26297138{3}[source]
10. ◴[] No.26297219{4}[source]
11. toast0 ◴[] No.26297225[source]
It's not at all hard to believe if you've been playing video games for a while.

Everything is getting slower and slower, and nobody cares.

When I played the Atari 2600, I had to wait for the TV to warm up, but otherwise there were no games with anything approaching load times (with 128 bytes of RAM in the console, who would know). The NES didn't have much in the way of load times either, but you did have to fiddle with the cartridge slot. SNES and Genesis didn't usually load (Air Buster being a noticeable exception). CD based systems sure did like to load, but that's somewhat understandable. In the mean time, more and longer boot screens. The Switch uses a cartridge (or system flash/SD cards), but it likes to load forever too.

PC Gaming has had loading for longer, but it's been getting longer and longer.

Some arcade games have lengthy loading sequences, but only when you turn them on while they read their entire storage into RAM so they can be fast for the rest of the time they're on (which in arcades is usually all day).

replies(5): >>26297382 #>>26297857 #>>26298176 #>>26298184 #>>26313627 #
12. somehnguy ◴[] No.26297233[source]
The insane loading times are literally the exact reason I haven’t played in years. Every time I played I just ended up frustrated and got distracted doing something else while waiting, so I just quit playing altogether. I don’t know how people stand the loading times.
replies(2): >>26297343 #>>26298199 #
13. jonwinstanley ◴[] No.26297343{3}[source]
Totally agree, I loved the story mode and never got into online due to the amount of time spent loading and finding interesting stuff to do.
14. ubercow13 ◴[] No.26297382{3}[source]
Shorter loading times were one of the main selling points of this console generation.
15. AuryGlenz ◴[] No.26297411{3}[source]
I didn’t buy the game to play with my friends because I heard of how terrible the loading situation was.
16. brokencode ◴[] No.26297807[source]
Successful people and businesses can be wrong. You are not making a case for why those development practices are okay, but are simply appealing to authority.

I and most other customers would argue that 6 minute loading times are atrocious, and if there is an easy fix like this, it makes me lose a lot of respect for the developer who doesn’t fix it. It maybe would even make me avoid them in the future.

A reputation is built over years, but can be lost pretty much instantly. Companies have to continue serving their customers to enjoy ongoing success.

replies(1): >>26298636 #
17. yoz-y ◴[] No.26297857{3}[source]
> Everything is getting slower and slower, and nobody cares.

It really depends. The latest crop of games I’ve played (Doom Eternal, Cyberpunk) loads way faster than games from a few years back (aforementioned GTA-V, Shadow Warrior 2…).

This is also on the same machine, so it’s not the hardware that makes it faster.

replies(1): >>26298191 #
18. saagarjha ◴[] No.26297944[source]
You can be right in many places and still wrong in some, and enjoy enormous success as a result of all you have done well. That does not mean nobody can criticize you for something that you have clearly done wrong.
19. ant6n ◴[] No.26297957[source]
GTA is fine ... but the storytelling is meh. Missions keep repeating, and there's little to draw you in. You drive somewhere, somebody gets whacked, you drive back. Rinse and repeat. The makers try compensate with shocking and crass violence and humor, but at some point it just feels kind of juvenile.

Maybe it got better in recent releases, I kind of stopped following after GTA4.

20. the_gipsy ◴[] No.26298127{3}[source]
IIRC R* makes orders of magnitudes more from microtransactions than from the game box
21. iknowstuff ◴[] No.26298176{3}[source]
Direct Storage will allow for hardware-accelerated decompression straight from an NVMe into GPU memory, without involving the CPU and system RAM.

https://devblogs.microsoft.com/directx/directstorage-is-comi...

replies(2): >>26298411 #>>26300587 #
22. coredog64 ◴[] No.26298184{3}[source]
There were a few systems for the 2600 that used a cassette tape to load larger games than would fit on a ROM cassette.

I can’t recall the name, but I had the hack and slash adventure game variant. The connector on the custom cartridge was fiddly and required a stout rubber band to reliably work.

23. hnick ◴[] No.26298191{4}[source]
Doom Eternal's load times were so good I didn't even bother moving it to my SSD (I junction to a larger HDD by default).
24. hnick ◴[] No.26298199{3}[source]
Maybe the load times inadvertently work like the intentional spelling mistakes in a Nigerian scammer's email.

It's bait for the non-discerning customer who is more likely to empty their wallet for microtransactions because they have less experience with games so don't know what is normal :)

replies(2): >>26298382 #>>26313619 #
25. jamiek88 ◴[] No.26298382{4}[source]
The fact that this scenario is not immediately ludicrous to me is saddening.
26. wtallis ◴[] No.26298411{4}[source]
The more important thing about DirectStorage is probably that it will encourage games to use multithreaded async IO rather than serializing all their IO requests even when the underlying storage device requires dozens of simultaneous requests to deliver its full throughput.
replies(2): >>26298920 #>>26299414 #
27. djmips ◴[] No.26298568[source]
Why is this getting voted down, are there that many cynical people out there?
replies(1): >>26309528 #
28. Aeolun ◴[] No.26298634[source]
I don’t need to be successful to have a platform to be outraged. It doesn’t matter that it’s Rockstar, if anything, the fact that they’re so successful and couldn’t be bothered to save so many people literal hours of their lives in loading time makes it worse.
29. hombre_fatal ◴[] No.26298636{3}[source]
They didn’t make an appeal to authority but an appeal to commercial success, and they’re right on.

The fact that GTAO is so popular should make most HNers rethink what they know about the commercial necessity of optimization vs building a compelling product.

replies(1): >>26301350 #
30. amluto ◴[] No.26298920{5}[source]
I’m not entirely convinced that DirectStorage can do DMA directly from the device to the GPU. I suspect that even current NVMe devices aren’t quite fast enough for this to be a huge deal yet.

I think, but I’m not entirely sure, that Linux can do the peer to peer DMA trick. One nasty bit on any OS is that, if a portion of the data being read is cached, then some bookkeeping is needed to maintain coherence, and this adds overhead to IO. I wouldn’t be surprised if consoles had a specific hack to avoid this overhead for read-only game asset volumes.

31. astrange ◴[] No.26299414{5}[source]
Does it need "multithreaded async IO" or just "async IO"? It's usually async _or_ multithreaded; the native multi-request I/O APIs are single threaded, but if you have multithreaded I/O using simpler APIs, the system is batching them into one request at the cost of a little latency.
replies(2): >>26300964 #>>26305306 #
32. smaudet ◴[] No.26300587{4}[source]
Lol

"Hey we have this great new tech that makes things even faaster!!"

2 years later

"GTA 6 found to have double online load times, denies claims that game performs worse than GTA 5, tells people to upgrade their systems"

4 years later:

"Tech blogger reverses code, realizes someone managed to loop access between hard drive and gpu despite extremely common modern tech, gets 10x boost after spending a day fixing junk product"

Better technology just hasn't met its match from dumber management and more bureaucratic dev shops...

33. wtallis ◴[] No.26300964{6}[source]
NVMe is natively a multi-queue storage protocol, so there's no reason for the application or OS to collect IO requests into a single thread before issuing them to the lower layers. The normal configuration is for each CPU core to be allocated its own IO queue for the drive. But multithreaded synchronous (blocking) IO often isn't enough to keep a high-end NVMe SSD properly busy; you run out of cores and get bogged down in context switching overhead at a few hundred thousand IOPS even with a storage benchmark program that doesn't need any CPU time left over for productive work.

With a sufficiently low overhead async API (ie. io_uring) you can saturate a very fast SSD with a single thread, but I'm not sure it would actually make sense for a game engine to do this when it could just as easily have multiple threads independently performing IO with most of it requiring no synchronization between cores/threads.

34. incrudible ◴[] No.26301350{4}[source]
The loading times were not initially that long and then the slow CPU makes a big difference.

This really only goes to show how much you can get away with if you have an outstandingly popular product that has no direct competition. Chances are that your product is not that compelling, if it performs poorly, that will hurt adoption. It will never become outstandingly popular in the first place.

35. johncolanduoni ◴[] No.26305306{6}[source]
Kernel-mediated async disk IO is still a mess on all major platforms except for newer Linux kernels with io_uring. There's no way to call the APIs in a way that won't block sometimes, and to even have a snowball's chance in hell of not blocking requires giving up on the kernel's disk cache.

Also you're probably going to want to do multithreaded decompression anyway, and it'll be more efficient if you have the threads completing the reads do the decompression themselves. So in any case you probably want multiple threads handling the completion events.

36. Sohcahtoa82 ◴[] No.26309528{3}[source]
They're getting voted down because they're making a ridiculous argument.

They're basically saying that GTAV's massive commercial success should grant it immunity to criticism.

37. imtringued ◴[] No.26313619{4}[source]
Microtransaction heavy games are primarily funded by whales who spend thousands on a game. If you even make one of them leave that's a net loss.
38. imtringued ◴[] No.26313627{3}[source]
>It's not at all hard to believe if you've been playing video games for a while.

>Everything is getting slower and slower, and nobody cares.

Yes, modern games are so inefficient and laggy nowadays. Once your game world reaches a certain size it becomes unplayable and that's just in single player. Once you add 10 players you start to hit performance limits very quickly.