Interview with Chris Klimas

Interactive Fiction, FMV games, and Hypertext

Klimas header

Chris Klimas created Twine, the extremely popular and accessible interactive fiction development platform. He’s also involved with the Interactive Fiction Technology Foundation, as well as Unmapped Path, a company that builds narrative experiences for mobile and desktop. His work within the Interactive Fiction and game design spaces has had an incredible impact on the IF community as well as the games industry at large. We’re extremely grateful that Chris was able to spare some time to chat with us in January 2018. An audio version will be available at a later date, but for now, please enjoy the transcript below.

Rob Parker: We have with us today Chris Klimas, creator of Twine, also associated with the Interactive Fiction Technology Foundation (IFTF) and Unmapped Path. Thanks again, Chris, for agreeing to come on and have an interview with us. We first chatted back in November at Wordplay, the interactive fiction festival put on by the Hand Eye society in Toronto. How did you wind up getting involved with that?

Chris Klimas: I had been wanting to attend Wordplay for quite awhile. The thing I was really surprised about was that, “Oh, it’s a one day festival,” but it turned out that a ton of people in the IF [Interactive Fiction] scene were coming to this, which was great. And I was like, oh, I’ve missed out completely on my chance to meet with these people and talk with them and all that good stuff.

For the past two years or something like that I’ve been wanting to go. I think last year it was in London, so I wasn’t able to make it all the way out there. And then this year, or this past year, was a kind of nice happy coincidence, where I was interested in attending anyway, and then the organizers reached out to me about speaking at it. I’m like, “Oh, perfect. This is a great coincidence!”

RP: Yeah, I’ve gone consistently for the past few years. I wasn’t able to make it to 2016 because flying to London is a big ask. But yeah, it was 2015, I want to say. They had just an absolutely stellar lineup. Christine Love was there, the people behind Night in the Woods, Scott Benson and Bethany Hockenberry, Sam Barlow, and Emily Short. It was a really phenomenal time and it was just really cool to see everyone there. And then it was kind of heart-wrenching to see it go overseas for the next year. But it was really cool to have you out there and talk a little bit about Twine, and also talk about some of your other projects that don’t tend to necessarily come up as frequently. I think Twine tends to be the thing that you’re the most known for and I’m sure we’ll get to some questions more specifically around Twine.

But you did open your talk with a few examples of Choose Your Own Adventure novels that I’d never heard of that you’d really enjoyed when you were younger, which was funny because you opened that talk even saying, “I bet no one here knows what these books are about or has never heard of these things.” And I was like, “I don’t know, I’ve read a lot of Choose Your Own Adventure books. And yeah, it was stuff that I’d never seen or heard of before.

So do you get a chance to play much in the way of games these days? If so, what are you enjoying right now?

CK: Oh, right now I’m ironically addicted to the Nintendo Switch that I own. My gaming life used to be taken up almost completely by Breath of the Wild and now I just finished the main part of Mario Odyssey. Which is not at all in the same realm as interactive fiction, but hey—they’re great games and I enjoy them. I actually am, right now, actively seeking out—it’s tough, there are some resources online for trying to find good IF games. I’m especially interested in the iOS platform and what you can do with IF there. And right now I’m actually kind of looking for something to play, actually, in the IF sphere.

RP: Yeah, I’m still working my way through Hadean Lands, so I don’t know how helpful I can be on that front. Which is still stellar, every now and then I poke at that and try to get a bit further but it’s a tough game. There’s some real hard puzzles in there.

CK: Yeah, no kidding. I’ve gotten maybe a quarter, maybe, into it. And just hit a wall and I think I got distracted by something else at the time. I mean, Zarf’s [Zarfhome Software’s] games are really interesting in terms of just the concepts, the underlying ideas behind them. Just the idea of this weird, sort of sci-fi mixed with fantasy. Obviously that’s been done before, but the particular way that he approached it, with the Naval flavor in there; that was really cool to me. I have to admit, I’m not that well-read as far as Sci-fi goes, and who knows, maybe this is something that everybody in that world has heard ten million times before. But to me it was really original and really interesting to mess around with.

RP: I think my read on that was that it’s kind of steampunk-ish to a certain degree. But I think that really worked for it, because I have a lot of problems with steampunk as a general genre. It’s just like: “What if we were just monarchists and flew around in airships?” I think 80 Days is probably the game that executed best on that, where it was a bit critical of the underpinnings and some of the culture that surrounds the Victorian Era.

What I liked about what Plotkin did with Hadean Lands, was place a real emphasis on that line between scientific exploration and ritual. The place that alchemy sort of occupies within that game. You’re mostly just solving puzzles by doing specific things. You’re transmuting elements from one to another, or you’re imbuing an object with a spell that will shake off rust from a door. And that’s how you’re proceeding—learning the rules of that world,  but those puzzles kind of build on each other in a way that I find really fascinating. Because I think there’s a danger in a lot of adventure games that go, “Here’s your puzzle room. There are things inside this room that you need to solve it,” but the lessons that you learn there don’t necessarily translate to the next room. Those puzzles are discrete in a way that is its own kind of design consideration, but I think with Hadean Lands you really feel like you’re gaining a greater sense of that world and how it works the more you proceed with it. But it gets real tough.

And I think 80 Days is a really good iOS game. It’s kind of adjacent to IF, but Contradiction: Spot the Liar is a very campy FMV mystery game.

CK: Really? I’ve never heard of it before.

RP: Okay. It’s… something else. It’s very much a point and click adventure game and navigating through it is a bit tough. You’re getting static images of this small British town and you’re an inspector named Jenks. Almost every character in this FMV game is absolutely chewing up the scenery, and everyone is extremely sinister, and you know who the bad guy is like two seconds in, but there’s a certain charm to it because they leaned right into it and it’s interesting just to proceed through it.

They’ve recorded a lot of cut-aways. Basically what you’re trying to do is get people to contradict themselves. You start finding items as you’re exploring, you get different dialogue options as you talk to other people about other people’s business or whatever. And then every time you present different objects to them they’ve recorded a different version of Jenks showing that to that person.

CK: Oh, wow.

RP: At one point in time he finds a mask and there’s 10 or 15 shots of him saying: “If I showed you this…” —and he pulls out this mask and puts it to his face in various levels of goofiness—“…would this mean anything to you?” And it’s fascinating. I have a great deal of love for that game. So yeah, if you’re looking for something on iOS there’s a goofy little murder mystery thing.

