m. c. de marco: To invent new life and new civilizations...

Rogue 504

Last weekend at Arisia I got to teach some 504 (the modular board game by Friedemann Friese, the creator of Power Grid). Although I was prepared to teach any of the 504 different games, or “worlds”, I ended up teaching the introductory world, 123, three times instead. On the upside, everyone seemed to enjoy 123, and not once did we get anything wrong—a perpetual problem with 504.

As part of my preparations (setup is one of the most time-consuming parts of 504, especially once rules-scrying has been eliminated by 504rules), I did a bit of pimping of my copy of 504. Here it is with a deck box made out of an old chocolate box, 5 dollar-store screw organizers for player pieces, and one bead organizer for the remaining bits:

504, organized

Also this week, Peter decided he wanted to see Rogue One. (Minor spoilers ahead!) I went in with the dim impression that the movie was going to provide some back story for Rey—the butt-kicking, Force-overclocked Mary Sue character from the last movie (“Star Wars: The Force Awakens,” for those no longer keeping track). So I spent much of the movie uncertain about which Death Star it was this time, and which original Star Wars character was going to pop out of the woodwork next.

In particular, I knew nothing about the Grand Moff Tarkin controversy going in, and in fact spent some time on our way out next to an original Star Wars poster trying to figure out whether Peter Cushing had played Governor Tarkin or one of the other characters, and trying to convince Peter that it wasn’t possible for the same actor to have played both Governor Tarkins, regardless of how young (and, in Peter’s theory, made up to look old) he might have been 40 years ago. Needless to say, we were completely taken in by the CGI.

In the end, I thought Rogue One was a good movie, marred mainly by the unsuccessful attempt to make the Rebellion seem morally questionable. I don’t think you can do that with one throwaway line from Cassian about how his crowd of friends have all done dark stuff like he has, though maybe the otherwise irrational thread in which no one could possibly believe Jyn without the holographic evidence she didn’t think to save was a good start. It was still too jarring for an immediate prequel to the original set of movies in which rebels didn’t fall to the moral level of the enemy because war.

Jyn, while also unnecessarily dark, was a much more believable and sympathetic character than Rey, but I think I’m not alone in liking Chirrut the best of them all. As for the ending, I didn’t find it nearly as jarring as the attempts at moral ambiguity.

NaNoWriMo 2016

Another year, another NaNo: this was my thirteenth National Novel Writing Month, and my thirteenth victory. (I took a two-year vacation a couple of years ago.)

nano 2016 winner

The NaNoWriMo forums continue to suffer from strict regulation of threads. The entire month of Scrivener discussion was once again crammed into one infinitely long and not particularly informative thread. I used Scrivener again this year, in combination with my new project template for it, Scree.

I wrote earlier about my decision to write a hyperfiction story for NaNoWriMo this year using Scree, Scrivener, and Twine. It started out easier than a linear novel, but about halfway in the overhead in complexity began to cut into my word count gains: I was constantly trying to untangle and reunite, or just remember, the threads of my plots. The expected zombies never showed up, making my working title at the NaNoWriMo site even more inapt than usual. On the bright side, I got to pick a Kenny out of my cast of characters and kill him in lots of different and fun ways—and in general, sudden and tragic endings are an entertaining way to tie up those ever-multiplying loose threads.

For cat-vacuuming distraction, I made a few Twine story formats, over and above the ones for import into Scree. At some point Twine progressed from version 1 to version 2, and in the process left the popular “scrolling” story format Jonah behind. I didn’t port Jonah to Twine 2, but I made an adequate replacement for my purposes, called Paloma. Paloma is based on the Twine 2 story format Snowman, which uses a combination of plain JavaScript and Underscore templating for scripting. Paloma tracks history on a per-passage basis, foregoing the checkpoint method found in the real Snowman. And, of course, it scrolls passages.

