Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Post
  • Reply
very risky blowjob
Sep 27, 2015

every time i see this thread in my bookmarks i remember the video of spider-man castrating himself via ragdoll physics and i want to lol irl, please never change the thread title

Adbot
ADBOT LOVES YOU

Shit Fuckasaurus
Oct 14, 2005

i think right angles might be an abomination against nature you guys
Lipstick Apathy

Like Clockwork posted:

You would definitely know about good ol' Missingno, though, and if you were around other kids you'd know how the east Cinnabar coast let you catch like Alakazams and poo poo. It just wasn't known that it wasn't deliberate behavior; a lot of stuff kids accepted happening as normal were bugs, after all, and it not working on Yellow clearly meant a step was missed and not that it was a problem in the older games that was fixed.

Like, if a game does something weird and you aren't hooked to the internet with easy access to recording devices, you're going to have a hard time duplicating steps unless it's super easy, so barring something game-breaking (like the trash Lord of the Rings GBA game I had just softlocking in Moria) if something weird happened you generally didn't have a way to prove you weren't making poo poo up so you wouldn't hear about every single weird bug that someone came across.

Missingno is also an extremely elegant failure, where garbage data is loaded and the game sanitizes inputs well enough that it just doesn't matter at all unless you use specific player names which have been reverse-engineered to do specific things (mostly crash the game, but specifically). It otherwise functions as a normal (well, normal/bird) pokemon for all intents and purposes, and it's not just reasonable or possible for a person to believe, but deeply enshrined in the lore of the Millenial generation that Missingno is just a weird pokemon.

