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.

Slaughtertrain has been judged “funny” and “charming” by the powers that be

So we finally saw the votes/rankings for the GameJolt Adventurejam competition that we submitted the first draft of Slaughtertrain to. (Don’t worry, the final version of Slaughtertrain is coming soon!)

And guess what? we were judged SEVENTH FUNNIEST and ELEVENTH MOST CHARMING

See our results here!

votes

I can now proudly tell people that I contributed to a CERTIFIED CHARMING GAME.

I have a feeling that people were just fucking with us, though, since we got only 5 votes total and we got a rather high ranking for visuals (there were no visuals in this version of the game). I am however going to stand by those “funny” and “charming” judgments because that’s what we were going for in the first place. Overall, we were #16 out of 86 total games, whatever that means for a jam with so little judging activity.

The new version of Slaughtertrain is almost done. We’ve got art, sound effects, music, and ONE HUNDRED TRAIN CARS. It’s going to blow your goddamn mind.

plusultra.ninja

Today, Kent, Rosstin and I bought a website for our joint projects at plusultra.ninja. Why .ninja? Well, it cost less than a third of what normal .com sites cost (Only $2.88!!), and plusultra.com was already owned by someone. Additionally, ninjas are very cool, and we are very cool kids to have such a website.

When we finish the polished version of Slaughtertrain in a few weeks, it will release on plusultra.ninja. Detective City already appears there. I consider this the definitive edition of the game, since it is no longer hampered by the restrictions browser-based game-hosting sites typically put on the game’s available screen real-estate. Now it is left-justified and full-sized, just as god intended.

We also now have an itch.io page, at plusultra.itch.io, and an email address, which you can find on our website.

SLAUGHTERTRAIN: Game Jolt Adventurejam

Kent, Rosstin and I collaborated again on another game jam game– this time for the two-week-long Game Jolt-hosted Adventurejam. You can find our submission here. If you like it and have a Game Jolt account, consider voting for it.

Slaughtertrain is a Snowpiercer parody made in Twine. We wrote over fifty different train cars with different bizarre, trainbound inhabitants, and gave the player an extremely limited, violence-oriented number of verbs. In each car, the player can either kill everyone present, steal the “bombdrugs” this society uses as currency (and bombs, and drugs), or pay 10 bombdrugs to avoid a confrontation and move to the next train. The player has two major stats: health and bombdrugs. They also carry a weapon, which has its own stats: power and durability. Health, power, and durability are never stated directly, but the player can learn to judge these stats by closely reading the game’s repeated text. Gameplay involves juggling weapons to maximize your chances of slaughter-success, and risking injury to acquire as many bombdrugs as possible.

You may be thinking to yourself, “gee, this doesn’t sound much like what I think of as an adventure game,” but the jam had extremely lax rules (that Slaughtertrain definitely fits) and we wanted a structured deadline to help us hack out this game as fast as possible. We were planning for 100 train cars but didn’t get that far; a second version will probably have all 100. Kent will also do a balance pass on the entire game to make it more challenging and interesting to play. We may also get some art in here? We haven’t thought closely about that part of the game yet.

Slaughtertrain is also notable for containing the most original code I have ever written for a game project. All of the stats, randomization effects, and weapon handling processes are carried out with javascript macros.

Anyway, expect to see a fuller, polished version of this game in the future. We’ll release the .tws sourcefiles at that time too, most likely.

The Mystery of Skull Island for Teacart 1K

Teacart 1K was a game jam I participated in a while ago. It used the Sharecart save format– a shared save file which all jam games read from together. Editing values on the save file with ONE game may affect all the other games in interesting ways!

You can play all the Teacart games together using this loader.

sbaitso

Our game, The Mystery of Skull Island, is a loving “homage” to Fallen London, an excellent browser-based interactive fiction game which you should definitely go play. Like Fallen London, Skull Island uses a card-based decision tree structure. Each “turn” in Skull Island draws random event cards from one of three different “decks.” Each card contains several thematically-related actions– sometimes they’re different solutions to the same problem, but other times they’re just “a bunch of stuff you can do in this place/time/with this person.”

I’ve always like the freewheeling attitude that Fallen London has toward players’ purposes and goals. You can’t easily “set out” to do stuff in the card deck. The cards just fall, and you explore their hidden crannies and opportunities as you see fit. It very effectively simulates the feeling of living in a place, of passing time in a world bigger than you. In most RPGs, you are the master of your own fate, but in Fallen London, you are merely a denizen of a city much more complicated and dense than you could ever hope to master. When you really surrender to the writing and the setting, the experience of playing can be very cool. There’s a feeling of endless possibility every time you encounter a new card. (Unfortunately, the dark side of this philosophy is that you end up doing a lot of “story grinding” to unlock certain kinds of new content. It’s not for everyone.)