CK: Cool. I have a lot of nostalgia-love for FMV and that era of things. I feel like everybody in the indie games space has mined the ever-loving bejesus out of the 8-bit and 16-bit eras, but the 90s CD-ROM era? People seem to be trying to pretend like it didn’t happen. And there are obviously a lot of problems with the games of that era. I mean, early FMV was mostly terrible and cheesy. But at the same time people were doing all of these really interesting experiments. It’s sort of just been this fallow field, and I feel like there are a lot of lessons left, material or ideas, that you could mine from that period. But that’s just my own pet theory.

RP: No, I’m with you on that. A friend of mine, former editor-in-chief of FPS Alexandra Orlando, has murder mystery Tuesdays while she’s streaming, and what she streamed last week was The Infectious Madness of Dr. Dekker, which is this small game on Steam for like 10 bucks or something. Also FMV, mostly British actors for some reason. One of the actors in Dr. Dekker is actually from Contradiction. One of the things you can do is actually type questions into this game and it does the adventure game thing of saying “I don’t know what that means!” But it’s a little bit less frustrating when it’s this person actually saying the words to you, and even then it seems pretty wide open. It seems like someone was inspired by Her Story and wanted to do a version of that that is a little bit more Lovecraftian in its horror and stuff like that.

CK: Hm. Interesting.

RP: Yeah, so there’s people out there that are with you on that. It’s tough to get seen these days on Steam, unfortunately.

CK: Yeah, definitely.

RP: We mentioned a bit earlier that you’re involved in the Interactive Fiction Technology Foundation. You’ve been involved with that for a while now, so how have you found working with them? Because primarily it’s there to help preserve the actual technology underpinning interactive fiction works. Rather than just, “Here’s funding, go make a game,” it’s more helping with that infrastructure, as I understand the mission statement.

CK: Yeah, exactly.

RP: It seems a bit in line with a lot of the work that Andrew Plotkin has done, for example, with Parser-based games on iOS. A lot of his stuff has been sort of behind the scenes making it so that those tools are available and stuff like that.

CK: Yeah, to understand the mission of the foundation I think you have to have a little bit of an understanding of the hobbyist IF scene that really, as far as I know, got off the ground in the early 90s. Basically, at that point, Infocom—at least here in the States—was the main purveyor of IF. And they had gone out of business, I believe, at that point.

Obviously there are different ways to tell the story. But as far as I know the IF scene was mostly coalesced around a particular Usenet group called rec.arts.int-fiction. And, oh boy, if you don’t know what Usenet is I’ll just skip that whole explanation. But the short version is that it was a discussion board. People who just loved the genre had created a bunch of tools. First of all, just to play. It was mostly centered around Infocom games. People had built custom stuff to be able to play these games on modern-ish computers and make sure they were able to continue to play the games, also eventually to the point where people are able to create their own games.

Obviously there were a lot of systems to do that. Inform, the one that kind of became the predominant one, is not the only one out there, but Inform had the advantage of being able to compile stuff to the same format as Infocom so it had this nostalgia edge early on. And then there’s also an IF archive where there is an FTP site where you can download stuff, including these games that people were producing at the time for free. That was the culture, that I’m just going to work for a couple months or maybe a year (or even more) on a game and almost always I’m just going to upload it to this archive and whoever wants to play it will play it for free. It started a big stir when people actually started thinking about commercial IF back then.

The main point is that at that point, any infrastructure underlying the IF hobbyist community scene was provided basically out of personal interest. The IF archive was originally run, I believe, by a guy who was working at a German university. I could be getting that part wrong. In any event, he was just personally interested in IF and he talked his employer into being like: “Hey, can we host some files here?” The internet was a different place back then, right? Running a server was kind of complicated, it wasn’t something you could just do for $10 a month or whatever it is now. So all these things were all driven by personal interest which is great, to a point, but people move on. They want do other stuff or other circumstances might prevent them from being able to maintain these things. The problem I think we’re trying to solve with IFTF, the primary problem at least, is that we want to make sure that these mainstays of the community—the archive, tools like Inform or Twine—make sure these continue to exist and be supported and everything else that goes along with that. It’s sort of a preservation mission, to a point.

We’re also interested, at the foundation, in promoting IF and doing outreach to people and making sure that people hear about the genre. I think the player-base for IF, at least parser IF, tends to skew older? I mean, I don’t have any stats or anything to prove it, it’s just my hunch that most people who I’ve run into who talk to me about IF usually talk about playing an Infocom game or something like that back in the day. That said, there are still plenty of young people who are getting into IF, but we want to make sure that this continues to be the case. That’s because IF is a really cool medium in general, and we want to make sure that it just continues to thrive and grow and stuff like that.

It’s tricky because I think obviously we’re very interested in text-based stuff. You know, stuff where there are no graphics pretty much whatsoever. And that’s a tougher sell, I feel like, for a younger generation. At least at first, because it feels like more work to play a text-based parser game like Hadean Lands than something like Mario Odyssey. Obviously they have very different pay-offs in terms of once you get to the end of either; the experience of playing either is both good but very, very different. And there’s obviously an accessibility issue there too, in terms of certain commands you have to learn that are sort of the standard. If you didn’t really know to type the word inventory to see what you’re carrying around, most might never really have guessed that. I mean, I’m pretty sure I learned the word “inventory” from playing parser games as a kid (laughs).

I just mean that the mission has multiple facets to it. At the core is really making sure the good stuff we have going on right now continues to go on, and then helping things grow. We’re not really interested, at least at this stage, in funding games or creating, because I think the main discussion that we had at the time—obviously we don’t want to become a studio or something like that. We’re a non-profit. But also it is a whole different ball game to try to think about funding particular works. How do you even begin selecting that? These are the kinds of processes that grant funding organizations go through and have very, in some cases, complicated processes to figure these things out.

This is a very worthwhile mission but it’s a whole kind of can of worms that we don’t necessarily want to open right now. Part of that is a) just the general level of complexity but also b) the board of directors that started things out. That’s where our skill set is not necessarily there specifically. I think we have a lot of skills or expertise in the infrastructure need, you know? Keeping stuff running, making sure that it runs efficiently, those kinds of things. It just felt at the time like this was how we can do the most good. There isn’t really a non-profit or any kind of corporate force that is working towards this end and so this is where we felt like we could make the most impact.