In modern games there are bugs that don't matter and don't impact gameplay, yes, like when a game running Havok decides that the fruit on the table is now accelerating towards the sky. That's fine, and it's not what I'm talking about. It's situations where you could not proceed as intended even if you wanted to either because of a crash or getting the save into a state that the game cannot handle, and specifically that occurring as a result of normal, apparently intended gameplay that I'm concerned with. To be clear, I still think that games in general had fewer bugs in general due to a number of factors so high it makes that statement both categorically undeniable and worthless, but here really all I give a poo poo about is "Did you playtest the experience from start to finish on the version you shipped, even once?" and the answer, inevitably, is always "no". I've had a QA lead (admittedly from EA) melt down over the idea of anything more than minimum-viable unit testing (his words not mine) just about a decade ago and it still doesn't seem to have changed much. "Gamers" don't seem to care whether a game works on release more or less at all (if it wasn't obvious before, scroll up a bit for confirmation) so I guess it was always inevitable that this would be the standard.

StillFullyTerrible
Feb 16, 2020

you should have left Let's Play open for public view, Lowtax
I'm looking forward to the Starfield launch, we'll definitely get some good bugs out of that.

stab
Feb 12, 2003

To you from failing hands we throw the torch, be yours to hold it high

Dabir posted:

Even the well loved ones. Final Fantasy 1 has multiple spells and an entire stat that just don't work.

And the weapons designed to enhance elemental/monster type dont work either

very risky blowjob
Sep 27, 2015

also it wasn't the final one!

Captain Hygiene
Sep 17, 2007

You mess with the crabbo...



StillFullyTerrible posted:

I'm looking forward to the Starfield launch, we'll definitely get some good bugs out of that.

I'm not gonna buy the game right away, but I do want to jump in for a month of gamepass right at the start in the hopes of glitchy entertainment.

TooMuchAbstraction
Oct 14, 2012

I spent four years making
Waves of Steel
Hell yes I'm going to turn my avatar into an ad for it.
Fun Shoe

poo poo Fuckasaurus posted:

Missingno is also an extremely elegant failure, where garbage data is loaded and the game sanitizes inputs well enough that it just doesn't matter at all unless you use specific player names which have been reverse-engineered to do specific things (mostly crash the game, but specifically).

sanitized inputs, lol

It was extraordinarily rare for games of that era to sanitize anything. After all, you know exactly where everything is in memory. Just don't gently caress up your code and things will work fine. Pokemon in particular had no spare room for anything extra; they were under some insane space constraints. The fact that Missingno usually doesn't crash the game is dumb luck, not error-tolerant coding.

For reference, if they did sanitize inputs, the result would probably be something like "oh, you tried to load an invalid Pokemon, uhhhh here fight an L1 Bulbasaur instead". In other words, the game would recognize that it was trying to access/use garbage data, and would pivot to something that's absolutely not correct, but is at least safe.

Phy
Jun 27, 2008



Fun Shoe

StillFullyTerrible posted:

I'm looking forward to the Starfield launch, we'll definitely get some good bugs out of that.

I'm assuming the "giants launch you into space for real this time" jokes were played out years ago

Dabir
Nov 10, 2012

TooMuchAbstraction posted:

sanitized inputs, lol

It was extraordinarily rare for games of that era to sanitize anything. After all, you know exactly where everything is in memory. Just don't gently caress up your code and things will work fine. Pokemon in particular had no spare room for anything extra; they were under some insane space constraints. The fact that Missingno usually doesn't crash the game is dumb luck, not error-tolerant coding.

For reference, if they did sanitize inputs, the result would probably be something like "oh, you tried to load an invalid Pokemon, uhhhh here fight an L1 Bulbasaur instead". In other words, the game would recognize that it was trying to access/use garbage data, and would pivot to something that's absolutely not correct, but is at least safe.

If they'd made you fight a L1 Bulbasaur that would have caused even more problems. Level 1 pokemon have negative EXP in gen 1, which is why you can't encounter any.

SubponticatePoster
Aug 9, 2004

Every day takes figurin' out all over again how to fuckin' live.
Slippery Tilde

PurpleXVI posted:

BG3 had release bugs, but we're not talking CP2077 level
Hilariously I got CP2077 within a day or two after launch, played it on a PS4 Pro, and didn't have a single glitch other than this: https://www.youtube.com/watch?v=uaWAO-VA2rQ :v:

I know other people had an absolutely miserable experience even on the same platform so I don't know why I got lucky.

Taeke
Feb 2, 2010


SubponticatePoster posted:

Hilariously I got CP2077 within a day or two after launch, played it on a PS4 Pro, and didn't have a single glitch other than this: https://www.youtube.com/watch?v=uaWAO-VA2rQ :v:

I know other people had an absolutely miserable experience even on the same platform so I don't know why I got lucky.

That's my experience with games in general.

Like, from reading about them on SA I know Bethesda games are buggy messes (especially before they get patches) but I never really encountered any at all that were memorable, unless they were the result of me modding them to hell and back. Same with CP2077, and now with BG3.

If I hadn't been online reading about the games and you'd have asked me, I'd have told you the games were fine. What bugs? No, nothing weird happened in the hundred of hours I put into Skyrim, why do you ask? Same with the Fallout games and whatever.

Sometimes I'm jealous.

very risky blowjob
Sep 27, 2015

the only glitch that annoyed me with my (ps4) playthrough of CP2077 was i hit a bug on one of the police-scanner missions that meant i could never complete it, thus depriving me of the trophy for doing all of the side missions in whatever area :hayter:

Shit Fuckasaurus
Oct 14, 2005

i think right angles might be an abomination against nature you guys
Lipstick Apathy

TooMuchAbstraction posted:

sanitized inputs, lol

It was extraordinarily rare for games of that era to sanitize anything. After all, you know exactly where everything is in memory. Just don't gently caress up your code and things will work fine. Pokemon in particular had no spare room for anything extra; they were under some insane space constraints. The fact that Missingno usually doesn't crash the game is dumb luck, not error-tolerant coding.

For reference, if they did sanitize inputs, the result would probably be something like "oh, you tried to load an invalid Pokemon, uhhhh here fight an L1 Bulbasaur instead". In other words, the game would recognize that it was trying to access/use garbage data, and would pivot to something that's absolutely not correct, but is at least safe.

I'm using "sanitizing inputs" as shorthand for "constructing a system robust enough to make a functional pokemon out of garbage data" which is effectively the same thing achieved by a different means but doesn't have a simple catchphrase like "sanitizing inputs" as a catch-all for the various implementations. Again, modern developers could use more of both.

Domus
May 7, 2007

Kidney Buddies
Even if day one stuff is buggy as hell, it gets fixed, and people who play day one understand it’ll be a little rough. I will take that any day over something like Lufia 2, where they forgot to put a warp back outside on the 100th level of the roguelike dungeon. Lost or accidentally fed the one and only escape item? You just spent 7 straight hours of playtime (no saving in the dungeon) and beat the incredibly difficult last boss for nothing. You’re softlocked. Try again!

zedprime
Jun 9, 2007

yospos

poo poo Fuckasaurus posted:

I'm using "sanitizing inputs" as shorthand for "constructing a system robust enough to make a functional pokemon out of garbage data" which is effectively the same thing achieved by a different means but doesn't have a simple catchphrase like "sanitizing inputs" as a catch-all for the various implementations. Again, modern developers could use more of both.
This is error tolerant design and how much you tolerate errors depend son how mission critical that function or interface is. Because Pokemon missingno is a perfect example that an error tolerant interface is just a place for memory injection.

Modern computers and consoles would throw a memory violation trying to do a missingno - the people one level below you would say absolutely never.

The preference overall is to not throw errors and this comes with neat functionality and interface design. Where you.mjgbt see a bit of error tolerant design is for moddable games to help sandbox in the mods in a way a bad mod won't just stop the game from working because you can't fully ban bad mod data because of the whole "can't program a program that says the program will terminate because you can't tell it's going to terminate" problem.

stab
Feb 12, 2003

To you from failing hands we throw the torch, be yours to hold it high

Domus posted:

Even if day one stuff is buggy as hell, it gets fixed, and people who play day one understand it’ll be a little rough. I will take that any day over something like Lufia 2, where they forgot to put a warp back outside on the 100th level of the roguelike dungeon. Lost or accidentally fed the one and only escape item? You just spent 7 straight hours of playtime (no saving in the dungeon) and beat the incredibly difficult last boss for nothing. You’re softlocked. Try again!

Yes but the Ancient Cave is amazing Op and I wish more rpgs stole that system

Tunicate
May 15, 2012

The ancient cave also had the tileset for the final level glitched so it was a garbled mass

TooMuchAbstraction
Oct 14, 2012

I spent four years making
Waves of Steel
Hell yes I'm going to turn my avatar into an ad for it.
Fun Shoe
Lufia 2 is an amazing roguelike that for some reason has a fairly substantial JRPG in front of it.

In other news:

https://twitter.com/MothNessMonster/status/1695240720813363211

Dropbear
Jul 26, 2007
Bombs away!

Taeke posted:

If I hadn't been online reading about the games and you'd have asked me, I'd have told you the games were fine. What bugs? No, nothing weird happened in the hundred of hours I put into Skyrim, why do you ask? Same with the Fallout games and whatever.

Sometimes I'm jealous.

For me, New Vegas was by far the worst. No mods, and immediately at the start there are floating dog eyeballs hovering around them, people just stutter weirdly when running in a straight line, there are snarling geckos half-submerged into the ground etc. etc. It was just a giant, giant mess for me on any computer I tried it on. It kind of killed the game for me, since it felt like I couldn't touch much of anything without something random breaking and the whole thing felt like a really flimsy house of cards.

TooMuchAbstraction
Oct 14, 2012

I spent four years making
Waves of Steel
Hell yes I'm going to turn my avatar into an ad for it.
Fun Shoe

Dropbear posted:

the whole thing felt like a really flimsy house of cards.

I see you've played videogames before.

PurpleXVI
Oct 30, 2011

Spewing insults, pissing off all your neighbors, betraying your allies, backing out of treaties and accords, and generally screwing over the global environment?
ALL PART OF MY BRILLIANT STRATEGY!

SubponticatePoster posted:

Hilariously I got CP2077 within a day or two after launch, played it on a PS4 Pro, and didn't have a single glitch other than this: https://www.youtube.com/watch?v=uaWAO-VA2rQ :v:

I know other people had an absolutely miserable experience even on the same platform so I don't know why I got lucky.

I played it a while after release and it was... kind of low-grade jank. Nothing amazing, but just poo poo that made it feel like an unfinished beta. But even if it had been completely bug-free, the basic game design would still have sucked poo poo.

"NPC's still walk through solid objects, cars spawn out of nowhere right in front of you, half the district's fragile objects explode when you show up, keybinds fail to work, your health bar keeps showing a flat zero until you reload, ambient music tracks keep playing, inventory items get randomly deleted(I didn't need that super-upgraded unique/iconic sniper rifle at all, CP2077, thanks), conversations blocking out some of your movement options and then forgetting to re-enable them, etc. If this is what it's like after a half dozen patches, it must've been completely unplayable at launch."

The list of poo poo I bumped into that I shoved into my review.

Regrettable
Jan 5, 2010



SubponticatePoster posted:

Hilariously I got CP2077 within a day or two after launch, played it on a PS4 Pro, and didn't have a single glitch other than this: https://www.youtube.com/watch?v=uaWAO-VA2rQ :v:

I know other people had an absolutely miserable experience even on the same platform so I don't know why I got lucky.

I got it at launch and the only bug I had was a gun sticking out of Jackie's head in the cutscene where he died.

The Cheshire Cat
Jun 10, 2008

Fun Shoe

zedprime posted:

This is error tolerant design and how much you tolerate errors depend son how mission critical that function or interface is. Because Pokemon missingno is a perfect example that an error tolerant interface is just a place for memory injection.

Modern computers and consoles would throw a memory violation trying to do a missingno - the people one level below you would say absolutely never.

The preference overall is to not throw errors and this comes with neat functionality and interface design. Where you.mjgbt see a bit of error tolerant design is for moddable games to help sandbox in the mods in a way a bad mod won't just stop the game from working because you can't fully ban bad mod data because of the whole "can't program a program that says the program will terminate because you can't tell it's going to terminate" problem.

Yeah the thing to understand about old consoles is that there was no such thing as an operating system. Programs couldn't "crash", everything ran directly on the hardware and if you feed random garbage data into said hardware it would have no way of knowing what that data was "supposed" to be, it's all just 0s and 1s and your program flow is what allows that data mean something. When that program flow gets disrupted somehow, the hardware doesn't care, it's just going to keep on processing as if what it's getting is completely valid data for the thing it's trying to do. This can include processing things like sprite data as machine code (or the opposite), or loading bad values into memory that then gets used as input for another function where those values are outside of its expected range (this is what causes missingNo to happen).

Any error checking would need to be done within the software itself and the reason why games are more crash prone now is because of more thorough error checking, either built into the game itself or from the OS when the game is trying to do something it shouldn't (like write to a memory address the OS hasn't allocated for it), where the program force terminating is considered a more desirable outcome than whatever the program was trying to do with that bad data. Most things that look like crashes on old consoles are actually just the various machine registers getting so corrupted that the program flow simply falls apart and it never finds its way back to intended behaviour. Some things might also throw hardware interrupts as well, although this is usually more something that happens because of things like the cartridge being removed while the game is running, or the processor being passed an opcode that doesn't exist (this is harder to do than it sounds since the opcode is only 1 byte and most of the possible values are used).

