Saturday, May 27, 2017

I'm shifting my bloggery to

Nine years ago I made my blogging debut with a post titled Games that don't exist. I'd been on the web since 1993 (really!) but 2008 was my first venture into blogging -- which I guess I'd define as a semiregular series of nonfiction essays with an RSS feed.
The Gameshelf was a group blog run by my friend Jmac. I chose to participate because, well, I wasn't sure I'd be writing enough to sustain a blog on my own. Indeed, I never hit a daily or even weekly rhythm. But I got a couple of posts written each month -- which adds up. Over nine years I wrote 323 Gameshelf posts, documenting games I played, IF events I attended, and the entire development cycle of Hadean Lands.
But: everything shifts over time, and that includes the centers of gravity of web sites. Jmac moved his regular writing to a personal blog site. The Perl core of The Gameshelf (a Movable Type fork) rusted until it barely functioned. (That "323 posts" link above is supposed to let you browse all my Gameshelf posts, but it doesn't really.)
A few weeks ago, a routine Perl update broke the blog software completely. Fixing it was a one-line patch (thanks Jmac) but the writing on the wall had clearly acquired <BLINK> tags.
So, behold my brand-new blog page! It now lives at
I'm using, which is, yes, part of the Google-monster. But it works, it's free, I got the layout the way I want, and I don't have to worry about patching security holes. And there is an RSS feed.
I have imported all 323 of my Gameshelf posts. (Here's that first one from 2008.) You'll note that this post appears on both blogs, but it will be my last Gameshelf contribution. From now on, for everything.
(Except that I sometimes post on the IFTF blog, and the Boston IF meetup page is more or less a blog, and... well, life isn't simple.)
I expect I'll continue tuning the layout. There are a few remaining quirks:
  • Blogger's web import feature doesn't work (at least, it didn't work for me). I imported the old posts using Blogger's API.
  • Blogger doesn't understand Markdown. O woe! My importer tool did Markdown translation, but the resulting HTML is slightly munged. So the old posts may have slightly broken formatting.
  • All the images in the imported posts, and the cross-links to other posts, still point to The Gameshelf. The Gameshelf site will stay online for the foreseeable future, so that's okay.
  • I imported the blog comments too, but they appear as part of the post body. (For example, this recent post.) So the old posts all say "no comments" even though the comments are really preserved. (The Blogger API includes a verb for "fetch comments" but not "insert new comment". Why not? Who the heck knows.)
  • The search tool doesn't work. I think Google's crawler hasn't caught up with the imported posts yet. Hopefully that will fix itself.
  • For all anyone knows, Google will nuke Blogger next year. Or next week. (It's Google.) In that case I'll have to change platforms again. But I'll still host the site at, so no big deal, right?
Quirks aside, I am pleased with my new digs and so I bid The Gameshelf a fond and good-natured farewell. Posting will continue at the usual semiregular rate. See you all on the new domain.

Monday, May 22, 2017

Hadean Lands release 2.1.0

I have updated the Mac/Win/Linux version of Hadean Lands on Steam. These are small UI changes, mostly inherited from the past year's worth of Lectrote updates. The gameplay has not changed, and save files will continue to work undisturbed.

The same UI changes have gone out to and the Humble Store. (Last week, really.)
  • In the journal window, you can now sort items by name or by date (the order you discovered them in the game).
  • Added two new color themes: Sepia and Slate.
  • Changed the "Reset" menu item to "Reset Completely" (to match the in-game command for completely starting over).
  • Changed the "Close Window" menu item to "Close Game" for the main game window. (Except on Mac, sorry. The Mac's menu bar works poorly with this app framework.)
  • Fixed a slight size miscalculation in the status window.
  • Updated the Electron app framework to 1.4.16.


Monday, May 15, 2017

The history of Glk!

Last weekend I gave a short talk at BangBangCon, a small New York conference dedicated to "the joy of computing". I talked about the development of Glk -- from its Z-machine origins to modern web-based interpreters.

It's a ten-minute talk (all of BangBangCon is ten-minute talks) so I focused on narrative arc rather than detail. If you're familiar with IF architecture you know this stuff already. If not, hey, you can get an overview in ten minutes.

Gameshelf compadre Jmac also gave a talk: I wrote to a dead address in a deleted PDF and now I know where all the airplanes are!.

BangBangCon was rather delightful, but also rather hard to get into. (Attendance is limited; the organizers use a pay-what-you-want model, which means memberships sell out instantly.) I had a great time and the crowd was full of interesting people. But I'm not sure I'll go back next year. Lots of interesting conferences come over my horizon, and I'm most interested in the game-oriented ones.

(Possibilities for this fall: Practice, AdventureX, WordPlay, IndieCade. No, there is no way I can get to more than one of those.)

Tuesday, May 9, 2017

Making navigation work

I've been playing a bunch of mobile games this spring (for no reason except that I played a lot of PC games over the winter) and I keep thinking about navigation.

Here's a navigation scheme which is common in casual first-person adventures: you always face forward. In every room, there's some number of exits, plus one invisible exit behind you. So you can go forward in various directions (unless you're at a dead end), and you can go back (unless you're at the start). If you bang the "back" button enough times you'll always return to the start room.

I don't know if this scheme has a common name; I'll call it forward-and-back. Examples that I've played recently: The Frostrune, Agent A, Facility 47.

(I'm distinguishing forward-and-back from the common scheme of third-person adventures, where the room contains several exits but they're all visible and the character avatar walks from one to another. That's different; it has no sense of "forward" or "back", although it may have a sense of "left and right".)