I also made a “proofing format” for displaying a Twine story as a dot graph, called, simply, DotGraph, which produces graphs in the style of this Chimney Rock map. (For more graph styles, check out this history of the art.) Of course a Twine story doesn’t have page numbers, so the default numbers are actually passage IDs. You can also change the settings or just hover to see the passage title instead. I started out coloring for length, but later added coloration for tags in order to use them to make some visual sense of the structure of my story.

I’ve also been reading the Twine forum during my 50,000 words, where I heard about few betas of the next sub-version of Twine 2; I tried them out, built from scratch, and reported a few bugs. I also read a few linked stories there.

On the literary side of hyperfiction, I found a few interesting blogs about the subject, especially those by Emily Short and Sam Kabo Ashwell, and a magazine, Sub-Q. I also watched the flood of Twine stories on the free Twine hosting service philome.la via their twitter feed, and read a few. I discovered the incomparable Girth Loinhammer that way, but in general I recommend finding a more moderated forum to satisfy your hyperfictional needs.

Philome.la did impress me with the sheer numbers of Twine 1 users still out there (you can guess pretty well from the visual appearance of a story which Twine version was used, or view the source), and I decided to make a Twine 1 version of DotGraph. I should probably backport Paloma as well, but I haven’t yet. I also have several more ideas for tweaking DotGraph.

Let's Encrypt!

While updating Scree, the Scrivener template for writing gamebooks that we met last time, to version 1.0.1, I wrote a Twine 2 proofing format just for importing stories to Scree. Due to the Twinery’s HTTPS enthusiasm, I needed an encrypted version of the story format that could be loaded into the online version of Twine 2. This meant securing the entire site, but fortunately Dreamhost does HTTPS with just a click (and a little waiting, and some quibbles about htaccess files that didn’t affect me although I’d expected them to). So, if you’re the paranoid sort, you can hide your traffic from spying eyes by visiting https://mcdemarco.net/

For the 1.0.1 version of Scree, which adds some accidentally missing Scrivener for Windows support, the Scrivener documentation and forums continued to be unsearchable and otherwise unhelpful. I went on about my troubles in the Twine forum, so I won’t repeat them here; suffice it to say that the nagging question of why there would be completely separate Scrivener for Mac and Scrivener for Windows fora at the Literature and Latte site has been somewhat elucidated.


NaNoWriMo is coming! In preparation, I’ve created a Scrivener template called Scree for writing hyperfiction and gamebooks. (For the many definitions of interactive fiction, see my previous blog post.)

As usual, Scrivener discussion in the NaNoWriMo forums will be crammed into one infinitely long thread, which will then be deleted next October, when the whole shebang starts again. This is especially unfortunate because it’s already so hard to get useful information about Scrivener online. Back when Scrivener was more obscure I thought the obscurity explained it, but during my searches for help writing my template I discovered the real reason: the Scrivener forums are not indexed by Google. If I were in NaNoWriMo mode, I could go on for 1666 ⅔ words about people who make their websites and/or software harder to use with inexplicable decisions like blocking Google’s spiders.

Instead, I’ll just tell you a bit about Scrivener and the template.

Scrivener is a powerful content-generation tool for writers that allows you to concentrate on composing and structuring long and difficult documents. While it gives you complete control of the formatting, its focus is on helping you get to the end of that awkward first draft.

Most notably for hyperfiction, Scrivener allows you to structure your draft hierarchically into a tree of parts branching into chapters branching into scenes (or whatever other structure you like), while still outputting a linear document. (In most genres, the reader is expecting that linear story, but in hypertext the reader is navigating one of many paths in that tree.) Scrivener also assigns titles to each branch and leaf of your tree; these titles are often omitted from linear stories, but are useful for navigating gamebooks.

Since I was already familiar with the Markdown-style text format twee for Twine 1, my goal was to use my Scrivener template to turn a bunch of linked gamebook scenes into a twee file for use with Twine 1 or 2. To this end I Googled unsuccessfully for the answers to many simple questions about making Scrivener templates, and eventually read the manual to figure most things out.