Retro Game Mechanics Explained has a pretty good technical explanation about MissingNo specifically and why it looks the way it does: https://www.youtube.com/watch?v=ZI50XUeN6QE. The TL;DW version is that Pokemon has its own method for compressing and decompressing sprite data and MissingNo is the result of running that algorithm on non-sprite data.

The Cheshire Cat has a new favorite as of 21:15 on Aug 26, 2023

Shit Fuckasaurus
Oct 14, 2005

i think right angles might be an abomination against nature you guys
Lipstick Apathy

zedprime posted:

This is error tolerant design and how much you tolerate errors depend son how mission critical that function or interface is. Because Pokemon missingno is a perfect example that an error tolerant interface is just a place for memory injection.

Modern computers and consoles would throw a memory violation trying to do a missingno - the people one level below you would say absolutely never.

The preference overall is to not throw errors and this comes with neat functionality and interface design. Where you.mjgbt see a bit of error tolerant design is for moddable games to help sandbox in the mods in a way a bad mod won't just stop the game from working because you can't fully ban bad mod data because of the whole "can't program a program that says the program will terminate because you can't tell it's going to terminate" problem.

This is what I'm talking about with the word choice, it doesn't matter what words I used, because the concept I'm circling around has no suitable label that's less than a dozen words, and even when I used that you're attempting to correct me. It's almost entirely not error-tolerant design, it is the robust core of an engine designed to be iterated and expanded upon with minimal difficulty. The only thing they did to deliberately harden the system was add "MissingNo." as the name field for Pokemon outside of the 151 as they cut them, and it's likely that this was only to aid in determining the root cause of errors (the alternative, leaving the field blank, crashes the game when it tries to load the battle). This means that there are multiple Missingnos, at least 4 of which can be accessed through normal gameplay, and it also means that all of the Missingnos are actually fixed proto-Pokemon from an early build. Unfortunately we can tell that the memory structure changed somewhat since that build, which is why one of the Missingnos uses moves based on the moves of the other pokemon currently in your party, as the location where the player's team is stored in the release version was apparently at some point used for moves or at least indexed to the proto-pokemon entries as such.

