Studio: a post-ante-mortem

If you haven’t yet played Studio, it’s best to go in knowing nothing! It’s usually less than one hour to play through once. This article assumes you’ve played it to at least one ending, and will spoil just about every part of the experience. Spoilers are unmarked. Reader beware!

I - Roots, or the women with paper hats

I was an anxious kid.

When I was very young, I used to have recurring nightmares—bear with me here—about a group of women wearing paper boats made of newspaper as hats and carrying chainsaws breaking into my house. Like my contemporary impression of the maenads who killed Orpheus, they were consistently sadistic and bloodthirsty. I had not yet been exposed to what either movie gore or real-life violence looked like, so in my imagination, the chainsaws would cause a person to burst into what we might now call “ludicrous gibs” on contact.

As I grew older, the fear fermented into something (slightly) more realistic. The paper hats became black ski masks, the chainsaws became either guns or knives, depending on the night, and the mostly-women became mostly-men. In my imagination, I also grew much more adept at surviving such a scenario. I had a small canister of pepper spray, but I knew that would do little against a man with a gun and murder in his heart. I devised a different plan. I grew up in a two-story house, where all the bedrooms were on the second floor. Mine looked out over an awning that shaded a small front porch. In the event of a break-in, I told myself, I would simply climb out of my window onto said awning and shimmy down one of the support poles that supported it, remaining entirely undetected. This was, of course, quite flimsy as a plan. It ignored the safety of the rest of my family, the potential of someone seeing me from a getaway car idling out front, the fact that the awning was not designed to hold the weight of a person, etc. etc. In my mind, as long as I could stay unseen, I would be safe. For much of my childhood and adolescence, this certainty soothed me.

Then, after college, I moved into my first apartment (shocker, a studio), and all of a sudden my bed was visible from the door. Fortunately, by that point, I was already in the habit of exploring and exorcising my fears through interactive fiction. So, in August of 2022, I began writing Studio.

II - Stem, or the structure taking shape

One of the first things I knew was that I wanted the game’s invasion itself to be imaginary. I wanted to mimic my own late-night half-asleep nightmare scenario planning. Thus, one of the first stylistic choices I locked in was that as soon as the intruder appeared and the horror began, the narration would switch to future tense. The final line of the game, shared by almost every variant of almost every ending, was also determined very early: “TIME TO BEGIN.” I didn’t want Vanessa to be actually doing the things described, but merely planning them based on her assumptions of who the person at the door was and what they planned to do. One early, scrapped ending idea saw her opening the front door to find that the person outside was actually Brookwood, arriving earlier than expected. Another scrapped ending revealed that she had imagined the scraping sounds in a paranoid half-dreaming state, and that there was never anyone outside at all. While I don’t consider either of these possibilities truly canon, I did decide to leave the ending open enough to allow for such alternate interpretations.

Vanessa’s apartment is not based on my own—I knew from the start mine was too small to do the kind of maneuvering and stealth gameplay I wanted. In fact, my apartment only has one really good hiding place, and when there’s only one good place to hide there’s only one good place to look. Instead, it’s based on the apartment of a friend from college. The layout you see in the game is in fact nearly exactly the way his apartment was set up, with only a few minor changes. I moved the painting from hanging across from his bed to being set up in the sitting area (and added the safe behind it). I changed his inexplicable living room wine rack into a bookcase. I added a desk and a potted plant because there needed to be something alive in that space, for goodness sake. And, purely for the sake of Inform-style world navigation, I made it so that the kitchenette, bathroom, and closet were not all on the same side of the little entry hallway. There may be other details that differ, as by the time I started writing Studio I hadn’t been to that apartment in a good three or four years, but if memory serves it is otherwise a faithful recreation.

I knew the game would include a lot of non-traditional actions and commands—not least of which were hiding under and behind things, explicitly assuming postures other than standing, and all of the ways to interact with the electronics—and would require some kind of tutorial to introduce the player to such ideas. I also knew that by the time the intruder arrived, the player would need to already be intimately familiar with the layout of the apartment, so that they could intelligently strategize ways to remain undetected. As the tutorial section ballooned longer, I began to worry that I no longer had a home invasion thriller, but an apartment simulator with a particularly left-field third act twist. I knew a single run of the invasion itself would be relatively short, and that making that section any more complex would change what the game was. I figured I had to find another way to extend it.

I briefly toyed with making it a literal time loop but, harkening back to my own nightmarish scenario planning, decided to make it an imaginary one instead. In order to make sure players actually played through multiple loops, I used Emily Short’s Recorded Endings extension to add an additional prompt to the game’s final question, which would list which endings the player had found.

It also became clear to me, as soon as I started thinking of this scenario as a story, that the home invasion alone simply doesn’t work. No one breaks into a studio apartment at random, and certainly not to just murder whoever they find inside. Even if he was going to be mostly imaginary in-universe, I had to turn the intruder from the manifestation of a nightmare into a character with motivation.

III - Leaves, or gathering influences

I decided on a mob storyline. At the time, organized crime was the most plausible explanation I could think of for an assassin to be sent after a civilian—and it came with the plus of some built-in character traits and archetypes I could choose from. Mob media itself had never interested me much—I only know of its most general tropes thanks to the parodies of The Godfather that proliferated in the media I watched growing up—but I figured that was alright: if all I knew were the broadest strokes, then the broadest strokes would be all I would write. At the end of the day, it was background to justify the much more interesting central conceit of the game. A small-time gangster getting a bit too big for his britches, a threat of retaliation, and a panicked scattering and heading into hiding—bada-bing bada-boom, as they say, you’ve got a backstory.

So, that left me to figure out the main game loop and consider the genre. For this, I turned to my own horror roots.

I had been vaguely interested in horror since at least the middle of elementary school (blame R.L. Stein), but I really started getting into horror games towards the end of 2013, when I was in high school. At that time, three veritable classics came out one after another: Outlast, Alien: Isolation, and The Evil Within. Along with the contemporary proliferation of Slender games, my love of these titles solidified my continuing love of survival horror and, more specifically, the stalker NPC. I am fully aware of the irony.

For those unfamiliar with the terminology, a “stalker” NPC does not have to be the real-life kind (though that characterization has become more common in recent years, with the popularity of indie titles such as The Stalked, and just about anything by Chilla’s Art). A stalker enemy refers to one that will wander around the map, usually randomly but occasionally working towards a specific goal or goals, until they notice the player. Once they do, they will chase the player down and attempt to kill them. Usually, you’re dead as soon as you’re caught, but there are some notable examples (not least Outlast and The Evil Within) where a player can withstand multiple hits. The way to shake them is to hide around a corner or inside a container (the ür-example is a locker) so that they lose track of you and go back to wandering.

Those of you who have written parser IF may have already noted some problems with the idea of putting a stalker NPC in one. Not only must the NPC move around independently, they must also have an in-depth world model that updates just about every turn, and react to those updates in a timely and intelligent manner. In addition, these reactions must be reported to the player in a way that makes sense no matter the context. Inform is… not necessarily built to do this. I’ll talk more about how I approached it in the next section.

Another major influence is one of my favorite horror film microgenres—cat-and-mouse games between a smart woman and a dangerous man (or men). Recent examples include Hush (2016), Lucky (2020), and Till Death (2021), while Don’t Breathe and Better Watch Out (both also from 2016—something must have been in the air) provide twists on the formula. Even if a film isn’t good, per se (I’d say only three of the five I mentioned above are), I’m still likely to enjoy it if it includes this particular contrivance—provided the mouse wins the bout in the end.

True to the ludicrous gibs of my early childhood nightmares and to the tenseness of the cat-and-mouse game, I knew I wanted the violence, when it eventually erupted, to be brutal. I wanted the player’s moments of triumph over the intruder to feel cathartic, victorious, and satisfying. Even if nothing the player could do would result in gibs flying, it was important to me that it be a sufficient power, or even vengeance, fantasy to justify the terror that came before.

Additionally, in the middle of Studio’s development, Mathbrush’s Bisquixe interpreter was released! I wasn’t previously aware of how to use CSS styling in Inform, but it had always been one of my favorite parts of using Twine, so I jumped at the chance to incorporate it. I did end up having to incorporate additional code directly into the built-in stylesheet to make the smooth color transitions work, but I never would have even gotten that far without Bisquixe’s help. I know Studio isn’t the first release to use Bisquixe, but I’m fairly confident in saying it’s one of the first.

IV - Flowers, or the state machine

When I started writing, I thought I was going to be the first to do stalker horror in parser IF. As it turned out, I was beaten to it by about a year by Joey Tanden’s I Am Prey. I have intentionally avoided playing that game until now, to prevent it from coloring my own approach, so I can’t speak to its similarities to Studio. Given that I Am Prey was written in TADS, though, I do still think I can claim the title of first person to do stalker horror with Inform (as far as I know!).

I started out with Nate Cull’s miraculous extension Planner, which allows NPCs to complete goals as defined by a relationship between two parameters. For instance, it has Alice test whether the block is inside the cabinet, and if it isn’t, has Alice pick up the block and place it inside of the cabinet. If the block is in another room, Alice will go there before trying to pick it up, etc. etc. It’s incredibly powerful!

Where it struggles is in modeling imperfect world knowledge. Alice will always know where the block is, even if she hasn’t seen it before (or if it’s moved since the last time she did). Additionally, it doesn’t remember what plans have already been completed, and won’t automatically prioritize without significant hacking. These two considerations were the puzzle I had to solve.

The code governing the intruder’s actions ended up being just about 2,000 lines long. I decided to make him a state machine; while his core actions would be decided by Planner, which plans got called would be the result of a string of rules that checked the world state and decided on his goals in a certain order.

The intruder’s first priority is always finding and killing Vanessa. If he sees her doing something or hears her making noise, he’ll head to the last spot where he saw/heard her before returning to the rest of his routine. When he doesn’t think he knows where she is, he will run through a list of other priorities in order: first, trying to crack Vanessa’s electronics, then looking for clues to her whereabouts, then stealing just about anything he can think of. If something isn’t where he expects it to be, he’ll simply skip that step; i.e., if you take the vase before he walks in, he won’t even go for it. However, if you then drop the vase and he later sees it, he will steal it before moving on. Additionally, he will react to noisy things in the apartment—turning on a faucet or the radio will cause him to approach its location and turn it off.

I’ve gotten a lot of questions in particular about what the intruder being on “high alert” does and what specifically causes it. When he first enters an area, he’ll take note of a few things: the appearance of any movable objects, and the state of anything that can be open or closed or switched on or off. If any of these things have changed the next time he visits a room, he will go on “high alert.” The effect of this is essentially that he’ll be harder to sneak around. Normally, while engaged in a relatively complex task such as entering a password or searching a container, he will be temporarily less aware of his surroundings—you can take more obvious actions within his line of sight without alerting him. On “high alert,” he retains his peripheral vision at all times.

I’ve been tinkering with this system for more than a year now, so I may have ceased to notice some of the more interesting parts of it. I’m happy to answer any further questions people might have!

V - Pollen, or the reception

It’s been gratifying to see that the reception to Studio has been mostly positive. It’s also been interesting to see what specific things people have liked about it, especially because many people pointed to wildly different things. The ending seems to be controversial, in the truest sense of the word—I’ve read both that it was a let down and that it was the game’s saving grace.

Several reviewers found the first, daytime-set half overlong, which I definitely can see. For what it’s worth, it was significantly less streamlined in its initial incarnation—not only did you have to put each thing from the dishwasher away individually (rather than in groups), but also would have had to brush your teeth and shower, complete with the ever-annoying requirement to “drop all” before doing so. With that said, I relate to the frustration of facing down an overly lengthy tutorial sequence, and may see if there’s any way to further compress it in the future.

A common critique of my earlier parser efforts was their shallow world implementation—sprawling maps, but with sparse scenery. I made a concerted effort with Studio to implement the world as deeply as possible, including everything I thought would reasonably appear in such a setting, even if it would never affect gameplay, and implementing responses for (nearly) every action I thought a player might reasonably try with each thing. It was a relief to see several reviewers praise the implementation, and even discover some of the little easter eggs I included in the more esoteric responses.

It was also nice to see people having fun with a more deeply implemented world, by searching for all of the radio stations (there are nine of them, each with a set of unique every-turn atmospheric effects) or finding different ways to kill or incapacitate the intruder (there are nine ways to do the former and six to do the latter, and I’m not sure all of them have been found).

The one other repeated critique I saw was that people wanted some further twist on the premise or extension of the world or idea. I can absolutely see that, but I think that may be a task for future projects in this world rather than for a post-comp release of this one. My primary motivation for making Studio was to explore and overcome a specific and long-time fear of mine, and I’ve achieved that. I just don’t think I have much more to say with this specific game—but I have other ideas, which I’ll go into in the next section.

There are eight “canon” endings, each of which has been found at least once, and three secret endings, of which I think only one has been found. The secret endings all involve guess-the-verb stuff that I don’t necessarily expect people to figure out. I’m hesitant to post a list of endings or guide because I think discovering them is part of the fun, but if people are interested I can whip something like that up.

VI - Seeds, or the future

Studio does still have a few bugs that I didn’t quite manage to iron out before the Spring Thing deadline. I know of one or two, and I’m sure adventurous enough players will discover more that I never encountered or even considered. Feel free to message me here if you find one! There are also a few features that got cut I might want to return to, including the ability to throw something and have it shatter in another room (which I found shockingly complex to implement when I tried!). I’m historically not great at following through on post-comp releases, but I’m also historically not great at actually finishing post-mortes, so who knows!

I’m also not sure I’m done with Vanessa’s world as a whole—it might be interesting to explore Gabby’s and Leo’s respective adventures in their own unfamiliar cities. For those curious, and in case those games never materialize, I did decide that they were sent to Chicago and Atlanta, respectively, and that neither of them are having any better of a time than Vanessa is. There’s also the matter of their parents and the shady dealings they get up to, although I suspect I’d have to become much more familiar with the tropes and trappings of mob media to do that story justice.

Believe it or not, this is not the first concept I’ve had that required state machine NPCs. I have two other WIP games, both conceived and begun before Studio, that require similarly or even more complex motivated character movement and planned action. Both of them had previously stalled because I couldn’t figure out how to do what I wanted, but I think with Studio I may have cracked the code. One of them, a little horror puzzler, could conceivably be out within the next year (although don’t hold me to that). The other, a great big murder mystery that has for years been my IF White Whale, is likely on a significantly longer timeline.

Studio is my tenth released piece of interactive fiction, in a little under three years being part of the scene. I’m so grateful to this community that’s welcomed me with open arms, taken my work seriously, and helped me grow as a writer and as a person. I tell all my friends that with IF, I really feel like I’ve found my art. From the bottom of my heart, thank you to all the writers and programmers and readers and critics and players. Here’s to everything that’s to come.

18 Likes

Yay, thanks for writing this! I was curious about the specific genesis (did the home-invasion concept come first, or did trying to build out an apartment come first and then the concept came later?), so was cool to hear how that played out for you, and the info on implementation is also very interesting – I have a couple ideas in the hopper that involve more active NPCs, so it’d be helpful to see your source code at some point (maybe next Amnesty Day? :slight_smile: )

4 Likes

For sure! (If I don’t just post it before then)

3 Likes

Thanks for sharing! I love hearing about people’s processes. Fascinating to hear about all of the work that went into the stalker’s routines–I was impressed while playing at how well he would react to the player moving items around, etc.

Loved hearing this and that you felt the game was a way to deal with a longstanding fear of yours, that’s a very cool journey.

5 Likes