Extension Overhaul

Extension-mania continues. I know that the use option syntax didn’t get fixed for Locksmith, Plurality, or Complex Listing, so that these still show up some problems if you “use no deprecated features”. I’m chagrined about that, and I apologize: we automatically checked them all to account for the deprecation of procedural rules, but apparently not a second time after we deprecated the old use option syntax.

Those extensions have been fixed and the new versions sent to Graham for the next build; I have also sent updates to the extensions site so that people will be able to download and use them in the meantime.

I am also gradually working through my stock of not-built-in extensions to clear out their deprecated features — and, in some cases, to tidy up extensions from 2007 and 2008 that used considerably clumsier syntax. I’ve just sent in new versions of Facing (which became about a third shorter because the Standard Rules now have better phrases for finding information about the map) and Empty Transfer (which became about a third shorter because it was written before “Check an actor…” was possible, so there were lots and lots of duplicate action rules for the player and for other actors).

Status Line Removal is updated too, though with a cut-back in functionality: changes in the Glulx template make it impossible to remove the Glulx status line in the way I had been doing it, so it is now z-machine-only again.

There are quite a few of these, though, and it will take me a while to go through. To the best of my knowledge I have corrected those extensions that outright won’t compile with 6E59, except that Ordinary Room Description is not supported any further (so I didn’t even check it out). That leaves quite a few that have deprecated content, though.

So: if you are working with an extension of mine and you’d like to see it prioritized, let me know and I’ll move it to the top of my revision list. Or, even better, if you’re working with an extension of mine that you’ve already hacked to take out the deprecated syntax and you want to email it over here, I’ll check it out and post it with my thanks.

More extension updates

I have now posted v2 of Measured Liquid, which gets around an Inform bug that creates some problems compiling to the Z-machine. If you’re compiling to Glulx anyway, this shouldn’t affect you; otherwise you may want a new copy.

Also up is a new version of Simple Graphics Window, upgraded for 6E59. If you run it and have trouble with a problem message saying you need a newer version of Glulx Entry Points, please note: a correct version of GEP is included inside your Inform build, but it is possible that if you had installed some intermediate version yourself in your personal extensions directory, that version will interfere with compilation. You should uninstall any version of GEP older than version 8, and rely on the built-in version.

Inform 7 goes to 6E59; new extension builds

As the followers of I7 have likely noticed, Inform 7 has a new release, 6E59. This still leaves us with a good bit to do — the Linux IDE may be a few days in following, as Philip Chimento is having some issues with his laptop, and extension replacements and updates on things that were not enclosed in the IDE may also take a day or two to follow.

Here is a change log for my own extensions, which will be up when the extensions maintainer has a chance to upload them:

  • Approaches, version 3. Cleans up some spacing bugs introduced by changes between builds, and corrects an error or two in the examples.
  • Assorted Text Generation, version 3. Adds some functionality, refactors other bits.
  • Computers, version 3. Examples updated to be compatible with the new build, and new features added to allow for power cords and batteries if the extension is compiled alongside Power Sources (new, see below).
  • Dishes, version 1. A little extension providing some fluid container classes for use with Measured Liquid. It defines several standard sizes of container, as well as a corked bottle with a properly-behaving cork.
  • Measured Liquid, version 1. Measured Liquid provides a concept of volume, together with the ability to fill containers, pour measured amounts of liquid, and drink from containers. It handles mixtures as well, if desired. It is compatible with, but does not require, the Metric Units extension by Graham Nelson.
  • Modern Conveniences, version 3. Version 3 adds compatibility with Measured Liquid; if Measured Liquid is included, Modern Conveniences will model flowing water from taps.
  • Power Sources, version 1. Power Sources provides an implementation of plugs and batteries (including rechargeables), and is designed to be used alongside Computers or as a base for other device implementations. Modeling includes devices that drain batteries at different rates. Power Sources requires Plugs and Sockets by Sean Turner.
  • Tailored Room Description, version 10. Upgrades for compatibility.

Continue reading “Inform 7 goes to 6E59; new extension builds”

Conscript conversation scripting

At GDC I picked up a copy of the latest Game Developer magazine, and then forgot about it until a couple of days ago someone mentioned that that very issue contained an article by Brent Friedman on conversation coding that mentions Inform 7 and TADS 3, as well as outlining his own system. HELLO. So I did a little luggage archaeology and had a look.

Friedman outlines (and provides code samples of) Conscript, a language he’s developed for scripting conversations.

First of all, for those curious about the IF coverage, what Friedman says is fairly brief, and potentially misleading. For both TADS 3 and Inform, he describes a way conversation might be implemented in that language, while implying that it’s the sole way possible — footnoting, for instance, just one of the numerous I7 code examples on the topic.

All the same, I was happy to see IF mentioned as a place where this work is being done, and also happy that Friedman didn’t feel the need to explain in detail what IF is. (But then, I got the impression from GDC that modern IF is a bit better known among professional developers than I would have expected.)

Second, as to Conscript itself, I had mixed feelings.

Continue reading “Conscript conversation scripting”

Coding Puzzles

Recently on the intfiction forum someone asked me how to code puzzles in I7. I found that a bit of a stumper, but I cobbled something together, and he liked the answer enough that he suggested I post the reply more permanently on my blog. So I’m doing that, with a little bit of editing and fleshing out.
Continue reading “Coding Puzzles”