You are correct that Missingno is a vector for injection, as with the correct player name you can escape to a few different places. Most are nonviable, crashing the game immediately before, during, or after combat, but a few others are much more viable, because they crash the game somewhat later. These are, of course, not names or anything resembling them, so it still falls outside of the class of bugs I'm discussing. I understand that modern memory management will throw a violation in this situation, however with proper memory management (which the Pokemon games simply could not have afforded due to the limitations of the platform) it could be handled in a way that's transparent to the player, such as the Lvl 2 Bulbasaur idea above. This is what's not being done, at least not to the extent where the average player only ever sees transparently handled bugs.

I'm well aware that the problem is that modern developers are financially incentivized to have a reach that well exceeds their grasp, whereas developers of the era I'm talking about were actual software developers with standards who could never survive in today's market and thought (apparently incorrectly) that good, stable software would sell better. "First 8K 60fps shooter" or whatever plays incredibly well for sales, whereas "Crashes every 30 minutes and multiple quest lines are incorrectly flagged and thus cannot be finished" does not have anywhere near the same impact in the other direction. I'm confident Ubisoft, for example, could unfuck Anvil and Disrupt to the degree required to achieve this in less than a development cycle, considering the significant improvements the engines have seen in general stability which occurred alongside full releases, however there is no financial incentive as people will clearly still buy broken games in droves. The very day that people stop buying broken games (never) the industry will stop making them.