RP: Yeah, for sure. It’s always fascinating to me and I have to keep working through it in my head whether this is just a product of the person that I am. I mean, I was fortunate enough to have access to a personal computer in the early 80s and 90s. So as I was learning how to read I was also learning how to read with parser games. Castle Adventure was the one that I was playing a fair bit. It’s kind of a mess now (laughs) but at the time I was the only one in my Grade 2 class that could spell “scepter”.

CK: (Laughs) That’s a tricky one, yeah.

RP: Yeah! It made me a nightmare person when it came to picking a class reading list because I would pick these really arcane words and everyone else in the class was like: “I’m going to have to learn to spell this thing that I’m never going to use!” But adjacent to all of that was a lot of roguelikes and so it’s really fascinating as someone who has a foot in both communities, has studied roguelikes.

I’m involved with Roguelike Radio and that side of things, where instead of hand-crafted, hand-written content it’s proc-gen stuff. Not that proc-gen stuff doesn’t show up in IF and not that roguelikes don’t also have hand-crafted puzzle stuff throughout. But in terms of the way that those communities have developed and existed—for a long time they kind of had a burst of some early activity, sort of the early stages of the PC games industry where you had a commercially released version of Rogue, but also you had people maintaining it out of the goodness of their hearts and because they were hobbyists.

You still have that now, even though you still have, on top of this, people who are making free 7-day roguelikes and just releasing them into the wild. Tarn Adams, the people working on Dwarf Fortress, they’re releasing this game for free but they also have Patreon and stuff like that. I definitely see the need for that kind of curation, because that stuff, by virtue of being run by people who may just go away at some point for whatever reason—having someone there to try and archive it or at least preserve it in some form is useful, especially from the perspective of scholars who want to go back and study this stuff. I think the biggest frustration for people that want to study early gaming stuff or digital communities, that stuff is so ephemeral and so given to just vanishing. You don’t necessarily have that in literature; at a certain point you can kind of dig back into historical records and it’s not going to be a complete picture but it’s better than nothing. In some cases if someone just decides that they’re going to toss the server or whatever, that stuff might just go and might be gone forever.

CK: Yeah, it’s true. I’ve been thinking a lot with Twine about how to best organize these certain non-linear stories. And so I tried to find out, when people were designing choose-your-own-adventures and other kinds of game books, how did they lay it out? How did they plan this out and keep things straight in their heads? I haven’t been able to find out that much material on that, at least so far. One thing that I thought was fascinating was, so there’s the Fighting Fantasy series of game books that was put out by, I forget if they were called Games Workshop at the time but they were the people who eventually became Games Workshop. And they decided “Hey, let’s make a solo role playing game in a book form.” And they literally typed it out page-by-page-by-page and sort of made up the references as they went. I was appalled! (Laughs). Because I was like: “Wait, I always assumed on the other end of this whole process somebody had some master diagram!” You know? I figured at the end they shuffled around the page references and they had some magical process or something but it turned out no, as far as I can tell. I don’t think I’ve ever read an interview with the book editor, I think it was at Penguin that they were published. And their book editor basically a) had to make sense out of this page mess, and b) they had two authors working on it and they had completely different narrative voices going on because they didn’t really know what they were doing.

RP: Oh no!

CK: I would just love to hear from her, I don’t remember her name. I believe it was a woman though. Just to hear what that experience was like (laughs). Just how did she keep it straight? And that kind of information is tough to come by. I’m beginning to see more of it now; I feel like maybe as the original authors are getting older or perhaps even dying, that some materials are coming out to the light that’d been sort of hidden away in a cabinet somewhere or something like that. That area of “How do you plan?”

It’s a really interesting question. How do you plan an interactive narrative? How do you chart that out? I feel like nobody has really figured that out yet. But I would love to see more history or scholarship or whatever on that subject, at least just personally speaking.

RP: Yeah, Michael Hancock, the founding book reviews editor for FPS, did the opposite thing of what you’re describing. Essentially, he used Twine to map choose your own adventure books that he had. So it was a situation where he went through those books, created passages, and created his own maps. I don’t know if he necessarily did anything beyond that but that was part of, I think, his dissertation work? I’m not sure. I’ll have to ask him.

CK: Yeah, I forget his name…I feel terrible. Jeremy…? I forget his last name. There’s just a project that came out recently that mapped a ton of choose your own adventures and other kinds of branching path narratives with these really beautiful charts. Jeremy Douglass, I believe his name is. But that’s also sort of working backwards from the published works, you know? Which is good, really good from an analytical standpoint, but it doesn’t necessarily tell you that much about the mindset. I mean, obviously you’re never really going to know if there were a whole set of other choices that just never made it into the final book because “Oh, the book’s getting too long” or “This was a dead end in general, didn’t feel like it went anywhere.” I think that kind of material is just priceless, but accordingly really difficult to track down.

Actually, it also reminds me of this other thing. When I was first getting Twine off the ground I kind of pressed my writer friends into service and was like “Hey! Try this out!” And a friend of mine put their story together in Twine, and the interesting part was that, sort of hidden in the story was this whole separate draft of the story that he had started but kind of discarded I guess. I should have asked him about it but I didn’t. Just this leftover, half-finished painting hidden away in this finished work. I was like, this is really cool! This is a thing you would never see in an analogue situation; that would never happen, I don’t think, unless you accidentally mailed the wrong draft to somebody?

It felt very voyeuristic, first of all. I was just like, “Wait, what’s this thing over here?” and then I realized “Oh, this is the draft he didn’t really like.” I presume, anyways. But it felt very funny to get to that vision of things. This was maybe private? I don’t know.

RP: Yeah, I have absolutely released games that have had just, “Oh, this passage isn’t working for me,” or whatever, and I just never get around to deleting it, and I think, “Oh whatever, who’s going to notice?”

It’s funny that you mention that because I was running a tabletop RPG with friends using the Sprawl, sort of a rules-loose, almost collaborative approach to storytelling, but you’re still rolling the dice and there are some areas of chance. At the end of one of their missions—it’s a cyberpunk story—there’s an AI that reaches out to them and says “Hey, put in your code,” and you can pick a reward. I was like, hey, I’m going to build something in Twine, because I know how to use it and it has been a while since I’ve built something with it, and it would just be something fun to do.

