Spring Thing 2016: The Xylophoniad; Foo Foo

I’ve been playing more of the games from this year’s Spring Thing. (You too can play! And vote! And review, if you wish!)

xylophone_coverThe Xylophoniad is a parser adventure by Robin Johnson, a good-natured spoof of Greek mythology with cameos from Achilles, Sappho, Daedalus, the Minotaur, and assorted other crowd favorites. Unlike the author’s recent Draculaland, it’s not relying on a choice-based representation of the parser options, but in other respects the two games are fairly similar in tone and difficulty level: light-hearted, relatively straightforward puzzles that tend to involve thinking of the right item to use in the right situation; an invisiclues-style hint system complete with misleading fake hints; a sizable world map with relatively few items per room, brief room descriptions, and explicitly listed exits. The characters will answer ASK/TELL conversation gambits on a number of topics, but in a fairly old-school style: these are more like Infocom characters than like new-school NPCs, and they don’t have long memories or detailed dialogue scenes. But that suits the genre this is going for.

I found The Xylophoniad took me roughly an hour to play, and that I only had to look at the hints a couple of times, mostly because there were two specific objects whose size and shape I had envisioned incorrectly. However, a couple of the other puzzles amused me considerably, and a couple have multiple solutions. (I was particularly pleased by trggvat n oyvaqsbyqrq oneore gb tvir Zrqhfn n gevz, and also that gur gharf lbh cynl ner Terrx-gvgyrq irefvbaf bs ahefrel fbatf.)

I just recommended ASCII and the Argonauts apropos of Johnson’s last game, but it’s even more apropos here — if you liked this, you might well like that.


foofooFoo Foo (Buster Hudson of Oppositely Opal et al) was originally a game for The Ryan Veeder Exposition for Good Interactive Fiction, and in fact it won that competition. It’s not hard to see why: it’s a charming, light puzzle game that honors Veeder’s work in both style and specific content. The protagonist is the Good Fairy of the Little Bunny Foo Foo song, and is trying to collect evidence that Little Bunny Foo Foo is not actually responsible for the massacre of field mice in the area. There’s a cameo from the descendant of Captain Verdeterre; there’s a former flame who keeps a dessert shop, reminiscent of the ice cream shop owner in Taco Fiction; there are stuffed dinosaurs as found in The Island of Doctor Wooby; there’s a rock band called “They Might Be Humans,” a nod to Veeder’s contributions to the They Might Be Giants tribute compilation, Dig My Grave and The Statue Got Me High.

From time to time the narrator addresses the player directly about what you should attend to and what you should ignore.

Your detective instincts are telling you to focus on the establishments on the north side of Lumpen Lane. Of course there are businesses across the street, but you aren’t concerned with them, and therefore they won’t be mentioned.

This kind of thing is a classic Veederism, possibly seen most extensively in Nautilisia but present even in his earliest work I know of, You’ve Got a Stew Going!

I also thought this bit was a good nod to Veeder’s style:

He winks at you in precisely the way you hate being winked at.

Overall, I think Foo Foo is probably the most fun for people who know their Veeder canon well, and it’s hard for me to know exactly how you’ll respond to it if you don’t; but it felt to me like it was well enough constructed that even someone without that background might have a good time.


I’ve been trying to get a grip on how my IF support time is spent, because I feel like I’m working harder, but simultaneously turning down more requests and taking more time to get around to deadline-free requests. This is a post about how I spend that time. I realize this may seem a bit self-regarding, so please please feel free to skip on past this discussion if it grosses you out.

However, if you’re interested in community overhead and dynamics, I’m hoping that a little transparency will help — both help me figure out what to prioritize better, and help others understand either why I can’t handle their requests or where the community might bolster its resources to good effect.

