Inform 7: Interactive Fiction from Natural Language
The Inform design system for interactive fiction made its first appearance on this newsgroup with the release of Inform 1 on 30 April 1993. Three years of rapid development followed until, with a top-to-bottom code rewrite, the release of Inform 6 on 30 April 1996 became definitive. Much useful maintenance has been done, while glulx support and a range of other minor features have been added. All the same, the Inform in use now is essentially unchanged from that released in 1996 and published in the Designer's Manual of 2001.
The Public Beta of Inform 7 is released today. The outcome of a three-year project of radical reinvention, this new Inform is not a compiler alone: it is an application - initially running on Mac OS X and Windows - which is simple to download, requires no configuration or fuss to begin in use, and brings together the editing, testing, indexing and publishing of interactive fiction within a simple one-window user interface. No knowledge of computer programming is initially required, and all documentation is included within the interface. A new project, consisting (say) of a couple of rooms and items, can be started and working in a matter of about two minutes, using only the Inform application: the source text is quickly typed and there is no need to create folders, access a command-line interface or perform any other extraneous tasks. At the other end of the writing process, Inform provides new tools for testing and validating IF, and an extensive suite of features for publishing.
The Inform user interface is based on a writer's manuscript book, opened to show facing pages. The author writes on one page, Inform replies on the other. This dialogue is not carried out in the traditional form of computer programs, but in natural language. The author might write, for instance:
"Buttons" by William Wonka
The Confectionary Workshop is a room. The Chocolate Machine is here. "The Chocolate Machine has pride of place. A lever and two buttons, one white, the other brown, seem to be the only controls. On top is a hopper."
A container called the hopper is part of the Chocolate Machine. The lever, the white button and the brown button are parts of the Chocolate Machine.
The Chocolatier's desk is here. "The Chocolatier evidently works at the imposing green-leather topped desk facing the Machine. It has three drawers with brass handles."
The upper drawer, the middle drawer and the lower drawer are parts of the desk. The upper drawer, the middle drawer and the lower drawer are openable closed containers. In the middle drawer is a sugared almond. In the lower drawer is a Battenburg cake. On the desk is a liquorice twist.
At any point the author may click "Go", and Inform will translate the source text into a work of IF which plays on the facing page, using an interpreter built in to the interface. In the event of a mistake, Inform replies with descriptive Problem messages, often tailored to guesses at the most likely cause of the difficulty, and normally giving examples of correct and incorrect usage. But if all has gone well, the author can interact with this new fiction: at any point - for instance, after opening the middle drawer and finding the almond - the author can change his mind, perhaps amending "sugared almond" to "pear drop" in the source text, and click Replay. This translates the source afresh and replays the whole game to get back to the same position: but now there is a pear drop, not a sugared almond, in the drawer. Such a revision typically takes fewer than ten seconds, and the author needs only to select the source to change, retype it and make a single click. Moreover, Inform keeps track not only of the most recent interactions with the project, but of all previous games as well: these it weaves into a Skein, graphically drawn by the interface, and which allows the writer to test any of perhaps dozens of possible lines of play, comparing them against previous solutions using the Transcript panel, and so on. The solution(s), generated automatically from the skein, can even be published as a walk-through as part of the final work.
Inform is supplied with documentation which contains more than 250 Examples. Some 232 of these are complete source texts, capable of being translated and played: and not only theoretically capable of this, since a single click in the interface will paste them into the editing window to be tried out. Each Example comes with a short script of commands to put it through its paces. Like the documentation, the Examples are not so much a supplement to Inform but a part of the whole. Their coverage was chosen after research through past postings, on this newsgroup and elsewhere, by IF authors: we have tried to ensure that Inform contains solutions to genuine needs found by authors in the past. The natural language and rule-based approach of Inform make it exceptionally easy to cut and paste pieces of source text from one work to another: and the Examples together make up a recipe book. Examples include not only such "simulationist" problems as layered clothing, mixing of liquids, the spreading of fire, and even the preferentially downward diffusion of gases; but there are also numerous approaches to conversation, to the interaction of people, and to giving characters the ability to make plans and achieve goals.
Six "worked examples", too large to fit sensibly within the Inform application, are posted at the website in full source text. These include the three samples of Inform's output posted last month: "Bronze", "Damnatio Memoriae", and the ever-popular "The Reliques of Tolti-Aph". But there are also three new works by Emily Short: "Glass", and the first two episodes from a five-part series called "When in Rome".
The arrival of Inform 7 does not mean the departure of Inform 6. While outwardly the two languages could hardly be more different, the Inform 6 compiler is an essential part of the inner workings of Inform 7: so it will continue to be maintained and supported. Those presently using Inform 6 may safely choose to continue to do so, or to use I6 for some projects and I7 for others, just as they prefer. In particular, a new release of I6 is also out today: compiler 6.31, which sanctions five patches for bugs found in 6.30. This is the form of I6 built into the Public Beta of I7. (I am also pleased to say that the Inform 6 Designer's Manual is back in print, in both hardback and paperback editions.)
Works of IF written with Inform 7 comply with the Treaty of Babel, and Inform recommends the use of two Z-machine interpreters similarly compliant with the Treaty: Windows Frotz, for Windows, and Zoom, for Mac OS X and Unix.
The new Inform may be found at the long-standing Inform website:
In closing, I must thank my co-authors: Emily Short, who wrote the Examples; Andrew Hunter, who created the Mac OS X user interface; and David Kinder, who adapted it for Windows, in an independent feat of coding. Dozens of other people have helped, too, on what has been a very long road: I am grateful to all of those I have met along the way.
This will obviously take days to fully dig in to, and my download of the OSX version is still pending, but skimming through the (three pages!) of features is mind-blowing. I'm almost more excited about the new IDE for working on Inform than the syntax of the new language. Being able to change something and immediately recompile and jump to the part of the game you were just in is _fantastic_... to name one of many awesome looking features.
At the very least, it looks like this will take a _lot_ of the drudgery out of writing IF... which can only lead to less of the great, unrealized games being abandoned, and more polished, professional IF out there for us all to enjoy.
> The Public Beta of Inform 7 is released today. The outcome of a > three-year project of radical reinvention, this new Inform is not > a compiler alone: it is an application - initially running on Mac > OS X and Windows - which is simple to download, requires no > configuration or fuss to begin in use, and brings together the > editing, testing, indexing and publishing of interactive fiction > within a simple one-window user interface. No knowledge of > computer programming is initially required, and all documentation > is included within the interface. A new project, consisting (say) > of a couple of rooms and items, can be started and working in a > matter of about two minutes, using only the Inform application: > the source text is quickly typed and there is no need to create > folders, access a command-line interface or perform any other > extraneous tasks. At the other end of the writing process, Inform > provides new tools for testing and validating IF, and an > extensive suite of features for publishing.
[snip]
I've been expecting this, it feels like, for ages. And I'm happy to say, I am amazed at what has been done. Thank you, Graham, and thank you to all who helped.
I'll head off back to the drawing board, testing out different features of I7. :)
I've never seen much like this before, that's for sure! I *like* it! If only more languages were like it. I'll have to see if WINE can run the Windows version of the UI/etc I think...
Bit of Python influence there with the use of whitespace instead of {}? And how easy is it to write extensions for I7? Are they written in I6 with a Natural Language interface defined in I7? Entirely in I6? Entirely in I7?
What about classes and inheritance? Does something like "This is a generic box. It is a generic object. It is a container." that something else like "This is a white box. It is [based upon] a generic box." work? And, on those lines, what about multiple inheritance?
> Inform 7: Interactive Fiction from Natural Language
Congratulations, Graham! Just downloaded the new systema and started reading the documentation, but I didn't find anything about I7 in languages other than English. What about that?
The Inform 7 pages don't display correctly in Opera (Windows, v 8.5): the top image and menu are displayed as they're loading, but then they disappear. The links are still there, they're just ... invisible. Safari (latest version), OmniWeb (5.1, 5.5), Firefox (Windows) are all fine for me.
Superficially: I don't care much for the sideways tabs on the OS X version; I rather prefer the along-the-top tabs for Windows, which I can read without feeling like I'm looking at a naughty magazine. Those button-style tabs aren't used very much anymore anyway.
> The Inform 7 pages don't display correctly in Opera (Windows, v > 8.5): the top image and menu are displayed as they're loading, but > then they disappear. The links are still there, they're just ... > invisible. Safari (latest version), OmniWeb (5.1, 5.5), Firefox > (Windows) are all fine for me.
Opera (8.53, Windows) displays the site fine for me. I can't say why, or why your browser has problems, though. Just mentioning.
Rikard Peterson wrote: > Opera (8.53, Windows) displays the site fine for me. I can't say why, > or why your browser has problems, though. Just mentioning.
> Rikard
That's odd. I just upgraded to 8.54 and it's exhibiting the same behavior.
Stuart Moore wrote: > I've never seen much like this before, that's for sure! I *like* it! If > only more languages were like it. I'll have to see if WINE can run the > Windows version of the UI/etc I think...
Did you try that? Cedega (5.1) doesn't seem to like the installer.
> Bit of Python influence there with the use of whitespace instead of {}?
Aramael Musitello wrote: > Stuart Moore wrote: >> I've never seen much like this before, that's for sure! I *like* it! If >> only more languages were like it. I'll have to see if WINE can run the >> Windows version of the UI/etc I think...
> Did you try that? Cedega (5.1) doesn't seem to like the installer.
Same with vanilla WINE.
>> Bit of Python influence there with the use of whitespace instead of {}?
jameshcunning...@gmail.com wrote: > The Inform 7 pages don't display correctly in Opera (Windows, v 8.5):
just for the record, it has also problems with Konqueror, not in the front page, but all the text in the other pages is mixed up, it's like the lines are written on top of the previous ones.
Appart from this, I'm just very excited about this new, and I'll reboot very soon to test it on macosx. But I'm also wondering how it will be for the linux / unix users, and also for non english writers.
Congratulation to all the authors for this huge work.
Graham Nelson wrote: > The Public Beta of Inform 7 is released today. The outcome of a > three-year project of radical reinvention, this new Inform is not > a compiler alone: it is an application - initially running on Mac > OS X and Windows
I installed it on my wife's computer (xp), and copied the resulting files. I don't unsterstand why this .msi installer is so incompatible, I think also it won't be installable on win98 computers unless people install a bunch of new software.
On Linux, I tried to run the extracted inform7.exe, and it required internet explorer :( I installed it (the IE6, I don't think it installed really well) with the winetools, and so I could see the main page of Inform 7. But when I started a new project, I couldn't go any further.
eforg...@yahoo.fr wrote: > I installed it on my wife's computer (xp), and copied the resulting > files. I don't unsterstand why this .msi installer is so incompatible, > I think also it won't be installable on win98 computers unless people > install a bunch of new software.
> On Linux, I tried to run the extracted inform7.exe, and it required > internet explorer :( > I installed it (the IE6, I don't think it installed really well) with > the winetools, and so I could see the main page of Inform 7. But when I > started a new project, I couldn't go any further.
An Internet Explorer dependency? Hmmm... does the Mac OS version require it?
On 2006-04-30 17:45:20 -0400, Eric Forgeot <priv...@private.pri> said:
> just for the record, it has also problems with Konqueror, not in the front > page, but all the text in the other pages is mixed up, it's like the lines > are written on top of the previous ones.
What version of Konqueror are you using? I'm using 3.5.1 and I can report absolutely no problems with the Inform 7 site.
(Yes, I run everything. *Everything*, I tell you. If I had a dime for each browser I use on a semi-regular basis, I'd be wealthy. -er. Wealthier. Than I am now. Which wouldn't take much. I'd probably have a dollar.)