Author Archives: Ryan

Uncovered! CROCODRACULA: THE BEGINNING

You can play this game right now! But you should probably find out where it came from first:

A few months ago, I came into the possession of a copy of a very old, very rare text adventure game. I happened to be poking around in—Well, maybe I should start from further back.

THE STORY SO FAR

A few years ago, I came into the possession of a copy of a very old, very rare text adventure game titled Crocodracula: What Happened to Calvin. Feeling an obligation toward the preservation of an oft-overlooked art form, I—

—Actually, I should go back even further.

Continue reading

The Imitable Process of Ryan Veeder: Additional Autosaving Techniques for Inform 7

There are a few more things I should say about implementing autosaving in Inform 7. In the previous posts I neglected to address how these techniques interact with the default verbs UNDO, SAVE, and RESTORE, which was a bit of an oversight. I’ll get around to that now, and then I’ll show you a couple of other neat things you can do with autosaving.

Continue reading

The Imitable Process of Ryan Veeder: Advanced Autosaving in Inform 7

In a previous post I explicated the basic principles of how to automatically track and restore the player’s progress in an Inform 7 game. What it really comes down to is this:

  • Represent the parameters of your game’s progression in a table.
  • Whenever the player does something worth autosaving, record it in that table, and then write that table to an external file.
  • When play begins, read that external file and use those data to reconstruct the player’s progress.

I said we’d get into some ways of representing progress in a nonlinear game. The first thing that comes to mind is my game The Lurking Horror II: The Lurkening, in which the player character learns various spells that let you manipulate the environment and solve puzzles. Learning certain spells requires you to learn certain other spells first, but the “tech tree” has enough branches that we can’t predict in what order the player will discover everything.

Continue reading

The Imitable Process of Ryan Veeder: Basic Autosaving in Inform 7

Ryan Veeder’s Authentic Fly Fishing autosaves your progress! This is kind of noteworthy, at least in the realm of text adventures. I don’t think Ryan Veeder’s Authentic Fly Fishing is the first text adventure to autosave your progress, but it might be the first game to do it in Inform 7.

Why bother with this feature for this particular game? Well, it was kind of necessary to make another feature work: Ryan Veeder’s Authentic Fly Fishing also uses the real-world date for certain “real-time” elements. The game can’t really keep track of these elements (say, counting how many different days you’ve played) if players are able to “change history” by loading outdated save files.

But there’s another reason, one which may more likely be applicable to your own personal design interests: Ryan Veeder’s Authentic Fly Fishing is supposed to be an extremely casual experience. There is no urgency for the player to reach the ending. (There is no ending.) It’s not supposed to be a battle of wits between the author and the player. You’re meant to visit the world of Ryan Veeder’s Authentic Fly Fishing for however long you want, whenever you feel like it, and maybe you’ll make some “progress” by finding something new, or maybe you won’t. It’s supposed to be very chill.

Requiring players to manually save their state at the end of a play session and then restore their state the next time they show up (being careful not to restore an old file and lose progress!) would detract from the casual experience I wanted to create. So it was doubly important for me to take the burden of progress management off the players’ shoulders.

Maybe you’d like to do something similar with your own Inform 7 project. Here’s how you can do that!

Continue reading

Profiles in Jazz: Adam Belstrom

Adam Belstrom puts his socks on one at a time. “I don’t know of any other way to do it,” he says.

Adam is shorter than you’d expect, neater and better dressed than you want him to be. An experimental jazz musician should have facial hair; he doesn’t. He should be living in a messy studio apartment, not a duplex near a church.

I show Adam a neat way of putting on both socks at once. He agrees that it’s neat. Then I make him do it a couple of times, so I know he’s internalized it. He thanks me, tentatively. I tell him he should do it that way from now on. He says “sure,” and I can tell he has no such plans.

“It’s a structure built out of chaos.

Bismarck, North Dakota: No epicenter of artistic innovation—or so you’d think. Adam Belstrom is turning that assumption upside down, with a little help from his family. Every Saturday night, at Bismarck’s experimental jazz club The Sponge, Adam Belstrom debuts a new composition. Each piece is 500 notes long, and each note is chosen by Adam’s infant cousin Marquisha.

“My brain is formless,” Marquisha says, in sign language interpreted by her mother Hester, Adam’s aunt. “Jazz is formless. That’s not completely true. Jazz has structure. But it’s a structure built out of chaos. A baby like me is a perfect composer of jazz music.”

Marquisha’s composing process involves throwing ball bearings into a sand pit in Hester’s back yard. (During North Dakota’s frigid winters, the sand pit is brought into the living room.) On Sunday morning, Marquisha is given a bag of 500 ball bearings; over the course of the week, she eventually throws all of them into the sand pit. When the bag is empty, Hester and Adam photograph the pit and use Photoshop to overlay the array of circles onto a blank page of staff paper.

“We don’t have a Photoshop license,” Adam tells me, “so you should probably just say we use an image editing program. Or, just say ‘a computer.'”

“I’m listening to the ball. It’s like a Zen thing.

Once Marquisha’s composition is transcribed, her mother uses a special rake to remove the balls from the sand pit and pours them back into the bag. Adam spends the rest of the week—however long that ends up being—rehearsing the music in preparation for Saturday night’s performance.

The ball bearings don’t always cooperate.

“Sometimes, a ball doesn’t want to be music,” Marquisha, now eighteen months old, explains. “Sometimes I throw the ball at Mommy, and she gets upset. But it’s because I’m listening to the ball. It’s like a Zen thing. I’m throwing it where it needs to be thrown.”

