Six Months Demo

I’ve been griping about Six Months since the beginning of time and I’ve never showed more than about 8 people a single scrap of the actual goddamn game.

Time to fix that!

Head here to play the prologue and first month of Six Months.

Head here to download the twine source file and a local copy of the demo.

From the demo’s About page:

Six Months is an interactive novel about family, power, revenge, and faking it until you make it. I consider it an anti-Game-of-Thrones: it’s a fantasy story where nobody is a genius schemer, nobody’s titillating cruelty looks even the least bit cool, and the grand wars and gestures of “epic” adventure have realistically fucked-up consequences.

Six Months has numerous choices and will have more than three unique endings, but I don’t consider it to be a story “about choice.” It’s more about the ways I can use its unusual, color-based “grammar” to make the reading experience itself interactive. Hypertext lets me mess with meaning, timing, and emphasis in ways that normal text does not.

I’ve been working on Six Months for over two years. Its current version contains over 85,000 words. It takes most readers about four hours to read through months 1-4. (I am currently writing Month 5.)

My goal is to eventually release Six Months as part of an interactive story collection with several other tales from the same fantasy world, some of which use different “text mechanics.” It will be a primarily tablet-focused experience, with additional releases on PC and Mac.

How long will it take me to finish? I have no fucking clue. I have a day job. It’s a significant portion of my free time, though, and has been since 2014.

Creating an inherently pathetic protagonist: Six Months and its “reactive” choice system

I’d like to talk for a moment about the core mechanic of my current long-term IF project, Six Months. I recently asked two friends to do a test-read of the first 60% of the game, and the feedback I got from them has had me thinking about my work in new ways.

I’ve shared gifs of the game before on tumblr and twitter, but Six Months essentially uses the exact same mechanics as Swan Hill: a two-tone link system where black links change the text currently on the page, while red links commit decisions and advance the story. You can play Swan Hill here. Here’s a gif of the mechanic in action:


All red links appear in-line as part of the game’s ordinary narrative. I’m not an enormous fan of choose-your-own-adventure or RPG-style option-choice in my personal projects. I have worked on traditional CYOA-style choice stories for my day job, and for my side projects I’m interested in exploring systems which seem less ludic, less interrogative, and more fluid or seamless in their presentation.

However, every IF choice system enforces certain underlying moods or philosophies upon the story. The system that you use to convey choices to the reader can be as much a tool as a cage– each completely alters  the way the reader will experience your story. Choice systems can affect moment-to-moment narrative rhythm, player-character characterization, story structure, and more.

We often tend to interpret the organizing system behind game choice as a sort of mental model for the protagonist. Let’s imagine a choice system where a bunch of choices are printed on a page, and the player must roll a die to select one. Telling an entire story in this inherently random, uncontrollable way would make the protagonist feel like an inherently random and uncontrollable person, wouldn’t it? Similarly, an “interactive fiction” art exhibit where players made choices by shooting targets with an airsoft gun would make decisions feel difficult and subject to error. The protagonist of such a story would feel like someone who tries hard but is liable to make mistakes. This is very similar to the choice system in Christine Love’s Twine story Even Cowgirls Bleed. Please, take a moment to play that game. Think about the ways that Love has taken advantage of her choice mechanics to convey certain things about the character.

Even traditional CYOA choice-list storytelling enforces certain ways of thinking and choosing, but we use it so often that these inherent characterization elements are often invisible to us.

The biggest difference between list-based storytelling and other methods of presenting choice, I think, is the addition of the list as an extra narrative “space” where ideas and solutions can be presented separately from the “real” continuum of the story. For example, putting choices in a list allows the writer to include unusual or out-of-left-field solutions that have not been presented anywhere else in the story:


A reader may learn something new in the CYOA choice list which changes their understanding of the dialogue they’ve already read. The author can use this to characterize the player character as an initiative-taking leader, capable of surprising enemies (and readers!) at the last moment.

Swan Hill, on the other hand, used a choice mechanic which made it very very hard for me to present moments where the main character surprised people or took initiative through choice. Swan Hill presents all choices through inline prompts. This means that all possible character choices must be “prompted” to the player before they have the opportunity to click one or the other. Sometimes these prompts come from thoughts the player character has. Sometimes these prompts come from things that other characters say:


