This is not another daylog about depression
. I promise.
This is a daylog about yet another in a long line of attempts to avoid responsibility.
About a week ago, I came across web references to something fun. Someone online has taken an idea that's been kicking around for quite some time and executed it with some panache here. Essentially, they've created a hosting and sharing site for interactive fiction - games written with the Inform 7 intfic development system.
The main reason this was interesting to me (other than because I've always really enjoyed intfic, having cut my teeth on the really elegantly evil Infocom Master-grade games like Starcross and Deadline) is because I've always wanted to write intfic but have always ended up intimidated by the amount of up-front work required in most of the languages to get them to 'first light.' In other words, before the Z-machine will bring up a prompt, you have to do a load of frameworking and default-casing.
Inform has been steadily moving towards addressing this, and with Inform 7 it has made a huge jump. Inform 7 itself isn't really a new version of the Inform language. Rather, it's a 'natural language macro system,' in my own estimation. I say this because while Inform 7 is very English-like, and makes an effort to make programming rules to rules of (relatively familiar, if restrictive) English grammar, Inform 7 code is precompiled down to Inform 6 (i6) code before being finally compiled into Z-Machine (or Glulx) bytecode for execution on game player software.
That's not really that important, however. What it means for my purposes is that instead of having to actually design out most of a game prior to touching a keyboard in order to get a minimally-functional environment, now I can sit down and write something like the following:
"hollyfeld" by "The Custodian"
When play begins, say "And you follow him into the closet, down into the steam tunnels…"
Laszlo Hollyfeld's Basement is a room. The description of Laszlo Hollyfeld's basement is "Hidden behind the steam tunnels, this cramped and crowded living space is populated with hordes of esoteric machinery, both digital and analog. Off to one side, a Rube Goldberg device is using miniature golf pencils to fill out what look like Frito-Lay Sweepstakes entry cards. On a table in the middle of the room, a graphics monitor displays a sequence of slowly expanding colored spheres. Doors lead north to the tunnels, east to what appears to be a small sleeping area, and west to a cramped kitchenette.
There is a computer monitor here. The computer monitor is scenery. The description is "A succession of colored spheres blossoms slowly on the screen."
There is a Card Marker here. The Card Marker is scenery. The description is "This obviously homebuilt device may have been cobbled together using the remnants of a printing press and an emproidery machine. It is clacking busily as it marks sweepstakes cards ten at a time before sliding them out into a cardboard box."
...and hit the big green 'GO' button, and:
And you follow him into the closet, down into the steam tunnels…
An Interactive Fiction by The Custodian
Release 1 / Serial number 120225 / Inform 7 build 6G60 (I6/v6.32 lib 6/12N) SD
Laszlo Hollyfeld's Basement
Hidden behind the steam tunnels, this cramped and crowded living space is populated with hordes of esoteric machinery, both digital and analog. Off to one side, a Rube Goldberg device is using miniature golf pencils to fill out what look like Frito-Lay Sweepstakes entry cards. On a table in the middle of the room, a graphics monitor displays a sequence of slowly expanding colored spheres. Doors lead north to the tunnels, east to what appears to be a small sleeping area, and west to a cramped kitchenette.
A succession of colored spheres blossoms slowly on the screen.
>examine card marker
This obviously homebuilt device may have been cobbled together using the remnants of a printing press and an emproidery machine. It is clacking busily as it marks sweepstakes cards ten at a time before sliding them out into a cardboard box.
So of course, I immediately decide to try to intfic one of my stories. I'm actually impressed with myself, because I managed to pick a very short one - and I was right, because as soon as you try to turn a linear narrative into intfic, it balloons to maybe three to five times the size it was (at a minimum, maybe more like twenty times) as you try to build what feels like a world rather than a Choose Your Own Adventure book for it.
Anyway, the best part of this project (if you can call it that) so far is that I keep running into puzzles I can't solve immediately, because it's been too long since I did anything requiring real brain work. See, Inform makes it super easy to build a world - a world of descriptions and lifeless props. If you want that world to interact, however, it's much much more work. It's not that it's impossibly hard - it's just that when you start wanting things in your game to do more than sit there and offer a description, the amount of fiddly domain-specific knowledge you need about Inform and intfic in general goes up geometrically.
So after figuring out (well, no, honesty and credit: GhettoAardvark and Clockmaker mostly figured out for me) how to make multiple identical functional sort-of-explosives in my game (heheheh, there's a clue for you, what story is this?) I realized that the story itself was really only the final act of the game. This meant my protagonist needed to actually get to the setting of the final act. Which meant, s/he had to travel. And if you read any of my stuff, you know what that means.
Yep. A subway. Not just rooms claiming to be a subway - I needed an actual subway, where if you go there and wait, a subway shows up and you can get on board and it will take you to other places around the game world that you couldn't get to any other way.
That was a whole day or two of screwing around. That one I pretty much managed on my own, I'm proud to say.
And now I sit here on the weekend, running my unfinished game and pretty much just riding the subway. There are random encounters in the stations, different ones on the train, and the subway will move around its route on the map regardless of whether I the player am anywhere near it which, if you play Infocom-style intfic, you will realize is pretty cool. Mostly because all the introductory tools for building intfic are command-based, not objective time based - so things can react to the player, but don't generally have a life when the player's not around. You have to get to a whole thing called scenes to do that, which expands the complexity of the game as well as its performance.
So here I am, riding my subway around my unfinished gameworld and getting on and off and making sure I can't go into the track area when the train isn't there and making sure I can't get out of the appropriate stations without an ID, and etc. etc.
It's like a model railroad, only incredibly more nerdy.
I promise, when this game is finished (or when I stop working on it, coinflip which comes first) I'll put it (and its source code) up on Playfic so y'all can mess with it if you want.
Oh yeah, my other (much more important) win for the week - I think I got Zephronias intrigued not only with interactive fiction in general, but with the notion of building it using Inform. I consider this a major accomplishment, given that the technology displayed by these games was hip and cool maybe twenty years before she was born!