Script Lock podcast with me, Rob Morgan

Last weekend Rob Morgan (games writer, including for Fallen London) and I recorded an episode of Script Lock, the podcast that talks about game writing and game narrative, run by Max and Nick Folkman.

Our conversation is pretty wide-ranging: we talked about why coding knowledge can be useful for game writers (and how it’s easier than you might think to get started); about VR, an area where Rob has vastly vastly more experience than I do, so I welcomed hearing more about that; and some of the ideas in my Beyond Branching post and how different narrative designs can be combined.

Thanks to Script Lock for having me on the show!

Passion

Thanks to a cruel editorial by Alex St. John and a rebuttal by Rami Ismail, the conversation about crunch is making the rounds again.

St. John’s editorial gains extra overtones if you also look at his amazing guidance about hiring, which is all about how to leverage people’s personalities, relationships, and neuro-atypical conditions in order to maximize profit. If you’re prone to making obscene gestures at the screen when you read something bogglingly sexist, you might want to limber up your fingers before you click through to those slides.

I was already thinking about this topic because of my own recent attempt to evaluate time use, and because one of the comments about that basically said “hey, you’re incredibly lucky that get to do what you care about!” with an implication that I shouldn’t be looking into how I’m doing it, or whether I’m doing it in the most efficient possible way, because that would be questioning this god-sent gift.

I am incredibly lucky that I get to do things I care about. I said so in that post and I’m happy to say so again. But that’s not the only thing to consider.

So let’s talk about time commitment and “passion.”

Continue reading

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.

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.