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.

versu_logo

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: Conversation Implementation”

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.

versu_logo

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.

Introducing Versu

Versu is a new interactive storytelling platform Richard Evans and I have been working on at Linden Lab. Some of you may have seen lead-up presentations about it at GDC (possibly long enough ago that it was still called Cotillion).

versu_logo

Today, the first four Versu stories are available for iPad. Clients for Kindle and Google Play will follow, as well as stories in other genres and by other authors, and both character- and episode-authoring tools will be made available to the general public in the future.

whist_game01Versu focuses on character interaction as its primary form of play. The Versu platform can do rooms, objects, movement, and the “medium-sized dry goods” interaction of a typical interactive fiction engine, but it’s primarily designed for interactive stories about people: how they act, how they react to you, how they talk to you and talk about you, the relationships you form with them. The social landscape in which you act is constantly changing.

Versu uses an AI engine designed by Richard Evans, the lead AI designer for Sims 3, which allows each character in a story (and in some cases a drama manager AI) to act autonomously or be played by a human player.

Because there’s a strong social model at work in Versu, it’s possible to form relationships with characters that the story author did not explicitly create. In play, you can decide you want to pursue a romance or make an enemy, and that outcome can occur even if the author did not write an arc specific to those two characters.

Versu has a choice-based interface, but it’s very unlike standard CYOA. At any moment in the story, you can choose to act, or wait for others to act. If you choose to take action yourself, you’re offered a set of options drawn from the world model at that moment, from taking a bold stand to giving someone a significant sideways glance. Just about everything you can do affects your character’s opinion of the other characters, and theirs of you, altering the playing field for what’s to come. Inaction can be a powerful choice.

lucy_happyVersu offers moments of narrative emergence. Late in testing, one of my characters was talking to another in confidence when a third party wandered in. Because the speaker didn’t feel comfortable around that third person, he fell silent and didn’t continue the conversation — there was an awkward pause and dialogue moved on to other things. I’d never written the “awkward pause when X walks in on a private conversation” outcome — just an engine that knew when the characters would be willing to discuss those topics, and also that it was awkward for someone to stop talking about a conversation topic when others were expecting them to go on.

This can happen elsewhere too, in large and small ways. The degree to which emergent character behavior affects large story outcomes depends on how flexibly the author has written the overarching plot. “The Unwelcome Proposal” is an example of Versu being used very conservatively, capturing as much as possible of the story text from a scene in Pride and Prejudice, and allowing for few deviations from that story. “House on the Cliff” and “A Family Supper” have a much broader spectrum of possible results, depending on character choices and relationships. Even more sandbox-like experiences are in the pipeline.

brown_inspiredVersu allows for characters who act distinctly. A social model is only interesting for building fiction if it doesn’t make everyone act like identical automata. In Versu, different characters are built with different abilities and parameters — not a handful or a few dozen character traits, but a potentially infinite range of quirks and habits. It is possible to craft social behaviors that are unique to just one character — giving one guy the ability to get under people’s skin more than anyone else, say — or to make a character who hates being in a crowded room.

In addition, because characters are defined as separate entities in this way, they could be transferred from one story context to another, and even cast in stories that weren’t specifically written for them.

The stories we’re releasing today are just a taste of what is possible with this engine. I’ll post more of my usual analysis content over coming weeks — what it’s like to write for Versu, the difference between authoring characters and authoring stories, details of the conversation modeling system, and more about what we’re expecting to see in the future.

Choice-based Narrative Tools: Twine

The prevalence of Twine in the most recent IF Comp, together with some discussions with Porpentine (author of howling dogs), made me give it another try. For those who aren’t familiar with its output, it’s designed for building CYOA or hypertext; it creates a website output that the author can then choose to customize with standard HTML/CSS tools, or leave as-is.

Twine has been around for quite a while. Some time back, I tried it out and couldn’t get it to run properly on a Mac. This time, I had no difficulty installing and running it, so whatever updates have occurred have resolved at least my problems.

Continue reading “Choice-based Narrative Tools: Twine”