One thing that I did throw in there was the hacker character had picked up a different name because they were on the run from this corporation that used to employ them, and so the way I had set it up they had to type in their name. So I had two inputs for that hacker character, one was their real name and the other was the name that they would be known for, their handle or whatever. If he did that he would have unlocked a different thing that would have happened. So I had worked up some weird thing that fed the result or their choices to a Google form and so all I did was just sit there and watch it and then he actually meant to solve the puzzle. I think he just opened the page source—he’s a developer so he knows “view page source”—and saw there was a reference to his other character name and he had this really cool moment and really enjoyed it. But I don’t know any other way I would have done that without using Twine and having those hidden passages.

CK: Yeah there was a term that came out of Hypertext in the 90s called a jane’s space, which is a node or passage that has no links whatsoever. The idea being that they are more of a single thing and an almost weird, artistic thing, almost because the whole point is that there’s no way, literally, to get to this even by viewing source at the time. So it’s almost a statement that only the author sees. Which is also interesting, but not quite the same thing.

RP: Yeah, absolutely. So one of the other things you are involved in is Unmapped Path. Because one of the other games that was on display at Wordplay was Nocked! True Tales of Robin Hood, which was a very energetic presentation. I was like: “I’m immediately buying that game,” on the spot. Because the author, Andrew?

CK: Yeah, Andrew Schneider.

RP: Really gave a fantastic talk. I confess I’ve not had a lot of time to actually spend with it, but what I have played I’ve really enjoyed. But how did that happen? How did that come about and how was working on the game?

CK: Sure. Well, Unmapped Path. I’ve been collaborating with a really good friend of mine named Joel Haddock on video games for quite a while. I was actually looking back and saw that we’d actually been doing this since around 2010 and thought “Oh, that’s a really long time!” (Laughs). We started off doing Flash games, because I was just messing around with stuff on the internet and I ran across Flixel, which was a library and I guess still is a library that makes it very easy to build games with Flash. I was just using it, and I think I saw it and was working on a game for Grad School, because I was at a cool grad school program that let me do that kind of thing. I was like: “Oh, I’ll try making something in Flixel,” and it turned out to be cool or I thought so at the time anyway. And we started building games in Flixel and navigating the weird waters of selling them to portals like Newgrounds and Armor Games, and that whole weird economy that sort of still exists right now but not really anymore, just because the flash game scene is not quite the same thing as it once was. In any event, we sort of morphed our name. The name we picked at the time was Twofold Secret, but then as our interests began to fade from 2D games or 2D graphics to more text-based stuff it felt like an almost rebranding was called for. That’s how I picked the name Unmapped Path.

The basic gist that we’re trying to do with this particular iteration is to draw on Twine and use it as an engine for a game that hopefully, when people play it, they won’t necessarily realize that they are playing a Twine game. By that I mean…Twine games are great obviously, I’m a huge fan, needless to say (laughs). But they tend to be sort of rough around the edges, which is sort of endearing in its own way. The main issue that I see is that they don’t necessarily translate to mobile very well right now. And there are ways to improve on that, obviously, but it’s sort of like taking Twine as the armature of a game and trying to build something commercial out of it. That’s the mission, I guess I’d say.

Andrew, we met completely by happenstance. It was a funny but sad story. I had set up a personal website a while back and I discovered my contact form was completely broken (laughs). And I was horrified because there was this pile of emails from people reaching out to me about working with me. Andrew’s was one of them, and he was very nice and not too upset about the fact that he waited like a month or something like that for a response from me, which was very fortunate. And he happens to live about an hour away from me, which is a complete coincidence. And so he had this game Nocked! that he had already produced in a different engine, but he was interested in striking out on his own.

So it’s been our first big project with the—I hesitate to call it an engine, though that is the word I usually use—we built something called Disbound that basically takes Twine and bridges it between iOS and Android and does all the boring technical parts, so that it becomes really easy to get something up and running inside there. So we can focus on the custom parts, the parts that go above and beyond just tapping on links and going from place to place. And so for Nocked!, for example, there are a lot of resources, like gold you can get but also, I think it’s notoriety? I forget, I think it’s not the right word, but you get the idea. Different stats with RPG stuff. So you get nice little pop-ups to display “You’ve gained this” or “You’ve lost this”. You know, other small stuff. Small touches that you wouldn’t necessarily see in a Twine game.

RP: Oh, renown is the resource.

CK: Right, renown. I feel like there’s an opposite one also!

Yeah, there’s a lot though. There’s like ten or more stats. So helping the player keep track of that and keep on top of that. Andrew has been a great partner because we’ve been sort of, to a certain degree, figuring things out as we go, and he has been very understanding and been much more of a partner than a client, I’d say. Which is not what you’d find in a lot of cases. So it’s really cool, Andrew’s game is humongous.

Actually, the biggest challenge that we’ve faced working on the development side was figuring out how we would actually test it. I forget how many words it is, but I want to say 150,000, which is quite a lot. I forget, we actually did the math. This is like six books of text or something like that, and so the obvious thing would be testing…you’d want to test every path right? But that’s not really feasible for a game of that size. We thought about how to make sure that all of these things, all of the parts connect the way that they should, so we built basically a testing tool that would very rapidly go through the story and do a playthrough hopefully every two minutes or so. And just being smart about which way it went so it didn’t repeat itself. And so at least you could leave this running overnight (laughs) and get at least a sense of the landscape at least and see if there are any major hiccups. It’s still really an interesting problem to work on, because I think Choice of Games has some similar things going on with their stuff where they’ll just do a random walk through of their games and its built into their own toolset and hopefully they can suss out where people can get hung up, or stuck, or whatever. We’re working also on tools indicating“Oh, it looks like you accidentally didn’t give anybody any outbound links!” which sounds silly, right? It’s the kind of thing that normally, when you’re authoring, you should of course catch that. But when you’re working at a certain scale you miss stuff like that.

RP: Yeah, absolutely. Or iterations of a similar scene, but it has to be a little bit different because of tone, or whatever. You wind up thinking, “This is mostly the same scene,” but you still need to touch this up or update this. You know you need x amount of version of this thing. Or it’s pulling from pools, but from different pools, and it’s just a matter of, “Oh yeah, I’m technically working on the same path, but I’m working on multiple different passages, actually.” I think in part why I haven’t sat down with this is because it’s almost daunting: I have this compulsion where I try to break games, and I feel like I would need about four or five playthroughs with Nocked! where I just banged on that thing and tried to see what I could do that would be completely strange before I even sat down to play it seriously. Which is not the way to live. Don’t do what I do.

