Remix.run Logo
_aavaa_ 2 days ago

My takeaway is that it seems like they did NO benchmarking of their own before choosing to do all that duplication. They only talk about performance tradeoff now that they are removing it. Wild

whizzter 2 days ago | parent | next [-]

It's an valid issue, those of us who worked back in the day on GD/DVD,etc games really ran into bad loading walls if we didn't duplicate data for straight streaming.

Data-sizes has continued to grow and HDD-seek times haven't gotten better due to physics (even if streaming probably has kept up), the assumption isn't too bad considering history.

It's a good that they actually revisited it _when they had time_ because launching a game, especially a multiplayer one, will run into a lot of breaking bugs and this (while a big one, pun intended) is still by most classifications a lower priority issue.

maccard 2 days ago | parent | prev | next [-]

I've been involved in decisions like this that seem stupid and obvious. There's a million different things that could/should be fixed, and unless you're monitoring this proactively you're unlikely to know it hsould be changed.

I'm not an arrowhead employee, but my guess is at some point in the past, they benchmarked it, got a result, and went with it. And that's about all there is to it.

alias_neo 2 days ago | parent | next [-]

They admitted to testing nothing, they just [googled it].

To be fair, the massive install size was probably the least of the problems with the game, it's performance has been atrocious, and when they released for xbox, the update that came with it broke the game entirely for me and was unplayable for a few weeks until they released another update.

In their defense, they seem to have been listening to players and have been slowly but steadily improving things.

Playing Helldivers 2 is a social thing for me where I get together online with some close friends and family a few times a month and we play some helldivers and have a chat, aside from that period where I couldn't play because it was broken, it's been a pretty good experience playing it on Linux; even better since I switched from nvidia to AMD just over a week ago.

I'm glad they reduced the install size and saved me ~130GB, and I only had to download about another 20GB to do it.

seg_lol 2 days ago | parent | prev | next [-]

Performance profiling should be built into the engine and turned on at all times. Then this telemetry could be streamed into a system that tracks it across all builds, down to a specific scene. It should be possible to click a link on the telemetry server and start the game at that exact point.

maccard 2 days ago | parent [-]

How would that help them diagnose a code path that wasn't ever being run (loading non duplicated assets on HDDs)?

seg_lol a day ago | parent [-]

> diagnose a code path that wasn't ever being run

Xelbair 2 days ago | parent | prev [-]

>These loading time projections were based on industry data - comparing the loading times between SSD and HDD users where data duplication was and was not used. In the worst cases, a 5x difference was reported between instances that used duplication and those that did not. We were being very conservative and doubled that projection again to account for unknown unknowns.

>We now know that, contrary to most games, the majority of the loading time in HELLDIVERS 2 is due to level-generation rather than asset loading. This level generation happens in parallel with loading assets from the disk and so is the main determining factor of the loading time. We now know that this is true even for users with mechanical HDDs.

they did absolutely zero benchmarking beforehand, just went with industry haresay, and decided to double it just in case.

maccard 2 days ago | parent | next [-]

Nowhere in that does it say “we did zero benchmarking and just went with hearsay”. Basing things on industry data is solid - looking at the steam hardware surveys if a good way to figure out the variety of hardware used without commissioning your own reports. Tech choices are no different.

Do you benchmark every single decision you make on every system on every project you work on? Do you check that redis operation is actually O(1) or do you rely on hearsay. Do you benchmark every single SQL query, every DTO, the overhead of the DI Framework, connection pooler, json serializer, log formatter? Do you ever rely on your own knowledge without verifying the assumptions? Of course you do - you’re human and we have to make some baseline assumptions, and sometimes they’re wrong.

FieryMechanic 2 days ago | parent | prev | next [-]

They made a decision based on existing data. This isn't unreasonable as you are pretending, especially as PC hardware can be quite diverse.

You will be surprised what some people are playing games on. e.g. I know people that still use Windows 7 on a AMD BullDozer rig. Atypical for sure, but not unheard of.

red-iron-pine 2 days ago | parent [-]

i believe it. hell i'm in F500 companies and virtually all of them had some legacy XP / Server 2000 / ancient Solaris box in there.

old stuff is common, and doubly so for a lot of the world, which ain't rich and ain't rockin new hardware

FieryMechanic 2 days ago | parent [-]

My PC now is 6 years old and I have no intention of upgrading it soon. My laptop is like 8 years old and it is fine for what I use it for. My monitors are like 10-12 years old (they are early 4k monitors) and they are still good enough. I am primarily using Linux now and the machine will probably last me to 2030 if not longer.

Pretending that this is an outrageous decision when the data and the commonly assumed wisdom was that there were still a lot of people using HDDs.

They've since rectified this particular issue and there seems to be more criticism of the company after fixing an issue.