So I went back through my email and social media contacts and did a little analysis on the following parameters:

  1. It covers only requests made in the past 3.5 weeks. It doesn’t look at things that people asked me to do prior to that window, whether or not I completed them during that time. (I made it 3.5 weeks rather than a month because during that extra week, I was traveling and my time use was atypical, including more student meetings etc.)
  2. It does include what you might call implicit requests, things that no one explicitly asked me to do but that are ongoing parts of my community role, such as Meetup organizing, or covering Spring Thing.
  3. It does not include regular client work or compensated speaking engagements.
  4. It includes only a very loose, rough estimate of requests for information on Twitter or through DMs — I get a lot of those, so I went with average contact numbers from Twitter’s analysis dashboard rather than trying to go through every single contact request and give it a time estimate.
  5. It does not include writing blog posts except the Spring Thing posts and posts that were answers to specific questions. I consider writing a certain number of analytical blog posts to be part of my job, because though no one pays me to do it, it raises visibility, and helps me record and think through knowledge I’ve acquired as career skills. So that work is accounted for separately.

For each line item, I recorded whether I had accepted the request, whether or not I had performed it already, and how many hours I estimate the request took (or will take when I do it). Hour estimates do include things like travel and prep time for speaking engagements, since that consumes hours that I am not able to spend otherwise.

Given how much is estimated and how much is left out, the numbers will be more precise than they are accurate, but I’m at least confident that they’re conservative: that is, I am seldom over-reporting the amount of time requested or spent.

I should also preface this by saying that this is not a complaint and it is also not fishing for thanks. I choose to spend my time this way, and if you wrote to me and I answered you, it’s because I wanted to do so and think it was worthwhile. I am just trying to figure out how to rebalance things a little so that the time I’m spending is as productive as possible and I can maximize the needs met as a result.

Here’s the breakdown from March 24 to April 15:

Continue reading

Writing Novice-friendly Parser Games

On Twitter, a teacher asked me what to tell her students about writing parser games that can be picked up and played by anyone, and therefore will make good portfolio pieces.

This is, in my view, a lot to ask, but there are two basic schools of thinking that people have pursued: the maximalist and the minimalist. (Terminology inspired by A. DeNiro talking about “new minimalism” recently.)

Maximalist: You start by asking if the player has played IF before. (Do not ask if they want a tutorial: they may say no even if they need it.) If they haven’t, give the player a tutorial. Alternatively, thread a mandatory tutorial into your first scene that at a minimum introduces examining, taking, dropping, checking inventory, movement, opening and closing things, and probably instructions on how to save and restore.

Throughout the game, you highlight keywords in output to help them find nouns that they can interact with; ideally, you provide dynamic hints and other features that will help them get un-stuck. You might even provide a suggestions mechanism to identify viable commands.

You might put in parser features that notice if players are trying to use common-but-wrong grammar, such as adverbs or attempts to include their body parts in commands (HIT DOOR WITH FIST, e.g.).

This discussion thread gets into some recent thinking about the maximalist approach.

Examples of the maximalist approach: Bronze, Blue Lacuna. Aaron Reed’s Small Kindnesses extension for Inform and his Player Experience Upgrade implement a lot of these features. These are based on Aaron’s extensive research into transcripting and first player encounters with games.

Minimalist: Instead of trying to make the player comfortable with the full expressive range and genre standards of parser IF, you’re making your game straightforward enough and well enough signaled that they don’t need to understand all that. This is solving the problem through design rather than through implementation, and it is absolutely what I would recommend to students on a short project.

Start by restricting your verb set. Pick just a handful of verbs that are going to work in this context and disable everything else.

Announce your verbs clearly at the beginning, and/or keep them on-screen the whole time. Make sure those verbs are amply implemented and always provide some result for the player: you want to make up for the limited inputs by making sure the player’s experience with those inputs is always juicy.

It may again be useful to highlight interesting nouns in the text as well.

Examples of the minimalist approach: What Fuwa Bansaku Found, Superluminal Vagrant Twin, Treasures of a Slaver’s Kingdom, You Can’t See Any Such Thing. In general, Chandler Groover and CEJ Pacian are particularly prolific in this area.

Orthogonal to the Maximalist/Minimalist choice is the question of allure — how do you make the parser game look good on screen so that people will perceive it to have value?

And there, unfortunately, Inform is lagging hard behind Twine and other options. If you have a game you can compile in a small enough space for the Z-machine, you can build a game that cooperates with Vorple, at which point you have the resources of Javascript at your disposal and can more or less do whatever you want. You Can’t See Any Such Thing is using Vorple, and so is Guilded Youth. Recent versions of Inform struggle extremely to fit anything into the Z-machine size, though — you have to disable features to get even the most default game to be small enough — so in that case it’s more a matter of using Quixe and then trying to make the stylesheet as elegant as possible. Superluminal Vagrant Twin demonstrates some effort in this direction.

Spring Thing 2016: Dr Sourpuss is Not A Choice-Based Game; Three-Card Trick


I’ve been playing more of the games from this year’s Spring Thing. (You too can play! And vote! And review, if you wish!)

Dr. Sourpuss Is Not A Choice-Based Game is a lightly puzzly piece about the destructive nature of standardized testing, the fact that a lot of challenges are really multiple-choice even if they look otherwise, how tests can encode racist standards, and how some things (such as sport) resist such handling — all bounced off the choice-vs.-parser debate. The game includes Twine-like portions mingled with other segments that involve other methods of problem solving, including typing at the very end. The About text suggests that the author means to stake out a position that will annoy people of all political stripes; perhaps I am reading badly, but I failed to be annoyed about its politics.

Continue reading

Beyond Branching: Quality-Based, Salience-Based, and Waypoint Narrative Structures

This blog post has a more than usually technical title, for which I apologize. It’s inspired by some recent conversations in which I hear people saying “branching narrative” to mean “narrative that is not linear and in which the player has some control over story outcome,” apparently without realizing that there are many other ways of organizing and presenting such stories.

There is a fair amount of craft writing about how to make branching narrative thematically powerful, incorporate stats, and avoid combinatorial explosions, as well as just minimizing the amount of branching relative to the number of choices offered. Jay Taylor-Laird did a talk on branching structures at GDC 2016, which includes among other things a map of Heavy Rain. And whenever I mention this topic, I am obligated to link Sam Kabo Ashwell’s famous post on CYOA structures.

This post is not about those methods of refining branching narrative; instead it’s describing three of the (many!) other options for managing the following very basic problem:

My story is made of pieces of content. How do I choose which piece to show the player next?

In this selection I’ve aimed to include solutions that can offer the player a moderate to high degree of control over how the story turns out, as opposed to affect or control over how the story is told.

I’ve also picked approaches that are not primarily based on a complex simulation, since those — from Dwarf Fortress to Façade — tend to have a lot of specialist considerations depending on what is being simulated, and often they’re not conceived of the same way in the first place. So with those caveats in place…

Continue reading

Spring Thing 2016: Ms. Lojka, Tangaroa Deep, Sisters of Claro Largo

I’ve been playing more of the games from this year’s Spring Thing. (You too can play! And vote! And review, if you wish!)

lojkacoverMs. Lojka is a horror Twine about a beastly supernatural killer in New York City, with some references to Babel and Rasputin, backed by some (I thought) rather effective illustrations, as well as whispery sound effects and music. Meanwhile, the text appears on the screen as though typed. I typically find that effect annoying and slow, and Ms. Lojka was not quite an exception, but it does use the interesting conceit that the narrator’s typing becomes more error-prone as the story goes on and they become less stable. At the end, it wound up in a loop of repeating text that I couldn’t seem to stop, which was narratively appropriate, so I assume that is the intended ending; but it’s just possible there’s an alternative outcome.

I didn’t respond as much to the content as to the presentational effort. Ms. Lojka mingles hints of mental illness and supernatural or mystical powers, and it finds some creepy images to express those ideas, but ultimately felt like a combination of fairly standard tropes to me.

Continue reading