Inform 7 update

Wednesday, May 7, 2014

Tagged: inform 7, interactive fiction, if


Graham Nelson has released a new version of Inform 7, the first in over three years.

This release is a major reform of a now-mature language which is widely used, and it has been over three years in the making. Text handling is better, Inform can now generate adaptive grammar, there's real number support, and a new Public Library of extensions is being introduced. There are significant improvements in the user interface for Mac OS X.

-- the very short form of the very long release notes

Also, the app's ancient-mosaic visual theme has been replaced with a stylish modern subway-map motif. Next thing you know, IF will be considered a 21st-century gig, eh?

My big contribution was the General Index of the documentation. This is a rewrite of the unofficial index I did a few years ago. Finding stuff in the documentation has been a perennial complaint about I7, and I hope this goes some way to fill the gap.

To repeat a word of warning: "This will be a disruptive release." Every major release of I7 has changed enough under the surface to warrant caution, and this one is a bigger shift than most. If you load an existing game project into the new I7, it is not guaranteed to compile -- and if it does build, it is not guaranteed to behave exactly the same. Test carefully, and if you prefer stability, keep your 2010 version of Inform (release 6G60) around. (It should be safe to keep both installed on the same machine.)

To be clear, we expect most old I7 code to still build with the new compiler. The major exceptions are if you used deprecated phrases (such as procedural rules), or if you used an extension that has serious I6 hackery under the covers. Such extensions will have to be updated for the new release. Many have been already; check the new Extensions Library.

(In case you're curious, Hadean Lands will remain a 6G60 project. I've got 25000 lines of working code, and I am not going to risk subtle breakages at this stage.) (Yes, I wrote a lot of regression tests. They're geared towards finding mistakes in my code, not changes in the underlying system.)

Congratulations to Graham and the rest of the I7 team for getting this wrapped up. To everyone else -- enjoy the new toys.