Zarfplan: Progress report about progress

Saturday, June 30, 2012

Tagged: zarfplan, zarf, interactive fiction, the warbler's nest, if, dreamhold

If I want to call this the "June report", I'd better get it posted in the next couple of hours... That is, if you're in the US. Everyone else can blame the leap-second.

Last month, I was saying I had a complete picture of the puzzle structure. I can now add to that:
  • An update of PlotEx which can handle the puzzle structure. (I wasn't kidding about it needing optimization, woo boy.)
  • A map! (Not complete in detail -- I may split up some rooms and shift closets around -- but complete in structure.)
  • A rough list of where everything in the game belongs on the map. (Again, not yet fixed in terms of what goes in what closet.)
  • The basic Inform code for the ritual engine.
  • The first three rituals.
  • A unit-testing script for testing new rituals as I implement them.
  • A Secret Project.

The ritual engine has been the fun part. Of course I've already implemented a version of this, for the Hadean Lands teaser that I posted with the original Kickstarter project. But that was built to handle just one ritual (ignoring the starting "lamp" puzzle, which is a one-off set of actions). Generalizing it to support the giant branching ritual tree I've got in my notes -- that's what we call fun. But I've got three rituals in there now, and they all work, so I must have gotten it right.

To make sure I've gotten it right, I built a little unit-testing script. (One can eyeball code for three rituals, but in the course of the next umpty-um rituals, mistakes will be made. I can smell 'em coming.) It's just a bit of Python hooked up to an interpreter -- I wrote the whole thing this afternoon. But for every ritual, I can now write down a list of commands and the expected outcomes (following the engine's state machine). Plus, I can write down a list for every way to do a ritual wrong, and all of those expected outcomes. (Interesting, informative failures are key to interesting IF.)

(For I7 experts: yes, this is similar in nature to the I7 Skein facility. However, I've never had good luck with the skein -- whenever I try to use it, the IDE eats my data. So I wrote my own thing. Yes, it is a personal failing. But my script is nicely tuned for HL, and more compact, and it's also easier to check into Git, so there.)

And the secret project? I won't lie -- it's not IF-related. It was a wild idea that popped up early in the month, when WWDC was coming up and everybody was agog with rumors about an SDK for AppleTV apps. It was a good idea. More importantly, I could have finished it fast, submitted it, and been one of the first apps in its category in the new AppleTV App Store.

As a developer, I have to pay attention to those sorts of opportunities. I am obligated to finish HL, but I am also obligated to keep an eye out for other paths to success. So I spent a few days on the Secret Project, and no apologies.

Well, WWDC went by and those rumors -- turned out to be rumors. Tim Cook didn't say a word about AppleTV apps. No SDK, no AppleTV App Store. So the Secret Project is back on the shelf, and I've been back on HL.

I do intend to finish the Secret Project, for iPhone. It's still a good idea! But in the iOS App Store it will be about the hundredth app in its category, and there's no advantage to finishing it right now. That makes it lower priority than the IF work. Maybe by the end of the summer, I'll get it done.

I should also mention another Secret Project, on which I spent no time at all, because it wasn't mine. Jason McIntosh has just released an iOS version of The Warbler's Nest, his short award-winning IF work from 2010. Jason is the first IF author to pick up my IosFizmo framework. (The first one who isn't, you know, me.) If you haven't played The Warbler's Nest, and you have an iPhone/iPod/iPad, drop a buck on it. Jason's cat needs kibble.