Skull Island basically copies this attitude toward player agency– you only get three cards at a time, and most of them are just menus of different weird little activities and dumb little jokes tangentially related to one another by a common location or character. You may discover endings as you go, and choose either to explore or ignore them. You may load up a Sharecart file that already has all the endings unlocked! Who knows?

The Mystery of Skull Island project was led and coded by Jim Crawford. The art is by Rachel Sala and the music is by Ryan Ike.

Six Months Inspirations

While working on Six Months, I haven’t done a lot of explicit “worldbuilding” work. There are no documents or maps or world bibles describing the places in my story. I do a ton of that for my day job, and I don’t really welcome it into my personal projects. Besides, I’ve spent so long working on this particular story that I’ve learned its world through dumb rote, like a student in a history class.

I do seek out visual inspirations for various locations in the story, though. I did this for Swan Hill, too. I mostly use the Getty museum’s open image database, because it has a lot of chalk and charcoal drawings of early modern European villages, landscapes, and cities. Here are some pictures which I’ve been using as inspiration while working on Six Months.

Rindberg – View of the Rhine River Vallley

rindberg

Six Months mostly takes place in a large city called Rindberg– the same city where the Chancellor’s university is located in the story Swan Hill. If the capitol of the kingdom is similar to New York, Rindberg is more like Boston– not as big, not as cosmopolitan, but a successful trade port nonetheless, and vitally important to the region.

This drawing of the Rhine river valley was made by a Dutch artist sometime around 1651-1652. The low, flat basin in the image is how I imagine Rindberg looking from the surrounding hills– though Rindberg would be bigger than the town in the drawing. The time period and architecture also fit the story. Simon Villano, the protagonist, would see a similar view as he approaches Rindberg in the few hours immediately before the story begins.

The road to Swan Hill– View of the Residence of Archduke Johann in Gastein Hot Springs

road

Simon Villano lives in a fertile valley around a week’s journey to the northwest of Rindberg. The same river connects Rindberg and Swan Hill, his home– but to save time on the trip, road travelers will cut through the mountains around which the river winds. They might travel through other towns and aristocratic holdings along the way.

On his journey to Rindberg to make peace with his estranged brother, I imagine that Simon might take a mountain pass that looks a little like this one. This valley contains the mountain stronghold of a baron or baroness whom Simon knows very well. He will stay here one night before continuing on his way in the morning.

Simon’s social network, so to speak, is very small– and made entirely of people he’s known in one way or another since childhood. He does not often leave his home. Although traveling to this mountain pass for business discussions with its lord or lady is normal for Simon, going beyond– to Rindberg– is not. The buildings and trees and winding road in the foreground of this image would represent almost the very edge of Simon’s known world.

Swan Hill– View of Benevento

swanhill

This is the image that I used to represent Swan Hill in this Twine story. I always imagined Swan Hill as more of a manor than a castle– remodeled in recent years, as the kingdom strengthened and wars subsided. But I enjoy the shape of the river and the buildings next to it, and the thick bunches of trees mixed throughout. I also enjoy the fact that it is a view from a road. When Simon and Robert pull up to the manor in the beginning of the Swan Hill, they see a view quite similar to this one.

This duchy is Simon’s whole world. He rarely leaves for any reason. He has immense power in this little region, but he is provincial as hell– the biggest fish in a tiny little fishbowl. From Robert’s more-cosmopolitan perspective, Simon may as well be trapped here.

Mirian – Landscape with Hilltop Village

mirian

There are two major rivers in the story– the River Scoven, along which Swan Hill and Rindberg sit, and the Taschender River, home to an ethnic group which has been oppressed by Simon’s dominant one throughout the history of the kingdom. When Simon was a teenager, his father brought him on a campaign in the Taschender river valley. This troubling experience with an unjust, messy war dramatically changed Simon’s personality and attitude toward life.

The city from which the local lord rules the Taschender river region is called Mirian. I imagine that a forbidding castle prickling with cannons sits in the corner of this city, overlooking a blighted, rocky valley and a rebellious populace. Simon’s father fought up and down this valley twenty years ago– but Simon got out as fast as he could by marrying young and taking over the family business. This view probably brings him many unpleasant memories.