pixl97 2 days ago | parent | prev | next [-]

>they did absolutely zero benchmarking beforehand, just went with industry haresay, a

https://en.wikipedia.org/wiki/Wikipedia:Chesterton%27s_fence

It was a real issue in the past with hard drives and small media assets. It's still a real issue even with SSDs. HDD/SSD IOPS are still way slower than contiguous reads when you're dealing with a massive amount of files.

At the end of the day it requires testing which requires time at a time you don't have a lot of time.

the_af 2 days ago | parent | next [-]

This is not a good invokation of Chesterton's Fence.

The Fence is a parable about understanding something that already exists before asking to remove it. If you cannot explain why it exists, you shouldn't ask to remove it.

In this case, it wasn't something that already existed in their game. It was something that they read, then followed (without truly understanding whether it applied to their game), and upon re-testing some time later, realized it wasn't needed and caused detrimental side-effects. So it's not Chesterton's Fence.

You could argue they followed a videogame industry practice to make a new product, which is reasonable. They just didn't question or test their assumptions that they were within the parameters of said industry practice.

I don't think it's a terrible sin, mind you. We all take shortcuts sometimes.

imtringued 2 days ago | parent | prev [-]

It's not an issue with asynchronous filesystem IO. Again, async file IO should be the default for game engines. It doesn't take a genius to gather a list of assets to load and then wait for the whole list to finish rather than blocking on every tiny file.

pixl97 2 days ago | parent [-]

There are two different things when talking about application behavior versus disk behavior.

>wait for the whole list to finish rather than blocking on every tiny file.

And this is the point. I can make a test that shows exactly what's going on here. Make a random file generator that generates 100,000 4k files. Now, write them on hard drive with other data and things going on at the same time. Now in another run of the program have it generate 100,000 4k files and put them in a zip.

Now, read the set of 100k files from disk and at the same time read the 100k files in a zip....

One finishes in less than a second and one takes anywhere from a few seconds to a few minutes depending on your disk speeds.

creshal 2 days ago | parent | prev [-]

"Industry hearsay" in this case was probably Sony telling game devs how awesome the PS5's custom SSD was gonna be, and nobody bothered to check their claims.

mary-ext 2 days ago | parent | next [-]

the industry hearsay is about concern of HDD load times tho

creshal a day ago | parent [-]

HDD load times compared to......?

maccard 2 days ago | parent | prev [-]

What are you talking about?

This has nothing to do with consoles, and only affects PC builds of the game

creshal 2 days ago | parent [-]

HD2 started as playstation exclusive, and was retargeted mid-development for simultaneous release.

So the PS5's SSD architecture was what developers were familiar with when they tried to figure out what changes would be needed to make the game work on PC.

Dylan16807 2 days ago | parent | next [-]

If what they were familiar with was a good SSD, then they didn't need to do anything. I don't see how anything Sony said about their SSD would have affected things.

Maybe you're saying the hearsay was Sony exaggerating how bad hard drives are? But they didn't really do that, and the devs would already have experience with hard drives.

wtallis 2 days ago | parent [-]

What Sony said about their SSD was that it enabled game developers to not duplicate assets like they did for rotating storage. One specific example I recall in Sony's presentation was the assets for a mailbox used in a Spider Man game, with hundreds of copies of that mailbox duplicated on disk because the game divided Manhattan into chunks and tried to have all the assets for each chunk stored more or less contiguously.

If the Helldivers devs were influenced by what Sony said, they must have misinterpreted it and taken away an extremely exaggerated impression of how much on-disk duplication was being used for pre-SSD game development. But Sony did actually say quite a bit of directly relevant stuff on this particular matter when introducing the PS5.

Dylan16807 2 days ago | parent [-]

Weird, since that's a benefit of any kind of SSD at all. The stuff their fancy implementation made possible was per-frame loading, not just convenient asset streaming.

But uh if the devs didn't realize that, I blame them. It's their job to know basics like that.

wtallis 20 hours ago | parent | next [-]

By far the most important thing about the PS5 SSD was the fact that it wasn't optional, and developers would no longer have to care about being able to run off mechanical drives. That has repercussions throughout the broader gaming industry because the game consoles are the lowest common denominator for game developers to target, and getting both Xbox and PlayStation to use SSDs was critical. From the perspective of PlayStation customers and developers, the introduction of the PS5 was the right time to talk about the benefits of SSDs generally.

Everything else about the PS5 SSD and storage subsystem was mere icing on the cake and/or snake oil.

creshal a day ago | parent | prev [-]

Yeah, that's what I was trying to get at. Sony was extremely deceptive in how they marketed the PS5 to devs, and the Helldivers dev don't want to admit how completely they fell for it.

Dylan16807 a day ago | parent [-]

It's incompetence if they "fell for" such basic examples being presented in the wrong context. 5% of the blame can go to Sony, I guess, if that's what happened.

