Emily Short, A Novel Approach to IF Conversation, Fairy Tales: Play It Already!

Interactive Fiction
John Cater, Rob Dubbin, Eric Eve, Elizabeth Heller, Jayzee, Kazuki Mishima, Sarah Morayati, Mark Musante, Emily Short, Adam Thornton, Ziv Witie

Disclaimer: this one isn't a review, but rather some designer's notes on Alabaster, a new interactive fiction project.

For a couple of years now I've been working on a tool to make it easier for me -- and other IF authors who use Inform -- to construct compelling conversations that don't feel like clippings from the Dialogue Tree.

Here are some things I hate about typical dialogue trees:

1. They're static. Every time you want to have a conversation with someone and re-ask some question, you have to go back through all the same steps as last time.

2. They're repetitive. The content usually doesn't change much.

3. They're player-driven. The player says something, the NPC reacts. While that's fine most of the time, it produces the sense of a pretty dull character on the other side. The NPC never moves the conversation in a direction of his choosing.

4. They're modal. There's no context for the NPC to react to behavior that occurs in front of him, because we're not in Talking Mode. When we're in Talking Mode, we can't do anything else.

Now, not all of that is true about every dialogue tree, and lots of games manage to get around at least some of these problems, but overall I prefer a completely different approach to structuring conversation that produces a sense of context, both emotional and topical, and that makes an NPC with an agenda as easy to implement as one who just stands there answering an encyclopedia-worth of trivia questions.

The technical aspect of the problem is just part of the fight, though. The other half of the problem is a problem of content generation: a big conversation needs lots and lots of writing. And lots. Not only that, but you code in the ways that each piece of dialogue relates to all the other pieces, and that tends to turn into very dull, fiddly scripting work. Boring to do, painful to debug, and simply way more work than most IF authors want to deal with.

I've tried various ways around that. For one of my previous games I had a perl script that converted something like a branching screenplay into actual code. But it was still awkward, and it still took a lot of hand-modification.

What I really wanted was something that would make conversation coding more like a natural process -- like sculpting. Not sculpting in marble, but sculpting in clay, where you keep adding new little bits onto the surface. (Maybe you can tell from my description that I haven't sculpted anything in clay since 7th grade.)

What I wanted was to be able to play my game and then write in new dialogue that would go exactly at whatever point I'd arrived at in the story.

Alabaster is an experiment with that system. October of last year I distributed a short game with just a hook. You're the huntsman. You're out in the woods with Snow White. The Queen has told you to bring her heart back in a box. You've got a plan for tricking her... only Snow White seems like she might be bad news herself. What do you do?

Over the next few days, other IF authors played this game and, whenever they came to a spot in the game that needed something, they added their own elements to the conversation. Some contributed just a couple of exchanges, other whole major plot branches. They mailed in the generated source and I added it to our compilation. Different collaborators had different ideas about what Snow White really was -- but that actually suited (in my opinion) the ambiguous feeling we were going for in the early phases of the game.

After about a week of this, I closed the collaboration stage and started editing the results into some kind of finished shape with actual endings (eighteen, in the end). Daniel Allington-Krzysztofiak came aboard to provide illustrations, introducing another layer of ideas about just how we imagined the princess.

The result is an odd little fairy tale, light on puzzles, about relationships and identity and a few elements that I really never anticipated.

What will you think of it? I don't know.

N.B.: Like most interactive fiction, Alabaster requires an interpreter to play. We link to several above for different operating systems. Even if you already have a Glulx interpreter for the Mac or Windows, you may want to download the latest, since the ones linked above are optimized to play Alabaster at the best possible speed.


Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Hmm... I'll have to give it

Hmm... I'll have to give it a try. It occurs to me that both Ellen Datlow and Kathryn Kramer should be interested in this.

Does this really belong here?

No offense, but should a game's designer really be the one submitting a piece about it on this site? Shouldn't somebody else write it up? Does this post now mean that any PTT-subscribing designer can put up an article about their own games, as they please?

I realise that, as a collaboration, this isn't pure self-promotion, but still, it doesn't feel kosher.


So long as the piece is clearly labelled for what it is, I don't see the problem.

online conversation

Its a very rare thing to have an enjoyable conversation with AI, espcially one that lasts for more than 90 seconds.

I'd love to see us get there.

The poster seems to be making his converstaion writing 'open source' as a means of improving it. In which case, your a.i.'s conversational ability is only as good as your community.

Neat idea though!

not available for download

I tried to get this game, but it appears it has already outgrown its free hosting arrangements. I found the message, "The free EarthLink member website you are trying to visit has been so popular that it has exceeded its monthly traffic allotment."

Perhaps someone could set up a torrent? It sounds fascinating.


I put up a mirror of this at since the download is broken atm. Really enjoying playing through the different endings atm! It's really impressive :D (and spooky)

I've put a copy of the

I've put a copy of the webpage at

for the time being, since the mindspring site is over quota.

Emily Short

Isn't the perspective of an

Isn't the perspective of an 'entertaining' AI, kind of off base in itself?

I mean, in real life when you talk to someone, do you expect to be entertained by them? There may be a bit of an irony here, in that even if you had a realistic AI, as a player your not acting realistically yourself when engaging the persona. It's not really acting how you would when talking to someone. And indeed if you start critiquing real people for how 'realistic' they are, you might find their 'AI' is flawed too. Plenty of people have told me the same story they've told months before, as if I've never heard it before. Or they tell the same stories again, simply to relive a shared memory between us. Not to mention all the errs, buts and umms that people use, but you never see in crisp, printed texts.

Perhaps it's more a matter of making personas which are 'realistically' flawed in just the right way for that persona?

Sure, but you know what they

Sure, but you know what they say, reality makes bad fiction. All the people in the movies are more interesting than real people. That's why our superheroes have impossible muscles, for instance. Art is always like that; realistic does not look real, because in reality we filter so much data. Art is always closer to what we remember of reality, or what we imagine reality will be. That's how smileys work.

Get seem to get the game to work.

I'm using Linux, and I compiled the latest Zoom and all, but when I try and run it I get the following message -

$ zoom Alabaster.gblorb

INTERPRETER PANIC - This blorb file does not contain an executable Z-Code section (PC = #0)

What am I doing wrong?