After working with the IFTF, I’m pleased that the Undum website and documentation is now available again, at GitHub.

It has powered a number of games, occasionally pops up among IFComp entries, but has never been as widely used as other tools. If you are unfamiliar, allow me to introduce it. Undum is a choose-your-own-adventure interactive fiction tool, with a couple of very specific design goals. One aesthetic and one technical.

I have a passion for the texture of books. I wanted to create a tool where the works exude physicality and play has the feeling of reading prose. The visual design is unashamedly skeuomorphic: from before the time we learned to distrust such things. It begins with letterpress titles and marbled paper, and opens to cream textured background and off black ink. My hobby is bookbinding, this was a virtual version. When I created it in 2009, CYOA games were structured like the original books: read a paragraph, make a choice, the screen clears and new text appears. In Undum, the choices fade, disappear, and the surrounding text rearranges to form a resulting narrative. It looks somewhat old now to my eyes, but the basic idea I think is sound. Many other recent titles – inkle’s games for example – use a similar effect, at least for small sections of text.

Technically, both Undum and the games that target it, are written in JavaScript. I hoped this would make it accessible for a wider range of dabblers, requiring transferable skills rather than learning a new language. It also made it achievable to write and document over a few weekends: I didn’t have to worry about parsing, or creating a complete runtime. But the best benefit, and in some ways the one least exploited in practice, is the ability to use Undum as part of a bigger game. I imagined a strategy game with CYOA elements, or a piece of interactive fiction using natural language generation to be different each time.

Between the first and second release, I fell in love with Alexis Kennedy’s quality-based narrative structure, as used in Fallen London (at the time named Echo Bazaar). Rather than specifying explicit options, a random selection can be drawn from a database, based on criteria that represent the choices made so far: this choice is allowed if ‘fear’ is greater than three, for example, that one if the ‘met the monster’ flag is set. This approach allows a choice to easily affect things much later in the story. And crucially, it allows new sections to be written and added, without manually rewiring the flow. In Undum, explicit and implicit choices are both supported, and interchangeable from moment to moment.

I left working on Undum to develop Varytale, a short lived commercial IF endeavour that shared a lot of the same aesthetic and narrative structure. And then I retired, and it lay fallow, aside from email help requests that still drip into my inbox. If you are curious, I think it is particularly suitable for writerly programmers, especially those who want to push the boundaries: hook up web sockets for multiplayer IF, send new content from a web server, break out of the narrative to play a mini game, or add rich media and video. I hope, with the encouragement of IFTF, it continues its afterlife powering interesting and form-challenging games.


Newer post: Results of the 2017 IFDB user survey

Older post: NarraScope: a conference celebrating narrative games