So I was trapped in a situation where any time the player made a decision, they had to do so in reaction to things other people said to them, or to thoughts that I, the author, decreed from on high that they should have. And because each page has very little text on it– a style choice I clung to very seriously– the red choice prompts must often appear in the same paragraph, or very close to one another in a short conversation snippet. Essentially, every time the character makes a decision, someone has to swoop down and give them options immediately before they decide.

On a choice-organization level– a level deeper into the guts of the story, really, than plot or prose style– this characterizes the protagonist of Swan Hill as an inherently reactive person who is also often very unsure of themselves. Every time the player makes a decision, they do so in reaction to things going on around them. Whenever I wanted to make the player seem like they were taking initiative through choice, I had to make certain decisions for them. A good example of this is when the character gets into a fistfight with his brother. I choose to make that fight begin; the player ends the fight by responding to my prompt that they are about to throw a punch:


When I started planning Six Months, I knew that I wanted to use the same mechanics from Swan Hill and explore them in a deeper way. This time, however, I planned to really lean into their inherently reactive nature. You play SImon, the asshole duke brother of the Swan Hill protagonist. In Six Months, however, we learn that he isn’t really a self-assured countryside potentate– just a confused, overwhelmed, moderately-pathetic homebody who finds himself in trouble way over his head after foolishly declaring that he will personally execute a relative’s murderer. Simon must relentlessly fake it until he makes it. He’s got imposter’s syndrome all over the damn place, and other characters constantly pester him to make decisions without the proper information or context. I want the player to feel overwhelmed and reactive. What better way to do this than to use a decision system which forces the player to choose reactively?

The big challenge, of course, is to tell a story about a reactive, overwhelmed person that still feels exciting and interesting. My recent test readers found Simon’s attitude and problems compelling enough to keep reading; they have not reported that he feels like a sad sack. I’m pretty sure that I’m heading in a good direction with regards to choice systems, interactivity, mood, and character. Anyway, my testers report that I’m doing a decent-enough job.

Six Months is about 60% done and has over a thousand Twine passages in it. I was shocked to learn that it took one of my test readers over three hours to read. You can listen to me mope and groan about it on my twitter.

Text game dev gifs are an unfilled niche (that I am filling)

I have created a Tumblr entirely of gifs of my in-dev text games. I know, I know, this sounds stupid and useless, but it’s definitely not.

There are a lot of people out there making text games right now, and thanks to Twine and Leon Arnott’s excellent macros, more and more of these games include text that moves or changes onscreen. This is the kind of stuff that interests me most. I like stories with text “mechanics.” Most of the stuff I make has this kind of thing in it.

It’s hard to excerpt out isolated little moments of these games so that I can discuss/brag about the cool shit I have done. Gifs work well enough, though. So that’s what the tumblr is going to be. Solid gifs of me clicking on shit.

This is not commonly done with, say, novels– nobody sticks two paragraphs of their novel on a blog to brag about some little technical thing they did and the thought process behind it. I am fully aware that the actual text content of a lot of these gifs will be confusing and meaningless to most readers. However, I think I can explain myself well enough to make some of these gifs a little bit valuable. There are “mechanics” that can be discussed even when the text content is taken out-of-context.

It’s important to think very hard about what you do, no matter what you’re doing. Even artists who cultivate an air of carelessness or spontaneity are thinking much harder about their craft and process than most of us realize. When it comes to Twine, we don’t often talk about the nitty-gritty details of hypertext.  Twine has a low barrier of entry but you can do a lot of very complicated and weird stuff with it, and it doesn’t necessarily take a lot of practice before you can start to work at a high level of complexity. I think there’s a lot to learn and share there.

Basically, I want to talk about Twine craft and I want to do it with gifs of my unfinished projects. I hope you enjoy it.

Detective City – Global Game Jam 2015!

I spent the last ~48 hours doing the Global Game Jam at USC, running pretty much on adrenaline and diet Cokes. I teamed up with Rosstin Murphy, Kent Sutherland, and Meagan Trott to make Detective City, a comedic, randomized choose-your-own-adventure game about a disgraced detective determined to clear her name. You can find and play our jam build here! Look at the bottom of the page for a download. The game is an .html file that will run in your web browser.