The next step in this process was Twee2, a Ruby gem that takes a twee file and turns it into an HTML gamebook. The only trouble there is the scary command line factor; it would be nice if Twee2 were more integrated with Twine 2 so that someone unfamiliar with the command line could just import the twee file to Twine and be safe in a GUI again. Maybe I’ll try to set that up at some point.

There’s also a somewhat scary import process for those who want to move a pre-existing Twine or twee story into Scrivener for editing. So for the moment, the process is either scary or clunky, depending on your persuasion, but it works. I expect I’ll even make some improvements over the course of NaNoWriMo.


I forgot to mention that Scrivener is having its annual free trial for NaNoWriMo until December 7th or so. NaNo winners get a discount.

Update #2

The download link on the Scree page is now fixed.

The State of Hyperfiction

NaNoWriMo is coming!

I decided earlier this month that I wanted to be a NaNo Rebel by continuing a novel I started for NaNoWrimo 2008 about an AU (alternate universe), though it turns out that merely continuing a work-in-progress no longer gets you NaNo Rebel status; that’s now well within the rules. I didn’t really remember where the plot of my story was headed back on November 30, 2008, but I found a thread in the NaNoWriMo forums about how the creator of Scrivener deals with his plot problems. I’ll quote it here because the whole thread will be deleted come next October:

Here’s something I have found very useful in Scrivener recently, based on a technique I read some authors use for plotting: I create a top-level folder (i.e. a folder on the same level as “Research”) in the binder called “Problems”, and give it the warning icon (using Documents > Change Icon). In this folder I create documents whose title has a single question, such as, “How do they break into the labs?” Each document is a problem I have with my vague plot, which starts as just a few bullet points and may consist of waypoints as helpful as “They are rescued and taken to safety (by whom? why? where?)”. Then I’ve been writing as many ideas as I can in these “problem” documents, talking to myself until I have an idea that works, which usually spawns other questions and has implications for things I need to fit in earlier in the plot. I then split the editor vertically, with the text of the problems on the right, going through the solutions to flesh out the plot on the left, and using strikethrough to cross out the text I’ve gone through on the right.

So I tried this solution on my hanging plot threads: does My Hero get hopelessly trapped in the AU? does he figure out how to use the MacGuffin to visit a different AU? does he get trapped in that one instead? how does the MacGuffin work, anyway? This method backfired in that I became more interested in the diversity of choices than in figuring out where my plot would actually go. I realized I’d rather turn the novel into a choose-your-own-adventure story than make a final decision and write 50,000 words about it. But 50,000 words is quite a few more than I’ve put into interactive fiction before.

Choose Your Own Thesaurus

The biggest pitfall of interactive fiction is figuring out what exactly you’re talking about when you say interactive fiction. Is it a literary form? Is it a game? Both? Either? So let me pause to define terms, with the help of the SF encyclopedia:

  • Hyperfiction is fiction with hyperlinks, traditionally at the end of a scene or page but sometimes inline instead. Usually the story is told in the second person and the reader determines the plot through your quantized choices. The canonical example is the Choose Your Own Adventure series of children’s books. Hyperfiction is also known as hypertext fiction, hypertexts, branching-path books, interactive novels, wovels, etc.
  • Gamebooks combine hyperfiction with RPG-style game rules (implemented in dead-tree books by the reader rolling dice, etc., or on computers by the computer rather than the reader). The term was apparently coined by Steve Jackson for the canonical example: the Fighting Fantasy series of books. Gamebooks are also known as adventure gamebooks, multiple-choice games, multiple-choice gamebooks, MCGs, storygames, etc. Gamebooks using an existing RPG system are also known as role-playing solitaire adventures. Collaborative gamebooks are also known as addventure.
  • Interactive fiction is fiction in which the reader directs the story using somewhat natural language. They traditionally involve collecting items and puzzle solving. The canonical example is the Zork series of video games. Interactive fiction is abbreviated IF or int-fiction and is also known as text adventures or adventure games.

