7 ms·
Show HN: Automatically detect and patch walking-dead states in Sierra games
Hi HN, I've become lazier in my old age and struggle to replay my favorite Sierra games from the 80s and 90s because I keep getting into those situations where I need an item from 3 acts ago, I have no save game handy, and now I gotta make dinner.
So I'm building the Lucasartsifier: a static analysis tool that decompiles Sierra resource files, automatically finds those states, automatically generates code to prevent the player from getting into those states, then emits loose patch files that can be placed alongside the original game resources. There's no game-specific code involved; all the logic is generic, though of course Sierra introduces new idioms and mechanics in every game so every new supported game needs a bunch of engine work.
So for example in Leisure Suit Larry 2, the patched game prevents you from boarding the cruise ship until you have both the sunscreen and the Grotesque Gulp. Without them you die on the raft 3 play-hours later.
So far this works on Leisure Suit Larry 2 (SCI0), King's Quest 4 (SCI0), King's Quest 6 (SCI1.1), and Laura Bow 2 (SCI1.1). I'm currently working on King's Quest 5 (SCI1.0).
This is work done with Claude -- I do the design and playtesting and it does the rest :D
Any feedback, play testing, and suggestions would be great!
- deleted 29d ago[deleted]
- vunderba 29d agoNice job! I actually wrote a blog article about my love/hate relationship with KQ4 in particular - with a particular shoutout to my incredible irritation with the whole golden bridle scene [1]. Without spoiling anything, are you accounting for stuff like a player saving in the Minotaur's Labyrinth without a... shall we say crucial item necessary for a trap scene? [1] - https://mordenstar.com/blog/kqiv https://mordenstar.com/blog/kqiv
- wkfauna 29d agoYes I'm with you on that bridle! And you can only get it by typing "look down", which is infuriating! I'm also discovering, working on KQ5, that it is really evil in allowing you to use items in certain ways that look fine at first (the action succeeds), but bite you in the butt later because you needed that item for something else and there was an other option you could have used. For example, throwing the leg of lamb at the cat to chase it away will work... but then good luck surviving the mountains. I love these games but MAN. In KQ6, the patched game prevents you from returning to the Labyrinth entrance unless you hold everything you need for inside. Stepping on the mountain will just not work. So you can save inside... you should be "safe" at that point (as safe as you can ever be in a Sierra game, lol).
- vunderba 29d ago> In KQ6, the patched game prevents you from returning to the Labyrinth entrance unless you hold everything you need for inside. Stepping on the mountain will just not work Nice~ > throwing the leg of lamb at the cat to chase it away will work... but then good luck surviving the mountains. Agree! Some of the KQs will even give you a few points (not the maximum, since it’s not the optimal action) for doing something that’s considered “good,” even though it puts the game into an unwinnable state later on.
- wkfauna 29d agoThat's evil! But it does make me feel a little better about not using points as a proxy :D
- dafelst 29d agoThis is so cool, what a great project! I remember using a single save game and soft locking myself in Space Quest 2 by not getting the glowing gem, and in Space Quest 1 I think by not picking up the shard of broken glass, and being so pissed off about having to replay. The LSL dip and sunscreen issues you fixed were particularly egregious, by that point I feel like they should have fixed things. While Sierra should absolutely be recognized for spawning an entire genre of games that were legitimately fun, it is crazy that they were fine with shipping games with these broken states, when it was eminently preventable.
- wkfauna 29d agoThanks!! I mean, I can kiiiinda see it as a design philosophy... It does make games harder and make them feel higher stakes. What really gets me is some of the later games that look like they would be safe, but aren't. For example Gabriel Knight 1 has a day structure that looks like it would prevent you from getting stuck... but it doesn't, you can trigger a day's end without getting everything you actually need. That's just, like, evil haha
- kelnos 29d ago> it is crazy that they were fine with shipping games with these broken states, when it was eminently preventable. Given what I know about Sierra (nothing first-hand, just impressions based on what I've read), I would not be surprised at all if this was entirely intentional.
- 6581 29d ago> it is crazy that they were fine with shipping games with these broken states It was an intentional part of their game design.
- a96 28d ago"We know that you are brave, but you might want to save."
- shoo 29d agotangent: this unfortunate design choice by the old Sierra adventure games has been discussed a number of times on the Designer Notes podcast, focused on game design [1]. Soren opens each discussion by asking the guest which is the first game they remember. [1] https://www.idlethumbs.net/designernotes/ https://www.idlethumbs.net/designernotes/
- catoc 29d agoThis is so cool - very impressive! Read the whole ReadMe to understand how you pulled this off. Halfway through, I shiver, wait a minute I recognize this writing style… I would have so preferred to remain impressed and excited by what a fellow human came up with - sometimes I really hate what AI is taking from us
- wkfauna 29d agoIt's true that Claude wrote most of the Readme... But the design is human :)
- catoc 29d agoThe readme and 100% of the code - according to that readme - was also AI. If you came up with the design of the parser for the decompiled graphs, then I’m glad to still be impressed. Don’t get me wrong, it’s a cool project… and I was actually impressed and excited
- no-name-here 29d ago> 100% of the code - according to that readme - was also AI I only briefly scanned it - are you referring to Claude being an extensive commit contributor?
- catoc 29d agoYes, as in 100% :-(
- cadamsdotcom 29d agoWhy not rip and replace the parts of the readme then? It's like making a beautiful chocolate praline and shipping it in a shoe.
- kelnos 29d agoMaybe don't feel entitled to the author's time? Perhaps he'd rather spend time playing the games that the software patched, instead of spending time doing writing for you.
- thom 29d agoTalking of being softlocked on a boat crossing: https://www.kensblog.com/update-on-our-journey-through-the-nw-passage/ https://www.kensblog.com/update-on-our-journey-through-the-n...
- snipem 29d agoThis is great. Would you provide the changes as patches like they do for romhacks? This is some true quality of life improvement when playing these games and have to make dinner.
- wkfauna 29d agoThanks! No, this needs your own copy of the game, like eg ScummVM does. You run the tool on it and then you can point ScummVM/DOSBox to the patched directory.
- snipem 29d agoTrue, but it looks for me like a tool that can generate a „nice“ path for every game. The path is true for every instance of the same game. If the path is done once, everyone can benefit from it. So a patch would not bundle copyrighted material, only the changes made from your tool that anyone else would end up with anyway. It is just a convenience thing. One would need the path, not running your tool over and over again for everyone wanting to play the sane version of the game.
- Asooka 29d agoOr the author could get in touch with GoG, who currently distribute several classic Sierra games. I'm sure they would be happy to offer patched versions.
- bsammon 29d agoThe discussion here reminded me of the "Cruelty Scale" (https://www.ifwiki.org/Cruelty_scale https://www.ifwiki.org/Cruelty_scale) It was originally created specifically in relation to text adventure games, but seems appropriate to a broader range of game types. The rankings are based on criteria like how far the game lets you go after making a get-stuck choice before you realize you're stuck, and whether that realization comes with clear information about what the wrong choice was.
- johnxianren 29d agoThe delay is the real killer. You don't realize you're driving off a cliff until you’ve already hit the ground.
- disillusioned 29d agoAha, but there's an added dimension to this Sierra-branded cruelty: A young 8-year-old me, playing Police Quest for the first time. Sits through the briefing. Gets the gun, the ammo, the briefcase, from the locker room. Grabs the car key. Heads out to the parking lot, gets in the car, starts driving... and immediately dies: "you failed to perform the prescribed vehicle walkaround." A bit of a "gotcha" for sharewareing the game, because said prescription was in a manual I definitely did not own (remember the games that would ask you for, say, the third word of the tenth page of the manual, as a form of DRM? brilliant.) NO PROBLEM: ASSIGNMENT RECEIVED: I WILL SAVE THE GAME EARLY AND OFTEN! Begin another playthrough. Lather, rinse, repeat. Play for several hours, carefully save scumming my way to glory: I have built a complex ladder of 10 save slots that I am slowly rotating through. Then the action gets heavier and heavier, and the saves come faster and faster, until the climax of the game, where you have the Death Angel cornered. "Radio for help." And there it says: "With what radio?" The one I had left back at the station, I don't know, 10 hours ago? But that's okay, because I can head back to the station and grab it from one of my convenient saves! No, no I cannot. I have over-indexed and let fear win the day and save scummed myself into oblivion. The earliest save is in a walking-dead state as well. I am toast. I died a bit that day. A painful lesson for an 8-year-old to learn. As Bennett Foddy says in his Getting Over It soliloquy, "When games were new, they wanted a lot from you; daunting you, taunting you, resetting and delaying you. Players played stoically. Now everyone’s turned off by that."
- chrisjj 29d ago> Room art (PIC/VIEW) and obstacle polygons are read too, since some gates are geometric and exist nowhere in the script. Anyone got an example? Not counting bugs such as the floor gap in the SQ2 start room.
- wkfauna 28d agoThe volcano at the end of Leisure Suit Larry 2. The elevator door opening after you drop your bomb into the crater is handled in the PIC, not in the room script. So the game ending condition is essentially invisible if all you look at is the scripts. Also in LSL2, nothing in the script tells you that you can't dodge the KGB agents on the beach by walking around them.
- chrisjj 28d agoGreat. And the elevator door is operated by script?
- wkfauna 28d agoNo, the elevator door is a boundary that is an obstacle in the PIC, until you drop the bomb and it becomes walkable.
- chrisjj 28d agoAnd script is what sets it to walkable?
- wkfauna 28d agoYeah so here's the chaining, I went back to look at it. The door is a sprite, declared in the VIEW, that is in the way of the strip of elevator shaft (declared in the PIC) that you have to step on in order to exit from the volcano (room 82) to room 83, which is the beginning of the endgame. If you just look at the script, the fact that you can't just walk into the shaft is not visible. Once you've caused the explosion, all that happens is that a variable is set called causedEruption, and the door animation happens. Nothing else other than a look message uses the value of causedEruption in the script. So before we added in the VIEW and PIC files, the engine thought that the endgame was free once you stepped onto the volcano crater. The PIC file is what tells you that that strip of the screen matters (it's the exit), and the VIEW file is what tells you that the door (a sprite) initially blocks access to it, and once it becomes open allows access to it. So the engine had to look at the VIEW and PIC to deduce that causedEruption was the flag that mattered, which meant that the items you have to use to cause said explosion were needed for the endgame.
- shidesheng 29d ago[flagged]
- matheusmoreira 29d agoFor those wondering just how pervasive this is: https://tvtropes.org/pmwiki/pmwiki.php/UnwinnableByDesign/Sierra https://tvtropes.org/pmwiki/pmwiki.php/UnwinnableByDesign/Si... https://tvtropes.org/pmwiki/pmwiki.php/UnintentionallyUnwinnable/Sierra https://tvtropes.org/pmwiki/pmwiki.php/UnintentionallyUnwinn...
- xnorswap 29d agoWas the idea that these were incredibly complex and convoluted puzzles that you'd be expected to "solve" by playing over and over until it was completable? You'd expect one or two of these things to slip through by mistake, but so many indicates it was a bizarre but deliberate design decision?
- wolfram74 29d agoI'm not sure how it became the norm in text adventure games, but for platformers part of it was a hold over from games being designed to be quarter eaters in arcades. Kids that played those became adults that made the next ones. I /suspect/ that a similar thing has happened with the kids that grew up on the N64 and gamecube had four player local coop as the ceiling and now lots of games that probably could have more than 4 players at a time (albeit with balance probably thrown out) are capped at 4. Looking at you, concerned ape :|
- Boxxed 29d agoThey weren't even complex or convoluted. It was just a quiet, "Fuck you, you didn't think to try picking that item an hour ago so now you have to restart."
- rasz 28d ago> "solve" by playing over and over nah, you were supposed to buy official Hint Books https://www.sierragamers.com/hint-books/ https://www.sierragamers.com/hint-books/ or call 0-700 tip line. This cruel design printed money.
- miek 29d agoAs a kid, I owned Kings Quest 3 and 5 (side note, KQ5 was available on NES). Both are in the cruel category, and I never met anyone who came close to beating them. They were fun to play occasionally, but the most fun was had by showing to friends and letting them play (everyone was blown away). Sierra operated a 1-900 tipline (cost $0.75 per minute or similar). I can't imagine anyone beating these games without those tips or tips from a magazine.
- jddj 29d agoI remember in Kings Quest 6 you can meet a guy early on in the bookstore which becomes relevant (but not critical?) right at the end. I never knew how relevant though, as the time I played it through right to the end wasn't one of the times when he'd happened to be in the bookstore early on. I guess that's not enough of a dead end to block progress. Maybe it'd be enough just to know what happens in the castle if Prince Alexander had befriended him. Otherwise I guess I'll carry that unresolved thread around with me for another ~25 years. Edit: went looking for spoilers and yeah, alternate ending which admittedly sounds better than the one I got
- wkfauna 28d agoI played KQ6 as a small kid who could barely speak English, and again ~10 years later as a grad student. The day I stumbled on the long ending and found myself in the Realm of the Dead still counts as one of the most mind-explodey things that ever happened to me.
- jddj 28d agoI'm a native English speaker, but I was a young kid as well and so I remember learning a lot of the puns and wordplay in English much later on in life after first seeing them in that game. I'm sure another playthrough would reveal even more. "Stick in the mud", "Wallflower", those sorts of thing.
- jonathanlydall 29d agoGames used to often be brutally unforgiving. If you hadn't saved recently and you died (or inadvertently made the game unwinnable without knowing), tough luck, so for some games I'd save regularly "just in case", even if saving was relatively slow. I was somewhat astonished when mid/late 2000's I was watching a friend play a game (on a console I think) where if you missed a jump over a bottomless pit, instead of you going back to your last save or check point, your character was right back to just before the jump and you could try again instantly. One of my very favourite games of all time is Star Control II and I was thrilled when Jimmy Maher did a review of it [0] (and then felt a bit upset that he essentially said he felt it was overrated). One of his criticisms which I felt was very fair was that the game had a hard in-game time limit, and although the warning signs are obvious in retrospect, until you actually hit it you don't realize it's there, meaning that your fate could have been sealed hours and hours before the actual time limit because there was not enough remaining time to travel to the places needed to win and you were actually walking-dead for that period. However, I suppose it makes the next play through easier as you'll know more of what to do. [0]: https://www.filfre.net/2018/12/star-control-ii/ https://www.filfre.net/2018/12/star-control-ii/
- a96 28d agoIn (real) roguelikes, if you die you get to start from the beginning with a new character. Saves are only for when you want to continue the game some other time.
- smrtinsert 29d agoYears later, I appreciated the ability the get stuck in Sierra games. It makes each decision or moment just that much more important. Leave no stone unturned or thought unthunk!
- bhickey 29d agoAte the pie? You're gonna die.
- Boxxed 29d ago100% the only non-trivial useful application of formal methods I've ever seen
- h2aichat 28d agoI will have to install back my old games !!!
- sunir 28d agoI'm still traumatized from Space Quest I because I didn't grab a broken glass from the windshield of our crashed spaceship before entering the cave with the laser. It's been 40 years. I vote wkfauna for President.
- bckr 28d agoThis is just very cool. Thanks for sharing.
- qarl2 28d agoThis is wonderfully delightful. I wish I'd thought of it. I am exploring decompilation - MAME ROM to idiomatic JavaScript. It's going pretty well - the LLM does a good job translating from one language (machine) to another (JavaScript) which I guess is how the LLMs got their start. Does your input have symbols to assist understanding, or do the LLMs have to work it out for themselves? Warning: self-promotion: https://github.com/qarl/arcade-js https://github.com/qarl/arcade-js
- wkfauna 28d agoThanks! I use sci-tools for the decompilation. It produces a LISP-ish S-expression source. I also extended it to produce a JSON AST.
- qarl2 28d agoAH. And I see that sci-tools has access to English derived symbols from the classes and methods. That answers my question - whether your system is generating novel symbols.
- resetneac 28d ago[flagged]
- foobarian 28d agoWarning: this whole thread is full of spoilers!! :-D
- sirtaj 28d agoI remember being mostly okay with this level of cruelty when this was one of the few games I had available all summer, but I tried to play some of them again as a middle aged guy and I couldn't believe I had put up with this. This is one of those so obvious it's brilliant ideas and a lot of people are going to be grateful. Thank you.