Dialogue: A Writer’s Story Demo (Tea Powered Games)

Screen Shot 2015-07-07 at 2.01.44 PM

Dialogue: A Writer’s Story is the tale of Lucille, a woman who is stuck on a novel, and who goes to her friends and relatives to find inspiration and work past her difficulties. The full game is not yet available, but a demo is free to download. My remarks here are therefore necessarily based just on the two scenes provided in that demo.

Dialogue has some aspects of a visual novel — in the screenshot shown above, Lucille and her brother are talking, and Lucille periodically gets timed opportunities to choose dialogue responses. All of the text is fully voice acted. There is a bar that shrinks as you run out of time to answer, as in Telltale conversation sequences, though there are also some additional dialogue powers that come into play and allow you to gain alternate dialogue lines partway through the timed session.

At the end of your conversation with Lucille’s brother, you get a little summary of how the game thinks the conversation went: were you pushy? neutral? I have to admit that its understanding of what I was doing and why didn’t really match my own.

Continue reading

Weird City Interloper (CEJ Pacian)


Weird City Interloper is a parser-based conversation game by Pacian. Like some of Pacian’s previous work, especially Castle of the Red Prince, it largely does away with the traditional object and room hierarchy: here instead of navigating between places, you are moving from one interlocutor to another. As you go, you accumulate an inventory of characters you know about and topics you can discuss, and the point of the game is to discover the story by asking the right people about the right sequence of things. Because those options are always enumerated (and initially the list is pretty short), it feels as though the game could easily have been executed as a choice-based experience instead; this is an interesting one to look at if you’re studying the parser-choice borderlands.

The business of applying your topic inventory to different speakers sounds a bit mechanical, perhaps, and at some points it did seem as though I was just running around trying all my topics on all the characters. But at its best moments it felt much more organic than that, and several times it rewarded puzzle-solving leaps of intuition in a very satisfying way. The game also includes some well-timed help to give you hints if you seem to be lost, and this helped me past the couple of spots where I was feeling a bit stuck.

Continue reading

Tools and Characters: March and April meetups

We now have two more meetups scheduled for the Oxford/London IF group:

2:15 PM, March 30, in Oxford: a session on IF tools. Graham Nelson will present his most recent changes to Inform 7, and Eric Eve will introduce his adv3lite library for TADS, and we’ll open to a general discussion of IF tools.

7 PM, April 8, in London: a session on character modeling, led by Nicholas FitzRoy-Dale. We’ll look at what has been done and what current mechanics support, and talk about possibilities for the future.

Threaded Conversation

Chris Conley has now released Threaded Conversation, a much updated and revised edition of the Inform extension I used for Alabaster and Counterfeit Monkey. You can download it here.

Threaded Conversation’s purpose is to create prompted dialogue for conversation-rich games, and to deal with parsing ask/tell input intelligently. It also comes with an extension called Conversation Builder that allows for developing conversation dynamically, the way Alabaster did in its input-gathering stages. Chris has added significant amounts of new work past where I was able to take the project, though: beta-testing, cleaning up code, and in particular revising the icky bit of code that handles parsing input when the player types a conversation command but the conversation hasn’t officially started yet, which has to figure out who’s being addressed and then restart the parsing process afresh once it has the proper context for reading the subsequent speech keywords. (Trust me, this is icky, and it was pretty broken in the code iteration I handed off to Chris.)

I’m very grateful to Chris for taking this over for me at a point where things became too busy for me to keep up, and putting so much of his own thought and effort into it. I hope folks will find it useful.

via Threaded Conversation.

Versu: Conversation Implementation

This is one of several design articles about the new interactive narrative platform Versu, which Richard Evans and I have been building with a team at Linden Lab.


Any platform focused on social interaction needs strong conversation handling. The following article goes into a certain amount of technical detail about what the system does and how it works, and Richard kindly agreed to write about the sections on which he had the most design influence.

Continue reading

Threaded Conversation Public Beta

“Threaded Conversation” is the extension I used to build Alabaster: a large and complex piece of work implementing a lot of my ideas about conversation modeling for use with Inform 7.

Threaded Conversation is capable of handling several styles of interaction: old-school ASK/TELL, something closer to menu conversation, or (the default) a prompted ASK/TELL similar to the default TADS 3 conversation system. It dovetails with some of Eric Eve’s conversation extensions to automatically handle greeting and saying goodbye to characters. Without implementing anything as rigid as a dialogue tree, it has a concept of conversation topics, recognizes when the player significantly changes the subject, allows for NPCs to direct conversation towards areas of their own interest, and is capable of tracking character knowledge separately from the way the character might choose to express that knowledge. I’ve successfully used it for both two-person and multiple-person conversation modeling.

It does not include any built-in features for artificial intelligence on the part of the NPCs, but because it has a concept of “things the NPC wants to say urgently/at some point in the future” that can be freely adjusted, it dovetails reasonably well with author-designed code to determine what the NPCs should want to say next.

The intention had always been to polish and revise this extension and its documentation, then release it for use by the rest of the community. In practice, what happened was that I got it a good way towards the finish line and had an extension that I myself was happy to use, but that was probably incomprehensible to other humans. Occasionally someone would ask me for a copy and I would send it off… and never hear anything more about it, presumably because the people receiving the code weren’t able to do much with it.

Then I changed careers and life paths into one that leaves me a lot less spare time (and where I’m doing enough coding in my day job that my energy when I’m done winds up in other places). The good news, however, is that Christopher Conley stepped forward and volunteered to do the work needed to adapt Threaded Conversation into something other people could use.

He’s revised the code and documentation, and is now looking for volunteers to beta-test the extension and its documentation. If you’re interested, check out his posting on the intfiction forum for contact details.