85% reduction in size? Are you for fucking real? Data duplication for their perceived performance reasons increased size from 23GB to 131GB? GTFO. Is your entire team offshored to India or something?
Supposedly, and I do mean supposedly because it's Arrowhead and they're Swedes so they lie like breathing, the enormously bloated install size was to support HDD users. As if anyone from Pennsylvania to Transylvania still uses those, but I digress.
In a previous big update earlier this year the bloat caused the new planet with underground maps to be effectively unplayable. Since that planet was about 80% of the content in the update the community was outraged.
Following THAT the company leadership once again allowed that Serbian dog-eater Alexus Kravchenko(if you ever played Hello Neighbor, he's the guy that ruined the sequel) to secretly nerf several popular weapons in a convoluted and shitty way that accidentally nerfed half the guns in the game.
And that's skipping over a tide of community drama involving a tranny community manager blacklisting several popular Youtubers, and the rest of the company being unable to do anything about it because Sweden is an HR police state and you can't criticize trannies even if they alienate huge chunks of your playerbase.
So Narrowhead needed a win. As a result they released this, which was as big of a W as they could manage with the least amount of effort.
Despite all the bugs, the drama, the idiotic balance choices, and the performance issues it IS still a damn fun game. I play it fairly casually with my wife, and we don't try to sweat the highest two difficulty levels, usually staying at 8/10.
The "premium" currency they use for the item packs they sell for monetization is easy to get on your own just by playing the game. I've paid I think ten dollars total into it since I got it almost two years ago.
All in all, it's fun as hell to rain down orbital strikes on the enemy, and blast them to bits.
This is the studio that forced an anti-cheat in their entirely coop game, because they couldn't figure a way to stop people from giving 9999 lab points in Helldivers 1.
Instead of just coding "Hey, there's a max of 17 points in this map, you shouldn't be able to get 9999", or instead of following the golden rule "Don't trust the client", they went the easy way and put an anti-cheat.
That is a HUGE decrease, only game I know better optimised is Warframe.
Big studios either by incompetence or on purpose (as many accused COD for being so data hungry was so you had no space for other games) how important optimisation is. Hell that's one of the FIRST things modders target.
To show how long this has been an issue getting worse, I remember TotalBiscuit when he was alive focusing on optimisation as part of his review and how much early Id focused on it for Doom. The only reason not to is you lack the talent TO do it..
I had a computer science exam some ~20 years ago where we were writing (like, with pencil and paper!) C code. I had been programming in C since middle school while most of the class was learning C for the first time.
I wrote a very sexy copy loop with pointer arithmetic and a comment to the side explaining why, and pointing to a particular pre-increment in the copy as an optimization.
The TA took points off and wrote that micro optimizations are useless and, verbatim "premature optimization is the root of all evil."
I know exactly which TA wrote it, and he was, and I'm sure still is, an effeminate, arrogant, mincing prick. He just did not understand the code. Luckily I appealed to the professor and he reversed it. Yes, I'm still salty about this.
Writing efficient code isn't premature optimization. "Optimization", in the turn of phrase's context specifically, is supposed to mean corner-cutting and hacky workarounds to save a step or two.
Writing good code in the first place REMOVES the need for optimization.
Writing good code in the first place REMOVES the need for optimization.
No, those are different. Look up the famous Quake 3 root optimisation, technically it's immensely faster, but not considered good code, because it's full of "magic numbers" and incredibly hard to understand while the code nor the comments don't provide any info on what's it's doing at all. It generally take a 15mn video to understand those 3 last lines.
This is actually a perfect example of premature optimization.
They just assumed that mechanical hard drives would be such a huge performance hit that they apparently reorganized their data to duplicate it so that (presumably; I can only speculate because they don't actually specify and I can't conceive any other possible reason to do this) would minimize seek times.
They can't even guarantee it had any real positive effect. It's not like Helldivers is telling the HDD precisely where to write things. These files-in-triplicate could all be right next to each other, while big individual files are fragmented and scattered all over the disk.
100% this. Data duplication made perfect sense when you're reading off optical media where you control where the tracks are. You don't want the read head having to index back and forth constantly. You want similarly accessed data in nearby rings.
On a PC, the dev doesn't really have control over where the files are written in the first place. Now, what I could believe is that every subsequent expansion duplicated assets from the previous releases, because they knew that updating the originals would invite fragmentation.
My money is on them not being confident that they weren't breaking old content so they just made the new content effectively standalone. Probably punted on regression testing too.
It could just be sheer lazyness. Just duplicating assets because it's easier to copy-past entire structures than it is to properly link them one at a time.
There's some truth to it. The last time I had to genuinely optimize something for performance it resulted in some truly ugly things going on under the hood that made the code way less coherent and maintainable. Some basic optimization should be baked in as part of best practices, but doing some of the darker optimization wizardry should indeed be avoided until that evil becomes necessary.
Sure, but the cases where you need the crazy things for optimization are few are far between. So much of the time it's just using the correct algorithm instead of brute forcing everything. Casey Muratori puts it far better than I in this interview:
It's just crazy how people refuse to even consider optimization, especially in AAA game dev. If every developer could be like Wube (factorio) and Coffee Stain (Satisfactory, which is in Unreal 5, and shows how every other game in Unreal 5 is deliberately deoptimised), gaming in general would be better.
Oh I agree that if we had developers who actually used optimization instead of farting out whatever would compile then the industry would be in a much better place. If you demand that level of competency in the technical aspect you necessarily create a culture where you start selecting for competency across the board instead of all the ideologically based hiring that happens now. There's the best games were made by a bunch of White and/or Japanese autists while the danger hairs have created nothing of value during their entire tenure in the industry.
That would take a bit of time to learn how things like hashmaps work though. Why do that when you could just solve every problem by iterating through arrays instead?
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.
Quite unbelievable. Not a single dev thought about putting any debug to check any timer. Not a single one, just by curiosity, wanted to see which part of the loading was the longest, see if there could be any potential bug or issues.
I hate modern software development.
85% reduction in size? Are you for fucking real? Data duplication for their perceived performance reasons increased size from 23GB to 131GB? GTFO. Is your entire team offshored to India or something?
And they SHIPPED this.
Supposedly, and I do mean supposedly because it's Arrowhead and they're Swedes so they lie like breathing, the enormously bloated install size was to support HDD users. As if anyone from Pennsylvania to Transylvania still uses those, but I digress.
In a previous big update earlier this year the bloat caused the new planet with underground maps to be effectively unplayable. Since that planet was about 80% of the content in the update the community was outraged.
Following THAT the company leadership once again allowed that Serbian dog-eater Alexus Kravchenko(if you ever played Hello Neighbor, he's the guy that ruined the sequel) to secretly nerf several popular weapons in a convoluted and shitty way that accidentally nerfed half the guns in the game.
And that's skipping over a tide of community drama involving a tranny community manager blacklisting several popular Youtubers, and the rest of the company being unable to do anything about it because Sweden is an HR police state and you can't criticize trannies even if they alienate huge chunks of your playerbase.
So Narrowhead needed a win. As a result they released this, which was as big of a W as they could manage with the least amount of effort.
Cheaper,bigger and longer lasting than SSDs. You might say get a bluray writer but they're all disappearing.
Sure, for storage. Not for gaming. I use an HDD to store books and pictures. I use an SSD for gaming.
You seem to be into the game... Is it worth picking up now, even with all these problems?
It depends on what you're after.
Despite all the bugs, the drama, the idiotic balance choices, and the performance issues it IS still a damn fun game. I play it fairly casually with my wife, and we don't try to sweat the highest two difficulty levels, usually staying at 8/10.
The "premium" currency they use for the item packs they sell for monetization is easy to get on your own just by playing the game. I've paid I think ten dollars total into it since I got it almost two years ago.
All in all, it's fun as hell to rain down orbital strikes on the enemy, and blast them to bits.
This is the studio that forced an anti-cheat in their entirely coop game, because they couldn't figure a way to stop people from giving 9999 lab points in Helldivers 1.
Instead of just coding "Hey, there's a max of 17 points in this map, you shouldn't be able to get 9999", or instead of following the golden rule "Don't trust the client", they went the easy way and put an anti-cheat.
That is a HUGE decrease, only game I know better optimised is Warframe.
Big studios either by incompetence or on purpose (as many accused COD for being so data hungry was so you had no space for other games) how important optimisation is. Hell that's one of the FIRST things modders target.
To show how long this has been an issue getting worse, I remember TotalBiscuit when he was alive focusing on optimisation as part of his review and how much early Id focused on it for Doom. The only reason not to is you lack the talent TO do it..
"Premature optimization is the root of all evil"
That phrase has done more damage to the software industry than even Indians. And when you combine it with Indians it is even worse.
I had a computer science exam some ~20 years ago where we were writing (like, with pencil and paper!) C code. I had been programming in C since middle school while most of the class was learning C for the first time.
I wrote a very sexy copy loop with pointer arithmetic and a comment to the side explaining why, and pointing to a particular pre-increment in the copy as an optimization.
The TA took points off and wrote that micro optimizations are useless and, verbatim "premature optimization is the root of all evil."
I know exactly which TA wrote it, and he was, and I'm sure still is, an effeminate, arrogant, mincing prick. He just did not understand the code. Luckily I appealed to the professor and he reversed it. Yes, I'm still salty about this.
The prick works at Facebook today.
Writing efficient code isn't premature optimization. "Optimization", in the turn of phrase's context specifically, is supposed to mean corner-cutting and hacky workarounds to save a step or two.
Writing good code in the first place REMOVES the need for optimization.
No, those are different. Look up the famous Quake 3 root optimisation, technically it's immensely faster, but not considered good code, because it's full of "magic numbers" and incredibly hard to understand while the code nor the comments don't provide any info on what's it's doing at all. It generally take a 15mn video to understand those 3 last lines.
I watched a video about that a couple of years ago. Great stuff, highly recommended.
This is actually a perfect example of premature optimization.
They just assumed that mechanical hard drives would be such a huge performance hit that they apparently reorganized their data to duplicate it so that (presumably; I can only speculate because they don't actually specify and I can't conceive any other possible reason to do this) would minimize seek times.
Fucking insane.
And, again, they SHIPPED this.
They can't even guarantee it had any real positive effect. It's not like Helldivers is telling the HDD precisely where to write things. These files-in-triplicate could all be right next to each other, while big individual files are fragmented and scattered all over the disk.
100% this. Data duplication made perfect sense when you're reading off optical media where you control where the tracks are. You don't want the read head having to index back and forth constantly. You want similarly accessed data in nearby rings.
On a PC, the dev doesn't really have control over where the files are written in the first place. Now, what I could believe is that every subsequent expansion duplicated assets from the previous releases, because they knew that updating the originals would invite fragmentation.
My money is on them not being confident that they weren't breaking old content so they just made the new content effectively standalone. Probably punted on regression testing too.
It could just be sheer lazyness. Just duplicating assets because it's easier to copy-past entire structures than it is to properly link them one at a time.
^ This guy has defragged a hard drive before.
And it makes no sense on its face. If you test at the unit level, why wouldn't you optimize at the unit level too?
There's some truth to it. The last time I had to genuinely optimize something for performance it resulted in some truly ugly things going on under the hood that made the code way less coherent and maintainable. Some basic optimization should be baked in as part of best practices, but doing some of the darker optimization wizardry should indeed be avoided until that evil becomes necessary.
Sure, but the cases where you need the crazy things for optimization are few are far between. So much of the time it's just using the correct algorithm instead of brute forcing everything. Casey Muratori puts it far better than I in this interview:
https://youtu.be/apREl0KmTdQ?t=242
It's just crazy how people refuse to even consider optimization, especially in AAA game dev. If every developer could be like Wube (factorio) and Coffee Stain (Satisfactory, which is in Unreal 5, and shows how every other game in Unreal 5 is deliberately deoptimised), gaming in general would be better.
Oh I agree that if we had developers who actually used optimization instead of farting out whatever would compile then the industry would be in a much better place. If you demand that level of competency in the technical aspect you necessarily create a culture where you start selecting for competency across the board instead of all the ideologically based hiring that happens now. There's the best games were made by a bunch of White and/or Japanese autists while the danger hairs have created nothing of value during their entire tenure in the industry.
That would take a bit of time to learn how things like hashmaps work though. Why do that when you could just solve every problem by iterating through arrays instead?
They'd accidentally end up getting there simply because they'd choke once they started trying to iterate through multi-dimensional arrays.
There's a red pill for that.
Quite unbelievable. Not a single dev thought about putting any debug to check any timer. Not a single one, just by curiosity, wanted to see which part of the loading was the longest, see if there could be any potential bug or issues.
Modern devs gotta div.