And on top of any potential confusion between normal SSD and fancy SSD, a mailbox is a super tiny asset and the issue in the spiderman game is very rapidly cycling city blocks in and out of memory. That's so different from helldivers level loading.

maccard 2 days ago | parent | prev [-]

I don't really understand your point. You're making a very definitive statement about how the PS5's SSD architecture is responsible for this issue - when the isssue is on a totally different platform, where they have _already_ attempted (poorly, granted) to handle the different architectures.

creshal a day ago | parent [-]

No. Please try reading more carefully.

Hendrikto 2 days ago | parent | prev | next [-]

> our worst case projections did not come to pass. These loading time projections were based on industry data - comparing the loading times between SSD and HDD users where data duplication was and was not used. In the worst cases, a 5x difference was reported between instances that used duplication and those that did not. We were being very conservative and doubled that projection again to account for unknown unknowns.

They basically just made the numbers up. Wild.

fullstop 2 days ago | parent | next [-]

It's like the story of a young couple cooking their first Christmas ham.

The wife cuts the end off of the ham before putting it in the oven. The husband, unwise in the ways of cooking, asks her why she does this.

"I don't know", says the wife, "I did it because my mom did it."

So they call the mom. It turns out that her mother did it, so she did too.

The three of them call the grandma and ask "Why did you cut the end off of the ham before cooking it?"

The grandma laughs and says "I cut it off because my pan was too small!"

bombcar 2 days ago | parent | next [-]

It's the corollary to Chesterton's Fence - don't remove it until you know why it's there, but also investigate why it's there.

chrisweekly 2 days ago | parent | prev [-]

Haha, cargo cult strikes again!

01HNNWZ0MV43FF 2 days ago | parent [-]

For today's 10,000: https://www.righto.com/2025/01/its-time-to-abandon-cargo-cul...

> The pop-culture cargo cult description, however, takes features of some cargo cults (the occasional runway) and combines this with movie scenes to yield an inaccurate and fictionalized dscription. It may be hard to believe that the description of cargo cults that you see on the internet is mostly wrong, but in the remainder of this article, I will explain this in detail.

chrisweekly a day ago | parent [-]

Thanks. TIL.

FWIW, I meant it strictly in the generic vernacular sense in which I've encountered it: doing something because it has the outward form of something useful or meaningful, without understanding whether or how it works.

Given the problematic history you shared, it seems a new term is needed for this... maybe "Chesterson's Folly"? It's related to Chesterson's Fence (the principle that it's unwise to remove a fence if you don't know why it was erected). If you leave in place all "fences" you don't understand, and never take the time to determine their purpose, fences which serve no good purpose will accumulate.

rjzzleep 2 days ago | parent | prev | next [-]

On the flip side I don't remember who did it, but basically extracting textures on disk fixed all the performance issues UE5 has on some benchmarks(sorry for being vague, but I can't find the source material right now). But their assumption is in fact a sound one.

Normal_gaussian 2 days ago | parent [-]

Yes. Its quite common for games to have mods that repack textures or significantly tweak the UE5 config at the moment - and its very common to see users using it when it doesn't actually affect their use cases.

As an aside, I do enjoy the modding community naming over multiple iterations of mods - "better loading" -> "better better loading" -> "best loading" -> "simplified loading" -> "x's simplified loading" -> "y's simplified loading" -> "z's better simplified loading". Where 'better' is often some undisclosed metric based on some untested assumptions.

SirAiedail a day ago | parent | prev [-]

Non-made up numbers from Vermintide 2 (same engine): On PS4 when an optimized build took around 1.5 minutes to boot to main menu, the unoptimized version would take 12-15 minutes [1]. A different benchmark than SSD vs HDD, but shows that the optimization was certainly needed at the time. Though the PS4 was partially to blame as well, with it's meagre 5400 RPM spinny drive.

For their newer instalment, Fatshark went with a large rework of the engine's bundle system, and players on HDDs are complaining about long loading times expectedly. That game is still large at ~80GB, but not from duplication.

[1]: https://www.reddit.com/r/Vermintide/comments/hxkh0x/comment/...

wongarsu 2 days ago | parent | prev | next [-]

It's pretty standard to do that duplication for games on CD/DVD because seek times are so long. It probably just got carried over as the "obviously correct" way of doing things, since HDDs are like DVDs if you squint a bit

Arrath 2 days ago | parent | next [-]

I had assumed the practice started to die off when installing games became dominant over streaming from the disc even on consoles. Seems I was wrong!

jayd16 2 days ago | parent | prev [-]

The game does ship on disc for console, no?

Teknoman117 2 days ago | parent [-]

The current generation of consoles can’t play games directly off the disk. They have to be installed to local storage first.

