Slouching Towards Bedlam - 10th Anniversary Rerelease


Approximately ten years ago(!), I was lucky enough to work with Star C. Foster on a piece of I-F called “Slouching Towards Bedlam” for the 9th Annual Competition. Since then, I’ve received several requests for the source code - mostly in regards to translation attempts - and have been forced to admit that the original work was lost soon after the game’s completion in a hard drive crash.

Today, however, I’m very pleased to announce a ten-year anniversary re-release of the game, and its source code in Inform 7.

The purpose of such a rerelease is, to my mind:

* to make the original game's source code and text available to anyone interested in producing a translation
* to serve as a worked example in Inform 7 of a known game
* to serve as a way of learning Inform 7 myself

The game and its source code can be found here:

Being an initial release, I’m asking for any feedback anyone might have. Typos and bug-reports would be greatly appreciated.

As well, I’m looking for any feedback on the implementation itself. As I note above, I’d like the game to be useful to anyone trying to learn Inform 7, and being new to version 7 and its very different natural-language approach, there are, I am sure, less-than-optimal solutions in the code. I’ve tried to note what I consider some of the more egregious hacks in the comments.

I was hoping to release the game closer to the actual anniversary, but while the work itself took longer than I initially anticipated, and several happy interruptions (including my long-awaited marriage to my now-husband, as well as the release of our second book) delayed the release, I’m very happy to have it out before the end of 2013.

If anyone has any questions or comments on the work, please contact me at peccable[at] or in this thread. I’ll do my best to answer.

Thank you very much.

  • Daniel Ravipinto

Oh, excellent.

Amazing. Thank you very much.

Fantastic news! Really appreciate the effort, thank you.

Hooray and congratulations!

Thank you, everyone for your incredibly kind words. :slight_smile:

I’m just curious if anyone has any comments on the source code itself? How readable or useful it is? I was hoping that some of the implementation (the Archive dial, the Panopticon, Triage) might be helpful.


Searching for “hack” in the source engenders some sympathy. :slight_smile:

The future-looking way to deal with the “examine containers” and “examine supporters” rules is to replace them. Copy the original code out of the standard rules, call it the “customized examine containers rule” or some such, and then add exceptions for your objects as desired.

Hi Daniel,

Do you mind me asking what your impressions of Inform 7 were, for example as both a learning experience and as a game implementation language? My husband was wondering this when I told him about your new version, so I thought I’d ask :slight_smile:

I haven’t played Slouching before, so have now downloaded the new version into Frotz on my iPad, and am looking forward to getting stuck in.

Many thanks.

Thank you for that. Some of them were…uncomfortable. :slight_smile:

That sounds like a much more elegant solution. I’ll try getting it into the next release.

Not at all. It was … interesting, for a couple of reasons. Inform 7 is very, very different from any other language I’ve worked in before, and I found the “Inform 7 for Programmers” page ( rather useful in getting the right mindset.

I found the rulebook basis of Inform 7 is both powerful and confusing by turns. It was wonderful to write code like “if there is at least one person who is a carrier” and have Inform figure out the specifics. My problems usually came down to one of two cases: (a) issues like the one Zarf mentions above – getting the base libraries to do what I wanted them to do, and (b) finding the right magic phrase.

One example of this is in the comments: [Why must this be “instead of going southeast IN” versus “instead of going southeast FROM?” The latter compiles fine, but fails to work?] I ran into this tons of times – code that would compile, or seem to make sense, and then simply wouldn’t work the way I expected it to.

Still, it’s a fascinating piece of work and I’m very happy I learned as much of it as I did. :slight_smile:


These are both meaningful to Inform, but apply to different situations. “Going north in…” is true for any “go north” action in a room, whether it’s successful or not. “Going north from…” is true if there is a valid exit (room or door, even a locked door) in that direction.

The “instead of going north in…” rule stops the action before the “…from…”.

I’ve managed to get StB’s source compiling and running under 6L02 and have just released the new version (along with a few additional changes, mostly typos) at:

I’m very much a fan of the changes in 6L02 – most particularly the ability to change responses in the Default Library directly, rather than depending on extensions such as Default Messages.

Again, if anyone has any feedback or finds any errors, please let me know!



Hi Daniel,
The source includes an extension called Titled Menus. Has this been published anywhere?