Detective City is one of the more-successful jam games I’ve ever worked on. It marks the first time I’ve ever written my own working macros for Twine, too. (A little bit of Code Academy Javascript goes a long way when all you need is randomization, ha.) I wrote the “engine” that controlled game progression and powered our randomization features, as well as a couple tools to help us stay out of Twine If Statement Hell. I guess this makes me the “lead programmer” on Detective City? Hey, I’ll take it.

We were lucky enough to win the judges’ choice “Writing/Theme” award. Here’s our awesome trophy:

We also recorded a “speedrun” of our game to make our jam page more exciting. Take a look at my mad clicking prowress:

Our team will be fixing some bugs in our game and releasing a more-polished, spell-corrected version sometime soon. I’ll probably also crap out a postmortem. But here are the major points about Detective City you should probably be aware of:

  • It is legitimately extremely funny. I was surprised at how good our jokes were with little sleep and very little time.
  • The art Meagan made is extremely rad. It fits the theme perfectly and is also hilarious.
  • There is an insanely huge amount of content in this game. There’s enough for four full playthroughs with no overlap– though you’ll get overlap from playthrough to playthrough thanks to the RNG, I’m sure. STILL, there’s a TON of stuff in here.
  • Like most collaborative writing games I’ve made at jams, we chose to split the game up into large regions and assigned each to a specific writer, with very little overlap. Although we wrote the beginning and end of the game together, we were mostly able to churn out this huge amount of content because we were each charging away at a different part of the story and combining them using StoryIncludes. If you ever do a text-based game with more than one writer, I strongly encourage splitting everything up and going as far as you can to reduce or eliminate interdependence. It makes the experience a lot more relaxed when you know that you don’t have to hit any content quota, or that your writing isn’t dependent on anyone else’s time or energy. We had a great ability to accommodate any reduction in scope, and even sliced out several entire regions right before the end. At previous jams, I’ve worked on narrative-based projects where extricating chunks of the game was a lot harder, and those projects have always been way more stressful and, in the end, less successful.
  • In fact, I’d go so far as to say that text-based jam games should basically never be linear. If they’re randomized, or select from a pool of vignettes or events, they seem to be a lot more fun and easy to finish over a weekend.

Progress on Six Months

I’m still working on my sequel to Swan HIll, a novella-length twine game called Six Months. I’ve been working on it now for about six months off and on. (Ha!) My recent move to Los Angeles has left me pretty isolated, without a lot of things to do or people to hang out with IRL– so I’ve had a lot of time to work on this project. So I’m charging ahead!

I’ve got the feel and direction of the experience nailed down, I think. Six Months is a murder mystery, but it’s not a solveable murder puzzle. There’s no inventory, no clues to pick up. You see, the joy I get from reading detective novels has never been in the solving of the mystery or the revelation of the killer, or anything like that– I like detective novels because they’re often great character studies (of the detective). I want this game to be more like that.

The main character in the tale is the asshole duke brother from Swan Hill. Before I wrote Swan Hill I was actually writing a story in which Simon played a major role and his brother Robert, the Chancellor wizard guy, was only a background figure– so I’ve had Simon in my head for much longer than I had the protagonist of Swan Hill. Simon’s a bit of a fucked-up guy. He’s very much at home in his duchy, where he’s been in charge of everything for years– but he’s heavily reliant on his family and on the privileges he gets from being the biggest fish in that little pond. When he heads to the city to solve this crime, he has to figure out how to handle himself alone for the first time in his adult life– which is hilarious, because he’s around 40 years old.

Six Months focuses on a ridiculously risky situation Simon puts himself in after an emotional reaction to a relative’s murder. Instead of letting the young, incompetent king and his grasping military policemen handle the investigation, Simon invokes an old-school rite that gives him jurisdiction– so long as he successfully finds and personally kills the perpetrator within six months.

