I wanted to submit three queen entries to IFComp this year but only managed two: The Queen’s Menagerie and Mirror and Queen. Although both involve queens and have thematic similarities, they aren’t directly connected and the two queens were never intended to be the same person.
They do share one structural element: neither has multiple endings. I know some people believe that meaningful interaction involves changing a story’s outcome. Naturally I disagree. In fact I think people who put forward that opinion often disagree, since it’s not uncommon for them to respond well to puzzle games whose endings are always the same. The difference is that puzzle games resist your attempts to advance the plot: first you have to overcome the puzzles. This involves effort, and the player is therefore given a sense that they’ve contributed something, even if they don’t change the story’s course.
Remove the puzzles, however, and players still want resistance. Being able to change the ending means the story is resisting on some level and your choices are what tip the balance. But I don’t think multiple endings are a prerequisite for puzzleless games to be meaningfully interactive. I also don’t think being unable to change the ending automatically turns the text into a meditation on fate versus freewill (although that is one use for the technique). What it does is simply shift the interaction’s purpose into another channel.
In The Queen’s Menagerie, the interactive elements echo the actions taking place in the story and require the player to participate. In Mirror and Queen, the interactive elements are the very means through which the story is occurring. Players will see the same beginnings and endings in both stories but get different middles; in Mirror and Queen, every single paragraph between the first and last will be different.
If players want multiple endings or puzzles, these two queens will probably not change anyone’s mind. But who knows, maybe they might. I don’t mean to disparage multiple endings or puzzles with my comments here. They have their purposes and can be employed very well. I’m just describing what my own mindset was when I wrote these entries.
The Queen’s Menagerie
Texture came first and The Queen’s Menagerie came second. When I saw how Texture worked, I kept asking myself how someone might write a story where its drag-and-drop mechanic served a narrative function. This is the story I wrote to try hitting that goal.
Some reviews have erroneously mentioned the “verbs” that a player drags across the screen in Queen’s Menagerie. Texture is indeed built with the premise that verbs will be listed as buttons at the screen’s bottom, and that players will then drag these buttons to apply them to targets in the text, but there aren’t any draggable verbs in Menagerie. Draggable verbs… I’m still toying with ways to implement that idea. But draggable objects — physical objects represented by the buttons that the player moves around — seemed to pair naturally with the mechanic.
The player can drag two things in Menagerie: keys and foods. Usually the keys are lifted and placed into physical locks and the foods are lifted and placed into physical mouths. There are some exceptions with figurative actions instead, but the concept behind how the mechanic is being used remains the same.
Thing is, Texture wasn’t quite designed to handle this interaction style. For example, normally when you drag a button like “eat” and apply it to a target like “steak,” the button absorbs the target to display the phrase “eat steak.” Perfectly reasonable. But if you have a button that says “steak” and you drag it to feed a “lion” in the story, you don’t want the button to change and say “steak lion.”
Another issue is that buttons normally don’t disappear once they’ve been used. They stay on the page, potentially ready to be used again, until you turn to the next page. But if you feed a steak to a lion, you want the steak to vanish, since it was eaten.
One nice thing about Texture is that it produces an html file that authors are free to modify however they want. You’re not locked into using the default settings… as long as you know how to modify the html.
I’m an amateur in that department. However, I had to pick up my machete and hack through the code to make Menagerie play correctly. It wasn’t pretty, but I did it.
Not well enough at first, as it turns out.
In order to make buttons disappear after being used, I programmed them to move very far into the margins. This introduced a bug where sometimes buttons would slide off the screen once they hit a target but before they were actually dropped. This bug never broke the game, since the target was still activated and players just needed to click to keep going, but it sure looked weird.
I scoured the code to try finding what was wrong before IFComp. I couldn’t find it. I figured, well, people can still play the game, so it’s not that bad, just an occasional aesthetic hiccup. And then IFComp opened and players hit this bug, and hit this bug, and I went back and compared Menagerie to an unmodified Texture file, line by line, until I finally found was was wrong: one errant “f” in the code. Why did this “f” make the buttons misbehave? No clue. But I removed it and now the game works as it should.
I expect Menagerie fell a little in the rankings due to this bug, though probably not too much, and it’s fine, it was my fault. Maybe someday in the future, Texture will allow modifications from inside the system like the ones I made, but if not, at least I’ve learned how to finagle them better.
One last remark, neither here nor there really, but I found it curious how many reviewers described Menagerie as gothic. I didn’t consider it gothic when I wrote it, and even when I squint it’s hard for me to see it now. Just goes to show that you never know how readers will interpret something.
Mirror and Queen
Villains are usually my favorite characters. I don’t think I’m alone: stories have been retold from the villain’s perspective a lot. But in order to position villains as protagonists, major narrative events are often deboned in these retellings. For me this defeats the purpose. If you have to replace a story’s bones to try understanding the villain, then you’re not trying to understand the villain.
I love fairy tales, and fairy tales are especially susceptible to this treatment. “Snow White” hasn’t gotten it the worst, in my opinion, but “Snow White” seems to get it the most. Why would the queen want to murder her stepdaughter? Well, jealousy isn’t a good reason. I know, let’s make Snow White a blood-sucking monster. Now the queen looks better, doesn’t she. Now her attitude is more “complex.” This particular revisionist approach exasperates me. Neil Gaiman’s “Snow, Glass, Apples” is one prominent example.
I’ve been thinking about this material most of my life. When I discovered interactive fiction with its traditional second-person viewpoint, it seemed a natural fit to put a reader into a villain’s shoes. Of course it’s been done before, but I wanted to do it my way.
Mirror and Queen started out as a more standard parser game with rooms and object manipulation. Snow White was an NPC. Your main goal as the queen was still to consult your magic mirror before dispatching the huntsman, but getting to this point involved navigating the castle, preparing ingredients, performing a summoning ritual. I realized this was all pointless. The only thing that mattered was the conversation with the mirror. I jettisoned everything else.
Keeping the experience restricted to a pure dialogue between the mirror and queen means that no outside narrative voice can intrude. Focus is 100% on the queen’s thoughts. Changing the fairy tale isn’t on the table; indeed taking that possibility off the table was the idea. I wanted to write something to explore how the queen might perceive established events, something that might come close to slotting into the original story, an interactive character study. However, I also wanted to write something that was highly variable and would provide a unique experience for everyone who plays it.
Even with every player positioned as the same queen in the same story, no players will ask the mirror about the same subjects in the same order. Everyone will probe their own interests and come away with their own interpretations. In this way, although the fairy tale’s framing remains unaltered, the queen will have different shadings for different players.
There were a number of challenges to this. The foremost was that no matter what players asked about, a complete portrait had to emerge for the queen by the end, always putting her decision to murder the princess into a comprehensible context. Giving players the freedom to ask about anything in any order also required everything to make sense in any order. It’s impossible for a single playthrough to uncover even a quarter of the game’s text, but players should never feel as though they’ve missed essential information. Replays, in fact, should feel unnecessary.
This was the toughest writing project I’ve ever tackled, without a doubt. Every response that the mirror can give had to be composed to deliver an exact dose of information. Every response had to be interesting to read, nothing half-hearted, since there’s no guarantee what responses a reader will get. But the text isn’t a total free-for-all.
Behind the scenes, responses are organized along approximately sixty conversation tracks. The conversation tracks are what players can switch between at any point depending on what they ask. Asking about related topics will move the discussion down a single track until it runs out, at which point it will switch to the next related track. It’s possible to play through the entire story without moving beyond any track’s starting point. It’s also possible to play through the entire story and ignore over half the tracks. Neither approach is wrong. Most players will do something more moderate.
What the parser does is pull keywords from the player’s input and search for the most appropriate track based on which keywords are assigned higher relevance. I haven’t actually counted how many keywords the parser recognizes, but based on built-in limits that I needed to keep overriding in Inform, I know there are at least 3,000. Most keywords are spread through the mirror’s responses to hopefully guide the player down fruitful lines of inquiry.
Implementing this was a nightmare. It wasn’t just a matter of implementing all the keywords, but implementing them in order of importance in relation to the conversation tracks, and then, the hardest part, writing every response with attention to how it would fit into the narrative, since every response had to fit everywhere. (Not to mention all the typical Inform implementation business.)
I could’ve made this easier on myself by using a more standard conversation framework, where limited viable topics are presented for the player to choose from. I could’ve also railroaded the story more, implementing fewer keywords, which would’ve forced the player to ask the “right” questions at the “right” time or else receive error messages. This is conventional in ASK/TELL systems. It also makes ASK/TELL cumbersome and scares away new parser players when they find that all their input is being rejected.
For experienced parser players, on the other hand, implementing 3,000 keywords and accepting every input poses a different problem: it’s too much freedom. Many players have been conditioned to expect error messages, and they rely on these errors to establish the parser’s boundaries. When the parser never spits out an error, they get suspicious that their input doesn’t matter. Mirror and Queen has the potential to flow without interruption from beginning to end, but I actually went back and added some errors for players to find if they try to test the parser. You can’t “Z” your way to the end, for instance. Your input does matter, and you have the ability to change the conversation’s course during every turn.
Now 3,000 keywords may be a lot, but it’s still not enough to cover everything players might ask. You’d need to implement the whole dictionary to do that. Nor would it make sense for the mirror to entertain a player’s every whim. Although you’re not bound by a conversation menu, you are bound by the narrative: you are the queen, the mirror is the mirror, and participating in their dialogue requires a certain degree of roleplaying. Most topics would be irrelevant to discuss — such as samurai, styrofoam, yoga, the list could go on forever. When the player asks about an irrelevant subject, the mirror will respond by saying it’s irrelevant and pivoting the conversation back to more pressing concerns. If the player persists in asking about irrelevant subjects, the mirror will finally advance the conversation on its own.
This design choice is ripe for abuse by players who aren’t interested in roleplaying. They can type nonsense and the story will eventually reach its conclusion because the mirror has pushed on without them. But doesn’t this ultimately mean that a player’s input doesn’t matter? No, because a player who types nonsense is choosing to surrender their control to the mirror, and the mirror is not impartial. It has its own motives for engaging in the discussion.
Meanwhile, any players who do want to participate will always be able to take back the reins, and the mirror constantly suggests new threads for players to try if they’ve gotten lost along the way.
What I’ve just described is the mechanic I’m happiest with. The mirror’s technical inability to respond to every question represents its in-story refusal to deviate from its own agenda. It bends the player’s words toward its purpose, which begins to touch on another issue: where the dividing line falls between mirror and queen. Whose thoughts are really whose?
If you compare the mirror’s tone at the start to its tone at the finish, you’ll notice there’s a difference. It gets nastier. Programming this involved writing dual responses for each conversation track, one “polite” and one “insolent,” in addition to arranging some responses so that players were more likely to hit them at certain moments. (The polite responses can still be pretty insolent.) My hope was that it would feel as though the conversation was evolving to become more negative, and that players would sense the escalation.
During beta-testing I discovered this wasn’t happening. Testers picked up on the mirror’s negativity, but not on its escalation, and without that element it’s harder to know that you’re moving forward. This prompted me to put direct milestones into the story: the mirror tells you at the beginning that your time is limited, it mentions when you’re halfway done, and it warns you when the end is near. That’s how it was programmed when I entered it into IFComp.
Nevertheless, when the competition opened and people began publishing their reactions, it was clear that many players still didn’t believe they were making progress. A few reviewers thought the game had no ending, which suggests they either skimmed the halfway-done announcement or never got that far before quitting. Perhaps they thought the text was procedurally generated (it’s not). Other reviewers who did reach the end found it abrupt, which meant that the almost-done announcement wasn’t registering either. I never considered these milestones subtle, but the reception spoke for itself, so I updated the story with an explicit countdown five turns before the ending. This seems to have helped. Subsequent reviews haven’t expressed as much uncertainty.
Determining how long the experience should last was another issue. I wanted players to have time to ask about a variety of topics, but also to feel that their time was brief and borrowed. I hoped feedback from beta-testing would allow me to settle on a general estimate. Well, some beta-testers took over an hour to finish, which was much longer than I anticipated, but others finished in less than fifteen minutes. One tester finished in seven, which seemed dangerously fast. Brief was the idea, yes, but not that brief. I hesitated to reduce the playtime further and risk anyone swallowing it in a single gulp.
After IFComp started, I still kept going back and forth about what length would be best. Reviewers never seemed to describe it as too short. Instead they were more likely to mention that it “didn’t overstay its welcome.” Which meant that it was threatening to overstay its welcome, which meant that it should have been shorter. At last, a few days before the comp ended, I updated the file one final time to trim the length. This was done for posterity more than anything else, since voting was practically over by that point, but I wanted the condensed version to be what went into the archive.
When I wrote Mirror and Queen, I knew it would disappoint anyone who defined “interactive fiction” strictly as an Infocom-style text adventure. I also knew that, even for people open to experimental parser games, it would be frustrating if they wanted to take action to change the story. But I felt invested enough on a personal level to proceed with the project. Its open-input structure was specifically designed for people outside the interactive fiction world. My goal was to create something that readers unfamiliar with the parser could play, understand, and finish without getting stuck. That this approach might strike other players as aimless was an inevitability I had to accept at the outset.
Whether Mirror and Queen is a success… really, I’m not sure. I think it will take more time to see whether it’s welcoming to new parser players or whether it just slips into history. Behind Taghairm, though, it’s the most focused interactive fiction I’ve written yet.
The Queen’s Menagerie and Mirror and Queen both landed about where I expected in the final rankings, which is to say: in the middle. It occurred to me early on that Menagerie might place above Mirror, which is a circumstance I thought would be quite silly, and now that it’s panned out that way I think it’s quite silly indeed. I’m not precisely upset by that ordering, since people will like what they like, after all, but it does serve as a reminder that there’s a gulf between the public’s taste and mine.