CK: Yeah, that was the thing. Before we got serious about testing I would just kind of go through clicking links without really paying attention. I would know I needed to test this one section, and so I would just click through to get past this first section and I’d click kind of blindly maybe six or seven times and think, “Wait, what’s going on? This story is completely different! I mean, still in the same genre but there’s magic now!” I should have actually been paying attention (laughs).

RP: Yeah, that’s always the worst, especially for someone who has made a few very weird Twine games. You’re the worst proofreader of your own work because you’ve seen it. It’s a challenge I’ve run into in my day job and a bunch of other places where I read the instructions for an online course assignment. They make perfect sense to me, but I’ve also been sitting there stewing in this course’s content for the better part of four months. The person who is going to take it the rest of the way, go do technical development or even offer that course, they might sit down and be like: “What is this? What are you talking about? What do these mean? What do any of these words mean?” And it’s a unique challenge almost, I think, to IF in terms of how focused it is on that authored content and getting that extra set of eyes on that stuff. It’s so, so key.

CK: There always comes a point for me whenever I’m working on a game where, just because I have played through it so many times just testing things out, because I tend to do lots of iteration on stuff. And I’m just at a certain point completely sick of it, (laughs) and I still like it in an abstract sense, but in a weird way I can’t stand playing it. We’ve done games with music in the past and I always need the “Music Off” switch. That’s one of the first things that I have to implement because I will drive myself mad listening to the song while testing it. And it’s just funny, I’ve also heard from other developers and often times they go through that experience too. It’s just that you’ve lived with something for so long and you’ve seen that first part so many times that our brain just glosses over it, almost.

It’s weird because the corollary is that a year or two afterwards and you come back on it and there’s always something that I’m surprised by in my own work. “Oh wait, this is actually kind of smart!” Other things I’m horrified by, but usually there’s one or two things that make me think “Oh yeah, that worked really well.” And I remember at the time that I didn’t think very much of that thing.

RP: I always know I’m coming towards the end of a project when I’m sick of the sight of it.

CK: Exactly.

RP: But yeah, a year or six months down the road I go back to stuff I worked on . As part of the research project I had to do as part of completing my degree, I had to make a Twine game. I remember at the time that, in addition to all the other writing I had to do and stuff like that, I was just so done and burnt out on all of that stuff. I submitted it and just closed my eyes and thought: “Whatever, it’s someone else’s problem now.” Then I went back a year or so afterward and thought, I should not be as down on this as I was, because I think there’s some salvageable, worthwhile stuff here that I could maybe rework into something else, or even take some of these ideas and push them a bit further down the line. It’s always good to come back to it.

I think also, for me, Twine has been a huge inspiration. There’s one morning where I essentially had never heard of Twine and I think Rock Paper Shotgun had a thing about Twine games. In that morning, while at work I played SABBAT by ohnoproblems and Howling Dogs by Porpentine and was blown away. I still don’t know how SABBAT works, and I’ve been working with Twine for however long since then.

I’ve done stuff even for my job with Twine which has been really interesting. I have a friend who I recommended Twine to, and she teaches high school and was using it with some of her students. It used to be basic, but it’s a different term now. For students who, it’s a win if they show up. So she introduced Twine as a supplement; instead of writing an essay for the class or submitting a piece of writing, they could make a game in Twine and submit that. And she said that it was almost as though the students didn’t realize how much work they were doing. Because they did over and above the actual required word count and these games were expressive and interesting and well thought out and well designed. For whatever reason, Twine connected with these students who by and large didn’t see the point: “Why do I need to take English, why do I have to write this stuff? Who cares about this stuff?” For whatever reason that stuff really connected.

I think there’s a lot of room for that kind of testing to see what the difference is here between asking students to apply this stuff in procedural ways or in a different approach. And I have friends who are teaching English courses, and they also offer that same allowance for first year students and every single time they post some kind of Facebook update or send me a message saying, “I’m blown away with what my students are producing this term, it’s always amazing and very interesting to see what they do with this tool and what they come up with.” So that’s my pitch. If anyone’s listening to this and hasn’t used Twine or hasn’t thought about using it in the classroom, please consider it. It’s super approachable, I’ve consistently run one-class-long tutorials, where it’s a 15 minute explanation and then students are up and building stuff and usually when they come out at the end they wind up going and making other things or they wind up having at least a positive response to the course.

CK: Yeah, the use of Twine in education has been by far the most gratifying thing about working on it. It’s one of those things that—I wouldn’t call it a life-changing moment, exactly, but it definitely made me catch my breath. A friend or someone I met through a local meet-up does a weekly coding camp kind of thing for kids, K-12, where they get together on the weekend and work on different projects and stuff like that. And she invited me to come talk to the group because some of them were using Twine and it was just one of those very, very vivid memories I think I’ll always have.

It was weird, it was a converted courthouse or it might have been a courthouse that was being repurposed for this code camp for the weekend. Walking into this room that looks like a courtroom (laughs) and before everything got started and sitting down and being quiet, looking around the room, and seeing this 8 year old girl working on her laptop, and I was able to peek at her screen from where I was sitting and she’s working on something with Twine and that was really where it sank in for me that this is real (laughs). You know, I read lots of stuff about Twine on the internet, obviously, but somehow seeing it being used by kids is huge to me. It has meant a lot to me just because even if you’re not going to build IF or games or whatever just the fact that you are using this as a writing tool and that these kids are finding it useful. That is so, so gratifying to me. I was like,“Alright, this is why I’m doing Twine” (laughs). I mean, for the beginning part it was kind of for my own self-gratification almost, although I wanted it to be something that other people wanted to use. But now seeing it used in all these crazy contexts is, “Yes, this is actually the purpose here.” And I just feel really grateful, as weird as that may seem, that that has happened for Twine.

RP: I know you’ve talked about it elsewhere. I think one of the first talks you gave around Twine was something about, essentially “Why did I release this thing into the wild?” And then as this community built up around it and you sort of stepped back and let that happen before really coming in and talking about Twine. You did the (in my opinion) very smart move of asking, “What does this community need from me really at this point?” Because, you know, it was already kind of growing through Anna Anthropy’s stuff, even stuff like Videogames for Humans. Have you heard about it?

CK: Yeah, yeah.