My focus in college was medieval and early modern Europe. During this time, extensive urbanization changed the way people related to their superiors, inferiors, and governments– specifically with regards to the amount of casual violence between individuals, and between individuals and the state. Simon’s problems in Six Months were written with these changes in mind. Although these fictional “six month pledges” are still legal in his country, nobody does them anymore. Culture has changed, but the law hasn’t, and powerful people like Simon still have access to legally murderous acts of revenge. Simon’s friends and family often argue that he shouldn’t have ever made this vow, and while playing as Simon, you may find that you agree.

So Simon has to figure out how to resolve this oath without completely destroying himself and his family. Would it be better to deliberately fail the oath? To accuse the wrong person? To solve the case properly and do the duty everyone expects from him? Because his case is so public, he risks causing harm to various suspected minority groups in the kingdom if he encourages the military police to pursue them. And on top of this, his family has a certain ‘history’ with both of the major groups that may have been responsible for the murder.

Add to this the enormous unresolved emotional baggage Simon had with the murdered person, and you’ve got a mystery that’s less about finding and punishing the evildoer and more about “how do I fix all of this while feeling the least like shit?”

In order for the audience to feel like this is a worthwhile tale sitting through, they’ll have to desperately want to see the solution to Simon’s problems. They’ll have to want him to not feel like shit! To this end, I’ve reduced his assholery. He also spends a lot of time in “fish out of water mode,” so that I’ll have excuses for explaining things to the reader. I feel like this is a big contrast to most of the standard “gritty fantasy” fiction that people read today. In stories like Game of Thrones, we expect to see clever characters brilliantly tricking one another in the gilded, got-your-shit-together halls of cackling political genius. But in Six Months, for reasons both mechanical and thematic, you’re gonna be piloting a guy who does NOT have his shit together AT ALL. (I sometimes worry that too many of the characters in this story have too little of their shit together!)

Anyway, that’s where my brain is on this story so far. If you like slow-burning low-key mystery stuff, and if you have great sympathy with people who don’t have their shit together, you’ll probably like this story a lot.

For a different view on where my head is right now, here are the kind of books I was reading immediately before drafting out the first outlines for this story. They all influenced me in different ways while I was figuring out what kind of story I wanted to tell. I wish I had a list of all those early modern europe urban history books I read in college, but I don’t, sorry. 😦

  • Tinker, Tailor, Soldier, Spy by John LeCarre
  • The Dogs of Riga by Henning Mankell
  • Shriek by Jeff Vandermeer
  • Good Bye To All That by Robert Graves

Some stuff I’m currently working on

Almost precisely one year ago, I finished writing Swan Hill, the Twine game I am most proud of creating.

I am currently working on two different stories set in the same low-key fantasy universe. One, currently titled “Witch Stuff,” I hope to finish in time for the IF Comp, though this is unlikely. The other, provisionally named “Six Months,” will be extremely long, and is a direct sequel to Swan Hill– but featuring completely different characters. I’ve currently written about a fifth of it. My ultimate goal is to distribute all three of these stories as a pack on for 0+ dollars.

Really, though, my ultimate goal in life is to create fantasy and sci-fi writing so low-key and melancholy that only whales can hear it. I adore humor writing and a lot of my stuff is pretty manic, but when I sit down and choose what projects I really truly care about, those projects are always sad and quiet. The world in which I set Swan Hill is pretty much just Sad Wizard Town, USA. Get ready for some sad fucking wizards! Sadder than you’ve ever seen before!!

I’m also trying some new stuff with these stories. While choices in Swan HIll were based entirely on a handful of booleans, both Witch Stuff and Six Months feature stats-tracking as the main means of controlling choice in the game.

I’m also taking some risks with story structure and text-change mechanics. Witch Stuff uses a mechanic which I’ve never seen used in a Twine game before. I wish I could show it to you, but that would disqualify me from the IF Comp. Hooray! (Not hooray. Not a huge fan of their competition rules, tbh.)

On the other hand, the thing I’m currently testing with Six Months is that I’m making all the stats reflect people’s opinions about you, rather than innate things about you as a person. It’s always bothered me that RPGs assign morality stats to a person and then use these stats to restrict your options. Humans are crazy; they can change their minds at any point, contradict themselves– whatever. If you’re gonna use stats, you might as well use them to track what people think about you or what’s going on in the world around you– stuff that really does represent the cumulative effect of your behavior. Currently, there are two major stats in Six Months. One controls a child’s opinion of you; the other controls a king’s.

