Inform

From IFWiki
Jump to: navigation, search
This page needs cleanup. We need a new Inform 6 page, most information about Inform 6 should be moved from this page to that one. All the links to Inform's website need updating; see the new Inform7.com site. This page should probably become more of a summary of Inform (including mention of Inform 5), but direct people to Inform 6 and Inform 7 for more detailed info about those variants.

An interactive fiction programming language, created by Graham Nelson in 1993 and now one of the most popular IF development systems. Inform is particularly notable in that it compiles to code for the Z-machine, the same virtual machine used by Infocom. More recent versions of the Inform compiler optionally produce code for the more powerful and flexible virtual machine Glulx.

Inform is portable across many hardware platforms. Interpreters for z-code exist for nearly every computer system ever designed and Glulx interpreters exist for most major operating systems currently in use.

See Inform 7 and Inform 6 for more about the two major versions of Inform.

Early History

Graham Nelson announced the first release of Inform (with no version number, but considered "Inform 1" in retrospect) on RAIF in May 1993:

 Subject: Announcement: INFORM
 From: Graham Nelson
 Date: Sun, 9 May 1993 18:20:53 GMT
 Message-ID: <1993May9.182053.25691@infodev.cam.ac.uk>
 
 Infocom game story files are as near to a universal format as we have for 
 interactive fiction games, but until now it has been very difficult to 
 construct them, and I am not aware that anyone has previously created them 
 outside of Infocom itself.
 
 I have written such a compiler, called "Inform", the ANSI C source of 
 which is public domain.  It is not a marvellously well-written program, 
 but it does work, and it is documented.
 ...
 (Usenet post via Google)

This version generated only Z-code V3 game files. Nelson also released the first version of Curses on this day, as Inform's first game.

Inform release 2 was announced in June:

 Subject: Second release of Inform
 From: Volker Blasius
 Date: Fri, 11 Jun 1993 20:51:29 GMT
 Message-ID: <blasius.739831889@gmd.de>
 
 I am posting this for Graham Nelson, who can't post to the net...
 ...
 My game "Curses", plodding along in the footsteps of the classics, has now
 picked up one more Infocom trait: the original has been superseded, after
 mere months have passed, by Release 8, serial number 930603.  The old
 Release 7 thus becomes a collector's item.  (I wouldn't hold your breath
 waiting for it to become valuable, though.)
 ...
 In addition, "Inform", the compiler which produced "Curses" and which is
 freely available to anyone who wants to write an Infocom story-file for
 themselves, has been re-released in a much more usable and efficient form. 
 Although there are only a few new features (see the manual), many little
 bugs have been corrected and the code has been made more portable (it is in
 ANSI C) and much more efficient.  It used to require about 1M of workspace,
 and now consumes 75K, for instance.  The source code contains commentary to
 help anyone porting the program to their own machines.  It should be quite
 feasible to run Inform on a modest PC.
 ...
 (Usenet post via Google)

Inform release 3 appeared in November:

 Subject: New Releases of Inform and Curses
 From: Graham Nelson
 Date: 19 Nov 93 11:03:02 GMT
 Message-ID: <1993Nov19.110302.18245@vax.oxford.ac.uk>
 
 ...
 Inform has been heavily re-written and improved.  Many bugs have been
 fixed; it is now 3 to 6 times faster; there are numerous new features.
 (See the modification history in the source code, and the new edition of the
 manual, for details.)
 
 The main problem with using Inform has always been that ANSI C is portable
 in the same way that America is crime-free, i.e., despite everyone's best
 intentions...  The code has been reorganised, and much more carefully
 written as regards size of integers, pointer arithmetic, file naming
 conventions, order of bytes and so on.  It has an option to make all its
 old huge global arrays (a problem on IBM PCs, for instance) allocate
 dynamically.
 ...
 (Usenet post via Google)

Release 3 included source code for three demo games: dejavu.inf (toy game), hellow.inf (hello-world), and shell.inf (a minimal game template).

Inform release 4 was January of 1994, and added V5 support and modernized syntax:

 From: Graham Nelson
 Subject: Major new release of Inform
 Date: 24 Jan 94 12:08:39 GMT
 Message-ID: <1994Jan24.120839.19630@oxvax>
 
 Once again Inform has been heavily re-written and improved.  The compiler
 offers very many new features, chief among which is the ability to produce
 Advanced story files as well as standard ones.  These can be much larger
 ("Trinity"-sized rather than "Zork 1"-sized) and accommodate graphical
 effects (boxes of text, character-graphic maps and so on).  Inform offers
 commands to make using these new features easy, but apart from those can
 cross-compile the same source to either format.
 
 There are much more sophisticated loop constructs and assignments;
 conditions can now be rather more complicated; various new operators and
 commands make printing, array handling and object alteration easier.  Inform
 is now quite close to C in some respects, and its syntax is much less
 clumsy (for instance, braces which obviously ought to be optional now are).
 There are also debugging and memory-mapping options.
 ...
 (Usenet post via Google)

Inform 5 (now explicitly called that) was announced in June, although it was released slightly earlier:

 From: Graham Nelson
 Subject: Inform 5: An Open Secret
 Date: 13 Jun 94 15:16:02 BST
 Message-ID: <1994Jun13.151602.23671@oxvaxd>
 
 It's an increasingly open secret that the new release of Inform,
 Inform 5 [fanfare, flourish of trumpets, etc.]  has been sitting
 in the incoming/if-archive directory of ftp.gmd.de for a fortnight
 or so.
 
 Many people have already discovered it and sent me objections, as
 a result of which I've today posted an updated version.  So, having
 already lost the element of surprise, can I encourage porters and
 other interested Inform people to take a look, and see if the code
 can be compiled properly on different machines?
 ...
 (Usenet post via Google)

Inform 5 was a sufficiently major advance that subsequent releases were called "Inform 5.1", "Inform 5.2", etc. -- until the release of Inform 6.

Summary of Inform Variations

Tips and Tutorials

See Category:Inform 6 tutorials and Category:Inform 7 tutorials as applicable.

News

Editors

There are a number of editors meant to make writing Inform code simpler and easier. They can automatically highlight or format code, generate basic code for classes, and other handy functions.

Links