Salienburg– Toledo??

Toledo_de_la_Humanidad-_España[1]

The capitol of the kingdom is a city called Salienburg. I’ve recycled this name throughout several abortive fiction projects over the last ten years (!!) and it is probably the oldest element in the story. The only firm qualities it has retained throughout all its various ghostly incarnations are:

  1. It is dominated by a large castle or fortress,
  2. It is extremely urban (compared to other places in the kingdom, anyway),
  3. It is fairly large,
  4. It is near the ocean,
  5. Most of the architecture is stone (compared to RIndberg and Mirian, which are mostly wood-built).

I have toyed with the idea of using Rome as a kind of inspiration, but I’m super sick of stuff based on Rome, and no city in this story is anywhere near as big as Rome was. But the city of Toledo looks a little more like what I’d imagined, so here’s a picture of it, I guess.

Detective City on Itch.io!

detective sidebar small

UPDATE: Detective City has been moved! Take a look at THIS BLOG POST!

Its new home online on itch is HERE!

We made a new version of Detective City with ADDITIONAL POLISH!

It’s available on itch.io!

This version of Detective City will run in your browser! It also comes with a downloadable version of the game’s source files.

Please feel free to steal our code and/or directly cannibalize our game for any reason. If you’d like to talk to me about this game and how it works, hit me up on twitter at @lmichet.

About The Hive Abroad

The Hive Abroad began as an experiment to see if I could write a short story consisting of discontinuous, kinda-“randomized” vignettes which nevertheless maintained a sense of emotional heightening despite their non-linearity. I wanted the reader to choose the order they read the passages, but I also wanted the experience to feel as if it had a proper beginning, middle, and end.

The challenge in writing this story was that although I had some knowledge of what the reader’s experience would be like, and some control over the order in which they read the passages, I did not have complete knowledge or complete control. Writing like this for a game is much easier and more comfortable, because in games we’re used to giving the player agency, used to urging them to take responsibility for and ownership of their actions. But when I write something where the reader has NO agency in the story’s events, I am used to being the one with all the responsibility and ownership. But this isn’t the case in The Hive Abroad.

So, this felt weird to write. It was sort of an exercise in psyching myself out.

—–

Basically, the story is made up of around 25 short vignettes arranged in four major “tiers”. The later tiers contain more serious, sad, or frightening events than the earlier tiers. The later tiers also require you to have encountered certain setting information which is explained in the earlier tiers– for example, the nature of Marun’s morphing abilties, or the names of the three different planets on which Sam lived his life.

When I first began writing the story, I was using weird Twine passage setups to create “loops” that were otherwise impossible in Twine’s markup language. However, this became very tedious; every time I wanted to add a passage or move a passage from one tier to another, I’d have to make huge changes all over the project.

During Indiecade, however, Andi McClure graciously wrote a little piece of javascript which allowed me to make these changes much more quickly. The final version of the story would not have been possible without her help.

thehive

An earlier, appealingly-symmetrical version of the story. Andi’s macro allowed me to restructure this story many times before picking my favorite version.

The macro she wrote allows me to name all the passages that I wish to include in a timeline of sequential events, then allow the player to explore left and right along that timeline. I always start you off in the middle of the timeline, giving you options both forward and backward in time. If you read in one direction for a while, then “turn around,” the macro will skip you over the passages you’ve already read and take you beyond them to the next unread passage. If you reach one end of the tier, you will no longer have hands pointing in that direction because you won’t have the option to proceed any further that way.

Here’s a diagram of one way you could possibly read the second “tier” of events:

order

So, I know which passage in the timeline the player will read first: the middle passage. I also know which two passages they may read last: the earliest and latest passages. This means that I can put more “intense” events at the beginning and end of the timeline, and I know that the reader won’t encounter either of these until they’re at least halfway done with the “chapter.” This will result in gradual emotional heightening throughout the chapter, and allow the transitions between the tiers to feel stark and interesting.

However, this control is incomplete.  I have no idea how the player will explore the middle of the tier, how many times they will double-back, or even how many pointer-hands will be on screen for the second half of each tier. My control over your moment-to-moment experience is incomplete and uncertain. But– to take a step back– I have much more complete control over the emotional heightening of the entire story as it progresses from the beginning tier to the final tier.

For example, I can put more disastrous, intense, traumatic events in the later tiers. I can put events in the later tiers which play off the reader’s familiarity with the characters. I can do a lot of different things to ensure that the reader’s experience– although unpredictable– has the overall average emotional arc that I want it to have.