Hopefully, in about six months, I’ll be ready to start thinking about hiring an illustrator to draw up three cover images for these stories. Until then, it’s nose-to-the-grindstone– which will be hard, because I’m simultaneously working on an additional story-game for a completely different platform. And also I have my day job to worry about.

Whatever. It’ll be fun.

Twine without CSS or Javascript

I recently learned that an online Twine jam was going to be happening this weekend. It’s a “Naked Twine Jam”, where all submissions must avoid using any CSS or Javascript modifications whatsoever:

Twine is also very easy to customize. However, while visual modifications and external modifications can produce lots of interesting results, they aren’t at all necessary to tell compelling stories.

For this event, we’ll all work within the creative restriction of using only the basic Twine program with no CSS or Javascript modifications. If you don’t know what that means, then don’t worry about it! Just download the program here and start playing around with it.

I haven’t actually completed many Twine projects I’m proud of, but all of the ones I’m deeply invested in involve a LOT of javascript plugins and CSS modifications. My favorite thing about Twine is the versatility you can achieve through unusual text behaviors and page layouts. A lot of my favorite Twine games ever would be impossible without javascript plugins. Breakfast on a Wagon With your Partner, for example, could not exist without the cycling link macro. All I want is for all my friends to become insanely powerful would not have the same crescendo without the targeted CSS macro. Anhedonia has important audio and visual elements that would not be possible without javascript and CSS. Without those elements, it would be a completely different kind of art.

I have no problem with the idea of a “naked” Twine jam– in fact, I’m already participating– but it is making me realize how much I value customization and specialization in Twine projects.  I’m fascinated by words changing and behaving uniquely on-screen. I like cycling links, unfurling sentences, etc. Not all of my projects use these kinds of behaviors, but I really like them, both in my work and in others’. I like that Twine allows authors to add this functionality.

Fact is, when you add new behaviors to onscreen text, you can actually say new things. I recently met with another writer who’s interested in new ways of presenting nonlinear narratives, and during that conversation we talked a little bit about how the artistic possibilities of hypertext are unrealized by the tools and platforms people have been using to consume digital writing. When you add cycling text to a page, you can actually communicate in new ways that you could never could before. When you add “unfurling” text, the possibilities for communication expand again. To make an awkward analogy, when it comes to the communication of ideas, these features are less like fonts and more like entirely new words.

Twine is special because it’s accessible, but it’s also special because it can be incredibly complex. You can make Twine behave in extremely specific and unusual ways, which in turn allows you to say very specific and unusual things that can’t be quite said in any other way. If I’d been writing Swan Hill in linear form as a short story, I could have communicated the Chancellor’s inward-looking attitude in a number of different ways, but I couldn’t have possibly communicated it in exactly the way that I ended up doing so. And I have the replace and revise macros to thank for that. That’s the kind of thing that I value about Twine.

Nevertheless, I’m enjoying the challenge of making a game without CSS or javascript modifications of any kind. I’ll probably go back after the jam and spruce it up before hosting it on my own website, but until then, the story looks a little like this:


Things I’ve recently learned about hypertext

Prior to writing Swan Hill, I had never tried to make anything in Twine but standard “choose your own adventure”-type stories with text prompts and choices. They were fun to write but left me feeling a little bit cold. To be honest, the CYOA text-prompt-and-choice structure– the stilted, awkward way it seems to constantly interrogate the reader– doesn’t always fit very well with my writing style.

After almost a year of reading great Twine stories without the CYOA structure, I came across Breakfast on a Wagon With Your Partner, which uses Leon Arnott’s replace macro super-effectively. It reminded me that I’d never actually experimented with replace myself!

I’d recently attended a loud, busy party for the first time in months, and had left feeling pretty sick and overwhelmed. I quite liked the idea of using the replace macro in a party scene to give a reader that same sense of wandering overwhelmed-ness. I imagined a paragraph which slowly expands from concise sentences into long, confusing ones as detail upon detail is added.