Hyperfiction Software

I got interested in the Twine/Twee ecosystem for writing gamebooks a while back, and I started a few stories with it. Some were just hyperfiction of the choose-your-own-adventure type, but my longest was a story about writing which took advantage of some basic gamebook scripting facilities available in Twine/Twee. Even so, it was only a few thousand words intended as a demo. (I’ve never attempted any true interactive fiction.)

There is no easy way to write a long work of hyperfiction; if you like using a GUI (I don’t and I’m not alone), you could use Twine. I used to write in Twee (the plain-text format underlying Twine) instead, but Twee files are flat, making it hard to visualize your plot.

I knew Twine had been updated to Twine 2, but I never did much with Twine beyond building the Mac version when it was having Python issues on my Mac. I always used Twee because I’m just a plain-text kind of a gal. In the Twine forum, I learned that Twee has also been updated to Twee2, so I plan to stick with Twee. But I was curious about developments in a field littered with abandoned software projects and lost websites.

This is what I found, in almost-alphabetical order. Unless otherwise mentioned, the programs are mostly open source and free as in beer, and mostly output HTML that can be read/played in any browser, except for the cloud services which generally host the story for you.

  • inklewriter: create pure hyperfiction in the cloud using an underlying json format; includes hosting of stories; scripting can be done with a separate toolset, ink and inky
  • ChoiceScript: create gamebook-style hypertexts with simple scripting in the browser; has an underlying hierarchical plain-text format; includes hosting/sale of stories
  • ChooseYourStory.com: create hypertext stories with scripting in the cloud; still working flakily, but has no export format; includes hosting of stories
  • Squiffy: create hyperfiction with simple scripting using cross-platform apps or in the browser; both gamebook scripting and text adventures can be created with a separate tool, Quest
  • Twine: create gamebook-style hypertext with a graphical UI using cross-platform apps or in the browser; has an underlying flat-text markdown-like format; various output styles and scripting languages are available
  • Storyspace: commercial, MacOS-only program for writing large hypertexts
  • The GameBook Authoring Tool: commercial, Windows-only program for writing hypertexts and gamebooks; there’s a demo available

True interactive fiction lets the user express their actions in natural language, and so requires a text-parsing engine to move the story along, rather than just the hyperlinks and simple variables used by gamebooks. The notable engines are TADS, which uses a C++-style scripting language and has some windows-only features, and Inform 7, a fully cross-platform engine that uses a natural-language scripting language.

There are a few truly old-school options for making printed gamebooks, too, like this LaTeX package. Some eBooks out there, like this Romeo and Juliet remix, iBooks version, use fairly primitive technology, but in general the market seems to be going with apps rather than wrestling gamebooks into ePub format.

Reading Hyperfiction

You can read “storygames” at ChooseYourStory.com.

TextAdventures has a mix of mostly-free IF and hypertexts available online, including IF classics like Zork I and The Hitchhiker’s Guide to the Galaxy. Likewise, The Interactive Fiction Database covers a mix of IF and hyperfiction, making it hard to search for hypertext in particular as well as which stories are available online. (You can try searching by engine, e.g., system:ChoiceScript, or opening up the engine list under system:name on the search page and clicking on an engine you’re interested in.)

If you’re running emacs, you already have a free interactive fiction adventure; type:
M-x dunnet

On the commercial front, you can pay to play professional or user-contributed web-based gamebooks at Choice of Games, shop for phone app gamebooks at Gamebook Adventures, Cubus Games, or Inkle, or buy a more serious work of hyperfiction at Eastgate. For some curation before buying, try Gamebook News for the latest, Adventure Gamers for reviews, or this list of the 10 best gamebook apps.

And, if you just want to skip to the multiple endings, there’s the YOU CHOSE WRONG tumblr.


Somehow I left the gamebook creation tool Undum off the list.