Monthly Archives: March 2010

Making Fragile Shells

When the 7th Casual Game Design Competition was announced, I had no intention of entering it. While all of the competition entries were supposed to be text adventures (yay!), the competition’s theme was “Escape” (sigh), and authors were encouraged to set the entire game in a single room (boo!). At the time I was in the middle of playing a lot of “Escape the Room” games because Eli demanded them. There was no way I was going to write one of those. What frustrates me most about Escape the Room games is their illogic and their story-less, motivation-less settings. You’re in a room; fiddle with objects until you find the way out. Bleah. No thank you.

Fragile Shells, new interactive fiction by Stephen GranadeOf course, one week later I had an idea compelling enough that I had to use it: what if the player were trapped on a space station, and had to escape or die? This grabbed me for a couple of reasons. One, I’ve never played any IF set in a real space station in zero-g. Two, a broken space station is one of the most inimical settings I can think of. It would help motivate the player, making them really want to escape. Other than by typing QUIT, I mean.

I spent some time considering the likely audience. The heavily-trafficked website running the competition would likely draw in players who weren’t as familiar with IF and its conventions, so I decided to make a small puzzle-centric game. The size limitation would let me polish the game’s interaction as much as possible and give me enough time to implement newcomer-friendly touches like progressive hints. The focus on puzzles would fit with the Escape the Room genre, making the gameplay more familiar to the audience.

So, then: could I write a good interactive fiction Escape the Room game? There’s already been one attempt at parodying the genre, but I didn’t want to take that approach. I wanted to make the genre’s clichés fit naturally within my chosen setting and add more story, motivation and characterization. I started by listing every Escape the Room cliché I could think of. Codes. Combining items to grab out-of-reach objects. Color-coded DVDs or keys or books. Removing screws with screwdrivers. Computer screens or keypads. It became a challenge to fit in as many tropes as possible, both from Escape the Room games and from IF. Amnesia? Sure! Give the player a concussion with a soupçon of both post-traumatic amnesia and retrograde amnesia.

Once I had a list of Escape the Room tropes, I expanded the story. I set the game a few decades from now and settled on a team of astronauts from the UK to further tweak expectations. I knew the story would come through in flashes, slowly spooling out until, by the end, players had all of the pieces of that puzzle. Doing so took advantage of IF’s focus on story and provided a second motivation for playing the game: to figure out what the hell was going on. (I didn’t do this as well as I should have, and I left at least two pieces of the story too implicit to be easily understood. Ah, well; next game, perhaps.)

There are roughly seventy ways to write a text adventure for every one author, though Emily Short has enumerated five approaches. I ended up doing two things that made my life much easier: I graphed out the puzzles and I wrote a complete transcript of the game before I began coding.

A puzzle diagram for the game Fragile Shells

The puzzle graph let me see how puzzles linked together and let me tweak dependencies for play balance. Using Lovely Charts I arranged the puzzles and the objects until I was happy with the game’s flow. I knew I wanted the player to be able to work on multiple puzzles at once, so that stuck players could move on to other puzzles. This goes against the usual linear gameplay of Escape the Room games, but I can’t always be a slave to fashion.

Making a transcript first was the best decision I’ve made this year. By writing a transcript, I forced myself to think both as an author and a player. It made it easier for me to anticipate unusual commands and alternate command phrasings that players might use. Instead of writing prose in discrete chunks, coding object after object, I wrote fluidly. I didn’t have to stop writing to think, hey, just how am I going to implement a chain that can be tied at both ends? Overall it made the game far more polished right from the get-go than I was used to. I didn’t hew exactly to the transcript during coding, but it gave me the spine of the game and a lot of usable text.

This level of planning helped me tremendously. Looking at my SVN log, I started coding on December 19th and by January 8th I reached the first beta build. Speaking of SVN, I highly recommend authors use source control. Source control helped me keep track of changes I was making, and at one point let me track down a bug where I had broken previously-working code. I used TortoiseSVN on Windows, though there are plenty of good options. I also placed my SVN repository, the files that keep track of the changes, in a Dropbox-synchronized folder. Dropbox is an online service that synchronizes files among computers that you own and keeps a copy in the cloud. (That sound you hear is Jason Scott grinding his teeth.) Dropbox gave me automated backups not only to Dropbox’s computers but also other computers I had access to. I felt much better knowing that I wasn’t one hard drive crash away from losing all of my work.