The idea excited me. To prepare, I went back and read a bunch of other stories that feature this macro. I immediately noticed two things:

  1. Writers do not usually distinguish replace links from other links. This can lead to confusion and missed content, particularly if the page is covered in links that all behave differently.

  2. The use of color in Breakfast on a Wagon With Your Partner was really helpful! It distinguishes your speech from Sam’s without cluttering up the page.

I wondered why I hadn’t seen color used to distinguish replace links from non-replace links in more Twine stories. In the end, I decided to give my story color-coded links. It was going to use a LOT of replace, and I wanted the reader to anticipate and understand what each replace link would do. I thought I could write the story in two weeks. There were really only a few things I wanted to illustrate with it.

But I didn’t realize how complicated the replace macro could be! The first night I sat down to write the story, I wrote straight up up to the first +++ in one go. When I wrote the scene where the Chancellor lights the Duke’s pipe, however…


I realized that I could use replace in more interesting ways. I’d been thinking of using replace simply to add more detail, but now I realized that I could also use it to give scenes a sense of timing and suspense.

Then I discovered the combined replace macro, which includes replace, insert, revise, and other macros. With this expanded toolset, I realized that I could use replace and the other macros to:

  1. …Illustrate the main character’s style of thinking. He spends a lot of time in self-reflection. I could use replace to show these moments of reflection and make the reader replicate his way of thinking.

  2. …Replicate various feelings, like confusion, the sensation of being overwhelmed, the passage and transformation of one kind of physical pain into different kinds of physical pain, etc.

  3. …Apply timing to specific events. The pipe-lighting scenes are good examples of this.

  4. …Avoid walls of text. “Unfurling” the text makes sure that the reader is “checking in” at various points during a longer passage, and prevents that longer passage from being so overwhelming at first glance.

  5. …Make the reader focus on specific words and pieces of information by inviting a click, but not whisking them away to another page. Many Twine games use page links to direct attention to specific words, but page links can be disruptive, because they replace all the text on the page. Replace let me keep the text on the page, and even keep the clicked word on the page, if I wanted. This let me use the clickable-word attention-directing mechanism multiple times in one passage, if I wanted.

I was so excited by replace that the first completed draft of my story used it WAY too much. Here are some of the pitfalls I ran into when I began over-applying replace:

  1. Although replace is often less disruptive than a page link, it is still disruptive. Some passages– particularly those which do not contain a rhythmic series of events– suffer if the reader is forced to “check in” with clicks. I ended up removing replace from many passages where the events taking place were contemplative or slow.

  2. Replace can draw too much attention to something. Applying it overenthusiastically caused me to “unbalance” some of my paragraphs.

  3. Using replace to insert one idea inside of another is not always the best choice. Too many disparate ideas on one screen can diminish one another.

I also ran into some problems when readers began reporting that they could not understand the difference between red and black links. This was pretty confusing to me, since I’d constructed the first several passages with an eye toward teaching the player how red and black links differed. The first screen after the title screen, for example, forces the player to click a black link in order to expose a red link. Other passages in the first section of the story give the player a good opportunity to see how black links behave. I thought that by the time the player got to the pipe lighting scene, they’d understand completely.

However, it turns out that some people didn’t. I spent a good week trying to figure out how to communicate the color-coding effectively. It was a pretty weird problem, since some people were telling me, “man! I love the color-coded thing!” while other people were telling me, “HELP! I DO NOT UNDERSTAND COLORS.” There was very little difference between these two groups of people. Some people who had never played hypertext were fine with the colors, while some people who had already played a handful of diverse Twine games were intimidated by the colors.

In the end, I realized that most of the people communicating a confusion with link colors were communicating the confusion they had first felt with the link colors, and that an initial confusion with the the link mechanics did not prevent them from finishing the game or appreciating the tale. I was worried about cluttering up the story or diminishing the simplicity of the beginning by introducing an explicit tutorial. It was very important to me that the first part of the story focus 100% on the brothers and the way they interacted. I decided to add the three small clicks on the first page– “to begin the story, click here; now click this word; now start”. This, I guess,  pretty much doubled the “tutorial” on the first two screens. I’m still not sure it was completely effective, but by that point my feedback was getting so contradictory that I was eager to give up and let the story go.

