Oxford Tools Meetup

As promised, some highlights from today’s Oxford tools meetup:

Eric Eve took us through a demonstration of adv3lite, his slimmer library for TADS 3 for users who don’t want or don’t need all the features of adv3. It’s designed to be intentionally moderate in what it models, not intended to grow to encompass all possible features. Among the things he demo’d: adv3lite

  • does away with some high-end but perhaps less frequently needed features of the adv3 library such as postures, sections of a room, and complicated connectors between rooms
  • provides Inform-7-esque handling for scenes (albeit with a TADS syntax)
  • has a concept of regions and “sense regions”: this provides a way of doing sense passing that is a bit less fiddly than the one in the main adv3 library, in that information about a particular sense can be passed throughout a contiguous area
  • offers a more advanced conversation engine than adv3, including intelligent behavior about whether typed input should be directed to the parser or should be treated as conversation towards the NPC
  • handles six tenses and all persons/numbers for story narration
  • handles three-object commands, and commands with text input strings as one of those (e.g., “write ‘hello world’ on paper with blunt pencil”)
  • does not use the transcript function of adv3, but has an alternative way of collating reports for actions on related objects so that they can be printed together in an attractive way
  • can be used even without roughly half of its component modules for a VERY stripped-down library experience

Graham Nelson showed us features of the upcoming build of Inform, with the target release date of April 30, 2014. These include:

  • indexed text is no longer a different type from text, which means that anything that can be done with indexed text (the manipulation of regular expressions, etc.) can now be done with any text property in a game
  • floating point numbers are now handled natively in Inform
  • Inform now does global named constants, and has a sleeker way of defining global variables
  • Inform is able to put the story into various tenses and persons, so it is possible to change the story text output to, say, third person plural past tense, if you wish (and to change this during play); this was previously possible only with custom library message extensions
  • Inform now provides richer facilities for doing adaptive text in general so that extensions can also easily be written to change their tense and person
  • Inform has built-in algorithms for conjugating English verbs to help produce adaptive text smoothly
  • A new “responses” system provides a way to override any library message text or any message from a properly formatted extension, without having to replace the entire rules in which the text appears
  • The first groundwork has been done towards creating international versions of Inform, including some experiments with French verb formation; this does not constitute a total translation of Inform so far, but is necessary preparation with a view towards eventually translating the whole system
  • The supporting materials have been extensively revised, the index panel improved, and a full index for the documentation provided
  • There is now a panel in the IDE for Extensions, including an App Store-like system called the Public Library for downloading them from the Inform website. This panel allows the author to view which extensions are installed and which are in the library; to install or update extensions with a single click; and even to download the entire Inform extension collection at once, if that’s desired
  • The Mac IDE has been overhauled quite a bit, with Toby Nelson (brother of Graham) also working on it: the search box much improved, syntax coloring sped up so that typing an open bracket no longer produces a major stall, and various longstanding glitches removed

Afterwards, there was some discussion about the “what do you want in a tool” question of the last few days, and several people agreed that they felt there would have been more answers about commercial IF if the question had been differently framed.

We talked about the desirability of being able to publish IF to mobile device apps more easily, for which none of the parser systems currently have an easy solution. We also talked a bit about Inform potentially building choice-based games, and about the rise of such games in general.

Thanks to everyone who came, and especially our presenters. The next meetup will be April 8 in London, on dialogue and character modeling.

What people said about the Missing Tools (and some that aren’t missing at all)

A few days ago I asked people in several forums to tell me what IF tools they wished existed. Here is a collation of the major themes. (This misses out a handful of very specific requests about what specific existing systems should do — it’s more an attempt to put together some general patterns.) I also got some interesting feedback about tools that do exist but aren’t widely known or used, so I’ve written that up too.

Continue reading

The Missing Tools

This Sunday (March 30, 2:15 PM) the Oxford/London IF Meetup group is having a meetup with guest presentations by Graham Nelson (Inform) and Eric Eve (TADS 3’s adv3lite library), and general discussion about what kinds of tools and toolsets we’d like to see in interactive fiction.

