Randomized escape (Yvan Uhlmann, I7) is a procedurally generated survival horror game; an amnesiac protagonist explores an abandoned city and is menaced by creepy things.
The download version is an uncompiled I7 project, and the blurb says ‘encounters are randomized every time you compile the game’, emphasis mine. I’m… not sure that recompiling is going to be any different than restarting, given what I know of Inform, but we’ll go with it. Anyway, I get the sense that at least part of the idea here is ‘look at the guts of my procgen experiment’, so I’m going to count time spent looking at the code towards total playtime.
Considered purely on the player end, escape is not a great game. You have an amnesiac protagonist (sigh) who awakens in an abandoned, derelict city. Objects are strewn randomly about each room, and no room bears any obvious relation to any other. Examining certain objects triggers clues; every now and then some kind of spooky threat will emerge, sometimes chasing you to another room. Your survival feels, well, random – there’s not much you can do except for hope you find good stuff before something kills you for no clear reason. The writing seems calculated to perpetuate a sense of vague mystery that never really becomes clearer.
Now, OK, survival horror isn’t really a genre I play a lot of so maybe my instincts are off here, but I don’t think that it’s a particularly well-suited genre to IF. IF can do horror atmosphere, but jump-scares, desperate combat and panicked retreats are difficult to make work in a turn-based medium. When IF horror works, it’s generally reliant on a lot of narrative build-up. (In Anchorhead the big monster moments work because the game has spent literally hours building up to them). So I feel as though trying to make an IF survival horror game in the first place is a weird, ill-suited thing; and trying to do it with procgen is even more tricky. It might potentially work as a more resource-oriented thing: NEO Scavenger is pretty effective in a survival-horror-ish vein despite being turn-based and mostly text-rendered. But that takes a really big space and a lot of balancing work. A lot of the survival-game mood, I think, is about tactical play – about the tension of feeling that there are good approaches and bad approaches; that making bad choices will probably get you killed but that there are no guarantees. And developing play to where it supports tactical choices is possible in IF – see Kerkerkruip – but it takes a whole lot of work.
What is the procgen adding to the experience here? Well, it’s making the world seem more arbitrary and cruel, it’s making me less trustful that the hints of narrative I’m offered will add up to anything, it’s making navigating the map more difficult, and it’s making the city seem like less of a connected, real place. Some of this is, potentially, a not-bad effect for survival horror: keeping the player disoriented about the map, rather than having it as a firm thing they can hold on to, seems appropriate for the mood being aimed at here. But other elements – distrust for the narrative, the sense that no approach is really going to help me much – are really serious problems.
A big problem I have with games that lean hard on vagueness and mystery from the outset is that, very often, I don’t trust that the author actually knows what’s going on, or that it’ll be cool enough to justify all the obfuscation and hand-waving. In IF, when you’ve got an amnesiac protagonist and an abandoned world and a handful of intentionally-vague clues, it’s usually because the author doesn’t really know what they’re doing and is trying to bullshit you into thinking that they do. When I see a game that opens with smoke and mirrors, my default expectation is that play will reveal nothing except more smoke and further mirrors. And procgen heightens that sense – that the author wants to give up their responsibility for the plot, because they didn’t know what they were doing with it in the first place. So procgen takes a huge weakness of this kind of story and makes it substantially worse.
Looking at the code adds some clarity. The general shape of the game is a scavenger hunt against the clock: you win by following certain object-based clues to acquire objects that let you defeat the monsters or make your escape. (The threads of object clues are baked in, but the location of their objects is random). The Big Bad Monster will start pursuing you after 10 turns or so, so moving efficiently so as to examine lots of objects is key, and moving efficiently means mapping – but examining objects can also trigger attacks by smaller monsters that can make you flee randomly around the map, potentially disrupting your mapping effort. Winning the game doesn’t add a lot of narrative clarity about what’s going on, other than ‘it’s survival horror, obviously there’s going to be some creepy shit in abandoned environments’ – the big bad monster is called the Daughter in the code, which feels like a pretty standard survival-horror trope more than it is a plot clue.
The main things that are randomised are the map, the distribution of items within it, and when you get attacked: pretty much everything else is hand-authored content. So as design goes, this is a level-design question, a matter of designing space to facilitate certain kinds of experience. That’s one of the most thoroughly-explored spaces in procgen. But the map design isn’t really structured to accomplish any clear effect: it’s a matter of picking an already-placed room on the map, then placing another room connected to it, until all the rooms are placed. This is a method that’s convenient in programming terms; it’s not terrible in terms of player experience, but it’s not designed around that. (It’s very easy, when you’re doing procgen, to think about things in abstract terms of what how you want the code to work, rather than in terms of how it faces the player.)
So: is this interesting as procgen? Not really, I’ve got to say. Laying out a map and scattering objects around it are really common applications, and I can’t make out any unusual approaches or customisations in here. As a coding exercise, it’s fine – working through the basics teaches you a lot! But as a game it’s a pretty dull experience. 2.