This is pretty amusing to me. Although I have no idea what any given minute of your reading experience will be like, or how jarring any individual transition may be, I do know what the “overall experience’ will be like. I have more control over the general than the specific. I’m usually all about specifics: in my current project, there are sections I’ve played close to fifty or sixty times, slowly changing the wording and the interaction sections bit by bit. The Hive Abroad forced me to take a step back and let things go.

—–

Aside from Twine, I know no other tool that would have let me write something like this so easily. In the future, I’m interested in possibly using Twine for other non-“game” writing projects– projects which use randomization and non-linearity to expand their stories in ways that don’t necessarily involve game-like experiences.

Here’s an example of a project which actually accomplishes that: a fan-made web version of Cory Doctorow’s novel Someone Comes to Town, Someone Leaves Town which randomizes several characters’ names every time they appear. In the original version of the book, the characters’ names change every time they are used, keeping only the same first initial. Reading it as a text which actually changes the names randomly for each reader creates an experience which is more personal and, I think, better representative of the book’s core themes. If you’re going to have a story with themes of uncertainty and ambiguity, why not use digital tools to actually create that uncertainty in the text itself?

And, going forward– if I’m going to use nonlinearity in a story again, why not use it in a story where disorganization, randomness, uncertainty, or disjointed time are important themes?

If I ever had to write an “artist statement,” I’d probably say that I think the way in which a digital story is told should somehow reflect or enhance its themes. Swan Hill was about a guy buried in his own thoughts– so I used digital tools to actually bury his thoughts inside other thoughts. I’d love to write a nonlinear, non-game story where the core themes of the tale are more deeply expressed by the story’s non-linearity. I don’t think The Hive Abroad really does this, but for me it’s a good stepping-on point.

—–

When it come to games, my favorite story-games all use unique story-delivery methods to further express their core themes, pulpy as those themes often are. Pulling the trigger in a Mass Effect interrupt feels as brazen and ballsy as an action-hero must feel when they step into the middle of a discussion and escalate shit with a gun. The thing the player does– the physical action of pulling the trigger during the NPC’s speech– mirrors the emotions in the scene and the overall escapist fantasy of the game itself.

The best recent example of this kind of wizardry is Pry, a mobile game nominated as a finalist for the Narrative award in the 2015 IGF. The player navigates the story with pinching and spreading gestures on the touchscreen. The text opens and closes like an accordion of folded paper, revealing or hiding details. These same gestures are also used to control video storytelling moments: sweeping your fingers apart will peel open the character’s eyes and play a video of the world around him. Pinching them closed will pull up the character’s “unconscious,” where rapidly-flashing images and text give you hints about the deeper meaning of exterior events.

The physical actions Pry forces you to perform while reading actually mirror the themes of the story. Eyes, wounds to the eyes, photographs, bright lights, moments of peeking voyeurism, and other vision-related themes and symbols are important to Pry’s plot. The protagonist spends most of his interior time agonizing over his motivations for the deeds he regrets, and the player slowly learns more and more about the degree to which he is culpable for the story’s central tragedy. You peel apart the text to open an eye, reveal a truth, expose a guilt– first-person video sequences are literally hidden between the lines of the story. If your finger slips on the screen, the pages may snap shut again, hiding the video behind a glut of evasive, frantic, stream-of-consciousness babble. This “prying” motion makes the story more than it would otherwise be. This is the kind of narrative magic I’m interested in. It doesn’t have to be about physical motions or touchscreen gestures or polished video sections, either: some Twine games have already accomplished stuff this dee using only text change macros.

Anyway, bottom line is that I’d love to write a non-linear short story that uses its non-linearity to create something big and resonant by uniting plot, themes, and narrative delivery. I’ll be thinking about this while I work on my other projects this year, that’s for sure.

The Hive Abroad

The Hive Abroad is an experimental, nonlinear sci-fi short story about friendship, community, and changing yourself.

You can read it here.

It is also available on itch.io, because that’s where the twines are at now, apparently

I began working on this story in 2013. I finished it in early 2015 with the help of Andi McClure (code) and Julie Fiveash (art).

Andi wrote a Twine macro for me which allowed me to queue up passages for the player to navigate as if they were a timeline. Having this code made designing and testing the story’s structure 10000x faster and easier. Take a look at Andi’s website.

Julie drew images used in the story’s navigation UI. Take a look at Julie’s website.

This story was written in Twine 1.4.2. You can find the story’s .tws file here. It contains all the javascript used to make the nonlinear navigation work.

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.