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!
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.
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."
I am now thinking if you can pull off an adventure game where some puzzles require editing the save file. It would be pretty tricky to make it understandable to most people. Now that I think about it, I wouldn't put it past Deltarune to eventually have an easter egg that can only be reached from a save state, which is impossible to achieve through normal gameplay. I know it doesn't have one right now, because all the scripts have been examined in depth and nothing like that was found.
I remember I could not get the obscure nonsensical spells right in KQ3 but I could sort of skip past them to see most of the plot.
Also, past the weird bits, there isn't anything there. I have no reason to care for these characters. It feels like a vertical slice of a longer game, or a proof of concept.
DDLC has a really cool idea that should be tried again, in a way that remains consistent within its game world, with more character depth and a longer story.
That sounds like me….
Legit, the pre-car inspection and the radio killed me
Remember it like it was yesterday
Kind of interesting for humans that things like this which at the time are so painful can be amazing to reminisce about years later.Here's a friendly reminder you can play Police Quest in your browser, right now:
The scene in the park indeed requires the radio. It's not very climactic though; you're just arresting some drug dealer, not confronting Death Angel.
Most old games had a very short gameplay, single digit hours. They had to be challenging by any means so the player gets their money's worth.
There was also the conspiracy that publishers made a lot of money with selling strategy guides back in the days.
The one exception to the above was the Hitchhiker's Guide to the Galaxy game, which can fuck right off.
But also, you die aplenty in a FPS game.
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.
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.
It was an intentional part of their game design.
https://tvtropes.org/pmwiki/pmwiki.php/UnwinnableByDesign/Si...
https://tvtropes.org/pmwiki/pmwiki.php/UnintentionallyUnwinn...
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.
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?
nah, you were supposed to buy official Hint Books https://www.sierragamers.com/hint-books/ or call 0-700 tip line. This cruel design printed money.
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?
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).
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.
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
"Stick in the mud", "Wallflower", those sorts of thing.
It's been 40 years. I vote wkfauna for President.
https://www.kensblog.com/update-on-our-journey-through-the-n...
This is one of those so obvious it's brilliant ideas and a lot of people are going to be grateful. Thank you.
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
That answers my question - whether your system is generating novel symbols.
This is some true quality of life improvement when playing these games and have to make dinner.
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
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
I only briefly scanned it - are you referring to Claude being an extensive commit contributor?
It's like making a beautiful chocolate praline and shipping it in a shoe.
I love writing code and avoid using an LLM for pleasure projects, but c'mon, this kind of derisiveness is getting old and tiring.
So while writing the readme could be considered actual work, it was still not done by the human. So I don't know what your point is.
But... so what? Is it useful? Yeah, looks like it. Has someone else built it, by hand, and written a readme for it, by hand? No, I don't think so. The world is a slightly better place because this exists, so maybe we shouldn't complain so much about how it was made to exist.
Someone had a frustration, and had an idea about how to solve that frustration, but decided to use a tool to write the code for him, based on his design for how the problem should be solved. That's maybe not how I would have done it, because I enjoy coding for pleasure, but that's just me, and I can absolutely sympathize with someone wanting a problem solved with code, but not wanting to write that code themselves.
> sometimes I really hate what AI is taking from us
I agree that LLMs have not been all roses and rainbows, but in this case, an LLM has given us something that we wouldn't otherwise have.
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.
Anyone got an example? Not counting bugs such as the floor gap in the SQ2 start room.
Also in LSL2, nothing in the script tells you that you can't dodge the KGB agents on the beach by walking around them.
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.
The positional work is actually being extended right now, because KQ5 makes complicated use of it.