Shit Fuckasaurus has a new favorite as of 21:19 on Aug 26, 2023

flatluigi
Apr 23, 2008

here come the planes

Regrettable posted:

I got it at launch and the only bug I had was a gun sticking out of Jackie's head in the cutscene where he died.

hell of a way to go

zedprime
Jun 9, 2007

yospos

poo poo Fuckasaurus posted:

This is what I'm talking about with the word choice, it doesn't matter what words I used, because the concept I'm circling around has no suitable label that's less than a dozen words, and even when I used that you're attempting to correct me. It's almost entirely not error-tolerant design, it is the robust core of an engine designed to be iterated and expanded upon with minimal difficulty. The only thing they did to deliberately harden the system was add "MissingNo." as the name field for Pokemon outside of the 151 as they cut them, and it's likely that this was only to aid in determining the root cause of errors (the alternative, leaving the field blank, crashes the game when it tries to load the battle). This means that there are multiple Missingnos, at least 4 of which can be accessed through normal gameplay, and it also means that all of the Missingnos are actually fixed proto-Pokemon from an early build. Unfortunately we can tell that the memory structure changed somewhat since that build, which is why one of the Missingnos uses moves based on the moves of the other pokemon currently in your party, as the location where the player's team is stored in the release version was apparently at some point used for moves or at least indexed to the proto-pokemon entries as such.

You are correct that Missingno is a vector for injection, as with the correct player name you can escape to a few different places. Most are nonviable, crashing the game immediately before, during, or after combat, but a few others are much more viable, because they crash the game somewhat later. These are, of course, not names or anything resembling them, so it still falls outside of the class of bugs I'm discussing. I understand that modern memory management will throw a violation in this situation, however with proper memory management (which the Pokemon games simply could not have afforded due to the limitations of the platform) it could be handled in a way that's transparent to the player, such as the Lvl 2 Bulbasaur idea above. This is what's not being done, at least not to the extent where the average player only ever sees transparently handled bugs.

I'm well aware that the problem is that modern developers are financially incentivized to have a reach that well exceeds their grasp, whereas developers of the era I'm talking about were actual software developers with standards who could never survive in today's market and thought (apparently incorrectly) that good, stable software would sell better. "First 8K 60fps shooter" or whatever plays incredibly well for sales, whereas "Crashes every 30 minutes and multiple quest lines are incorrectly flagged and thus cannot be finished" does not have anywhere near the same impact in the other direction. I'm confident Ubisoft, for example, could unfuck Anvil and Disrupt to the degree required to achieve this in less than a development cycle, considering the significant improvements the engines have seen in general stability which occurred alongside full releases, however there is no financial incentive as people will clearly still buy broken games in droves. The very day that people stop buying broken games (never) the industry will stop making them.
Reading garbage after an unhandled exception and trucking along to get a passable result is error tolerant design. You don't need 16 words for that. It is what it is. Its rare to use 30 years on because you don't need to if you actually do your job and prevent unhandled exceptions from hitting production.

