April's game, Stock Story

I’ve always liked gamebooks and choose your own adventures. Give Yourself Goosebumps defined my childhood, and I can remember many of the stories and mechanics from the books. Most recently I’ve loved the work of Inkle Studios on 80 days and the Sorcery! series. These games are top in class in games currently made for the iPad. They hire real, actual writers for their games, and it shows. There are few “bad guys and egg heads” and deep stories in a branching, complex world.

I thought it would be fun to play with some of the mechanics needed for a choose your own adventure, so I built Stock Story.

Stock Content

One of the constraints I put on the project was using nothing but stock material, aside from the story. All audio, images, and even the app icon are built using content from

shutterstock ($143/month) and audioblocks ($99/year).

The audio for the project was a much better deal than the images, although you might recognize a few on other parts of the site. As it turns out, inkle studios offers a choose your own adventure book creator for free. Build your story, then publish to kindle for some small fee or output a json file that you can use however you want. Markers, conditionals, paragraph joining - it has it all. This saved a significant part of the challenge of the project, since all I had to do was write a json file handler instead of build a story format myself. The json schema seemed odd at first until I realized how incredibly robust it is for crafting any kind of story.

Writing is hard

And it takes a long time. All told, I wrote 4,129 words for the story with 17 unique endings. This didn’t leave much time for editing, and a huge portion of the game I thought I could build I had to cut.

…and so is flowing text

SpriteKit has no UILabel, no fancy-schmance auto-flowing auto-sizing line-wrapping class to display text. In SpriteKit, you get one line of text and you can set the font. Justification? Word wrap? What’s that? In the end I wound up computing string sizes and manually flowing text, which wasn’t the best and really made me appreciate the tools we have that make these sorts of problems trivial in normal applications

I tip my hat to you, whichever team built UILabel. You the real MVP.

…and so is scrolling

You open Facebook.app/Twitter.app and scroll up and down willy-nilly. Items pop into view and everything is smooth and wonderful.

SpriteKit has no UIScrollView. I didn’t have the time to build a solution myself, so each adventure is a one-way trip.


The Good

The Bad

The Next Game

The start of each month will serve as a time to look back on the last game and plan the next. This leaves about two weeks for development and a week for release: screenshots, app icons, and the other hoops required to publish an app. So what’s the next game? I’d like to build a proper side scroller, and maybe look into game center if I have the time.