RP: Just a community of people that felt like Twine was a good way to interact with an industry and an industry that historically had been very antagonistic to those voices. And I think that sort of arc and trajectory was really valuable. Just sort of stepping back and letting that tool develop on its own. Even more recently in an interview with Sub Q, you talked about one of the goals for Twine 2 is to make the editor more accessible for people who don’t speak English as a native language and for differently abled people. So I wanted to ask how that is coming along and what resources are you using? Do you feel closer to that goal?

CK: I think we’re making good progress but I think there’s a lot of ground to cover still. There is an effort going on with IFTF right now to try to assess the accessibility of IF tools, meaning for differently abled folks. And that’s what I’m hoping will give us some good ideas about what to improve about Twine right now.

I work as a web developer as my day job, so I have a reasonable idea of what accessibility means but it is one of those topics that is time intensive to work on because it’s not something you can just let-er-rip, pick a tool, run a thing over it, and fix a couple things and you’re done. It’s always an ongoing thing. But also I’m hoping that under this umbrella of IFTF we can start to make some good progress there. As far as localization goes, we have—I forget how many—ten localizations? Probably more than that at this stage. The one thing that we’re missing are, for the most part, we don’t have a lot of non-Western language localizations.

So this is my mini-pitch in this interview. If you happen to speak a non-Western language then I would love for assistance with translating Twine. The cool part is that there are, unlike accessibility where there’s 15 different tools and you have to use them all because they’re all good at different things, there is a kind of standard approach as far as localizing an application goes. There’s a nice little program you can run that says, “Here’s a phrase” and it’ll spell out how it’s being used—because obviously English has its own quirks and stuff like that. I was trying to write a really good translator’s note about what “passage,” how to translate the word “passage.” This is one of the things I like to toot my own horn about: yeah, I picked a good name for passage, because it’s both a text passage and also a passage from one place to another. And I was trying to, in the source code, write out, “Okay, these are the subtleties of this meaning” (laughs). And of course in other languages there probably isn’t a word that carries the same kind of connotations.

But anyway, it’s very easy, it’s something you don’t actually need to be technical to do. Your knowledge of language is actually the key. And there’s stuff on the website about how to help out with that. It shouldn’t take too long, I hope? I forget how many strings there are, but it’s not actually overwhelming as I found.

When I was testing it out in the first place a couple years back I did a Pig Latin translation. Which is hidden away, you can’t get to it! Speaking of hidden spaces or whatever. But I needed something I could read because I’m embarrassingly mono-lingual. I know French barely. I needed something I could translate to easily on my own to make sure everything worked as advertised. And it took me maybe an hour to go through. and obviously that was pretty rote but I would imagine for real languages it wouldn’t take that much longer. I hope, at least.

RP: Interesting. It would be really fascinating to see other translations come through, as someone who is also embarrassingly mono-lingual. Like, I know enough Spanish to get into trouble, I know enough French to confuse with Spanish, and I know enough Russian to mostly play S.T.A.L.K.E.R. (laughs) in the original language.

CK: Well, you’re doing better than me, to be honest (laughs).

RP: It’s the sort of situation where I learned English and how to type by playing MUDs and IF games. I learned by also reading books, but it made me want to go and read books. I was playing Hugo’s House of Horrors, and there were references to Tolkien in there, and that’s what made me want to go read Lord of the Rings and stuff like that. So forcing myself into that situation where I have to use an environment that is a different language would probably be something I would take advantage of to actually push myself to get to that next level, where I can feel like I’m confident using a language other than English.

Also, as someone who similarly works in forms of web development, working on online courses, accessibility is always a huge challenge. That was one of the things I actually ran into with Twine. I took a screen reader and applied it to a Twine game and it was rough, it was having some trouble in part because it was having trouble realizing that the task had changed and I think that was just the way that it understands web pages, like: “Oh, the link didn’t update and nothing else loaded, necessarily. It’s still just one file so nothing has changed here, what are you telling me to do?” So even adding cues there that something has been updated. It’s been a while since I’ve done something like that and I don’t use screen readers on a regular basis, but I keep pushing for usability testing with people who do use screen readers and stuff like that at work and it’s a huge barrier because it takes time and it takes resources.

CK: Exactly.

RP: Neither of which is in huge abundance, unfortunately. But on the upside I do have, at least in Ontario, there’s the accessibility for Ontarians act that mandates that all websites that receive some kind of public funding, which includes universities, have to meet some WCAG guidelines and stuff like that, so that’s heartening at least. There’s still loopholes and stuff like that—if you have to log-in to use the site you don’t have to follow that stuff as stringently—but yeah, I’m really interested to see how Twine’s accessibility stuff proceeds going forward because it’s super important.

CK: Yeah, and I feel like it’s actually overdue at this point in fact. I think there are some things we can do to attack that specific problem, even, but it can almost be a never-ending thing because it’s just tough. You can’t anticipate every possible thing that someone can do inside a Twine story just by the nature of what they are. I mean, there’s a double-sided thing where it’s like, a) we need to make the engine and so-forth accessible and b) we also need to educate authors a little bit in what some best practices are as far as accessibility goes. That’s like a whole other challenge, you know?

RP: Yeah, for sure. And even then it’s a situation where you can’t, even in web development, make everything perfectly accessible. You can just make, in some cases, a thing less inaccessible. It’s still kind of a hassle. And in those cases you try to provide an alternate option. Sometimes you can’t expect a tool to do everything all at once.

CK: Yeah, exactly.

RP: We did one of our web developers works in human-computer interaction and was asking a very deep question in terms of, “When you were first building Twine, how much did you have to edit from TiddlyWiki to get stuff to work? Has working with that stuff been challenging in the long run or are you still happy with some of those choices that you made originally? Because it seemed that at the time you had a couple of things that you wanted to do and you were able to make that happen with Twine. Is there any legacy code that you’re sitting there looking at going ‘Man I need to change this?’”

CK: (Laughs). So let me just back up and explain a little bit just for folks so they have some understanding. Originally Twine sat sort of on top of another project called TiddlyWiki, and TiddlyWiki did all the hard work playing the story. I ran into this project before I started working on Twine. So basically Twine, in a funny way, was a way to create TiddlyWiki pages, if you look at it from a certain perspective, because it handled all the aspects of displaying a particular passage. The programming framework, I don’t think it had if-then conditionals built into it at the time, but I just used what was already created. The framework of TiddlyWiki was implemented for that.