When this happens, Hester puts the steel sphere back in its bag, so that Marquisha can throw it again, hopefully into the sand pit. Her reasoning is simple: “Every song needs to be five hundred notes.”

What if Saturday night rolls around and Marquisha hasn’t thrown all the ball bearings into the sand yet? Hester brushes the question aside; such a thing “would never happen.”

Though he refuses to take even partial credit as composer, Adam does think of himself and Marquisha as creative partners. “Her fingers are too small to play the guitar. We got her a toy guitar for her birthday, but she can only strum an open chord right now.”

“When she’s older, she’ll play her own compositions,” says Hester. But Marquisha flails her arms emphatically, and Hester translates: “Mother, don’t you dare tell me what I’m going to do.”


It’s Saturday night. I and four other music critics are crowded around The Sponge’s tiny stage. Adam Belstrom arrives, ten minutes late. (Later I will deduce that he has just finished an argument with his girlfriend Sam, who will decline to be interviewed.) He arranges the pages of Marquisha’s music, six sheets of paper spread across two music stands. He clears his throat and begins to play.

I’ve heard from Hester that Marquisha only finished this composition this morning. Adam has had, at most, twelve hours to rehearse—and that’s not accounting for his argument with Sam.

The music has no melody, no tonality. Adam’s fingers struggle to accommodate Marquisha’s incredibly dense note clusters; I recall craters in the sand pit where ten or twelve ball bearings had gathered in little heaps.

I turn my attention from the stage for a moment, and I notice that Geof Yards, of Crawdaddy Magazine, is copying my notes. I cover my Moleskine with my hand. He pretends not to notice.

Geof Yards is a plagiarizing piece of garbage.

When the performance is over, I grab Geof’s notebook and throw it across the room. While he’s occupied, I move in for a final interview with Adam. He seems distracted. The only quote I can get out of him is “Thanks a lot for coming all the way out here.”

Outside, it’s dark already, and snowflakes dance under the orange streetlights. What a surprise: It’s snowing in North Dakota.

Trivia Playtesting 2019

I’m hosting another trivia fundraiser for Family & Children’s Council of Black Hawk County in February and I need to test the questions so I can make sure they’re good! I’d like to get a bunch of people—INTERNET PEOPLE who will not be attending the actual event—to help out with this. Whenever I’ve done this in the past it’s been very fun—and not only for me! The playtesters get to have fun too.

Here’s one of the rounds I made for the last event.

Last year’s internet people playtest ended up on a Sunday night so I’m penciling in the following time: Sunday, January 27 at 8:00 PM Central. And I’m planning to do it on Discord (instead of Google Hangouts) to facilitate a bigger group and hopefully multiple teams.

Email me or DM me on Twitter and I’ll hook you up with the Discord invite.

Cragne Manor!

It took longer than we were expecting but it’s done!

CRAGNE MANOR, written by Adam Whybray, Adri, Andrew Plotkin, Andy Holloway, Austin Auclair, Baldur Brückner, Ben Collins-Sussman, Bill Maya, Brian Rushton, Buster Hudson, Caleb Wilson, Carl Muckenhoupt, Chandler Groover, Chris Jones, Christopher Conley, Damon L. Wakes, Daniel Ravipinto, Daniel Stelzer, David Jose, David Petrocco, David Sturgis, Drew Mochak, Edward B, Emily Short, Erica Newman, Feneric, Finn Rosenloev, Gary Butterfield, Gavin Inglis, Greg Frost, Hanon Ondricek, Harkness Munt, Harrison Gerard, Ian Holmes, Ivan Roth, Jack Welch, Jacqueline Ashwell, James Eagle, Jason Dyer, Jason Lautzenheiser, Jason Love, Jenni Polodna, Jeremy Freese, Joey Jones, JP, Justin de Vesine, Justin Melvin, Katherine Morayati, Kenneth Pedersen, Lane Puetz, Llew Mason, Lucian Smith, Marco Innocenti, Marius Müller, Mark Britton, Mark Sample, Marshal Tenner Winter, Matt Schneider, Matt Weiner, Matthew Korson, Michael Fessler, Michael Gentry, Michael Hilborn, Michael Lin, Mike Spivey, Molly Ying, Monique Padelis, Naomi Hinchen, Nate Edwards, Petter Sjölund, Q Pheevr, Rachel Spitler, Reed Lockwood, Reina Adair, Riff Conner, Roberto Colnaghi, Rowan Lipkovits, Ryan Veeder, Sam Kabo Ashwell, Scott Hammack, Sean M. Shore, Wade Clarke, Zach Hodgens, and Zack Johnson, is now available for you to play and enjoy/goggle at in abject horror. It is straight up bonkers.

“Organizing this project was quite the crazy trip for Jenni and me” is how I’d describe the experience if I entered some sort of Olympic Understatement Championship. Corralling all these authors and their many, many, many many wildly different rooms was an extremely nutbars undertaking. Many of the individual rooms, as you shall see, are fairly nutbars considered on their own. Taken as a whole, with everybody’s writing styles and puzzle implementations and ideas of what the weather in the game should be bouncing into each other, it’s—it’s—

I mean, just check out the game.

If you’re in the minority of humans who didn’t work on this game and it brings any joy into your life, make sure you extend your appreciation to the people listed above. They worked very hard, created some amazing stuff, and they deserve to know that their work affected you.