I have another idea in the works for a different “link mechanic” that I also plan to use with color. Even though some of my playtesters reported difficulty understanding what was going on with the links at first, I think the colors were ultimately an accessibility boost, and they gave me more tools to tell a more complicated and nuanced story.

I’ve played a lot of Twine games where the player was supposed to feel unsettled or confused, and confusion about what a link was likely to do helped to create this feeling. However, my stories are usually about specific characters whom the player “plays” like a character in a play. They are “controllable,” but they have personalities, and I want to convey very specific things about their personalities and experiences. This requires a precision of communication that is not possible when all links look confusingly alike.

Anyway, I’m still excited to figure out cool new stuff to do with replace! I feel like I’m really starting to “get hypertext” in a way that I couldn’t when I was exposed to lifeless, dull, academic hypertext stories in college. There’s a huge difference between learning about interactive story structure by reading dull writer dudes from the 90s, and learning about it by actually examining how it affects your own work. I learned a lot while writing Swan Hill and I can’t wait to apply it to my next project.

Visual resources for Twine

I’m a huge fan of pictures in Twine. Sometimes even extremely simple images can add a lot to a Twine story. For example, the small square pictures in Porpentine’s Climbing 208 Feet Up the Ruin Wall are beautiful, brightly-colored little accents. But sometimes pictures can be more than accents– they help tell the story, or do the major work in setting the mood. I recently played a super-throwbacky little horror adventure called Mad Dog which used simple but evocative images to set the story in time and place.

Using pictures in Twine games is not a problem; unlike prose or poetry, hypertext fiction doesn’t have thousands of years of rules to follow about whether it’s OK to stick pictures randomly in our stories or not. So I think we should! Pictures everywhere! More pictures in Twine games! They’re fun and they make me happy. I don’t see them enough.


Let’s pretend we have a picture we want in a story. The picture could be any file format that displays in a web browser– picture.png, picture.gif, whatever. Today, though, we’re using picture.jpg.

The first thing you have to do is put the image file in the same folder as the .html file of your game.


Once you’ve done that, the syntax for placing picture.jpg in the story normally would be:


But what if you want to make the image clickable, like a word link? You definitely can! You can have the image act as a link to another passage in the story. Let’s pretend we’re writing a story where we want to have the player click on a map to find a buried treasure. The treasure is found in a passage called ‘treasure,’ and the image is called map.jpg. In that case, the picture link would look like this:


You don’t have to save the image in the same folder as your html file if you don’t want to, though. You can also link images directly from the web:


You can also make images link to webpages instead of other passages:



If you’re looking for high-resolution pictures on a specific topic, it’s sometimes hard to find good art that you’re allowed to use in your own projects for free. However, there are some pretty reliable art resources out there that will connect you to creative commons or public domain images that you can use for whatever you want, or even modify.

1) Creative Commons Search

This website will search image databases that contain a lot of creative commons images. Images under a creative commons license are free to use, but some are restricted. If you want to find a picture you can edit yourself, make sure the little box that says “modify, adapt, or build upon” is checked under the search bar.

My favorite database to search on this page is Flickr. It’s huge and, of course, very frequently updated.

Remember to cite the creators!

2) Wikimedia Commons

Free-to-use images from Wikipedia’s media collections. They currently have almost eighteen and a half million images. This means that navigating the content through the category browsing links on the front page can be a little daunting and overwhelming. However, the search function is good.

Remember to cite the creators!

3) Getty Open Content Program

The Getty is a big art museum in southern California. It contains a lot of old and weird works of art purchased by an ancient captain of industry. They own the reproduction rights to some of the artwork they have. They also own a lot of art which is SO OLD that nobody has a copyright on it anymore. They’ve decided to release both of these kinds of images for free use to anyone who wants them.

The overview of the program can be found here. The full list of all the usable content can be found here.

The one thing about the GOCP is that searching this database can be hard. Addiionally, you’ll notice that most of the pictures here are pretty old, or are drawings of old things. We’re talking 1800s and older for most of the items in the database, including the photographs! However, if you’re doing something with an old-timey theme, this is a great resource.

Remember to cite the program in accordance with their rules!