Handling an exception by subbing in a template object like a lvl 2 bulbasaur is one of a million error handling methodologies that come from a modern framework of being able to catch and handle exceptions that were only implemented piecemeal in the "good, stable software" made by "actual software developers" in the 90s (LMA all the way O describing the 90s this way) but is now purchasable off the shelf by any body using anything thicker than Rust or is described by textbooks for those big enough to roll their own.

"The robust core of an engine designed to be iterated and expanded upon with minimal difficulty" is a nonsense phrase you could never teach in a computer science course but I think I get it - its kind of the thing we've been groping for how to do by rote by trying to document certain successes with OOP etc. But at the end of the day in gaming there's just good games and bad ones and there's plenty of good ones with actual trash design and plenty of bad ones with absolutely impeccable design.

Overall I think you're having trouble explaining yourself because your ultimate goal is just insulting new games while building up old ones into something they weren't.

TooMuchAbstraction
Oct 14, 2012

I spent four years making
Waves of Steel
Hell yes I'm going to turn my avatar into an ad for it.
Fun Shoe

poo poo Fuckasaurus posted:

I'm well aware that the problem is that modern developers are financially incentivized to have a reach that well exceeds their grasp, whereas developers of the era I'm talking about were actual software developers with standards who could never survive in today's market and thought (apparently incorrectly) that good, stable software would sell better.

Speaking as a modern developer, you can gently caress right off with that poo poo.

EDIT: to expand: not only are you colossally wrong, you're also an idiot. Modern developers work their asses off and are at least as capable as developers from 30 years ago. The theory of software development is further advanced, the tools are more capable, and frankly the developers from 30 years are are still making games but now have 30 years' more experience to draw from.

Take those rose-tinted goggles off your face and shove them up your rear end.

TooMuchAbstraction has a new favorite as of 22:42 on Aug 26, 2023

mycot
Oct 23, 2014

"It's okay. There are other Terminators! Just give us this one!"
Hell Gem

Dabir posted:

Even the well loved ones. Final Fantasy 1 has multiple spells and an entire stat that just don't work.

Every time this "in the old days before downloadable patches games just released bug-free" conversation comes around I think about something like Fallout 2 and stare into the middle distance

PurpleXVI
Oct 30, 2011

Spewing insults, pissing off all your neighbors, betraying your allies, backing out of treaties and accords, and generally screwing over the global environment?
ALL PART OF MY BRILLIANT STRATEGY!

mycot posted:

Every time this "in the old days before downloadable patches games just released bug-free" conversation comes around I think about something like Fallout 2 and stare into the middle distance

I wonder what the cutoff is, because I remember Windows 95/98 games as being the kings of brutally bluescreening for no apparent reason.

Betrayal in Antara was one big bug on its own.

Several SNES games' most famous and memorable mechanics were their bugged-to-poo poo ones...

Dabir
Nov 10, 2012

mycot posted:

Every time this "in the old days before downloadable patches games just released bug-free" conversation comes around I think about something like Fallout 2 and stare into the middle distance

Fallout 1 had its share too. Switching to alternate ammo for weapons doesn't do anything in that game.

On a similar note, X-COM: UFO Defense had bugged difficulty settings. No matter what you picked, it always gave you Easy. And that meant that a whole bunch of dedicated players played through the game on what they thought was its hardest setting, found it too easy for them, and they sent in complaints telling the developers to make the next game harder. The developers, of course, didn't realise that those players were getting served easy mode, they thought they had mastered the intended hard mode. So when they sat down to work on Terror from the Deep, they made it harder than X-COM's hard mode...

PurpleXVI
Oct 30, 2011

Spewing insults, pissing off all your neighbors, betraying your allies, backing out of treaties and accords, and generally screwing over the global environment?
ALL PART OF MY BRILLIANT STRATEGY!

Dabir posted:

Fallout 1 had its share too. Switching to alternate ammo for weapons doesn't do anything in that game.