In prep for that, I’d like to open this question more generally: what do you wish you had an IF tool to do? What are you longing to write if only you had the right toolset to do it?

Various Projects

Screen Shot 2013-10-20 at 6.24.07 PM

Microdot Reimagined is a parser IF game for sale from Potassium Frog. The starting premise is that your brain has been colonized (sort of) by a professor from the recently destroyed alternate-universe land of Microdot. He needs you to help him reimagine the place in order to bring it back into being, which means exploring a lot of spaces and solving some puzzles.

Stylistically, this is IF of the old school. Microdot Reimagined is executed in Inform 7 and playable with Glulx, and it’s got some nice tweaks, such as stylesheet improvements and cover art. In respect of gameplay, though, it retains the aesthetics of 90s or even 80s IF. There’s a short bit of narrative introduction, but the story such as it is does not seem overly pressing during at least the first part of the game. The map starts with lots and lots (and lots) of rooms accessible at the outset, and a variety of objects to collect from different rooms. I’ve played enough IF that I’m usually able to hold a layout of several dozen rooms in my head, especially if those rooms are introduced (as they usually are in modern IF) in clusters rather than all at once. So I almost never make maps any more. Microdot Reimagined, though, was big enough and thematically varied enough that as I wandered around all its opening space, I soon began to regret not taking notes.

The jokes are wacky-satirical — sort of Douglas Adams lite. Here’s a sample, which will probably give you a pretty good idea of whether the sense of humor matches yours:

>x magazine
It’s Celebrity ROFL Magazine! This is just so amazing. I cannot understand why anyone would not want to feature in this fabulous celebrity catalogue of doom. Let’s take a look at the epic stories in this week’s issue:

Lard-packing with the Basingstoke Twins – “Celebrity Twins Elsie and Vera Basingstoke go on a Lard-packing expedition to sun-drenched Spudthorpe!”

Sir Abacus Timmy’s society wedding – “Kneepad Magnate Sir Abacus Timmy weds his Social Media Advisor, Jennifer Twitterbook-Davies!”

Plus there’s a sixteen page photo spread on the Monks of Ecstatic Gloom and their new swimming pool. This is so awesome!

I confess I got stuck after about 60-80 minutes of play, which is one reason this isn’t a full-scale review; but as far as I saw, the puzzles were mostly of a get-X, use-X style, except that the items in question were widely spread all over the map, so this was still nontrivial.

Enrico Colombini — one of the early greats of Italian text adventures — has released a short book about how to create an ebook with puzzles, given that the ebook’s only state is the page number and puzzles often require tracking some variable state.

This is a very specific purpose, but the explanations are clear and detailed, and may be relevant to anyone who is planning such a project. Another approach, of course, might be to use inklewriter’s Kindle conversion software, but that’s only useful if you are using exactly the right platforms; Colombini’s advice applies more broadly. It is published in both English and Italian, and comes with a short sample of a puzzle — a wolf/goat/cabbage cross the river puzzle — executed in ebook form.

Screen Shot 2013-10-20 at 11.34.52 PM

Strip ‘Em All is an interactive comic strip puzzle, in which the player can reorder frames of the strip and sometimes alter the content of specific frames. Any change you make in one puzzle frame can have ramifications for the rest of the strip, as well. The puzzles ramp up in difficulty very quickly, and I found some of the later ones very difficult indeed. In several cases it’s not really obvious what order two panels need to follow because the dialogue really makes sense either way; in some, a complex series of panel changes and strip rearrangement is required.

This may sound reminiscent of Dan Benmergui’s Storyteller, but in practice it’s quite different: the text of speech bubbles is written out in advance, and the storylines are much more specific. Where Storyteller is backed by a generalized engine for working out the possible meanings of juxtaposed symbols, Strip ‘Em All is really about hand-rolled puzzles with one right answer.

That said, one of the interesting aspects of this puzzle is that it’s about exploring the interior space of the characters and the way they think as much as it’s about plot events and actions. Often one can hover over characters’ heads in order to see additional thought bubbles, which may be functionally hints about what is really going on. Sometimes a character changes states of consciousness, and all the panels change too as a result. So while I think it could have been better hinted, I found this fairly interesting.