jayd16 2 days ago | parent | prev | next [-]

You can't bench your finished game before it exists and you don't really want to rock the boat late in dev, either.

It was a fundamentally sound default that they revisited. Then they blogged about the relatively surprising difference it happen to make in their particular game. As it turns out the loading is CPU bound anyway, so while the setting is doing it's job, in the context of the final game, it happens to not be the bottle neck.

There's also the movement away from HDD and disc drives in the player base to make that the case as well.

esrauch 2 days ago | parent | prev | next [-]

It's very easy to accidentally get misleading benchmarking results in 100 different ways, I wouldn't assume they did no benchmarking when they did the duplication.

Hikikomori 2 days ago | parent | prev | next [-]

They used industry data to make the decision first to avoid potential multi minute load times for 10% or do of their players, hard to test all kinds of pc configurations. Now they have telemetry showing that it doesn't matter because another parallel task takes about as much time anyway.

whywhywhywhy 2 days ago | parent | next [-]

Maybe it's changed a lot statistically in the last few years but for long time PC gamers used to have the mantra of small SSD for the OS and large HDD for games if they're price conscious so I could see that being assumed to be much more normal during development.

Dylan16807 2 days ago | parent [-]

It's a shameful tragedy of the commons if you bloat your game 6x because you think your customers don't have enough SSD space for their active games.

_aavaa_ 2 days ago | parent | prev | next [-]

But they did NOT know it would lead to multi-minute load time. They did not measure a baseline.

Instead they did blindly did extra work and 6x’ed the storage requirement.

justsomehnguy 2 days ago | parent | prev [-]

So they premature optimized for a wrong case.

> multi minute load times

23Gb / 100mb / 60s = 3.92m

So in the worst case when everything is loaded at once (how on a system with < 32Gb RAM?) it takes 4 minutes.

Considering GTA whatever version could sit for 15 minutes at the loading screen because nobody bothered to check why - the industry could really say not to bother.

dwroberts 2 days ago | parent | prev | next [-]

It seems plausible to me that this strategy was a holdover from the first game, which shipped for PS4 and XBO

I don’t know about the Xbox, but on PS4 the hard drive was definitely not fast at all

Xelbair 2 days ago | parent | prev | next [-]

worse, in their post they basically said:

>we looked at industry standard values and decided to double them just in case.

functionmouse 2 days ago | parent | next [-]

Some kind of evil, dark counterpart to Moore's law in the making

red-iron-pine 2 days ago | parent | prev [-]

this is one of the best selling games in history, and is emently popular across the globe.

it had no serious or glaring impact to their bottom line.

thus it was the right call, and if they didn't bother to fix it they'd still be rolling in $$$$

ycombinatrix 2 days ago | parent [-]

All companies should also defraud & rug pull their customers.

It will make them a lot of money and is thus the right call. Who cares about customers am I right? They'd still be rolling in $$$$.

Pannoniae 2 days ago | parent | prev | next [-]

The good old "studios don't play their own games" strikes again :P

Games would be much better if all people making them were forced to spend a few days each month playing the game on middle-of-the-road hardware. That will quickly teach them the value of fixing stuff like this and optimising the game in general.

maccard 2 days ago | parent | next [-]

I've worked in games for close to 15 years, and every studio I've worked on we've played the game very regularly. My current team every person plays the game at least once a week, and more often as we get closer to builds.

In my last project, the gameplay team played every single day.

> Games would be much better if all people making them were forced to spend a few days each month playing the game on middle-of-the-road hardware

How would playing on middle of the road hardware have caught this? The fix to this was to benchmark the load time on the absolute bottom end of hardware, with and without the duplicated logic. Which you'd only do once you have a suspicion that it's going to be faster if you change it...

Forgeties79 2 days ago | parent | prev | next [-]

They could have been lying I guess but I listened to a great podcast about the development of Helldivers 2 (I think it was gamemakers notebook) and one thing that was constantly brought up was as they iterated they forced a huge chunk of the team to sit down and play it. That’s how things like diving from a little bit too high ended up with you faceplanting and rag-dolling, tripping when jet packing over a boulder that you get a little too close to, etc. They found that making it comically realistic in some areas led to more unexpected/emergent gameplay that was way more entertaining. Turrets and such not caring if you’re in the line of fire was brought up I believe.

That’s how we wound up with this game where your friends are as much of a liability as your enemies.

whizzter 2 days ago | parent | prev [-]

People literally play the games they work on all the time, it's more or less what most do.

Pay 2000$ for indie games so studios could grow up without being beholden to shareholders and we could perhaps get that "perfect" QA,etc.

It's a fucking market economy and people aren't making pong level games that can be simply tuned, you really get what you pay for.

djmips 2 days ago | parent | prev [-]

A tale as old as time. Making decisions without actually profiling before, during and after implementing.