On a similar note, X-COM: UFO Defense had bugged difficulty settings. No matter what you picked, it always gave you Easy. And that meant that a whole bunch of dedicated players played through the game on what they thought was its hardest setting, found it too easy for them, and they sent in complaints telling the developers to make the next game harder. The developers, of course, didn't realise that those players were getting served easy mode, they thought they had mastered the intended hard mode. So when they sat down to work on Terror from the Deep, they made it harder than X-COM's hard mode...

It was more tricky than that, it DID give you the difficulty setting you picked... until you eventually reloaded your game.

credburn
Jun 22, 2016
President, Founder of the Brent Spiner Fan Club
I never reload :cool:

The Cheshire Cat
Jun 10, 2008

Fun Shoe

PurpleXVI posted:

It was more tricky than that, it DID give you the difficulty setting you picked... until you eventually reloaded your game.

An even weirder version of this is in Blood, where your difficulty setting inverts when you load a save (i.e. if you picked the second easiest, you'd get the second hardest, and vice-versa). I'm wondering if it slipped by because they did the majority of their testing on the middle difficulty, where the bug doesn't hit because it maps to itself.

AKA Pseudonym
May 16, 2004

A dashing and sophisticated young man
Doctor Rope

Taeke posted:

That's my experience with games in general.

Like, from reading about them on SA I know Bethesda games are buggy messes (especially before they get patches) but I never really encountered any at all that were memorable, unless they were the result of me modding them to hell and back. Same with CP2077, and now with BG3.

If I hadn't been online reading about the games and you'd have asked me, I'd have told you the games were fine. What bugs? No, nothing weird happened in the hundred of hours I put into Skyrim, why do you ask? Same with the Fallout games and whatever.

Sometimes I'm jealous.

I was actually kind of happy to see that a dragon skeleton had appeared in Whiterun for no reason. Made me feel like I wasn't completely missing out.

Sentient Data
Aug 31, 2011

My molecule scrambler ray will disintegrate your armor with one blow!

zedprime posted:

Reading garbage after an unhandled exception and trucking along to get a passable result is error tolerant design.

That's not design, it's pure dumb luck. It's literally no different than saving /dev/random into a .wav file and praising winamp on its built in musical theory knowledge

Jothan
Dec 18, 2013
Remember how encountering Missingno would permanently corrupt image data on the cart? Modern systems crash to prevent that kind of thing from happening. Missingo was a Pokémon made from data in an area of the memory that was never supposed to be touched.

Pokémon Red wasn’t made with error-tolerant design, it wasn’t capable of recognizing errors. The gameboy itself couldn’t really crash unless the stack pointers got messed with.

1st gen Pokémon in particular was so badly put together that after the whole system was optimized for gen 2, they could go back and fit (optimized) gen 1 map and Pokémon on the same cart as a bonus area.

Maximum Tomfoolery
Apr 12, 2010

Missingno was actually save-safe, iirc, but it was only one of many variations of glitched pokemon, and several others could ruin your save file.

Tunicate
May 15, 2012

According to rumor they stripped out a lot of the error handling and debug tools in gold and silver to fit in the original areas.

Jothan
Dec 18, 2013
What was happening is the game would just say “read the bytes here. Adjust the pixels here accordingly, because that’s the sprite.” and the game would make Missingno real hosed up because there wasn’t sprite data there, and the game was not checking that. The whole strip of Cinnabar was like that; it’d go “read this byte for the pokemon’s level” and that’s why you’d see lvl 147 Pokémon there

The system people seem to think was in place would try to make a “pokemon” by converting invalid data into a functional pokemon entry, and people are basing that off a well known set of glitch pokemon that worked- but there are plenty of glitched encounters that would not. The game would go “read these bytes for indices for the Move Table” and ultimately if those bytes happened to be valid, the glitched pokemon would usually be functional, and if they weren’t your game was hosed!

e: read this Let’s Horribly Break Pokemon Blue

Jothan has a new favorite as of 01:47 on Aug 27, 2023

Adbot
ADBOT LOVES YOU

Maximum Tomfoolery
Apr 12, 2010

That LP is a very fascinating from a non-programmer's perspective. It's easy to look at software now and think that errors are causing the game to crash, but crashes themselves are actually deliberately programmed safety features. They're what happens when the program doesn't know what's going on and can't be sure things aren't going to get corrupted in a major way, so shutting down is the safer option.

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply