Results tagged “inform”

Another technical question from Twitter: the integration of Hadean Lands with its iOS app. How did I set up iOS UI features like the dynamic map and the recipe index?

(Warning: if you don't think C code is interesting, this post is not for you! Sorry.)

The iOS version of HL uses my standard iOS IF interface, extended. I've added two tabs to it. The map tab shows your current location, and you can tap to travel to any room you've visited before. The recipe tab shows an index of recipes and other information you've learned. These work just like the "GO TO..." and "RECALL..." commands, so they don't make the game easier to solve, but they're convenient shortcuts.

I'm not going to post the iOS UI code I used. If you know iOS programming, it's very basic -- textbook UITableView and UIImageView stuff. Instead, I'll talk about the general problem: transferring information between the Glulx VM and your native (C) interpreter.

I should put "general problem" in quotes. There are several Glulx interpreters, after all. But let's assume that you're building a native app for your Glulx game, incorporating the glulxe interpreter engine (in C), and you want to customize it with game-specific features. You've implemented the UI part; now you just need to extract game state information. Say, the player's location to show on the map.

Old Zarf code

In a recent blog post, I wrote: "Maybe we'll even make more of a swing towards releasing game source code."

That thought stuck with me. I asked myself why I haven't posted the source code for all my classic IF games.

Some, I have. I posted source for Hunter in Darkness, Shade, and Heliopause because I thought other game authors might be interested in the techniques. But the larger games (Dreamhold, So Far, Spider and Web) have never had public source releases.

Why not? I didn't put it in words, but roughly: players should experience the game, not the software. If there are secrets, they should be ferreted out by people playing the game, not people browsing the source.

Of course there are Z-code decompiling tools, so I can't truly enforce this. Nor would I want to go down the DRM/obfuscation road to stop people from prying. That would just be a huge waste of my time. But if people wanted to pry into the technology, I wanted them to have to expend some effort. That friction matched my feelings about the right way to play the game.

Only I don't feel that way any more. I can't remember why I ever gave a snort.

Oh, I suppose I do a little. When a game is freshly released and players attack it en masse, the idea still applies -- I want the group experience to be about the game. But a year later? It's meaningless. And some of these games are fifteen years old, or older.

So yeah. It's time to knock that habit over. Here are some source links:

The I5/I6 games are tar.gz files, because for each I had to pack several source files together with the hacked library code that I used. The I7 games are directly readable as (syntax-colored) HTML.

All of these can be compiled with Inform 5, Inform 6, or Inform 7. The exception is Delightful Wallpaper, which was built with a 2006 version of I7 that's no longer available from the web site. I'd have to update the source to recompile it.

I have not used an open-source license. The games all say what Shade has always said: "This source code is provided for personal, educational use only." You can read it, and copy the programming techniques, but you can't make derivative games. (That is: my game text is copyrighted and I intend to keep hold of it.)

(Academic writing about my games is of course fine. That's fair use in the old-fashioned sense.)

(Fanfic -- riffing on the story or characters while using original text -- is another barrel of cephalopods. I figure I'm in the same position there as any other writer. You've always been able to read my story text, as part of the game, and my source release doesn't change that.)

Hadean Lands is an interesting question. I'm going to charge money for that one; it changes the equation. I guess I'll wait a year after release, and decide whether I feel like doing a source release then? Feels right.

(One of the HL Kickstarter rewards was the source code as a printed volume. I won't wait a year on that, obviously. But that was a limited reward, and will only be distributed on paper, not online; so I'm leaving it out of this discussion.)

Holiday gifts of Inform source

I shared the source of The Warbler’s Nest to GitHub last weekend, a project that took a couple of hours by one measure and nine months by another. I started getting the codebase ready for sharing last spring, shortly after giving an invited presentation about the game at MIT. I considered the event as good a capstone as any on the game’s active presence in my mind, and releasing the source struck me as appropriate epilogue. As it turned out, this preparation would end up perhaps the last personal project I picked up before a family crisis would occupy much of my attention until wintertime.[1] And when, things calmer, I happened across this MetaFilter thread asking about Inform source examples shortly after I received an email from a Warbler player pointing out an embarrassing typo in the story, I thought: Oh, right. And so GitHub.

Mere hours after announcing all this on Twitter and such, I would laugh out loud from the solid upstaging my little effort would receive next to a truly delightful surprise: Daniel Ravipinto announced a special 10-year-anniversary re-release of Slouching Towards Bedlam, an IFComp-winning masterpiece released by Star C. Foster and himself in 2003. Daniel recast the game into Inform 7 (which didn’t publicly exist ten years ago) as an exercise, and this in turn allowed him to easily publish a web page linking to both the downloadable game file and its source text. I sincerely recommend taking this opportunity to try the game if you haven’t already; I quite look forward to playing it through again, myself.

An Inform 7 cheat sheet

Just noticed this Inform 7 Cheat Sheet designed by Mark-Oliver Reiser. It’s actually a few sheets long, but it covers an awful lot of ground. The front page presents a minimal primer on the language’s syntax and the standard library’s class tree, and from there it manages to compress most every major point of Writing with Inform (the IDE’s built-in documentation) down to four pages.

The effect unavoidably resembles a progammer’s complement to the world-famous IF players’ reference-on-a-postcard, and that is not a bad comparison to invite. If you’re planning on sweating over hot interactive fiction compiler this summer (and I can think of at least one reason why you might be), this guide seems well worth the price of five blank pages and a staple.

More Inform yapping at BarCamp, perhaps

Andy and I plan on attending the sixth annual BarCamp Boston this weekend, April 9 and 10. BarCamp is a geek-centric “unconference” whose schedule of talks is constructed on the fly by attendees. In my experience, each hour-long slot tends to end up with someone talking about jQuery, someone talking about Ruby on Rails, and then someone talking about volcanoes, or food science, or something else they’re passionate about and which doesn’t resemble my day job in any way. So I go to these third talks, one after the other, and have a grand time.

This year, at friends’ encouragement, I plan on myself pitching a talk that I hope falls into that third category. Unsurprisingly, this’ll be my introduction-to-Inform talk, yet again. In the likely event I manage to make it happen, that’ll be three times in the last eight months I’ll have presented it, just weeks after I busted it out for the PAX crowd (with Zarf’s assistance, which he may reprise once again here). It’s starting to develop into what Merlin Mann calls a Shake-and-Bake talk, one that a practiced speaker can perform with increasingly minimal preparation. I can’t say I really expected to ever develop such a thing, and I wouldn’t have predicted Inform 7 to be my topic if I did. But, so it goes.

If you’re in my town this weekend and this sounds like your idea of a good time, feel free to register online — Boston BarCamp is free to attend (though they’d appreciate a $20 donation, which’ll also net you a natty T-shirt).

Announcing: Inform Extensions Search

I am pleased to announce the Inform Extensions Search site, the product of this past Saturday’s procrastinatory toils. It’s exactly what it sounds like: a simple search engine for Inform 7 language extensions.

I created this tool because I miss not having something like the CPAN Search for Inform extensions, even though “only” 230-ish such extensions currently exist in public. In fact, you can see them all (or all the ones released under a Creative Commons license, at least) on a single page at

Up until now, the best way I knew to look for extensions involved visiting that page and using your browser’s Find command. You can also browse by category, but even then you’re limited to extensions’ titles and summaries, and I found myself wanting to search at a deeper level without manually clicking though everything.

My tool offers a solution via searching extensions’ documentation, as well as their more obvious metadata. In this way, for example, a search for guns brings up David Ratliff’s extension to handle weapons and fighting, and searching for water produces several extensions that variously produce and handle liquids, though none have the word “water” in their descriptions.

So that’s that. I hope that someone finds it useful, and welcome feedback and suggestions.

I read a book

Last Sunday I finally finished reading and working though Aaron Reed’s Creating Interactive Fiction with Inform 7, a book that Andy’s already written about here. I felt it worth noting my own thoughts, briefly, as someone who isn’t an Inform expert (unlike Andy, whose name appears in the language’s credit roll, for zog’s sake).

Creating Interactive Fiction with Inform 7, by Aaron Reed. Cool-looking book, eh? It's been out for a few weeks, and I haven't seen a review beyond short "this book is awesome!" posts. I finished reading it last week. I ought to write a review.

This book is awesome, and... hm. What is it? Hm. Okay, what isn't it?

This past weekend I gave a talk on Inform 7 at Penguicon, an SF-and-open-source convention in Michigan.

The slides and the text (modulo the umms) are now up on my web site:

Rule-Based Programming in Interactive Fiction

This is not an Inform 7 tutorial. (You can find those on the Inform 7 web site.) Nor do I discuss I7's natural-language syntax. Rather, I try to explain the underlying programming model, and why it exists. I then go on to talk about my crazy ideas for a completely rule-based language, which is not Inform 7, but might be a future mutation of it.

The talk went nicely, in case you were wondering. About eight or ten people showed up, which is pretty good for a programming lecture at 10 AM on a Sunday.

And while I'm at it, let me recommend Penguicon as a darn good time. I've never been to a convention at which Sarah Monette and Elizabeth Bear argued about fantasy, John Scalzi lectured on people skills, while -- in a room party upstairs -- some guys tried to get Debian running on a DEC AlphaStation 200. I've also never been to a convention where I got to be in a panel discussion with Jane McGonigal, the ARG guru.

All these things were awesome! Except the Debian install -- they seemed to be having trouble with that. Mostly because the hotel's wifi network was utterly, utterly crushed.

Interactive Fiction Writing Month

Lea has announced Interactive Fiction Writing Month:

IF Month is a loosely-organized set of tasks assigned one per week for four weeks, from February 15 to March 15, 2009, hopefully coupled with a few informal live discussion sessions (location-dependent, of course). The goal is to get a group of participants familiar enough with the Inform language to produce some simple games, and to promote discourse on game design in general through the medium of IF.

The organizer is at CMU in Pittsburgh, so that's where the initial "location dependence" is, but interested people may be arranging other meet-ups.

Further details at the IFMonth Blog.

The personal note: CMU is my college stomping ground, and I've met Lea and some of the other CMU folks involved on various visits back there. They are cool. Check it out.



Find recent content on the main index or look in the archives to find all content.


Warnings and Log Messages