At this point I don’t think that there’s any code left over from TiddlyWiki still in Twine, but I could be wrong. I don’t maintain Sugarcube, which is the format most people use, the output format. That’s maintained by a guy named Thomas Michael Edwards and I know he has re-written it over time. And that’s the most original recipe of Twine coding. It has those two angled brackets around code you see in Twine a lot, that comes from TiddlyWiki. That’s how they decided to do programming stuff inside a piece of text. I don’t know, in general the Twine tool is a big old re-write (laughs). And then, because it was all JavaScript, Twine 2.1 was also a pretty big re-write because things kind of progressed a lot in terms of JavaScript since that first version.

Things had gotten more sophisticated, so I’m now using a framework called Vue instead of Backbone. Backbone is sort of more barebones, as I guess the name kind of indicates (laughs). Which is good, sort of, but there’s a lot of repetitive stuff and a lot of jankiness going on. At least my perception, though I’m sure there are people online that would disagree with me, that switching from Backbone to Vue has actually decreased the number of bugs and stuff like that because it’s moved more of the functionality into this library which is much more tested and much more used and stuff like that. So that part is an interesting challenge, just because JavaScript continues to be this thing that is this huge moving target. The JavaScript we write right now is probably going to look ridiculously antiquated in like two years, if not five years. Which is a funny place to be if you compare other programming languages and environments; you’re like, “what?” because the Java you wrote five years ago doesn’t look that weird nowadays, I hope at least. I don’t know Java that well so maybe I’m totally wrong, but in other languages I think that’s true at least.

At any rate, the world of the web just changes so much and changes so quickly that what’s cool now is going to be super uncool. I forget how long ago there was this library called Angular that was super popular. Everybody used it, and everybody who didn’t felt like you were doing something wrong. You were like, what do all these people know that I don’t? And then almost overnight, they updated a version and said, “Oh, we’re changing everything about this framework,” and like twenty million people just walked away from it overnight (laughs). I respect the decisions that were made, they didn’t make them for bad reasons. I forget the exact phrasing of this. I heard this on a podcast: “The only other world that is as fashion driven as JavaScript is snowboarding” (laughs). And I totally believe it. Like, React is the coolest thing right now and it may very well stay that way, but I also suspect in four years, who knows? Something else will be like, “Oh you’re using React still? Terrible!” And so I try to make decisions technically so I can live with these things for at least a couple years.

It’s funny, it has the feeling—I was deciding between Vue and React at the time—and it was weirdly like betting on a horse or something like that. It was like: “I think this particular framework is going to stick around, it has enough baseline adoption.” You know? And I’m not sure you see that with other fields. Like with Ruby, if you’re going to build a web app you’re going to use Ruby on Rails. Or mostly. There’s obviously exceptions, but by-and-large you’re going to use Ruby on Rails. And for everything you want to do in JavaScript there’s like five choices and some of them are equally valid (laughs). I think proponents of it say it’s a good thing, because inevitably more competition means that the end result is better, but getting there to that end is kind of messy because you can’t necessarily have the luxury of waiting around to see who wins that particular race.

RP: Yeah, not unlike my other languages, I know enough HTML, CSS, JavaScript, Python, to get into trouble. But in terms of sitting down and learning end-to-end how to do a thing…I mean, sitting there I’m like: “I can lay out all this time but in two years that could be completely wasted.” In reality, though, it’s not wasted. You’re learning certain things that are transferable between languages and stuff like that. The Games Institute, a research institute based at the University of Waterloo, where FPS comes from, has connections with various developers. We have some relationship with Digital Extremes in London, Ontario, and also EA has an office in downtown Kitchener, which is the city right next to Waterloo. I sat in on a meeting with EA and they brought in their “fixer,” the engineer they drop on a project when it’s way overdue. And he looked more or less like you’d expect, a disheveled Quebecois dude (laughs). Kind of tough, a t-shirt.

CK: Smoking a cigarette in there?

RP: Almost, kind of had that vibe. (Laughs). He’s seen some things. And he went around the room of mostly English or digital humanities students and was like: “Why are you here and what are you here to learn?” And for almost every single person his follow-up question was, “What code do you know how to do?” And when he finally got to me I was like: “I know a bit of Python,” and he replied, “Why do you know Python!?” And as the conversation went on you could just feel the air leave the room because he clearly had no idea what to do with any of us. It was really fascinating to be there but it was also intimidating as hell because people were like: “Listen, I have other stuff that I need to do. If I’m going to learn code I have to do this on my own time and bang my head against it, so you don’t want to pick the wrong code.” And when you see those conversations come up around JavaScript it’s terrifying. Because what does this look like in two or three years?

CK: Yeah, there’s a lot of defensiveness I think. If you remember back to when Mac vs. PC was the hot debate in the computer world, it’s the same idea. You’re trying to defend what choices you’ve made about what languages to learn, or whatever libraries. And you don’t want that language to become worthless, so of course you’ll pick on people who think otherwise. I mean, obviously you shouldn’t, because you should be a good person, but it’s understandable. I’m sure he was a C++ guy I’m going to guess.

RP: Yeah, uh huh.

CK: So he was just like, “You’re just wasting your time learning these high-level languages.” But that may be true depending on the kind of game you’re trying to build, but in reality we all just kind of have to get by. I mean, in most cases I feel like people should learn enough programming to get whatever they want to get done, done. If the concept of learning these things is appealing to you and you want to keep diving into it then great, but there shouldn’t be this oh-you-must-learn-twelve-things-before-beginning kind of mentality. That’s just a completely unnecessarily hostile attitude to take towards things.

RP: Absolutely, to be clear. His response was probably…hey. He works for EA and has probably seen an incredible amount of precarity even in programmer positions, and probably took that meeting as, here’s a bunch of people who want to get into the games industry and who don’t necessarily know what they’re actually getting into. And I think that probably wasn’t the case for people in the room; I think everyone was abundantly aware that it’s an incredibly difficult industry given to a lot of burnout and stuff like that. That’s the crux of a lot of humanities studies, looking at the sociology of that stuff or the cultural studies. You know, anyone who comes up through the humanities has got at least a little bit of Marxism (laughs). So they’re probably looking at this stuff thinking, “This is a bit tough.”

So I know we’re kind of running up on time, but you did mention that you went to grad school for a bit. How does that extra level, going above and beyond in terms of undergrad, have you found that beneficial? What were your experiences there? And I guess more broadly, as a middle state publication sharing in the dissemination of research above and beyond the picture that a lot of people have of the Ivory Tower and stuff, where you just have high-level debates of people talking to other people who have that high-level knowledge, and then stuff doesn’t necessarily make it outside of the academy. Has that stuff translated or have you found it useful? Or are you still kind of like “meh” and I’m glad that it’s done?