Overall, writing Fragile Shells was the smoothest IF-authoring experience I’ve had. I’ll definitely be using a variant on this approach and workflow for my next game.

I Survived PAX East

I made it! I survived several days in Boston without serious incident. I even went for a ride on the MTA, and did I ever return? Yes, I absolutely did.

Enough of that. How was PAX? you ask.

A giant crowd of people from the 2010 US inauguration

The main difference was that the crowds were there to play games and see Gabe and Tycho and wave their Nintendo DSis around instead of to watch Obama be inaugurated. Let me put it this way: the room for the Storytelling in Interactive Fiction panel filled up and was closed some fifteen minutes before the panel started. We packed a room with people to hear about interactive fiction.

I did go to a few other panels and wandered the expo floor, but most of the time I hung out in the IF Suite that Andrew Plotkin conjured up. I saw a lot of old friends and met new people who were entirely wonderful. Seriously, if I started listing all of them I’d be here all day, and who wants that when my lonely XBox 360 is begging me to play with it.

My main takeaway is that I need in-person IF events on a more regular basis. I’ve come back with a head stuffed full of ideas and new directions. I got a chance to be loud and passionate about IF in a way that I haven’t done in years. (Sorry, Nick, Aaron and others who got to hear me declaim loudly until Jason dragged me away. It was late and I was tired!)

Also I played Dragon’s Lair. For free! That’s nearly $1 at 2010 prices I saved!

Lunch with the G’parents

Stephen’s folks are visiting, so today they went to have lunch with Eli at school. For the kids in kindergarten, having a visitor for lunch is considered cool. We decided we should all get in as many lunches with him as possible before he turns 7 and realizes that having family around your friends actually decreases your cool points.

To Eli on His Sixth Birthday

It only took us three years, but we finaly found the best place for your birthday party: Kidventure. It’s an indoor playground with an inflatable slide, a climbing wall, skeeball, and a pirate ship. We had the entire place to ourselves, and they let us bring in our own food, which meant that the parents got to eat something other than pizza! In previous years your outsourced parties have run like Mussolini’s trains, with the staff hustling us from play time to dinner time and out the back door. This year you got to play some, then eat some, then play some more, then eat the awesome robot cake, then play even more. This turned out to be a recipe for fun and not, as I had feared, vomiting.

Eli blowing out the candles on his awesome robot cake

Speaking of the awesome robot cake instead of vomiting, your robot cake was awesome. It was our friend Renée’s gift to you. It had a jetpack and a data tape coming out of its mouth that read, “Happy birthday, Eli!” You showed how thankful you were as only a newly-minted six year old can: you asked her, “Couldn’t you have made me a Pac-Man cake instead?” Fortunately you ended up loving the robot cake, probably because robots are awesome and jetpacks are awesome and together they are quadruply awesome.

This year marks your first year of school. You’re attending a wonderful school. It doesn’t hurt that you love your teacher and she loves you back. I wasn’t so lucky, and didn’t have a very good time that first year at school, so I’m glad that you love kindergarten.

Eli pretending to be dead

I do not love kindergarten, and it’s not just residual bad feelings left over from that time when I was five and another kid peed on me. I do not love kindergarten because I now have to get up early enough to take you to school on my way to work. I used to be a morning person long ago, but now I am not, and this enforced early wake-up time is killing me. You, of course, wake up at 5:30 or so because God listened to my parents’ prayers that I would have a kid who was just like me. But even though you wake up so early, you don’t spend that time getting ready for school. Instead you’re busy making Lego robots and K’Nex robots and Lincoln Log robots, which I guess means you’re into pre-Steampunk Steampunk. Woodpunk? Anyway, we figured out how to make you get ready faster: turn it into a competition. Every morning we race to see who’s going to be ready to go first, me or you. The winner gets to do the Taunting Dance to the loser. Then we race to see who will be the first to get in my car and buckle up. You usually win, because I am old and slow and can only win through trickery like leaving my car locked until I’m at the drivers-side door and ready to get in.

Eli with a spoon on his nose

Did you know they don’t make you take naps at kindergarten any more? I spent the better part of a year pretending to nap at school, and now they’ve removed that vital part of the curriculum. That’s undoubtedly good for you, since you don’t nap any more. On the occasions when you’re at home all day you spend “quiet time” in your room with the door closed, where by “quiet time” I mean “dad gets to play Xbox 360 time”. You’re not actually very quiet in there, since you have to make loud pew pew pew vrrrm whoosh noises for the Lego and K’Nex and Lincoln Log robots, or else what’s the point? Besides, if we ensure that robots always make pew pew pew noises then Skynet can never sneak up on us.

I love your creativity. I am so excited that you tell your mom, “I want to work on a project. I want to do a craft.” You doodle. You cut out paper shapes and glue them together. You draw. You tell stories that wouldn’t be out of place in an episode of Axe Cop.

Eli in his preschool graduation regalia

I also love how you read. Sometimes you take a break from making robots and pull books off of your shelf to read. You’ve taken to reading stories to me at night, which I encourage by deliberately mis-reading the books you give me. It turns out that most of my parenting tricks involve annoying you until you do what I want, which I’m sure will win me the Parent of the Year award. We’ve taken to reading longer books, like the Magic Treehouse books. You’ve loved reading Toy Dance Party, giggling uncontrollably at the parts which involve me making groooonk noises.

You’ve got a complicated relationship with Liza. You play together better than ever before, mainly because you’ve discovered that she’s a loyal follower. She gets to play with her big brother and you get someone to boss around…for a while. You play dress-up with her, which has given us so many pictures to show your future dates. The two of you push toy shopping carts around the house like a miniature consumer-oriented Shriners parade. You make robots together.

Eli hugging Liza

Liza’s also teaching you how important it is to negotiate, though you’re still not great at it. A lot of your negotiation involves you making ridiculous demands, like, “Liza, if you don’t do what I want, then I’m leaving!” It’s all part of learning to deal with your storm of emotions that appear and recede with the suddenness of a summer downpour. You’ll clench your fists and say through gritted teeth, “That makes me so angry.” I’ve struggled with anger my whole life; I hope you don’t have to do the same.

Videogames continue to be a large part of your entertainment, especially since we got you a Didj for your birthday. A Didj is like a Nintendo DS, only the handheld console costs far less than a DS and the games are “educational”, which means every once in a while the game stops until you answer a math question. It’s good that you’re really young and don’t know how annoying those games are, or how cheap your parents are. Next I’ll start you on Pitfall so you can learn the true lesson that videogames have to teach us: everything is futile.

Eli playing with his Didj while Liza looks on

The other day we were driving home from choir, We got home and you ran outside into the darkness. When I asked you what you were doing, you said, “I wished on a star.”

“What did you wish for?” I asked.

“My own robot.”

Every night I tuck you into bed, and a few hours later I come back to check on you. You start out sleeping under your much-loved space blanket, but soon you wind yourself around and on top of it, clutching the stuffed ladybug that has become your favorite animal. I untangle you and stretch the blanket back over you. Some times you wake up and smile at me before sinking back into sleep. When I put you to bed you hug me tight and say, “I think I’ll keep you here forever.” I know that can’t happen, and I know it shouldn’t happen, but some times I wish it were true.

Eli and me at the US Space and Rocket Center

Crazy Hair Day

In honor of Dr. Suess’s birthday this week, Eli’s school has activities planned every day. Today is crazy hair day. Stephen and I decided he looked a bit like an Anime character but since I don’t know anything about Anime really, I have no idea which one.

He started asking me this morning at 6:03 when I would fix his hair. He asked again three minutes later and then about 3 minutes after that. I think he was excited about putting goop in his hair. I’m willing to do just about what ever it takes to keep him interested in learning.