New Releases of Inform and Curses

Skip to first unread message

Mathematical Institute, (0865) 2-73525

Nov 19, 1993, 6:03:02 AM11/19/93

New Releases of Curses, Inform, Deja Vu, a Library and a Shell

These are "fake Infocom" programs - games which run under Infocom
interpreters, and a compiler which produces them. They aren't
shareware: they're free (but see the legal notes they contain).

The point of this is not nostalgia (or not entirely, anyway). It's
that the Infocom game format is completely portable across a very
wide range of machines. If you compile a game with Inform once,
anybody with an Infocom interpreter can run it. You need not
prepare versions for different machines, you need not worry about
how to save games on a TI 99/4a, and so on. Also, the Infocom
format is quite well constructed, and makes compact game files.

The directory if-archive/infocom/compilers/inform at the anonymous
FTP site FTP.GMD.DE now contains the binary files:

curses.z3 Release 9 of "Curses" - The Director's Cut, bigger and better

dejavu.z3 Release 2 of a toy game which demonstrates Inform
hellow.z3 Hello Cruel World - a trivial Inform program
shell.z3 A shell of a game to build on

(These should not be downloaded in ASCII mode.) Together with the text

inform ANSI C source code for Release 3 of Inform, the compiler
manual Third edition of the Inform manual (greatly extended)

dejavu.inf Inform source for DejaVu (should compile to dejavu.z3)
hellow.inf ...and Hello Cruel World
shell.inf ...and the Shell (minimum source code for a proper game)

parser.h Inform header files used by DejaVu and Shell, which contain
verblib.h a full parser and library of standard game routines

(These should be downloaded in ASCII mode.)

The .z3 games can be run on almost any Infocom-standard interpreter: for
example, on the InfoTaskForce one (which has been very widely ported) or
Mark Howell's (usually faster) Zip.

Curses, Release 9

For those unfortunate enough to care about such things, "Curses" has now been:

Release 7 / Serial number 930428 (the original and still the worst)
Release 8 / Serial number 930603 (much enhanced, and slightly larger)
Release 9 / Serial number 931111 (bigger and better)

So why upgrade?

Well, there are another 60 or so minor enhancements, mostly to fix bugs of
astounding triviality. The nomination for "most unimportant bug report"
goes to Paul David Doherty, for correcting my spelling of "Cindi Lauper" to
"Cyndi Lauper". (There was one important bug, which I'm not going to
advertise, but only one person has ever found it. He knows who he is...)

But there's also a sizable slice (25K) of new material, scattered about the
game. Experienced Cursers will find the catacombs substantially more
interesting... In addition there are new "alternate" solutions to some old
puzzles. The game is now the maximum possible 128K long and, I hope,
finished. (Release 8 was 115K long, and if you're wondering how 115 + 25
can be only 128, this goes to show how effective the compression routines in
the new Inform are.)

"Curses" also now has a Verify command, and the length and verify slots in
its header are correctly filled in. The absence of these may have been the
reason why earlier "Curses" failed to work on a few crankier interpreters.

Inform, Release 3

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

The version in the archive compiles under gcc, by e.g.

gcc -O2 -fwritable-strings -finline-functions -fomit-frame-pointer inform.c

and should work on any reasonable Unix machine. (It has also been ported
successfully to VAX C and the Acorn Archimedes.) I hope that a PC version
will come soon. Help for porters, and detailed release notes, can be found
in the comments at the head of the source code.

Third Edition of the Manual

The Inform manual has also been rewritten and extended. It contains four
main elements:

the Inform language
specification of the version 3 Z-machine (the Infocom file format)
three articles on game design in general (one of them, on the design
of parsers, new in this edition)
description of the library of standard routines, and examples

Some of this may be of interest to non-Informers.

The Library

Three new header files contain all the routines needed to manage a parser
and basic game routines: in effect, including these in your Inform source
means you get a full implementation of Zork (without the puzzles), without
having to write any code.

It manages rooms, objects, containers, things on top of other things, light
and dark, scoring, switching things on and off, opening, closing and locking
things, entering things, travelling about in them and so forth: it
implements about 80 actions.

The parser it uses (which can be entirely invisible to the designer, or can
be altered if necessary) is about as good as anything Infocom ever had: it
has inferences, context, multiple objects, plural nouns, vagueness, asking
questions of the player to clarify things, giving instructions to other
people, and so on. It recognises about 140 constructions, which are easily
added to.

The library source is very heavily commented, and its algorithms may be of
interest even to non-Informers.

Deja Vu, Release 2

The toy game DejaVu has been rewritten to demonstrate the use of this
library. (A few bugs, and especially one dreadful bug found and fixed
by Jon Drukman, have been removed.)


The "shell" game is an absolute minimum file using the library (only about
one page long): modify this to begin writing a new game. In effect, this
is a kind of "hello world" universe.

Hello Cruel World

This was a trivial demonstration - printing "hello world" in Inform. It
has not been updated. It's useful for testing the compiler.

All comments, bug reports and the like are welcome. I'd be glad to hear
from anyone who has had to alter Inform in order to run it on different
machines: so that future releases can include their ports.

Finally, I'd like to express my gratitude to the many people who have
written to me already. All those who reported bugs in Curses should see their
names in its credits.

Graham Nelson
Oxford University, UK
November 17th, 1993

Roy G. Bivins

Nov 19, 1993, 4:38:08 PM11/19/93

kewl... hey, where should all of us inform junkies upload
our games?

Reply all
Reply to author
0 new messages