The game I released in 2022 was This Old Haunted House for the 2022 ECTOCOMP “Le Grand Guignol” event. You are the skeletal host of a home improvement show, and you work with your producer and a pair of guest stars to design a haunted house that will best satisfy your viewing audience. Although this was written in Inform 7, it plays out more like a choice-based game, as the game presents you with a series of decisions to make about the contents of each room, and your decisions combine to determine the character of the resulting house.
I have some frank thoughts about the merits and flaws of this game hidden behind this text. There are spoilers; I write way too much about the game's origin. It's long.
First, let me say that I am proud of this game, because that might not be apparent from the criticism below. I set goals for my design, I met them, and no matter what other flaws it has, at least it isn’t incomplete or (obviously) buggy. Even if playing long enough to get a good ending is monotonous, a straightforward path to that good ending exists. These characteristics are enough to set it head-and-shoulders above a majority of the games for which I am credited on IFDB.
Let’s talk about those flaws, though.
I was expecting to hear this question a lot: why bother to make a game on a platform with a robust world model when I don’t really seem interested in modeling the world?
It’s a fair question; Ryan Veeder famously wrote that “the most fundamental component of the parser IF experience” is “walking around, or simply occupying a simulated space.” Despite simulating one space and spending effort to describe another, This Old Haunted House prohibits walking around altogether. The only movement to occur is when you leave the studio, ending the game. This isn’t meant to be an Inform abuse or other gimmick, so wouldn’t a proper Inform game make full use of the opportunities afforded by the language?
To answer that, I have to explain: This Old Haunted House isn’t a proper game, nor is The Exigent Seasons, my release from 2021 which used much of the same code. These are puzzles wrapped in varying degrees of extravagance. They’re not even especially good as puzzles:
You have ten switches. Each switch can be set to one of three values. Use trial and error to figure out the possibility space that these switches represent—this setup could have as many as 59,049 outcomes. Fortunately, these games reduce that range to a mere 33 outcomes. At least TOHH only asks you to find one specific outcome†, even if it’s coy about what that outcome should look like. The best ending for The Exigent Seasons requires that you get every possible outcome, and it even chides you for resorting to the “>CHEAT” command.
† Technically, you also need to pick the two main choices for each of the ten rooms, and you need to pick neither choice at least once for any room.
I feel like I should explain. In the mid-to-late 2000s, I was frustrated with the alignment systems in PC and console RPGs. This feeling had been percolating for a while, but it really came to a head in 2007: that was the year we had Mass Effect, Infamous, and especially BioShock, which dared to ask players whether they wanted to save little girls or harvest them for power-ups. Even D&D’s twin axes of good-vs-evil and law-vs-chaos seemed too reductive.
What if, instead of evaluating on one or two axes, we evaluate on five axes, each of which was perpendicular to the others? What if, instead of saving a little girl or killing her, we ask “do we let little girls play with knives, knowing they might hurt themselves but allowing them the opportunity to learn lessons for themselves and maintain their independence?” Or “if our little girl breaks the rules, but she does it for a good cause, do we let it slide for the sake or morality, or do we resist allowing the ends to justify the means?”
I’d developed a methodology for scoring questions like these for a personality test based on Magic: the Gathering colors back in 2005, but the idea of using this as the model for a morality system became something of a fascination. I spent the next decade+ conceiving a white whale project that I’m still trying to figure out, but rather than continue chasing something beyond my reach, I thought I’d start making smaller games to explore the parts of the project that actually interested me.
The Exigent Seasons was the first of those games: the player deals with a progression of crises in a fantasy city, and the game tells them what kind of ruler they were based on those decisions. A morality system, surgically extracted from the game it was designed for and forced to hang by itself. It was little more than a proof of concept. The prospect of implementing all the fantasy elements was too daunting, and besides, I wanted the player to approach these questions with a degree of detachment, so I created a frame story in which the player is hanging out with an RPG-enthusiast friend who is reading from an article in a legally distinct and non-infringing version of Dragon magazine. I’ve been in similar situations plenty of times, so now I was writing from a position of familiarity.
In its original context, the morality system is a tool for player expression and customization: you pick options to exert ownership over your character or to demonstrate a novel approach, to indulge a power fantasy or to solve problems in a way that would feel more satisfying than the manner in which they’re usually handled. Without more “game” for the system to react to, though, The Exigent Seasons just felt like that personality test again, and lampshading it with the frame story didn’t help. Players would try it once or twice, shrug, and walk away. There wasn’t enough of a story for the player to invest in to give them the intrinsic desire to achieve a particular result using the morality system.
I understood this on some level, but I tried to weasel out of adding more story by forcing the issue extrinsically, instead. “Figuring out the morality system is the point of the game,” I told myself, and so I made it the player’s objective: get all the outcomes. Rather than being a tool to identify and express yourself, the morality system was transformed into a maze of trial-and-error. Again, I was subconsciously aware that I had created a miserable and repetitive experience, and I tried to mitigate this by adding a proc-gen radio station injecting hopefully-funny song titles periodically, and by having your friend provide a running monologue about the game you’re playing, its setting, roleplaying in general, etc. The fact that I ran out of steam and stopped having him provide unique dialogue for the last third of the game should have been a red flag, but I was too impressed with the way all these systems were interacting successfully to recognize the problem. I planned to release for IFComp, but then doubts about eligibility due to the way I’d handled testing made me withdraw and publish it outside.
So much for The Exigent Seasons.
A year later, I was disappointed with the response The Exigent Seasons had received, and I blamed this on releasing in the middle of competition season. While this game’s chance had passed, it occurred to me that I could take the core systems and reupholster them with a new theme. It would be a huge undertaking, but it would give me the opportunity to make the player’s overall goal less awful, and I could focus on a smaller competition since I recognized that this still wouldn’t be cut out to compete on the main stage, so to speak. I set my sights on ECTOCOMP, and This Old Haunted House was born.
This Old Haunted House isn’t quite a twin of The Exigent Seasons. TES presents crises in a random order, while TOHH defaults to always presenting the rooms in sequence. The radio in TOHH has a little more variety, while TES’s Trev has more total comments to make than Han from TOHH has. Getting every outcome without cheating will earn you the best possible ending in TES, but that’ll get you a special game-over in TOHH. There are probably more noteworthy differences, but I’d have to review the source texts to describe them.
None of that is enough to prevent This Old Haunted House from inheriting the flaws of its sibling. From its poorly chosen scope to its counterproductive objective design, it’s still just a proof of concept that got too big for its britches. I’m glad I made it, though: it works, even if it’s not very fun. It let me polish some tools I’ll use in some future projects.
Whew. That was a lot! Now to stop reminiscing about Inform projects and start thinking about Twine again…