One word of warning: the page includes quite a few ads.

Finally, a couple of interesting things to read: Jon Ingold gives a good interview in Haywire magazine on text gaming and in particular Sorcery!, and Liza Daly recommends some of her favorite interactive fiction from the last year.

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

Versu: Content Structure

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.


Behind the scenes of a particular gameplay experience, Versu content comes in three forms: genre files, which specify a lot of details about behavior in a particular social milieu; story files, which provide an extrinsic narrative arc; and character files, which specify individual behaviors and personal character arcs.

Genre definitions are the most low-level element of the system. They specify things like: what are the ways that people in this genre judge one another? What are their main concerns and interests? What are standard, baseline ways of reacting to simple stimuli in this genre? An Austen genre file might supply a lot of ways to react to improper behavior, while a spy-novel genre file might offer ways to evaluate the patriotism of other characters. Each character belongs to a particular genre and relies on that genre file to supply baseline interactions, even if that character is placed into a story of another genre.

Story files contain premises, situations, and provocations. They lay out locations and objects that characters might encounter, and provide narrative turning points that might depend on how characters currently relate to one another. Story files create opportunities for characters to change their views of one another, come into conflict, and have to make difficult choices, or perhaps to discover what is going on in the narrative scenario.

A story file includes a list of roles that can be played in that story, such as “a traveler on the road at night” or “a guest at a ball,” together with some restrictions about how those roles might be cast: for instance, the ball guest might need to be an upper-class character rather than a servant.

The reader of the story can then “cast” those roles from any appropriate characters to which she has access. Maybe she chooses to combine two characters she thinks will hit it off romantically, or throw a couple of natural enemies together and see the fireworks.

The reader can also choose to play any of the roles that are marked as playable. (A few roles in a story are typically excluded because they’re basically support roles, or because they have seriously restricted options available: it might not be very interesting to play a dog or the butler in a story where that character has little access to the main content of the story.)

Character files contain character descriptions, preferences, traits, habits, props unique to that particular character (does this character have a quizzing glass through which he stares at people he finds inferior? an umbrella she unfurls in the house?). Character-specific dialogue also goes here: anything that character might have to say about his backstory, amusing incidents that recently happened to him, etc. In the currently available content, for instance, the character of Lucy has certain flirtation actions that are unique to her, but that create openings for relationship change that use the standard underlying mechanisms for changing relationship state. This means that other characters who have unique strategies for responding to flirtation can react appropriately, even if the two characters have not explicitly been coded to interact with one another.

Character files contain information about what the character hopes to achieve and how he might respond to blockages or problems along the way. Some characters need to make money, or marry well. Some like to make friends, or have some long-standing self-image issue that is preventing their happiness. These arc elements can be satisfied in a variety of ways: for instance, a character who needs to increase her income might stumble across a chest of gold in an adventure plot, or marry a rich man in a high-society plot.

Upcoming creation tools will allow readers to make their own files of all types, but we’re planning to start by letting people build new characters.

Character creation will mean writing new jokes and quips, building up alternative behavior patterns and methods of resolving relationships — and then sharing these characters with friends. Using Versu’s conversation model to tag the meaning of utterances, reader-creators can add dialogue that doesn’t just re-skin existing interaction options, but offers new possibilities for character response: if you create a character with a gift for insulting people, that new, more-abrasive personality will shift the way the story can flow, perhaps creating more animosity with other characters and leading to more broken or angry relationships. (I’ll talk more about how the conversation model works in a future post.)

The aim of this system is to provide the reader with the pleasure of remixing stories, exploring their outcomes from multiple perspectives, discovering surprising juxtapositions of character and plotline, playing with crossover stories where characters from different genres meet up, and scouting out some of the creative range of fanfic, satire, roleplay, and improv theater as well as writing.

It’s an ambitious hope, and I’m looking forward to discovering new corners of the system as it comes in contact with more readers and authors.