I’m obsessed with Twine

I’ve been interested in interactive fiction for a long time. One of the things that I loved about my work in performance and theater was the ability of the audience to help shape the experience. I often tried to build in multiple opportunities for that to happen in the things that I made.

This is something that I’ve mostly missed in the things I’ve done on the web. And as I’ve been planning a new project, I’ve been wondering if there was a way I could do something more than just linear videos. Then the other day I saw this headline in my RSS reader – IFComp crowns its first non-parser game – and I quickly fell down a IF rabbit hole.

On Wednesday, I scribbled out a quick plan on my whiteboard and started experimenting.

Twine gives you lots of tools to create complicated, branching story logic. Thankfully, between some nice screencasts by Dan Cox, and the Harlow docs (one of the story systems that Twine supports) I was able to put together a small prototype story by about 2am (with timeout to see Willie Nelson).

This quick MVP taught me much of the things I think I’ll need for the project I have in mind but it’s not done yet. This is just the first part. Twine’s output is a webpage and it nicely supports HTML right in the editor so you can easily do things like embed YouTube videos. My initial thought was that I would create essentially video “cut scenes” interspersed with decision points. I tried this with a few videos and it’s fine on a computer but it’s terrible on phone and it’s important to me that this work on phone.

Then it dawned on me that an embedded YouTube video is actually an Iframe and if I could Iframe a video I could Iframe anything thing else… like something built with popcorn.js. And this can work on a phone if you base it on an audio file instead of a video. So with popcorn.js I can create an animation synced to an audio file with dialog. That’ll be my “video”. I’m hoping the effect will be something like an interactive comic book with dialog, sound and music. That’s what I’ll working on the rest of the weekend.