CK: No. First of all, the program I was in was very practitioner-focused. It was at the University of Baltimore, and it was in interaction design and information architecture. So, usability, in other words. I had an interesting history with it, actually. It’s tied up very much with the development of Twine.

I was doing it basically as a night class, so after my work would wrap up I would drive over across town and take a class. And I had figured out, for myself, that I could really only handle one class at a time while keeping my day job and so I was going really, really slowly through this program. It was intended to be, I think, a four year…maybe three. I forget. In any event I was on year three or four at that point and was maybe halfway through. Because they expect you to do many more classes than that in one semester, but I couldn’t manage that and keep up with everything else that was going on in my life. But anyway, Twine was something that was bouncing around in my head for quite a while while I was in this program. And I thought about it as a Master’s thesis I could eventually do. But then I just got impatient, basically. (Laughs). Because everyone was like: “Yeah, this is a great idea! Why aren’t you doing it?” And I was like: “Because I have to wait until my thesis rolls around.” And yeah, eventually I just went ahead and did it.

And what I find for myself is that sometimes I’ll find myself repeating advice to people and really, what I’m doing when I do that is trying to tell myself something. I was doing a group project with a guy who was trying to change careers by completing this program—he was a cell phone salesman or something like that. And I was like: “You know, the knowledge you are getting here… I think employers, if you’re looking for a job, people are going to look at what you did and not necessarily say, oh, there’s a degree on paper.” And so for me that was like: “Oh yeah, this is actually really more applicable to me.” (Laughs.) Obviously I was kind of a busybody for telling him this, but just being inside of the IT industry I knew that degrees count for something, but more often than not people will care about your experience. So I figured I should just do Twine and that kind of thing. I ended up actually taking an off-ramp from the program; I started as a Master’s student and ended up leaving with a graduate certificate instead, which was right for me.

But all that goes to say that I am not trying to dissuade anybody from the idea of post-undergrad education, by any means. The thing I’ve found, even for classes where I was not super in love with the content, it was a weirdly meditative experience for me. In a way that was not true when I was a full-time undergrad student. It was really useful to me to leave my day job and think about something that may not have direct applicability to what I’m doing day-to-day, but at least let my mind focus on that for a bit, and that almost cleared it from the day-to-day whatever of a job. And obviously the usability aspect of it, the stuff I was learning in that program, was totally directly applicable to Twine. When I explain Twine to people they’re sometimes like; “Oh that’s all it does? It’s just lets you make webpages and you click on links?” And people don’t get it because, computationally, it’s not very complicated, and I’m like “That’s not really the point. The point is to make it easy.” And that is a challenge unto itself in my opinion. So all the stuff as far as usability goes was totally applicable for Twine.

RP: Yeah, that really shows, I think. The first game I made with Twine was in a parking lot while my partner was at the dentist.

CK: Wow! (laughs).

RP: It took about forty minutes and I had a framework. I mean, I did some editing work or whatever, but it was just, “Okay I’ve got 24 hours, my goals are: I’m going to make a thing that has links between passages and then manipulate some variables and then some goofy stuff happens.” And that was kind of it. And it was a really positive experience and it kind of pushed me down that path. Whenever I had a free weekend I would say “Okay, I’m going to do some CSS work with this and poke around.” And the fact that it was relatively intuitive and also that there was a really engaged community. That really helps a lot. I think you could still just throw out a tweet on Twitter saying: “I’m having a problem with Twine” and you could probably get a response within a day from someone.

CK: I think the one funny aspect of Gamergate to me was that the idiots running it, or who were trying to lead this thing, were like: “Ha! Anybody can create a game with Twine. That must mean it’s worthless.” And I was like: “No…you’re right in one sense and completely wrong in another.” That’s the whole point that anybody can do it. And that’s true for a lot of disciplines, this whole idea that only a genius could do this or only someone who was trained for years and years should be allowed to do this. That attitude, I don’t hold much with people who think that way I guess.

RP: Yeah the Games Institute will occasionally do a game jam and it’s usually in two parts. There’ll be a Learn weekend where people can come in and get workshops on, “Here’s how you use Twine,” “Here’s how you use Unreal engine,” and all of that stuff. Waterloo’s a big engineering university, and so one of the dudes that was on the engineer side of things and was involved with the Games Institute, and I think had run another session, decided to crash my Twine session. And the unfortunate part of it was that I had people there that were there to learn how to use Twine and I was just answering questions from this guy who could have asked me elsewhere about various configurations of, “Where does the code go?” And I was like “Listen, you put the JavaScript in here. Any other questions?” And at the end of that, every other student, even if I wasn’t really able to support or answer their questions because I was dealing with this guy, they all had a completed game by the end of the session and they were all super excited to go and do something for the next weekend. Almost absent my involvement! Which was good; as far as I’m concerned I don’t need to be that person that’s like the sage on stage. I just want people to go use this tool and have fun. And it seems like mission accomplished for everyone, except for the engineer, who was mad this thing was there, I guess. Yeah, it’s tough. The gatekeeping is still a huge problem in the games industry and in academia and pretty much anywhere you look. And it’s a lot of work to try and break down those barriers, but I think ultimately it’s very worthwhile.

Did you have anything else you wanted to add or pitch or plug or whatever? We’re coming up on the end of our time.

CK: Not especially. You can follow me on Twitter and all of that stuff. But I guess the other obvious plug is that Unmapped Path will be announcing a game later this year. A game of our own. But title and content to be revealed, so if you want to find out more about that stuff pop over to our website: unmappedpath.com. And yeah, that’s about it.

RP: Great! I’ve been looking at the Stop a Murder books, and I have a huge backlog of books, but Unmapped Path created a Stop a Murder homepage where people read these murder mystery books, and then there’s some companion sites where you can go and if you’ve solved certain puzzles you can input that stuff on the website. That was one of the other Unmapped Path projects so I’ve been staring at those for a while. (Laughs). Damn. So yeah, that’s really exciting! I can’t wait to see what you come up with next!.

CK: Thanks.

RP: And thanks so much for taking the time to sit down and chat with us.

CK: Absolutely, it’s been great.

RP: Awesome!