rec.arts.int-fiction FAQ

[rec.arts.int-fiction] Interactive Fiction Authorship FAQ

--------------------------------------------------------------------------------
Part 1: Meta-FAQ information

--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
1.1: Contents

PART 1: Meta-FAQ information
 * 1.1: Contents
 * 1.2: Recent Changes
 * 1.3: What is the FAQ for and where do I get it from?
 * 1.4: How is the FAQ composed?
 * 1.5: Acknowledgements and Copyright Notice

PART 2: About the newsgroup
 * 2.1: What is the purpose of rec.arts.int-fiction?
 * 2.2: What topics are appropriate here...
 * 2.3: ...and what topics are not appropriate?
 * 2.4: Is there an archive of newsgroup postings?
 * 2.5: What abbreviations will I find on the newsgroups and in the FAQ?
 * 2.6: What sort of events does IF community do?
 * 2.7: What is "mimesis"?

PART 3: General Interactive Fiction information
 * 3.1: What is interactive fiction?

PART 4: Programming IF
 * 4.1: How do I become an IF author?
 * 4.2: Who's going to appreciate my work; who cares about IF anyway?
 * 4.3: What about copyright; how can I protect my work?
 * 4.4: What authoring systems are available?
   * 4.4.1: First Tier Systems
   * 4.4.2: Second Tier Systems
   * 4.4.2: Third Tier Systems
   * 4.4.4: Unprocessed Tier

 * 4.5: What is Glk?
 * 4.6: What are VILE 0 ERRORS FROM HELL, and how should I avoid them in
   Inform?
 * 4.7: How do I find bug fixes for Inform?
 * 4.8: What editors can I use to write IF?
 * 4.9: What tools and utilities are available?
 * 4.10: Wouldn't a visual system be great for writing IF in?
 * 4.11: What support does Inform offer for graphics and sounds?
 * 4.12: What support does TADS offer for graphics and sounds?
 * 4.13: What support does Hugo offer for graphics and sounds?
 * 4.14: Which IF system should I use?
 * 4.15: How do I create a standalone executable program out of an IF game?

PART 5: Writing IF: What has been written on the subject...
 * 5.1: in general?
 * 5.2: of the art of writing NPCs?
 * 5.3: of parsing?
 * 5.4: of plot/story in interactive fiction?
 * 5.5: of the educational value of interactive fiction?

PART 6: Internet Index: What is available on...
 * 6.1: The IF-Archive?
 * 6.2: FTP?
 * 6.3: the World Wide Web?
 * 6.4: chat spaces (ifMUD)?
 * 6.5: 'zines?
 * 6.6: mailing lists?
 * 6.7: Where can I find Infocom games?
 * 6.8: Usenet

--------------------------------------------------------------------------------
1.2: Recent Changes

 * July 2003
   * updated URL for the Yonk IDE
   * updated URLs for Dennis Jerz's pages

 * May 2003
   * updated Quest information
   * updated IF Library URLs

 * April 2003
   * updated various Inform-related weblinks
   * updated IF Collaborators URL

 * March 2002
   * cleaned out section 6.3 (WWW links section); added PARSIFAL, tads.org,
     ifFinder, pages by Emily Short, Doe and Dennis G. Jerz
   * PAWS debugging, source info added
   * fix Elvis text editor URL
   * added GUE Tech website to 6.3

 * November 2001
   * Updated SUDS section
   * Added URL for Stephen Granade's Brass Lantern site
   * IF Archive TADS programming directory now called tads2
   * fix textfire URLs (now at plover.com)
   * IF comp URL now ifcomp.org
   * Added Inform FAQ URL

 * October 2001
   * Removed all references to Stephen Granade's late, lamented 'about.com'
     pages
   * Updated SUDS information -- now freeware
   * Alan sourcecode now available
   * Update Hugo version numbers
   * Quest now version 3

 * September 2001
   * update syntax highlighting info for Vim
   * show geographic locations of Archive mirrors
   * update URL for IF Collaborator's List
   * add mention of alt.games.xtrek and AIF FAQ

 * August 2001
   * added mention of L Ross Raszewski's BundleMonkey to 4:15 - standalone
     executable games
   * IF Archive moved from ftp.gmd.de to ifarchive.org
   * Updated Brendan Desilet's "IF in Education" URL and email address

 * July 2001
   * Updated Inform for New Writers URL
   * Added mention of pre-packaged Win32 & Amiga downloads at IFNW
   * Added 'Yonk' Inform IDE for Macintosh
   * Updated John Holder Parser Talk URL

 * June 2001
   * Added MacintoshTADS webpage, removed TADS Programming Page
   * Added Visual Inform, IF-IDE and Inform Explorer to text editors section
   * Fourth Edition of Inform Designer's Manual available

 * May 2001
   * Removed references to departed Worldclass webpage
   * URLs pointing to Stephen van Egmond's site & email updated
   * Updated status of Google Groups' raif archive

 * April 2001
   * Updated the Quest details
   * Added ADRIFT and PAWS authoring systems (to the "Tier II" list)
   * Moved 'Adventure Builder' and 'Rexx-Adventure' systems from "Unprocessed"
     to "Tier III"
   * added placeholders for IAGE and JACL in "Unprocessed"
   * Added some items to netiquette summary (2.3)
   * update on raif message archive at gmd plus "Google Groups" instead of
     "DejaNews" (2.4)
   * Changed FAQ "homepage" to www.textfire.com
   * Removed pre-2001 entries from this change list

 * March 2001
   * removed cascade mountain publishing
   * updated mirrors list
   * updated TADS version
   * updated Hugo version
   * updated ALAN websites list
   * updated Quest website and version

 * February 2001
   * Changed "FAQ maintainer" contact info from David Glasser and changed FAQ
     "homepage" to ftp.gmd.de
   * Repointed IF Archive URL's to ftp.gmd.de rather than David's web server's
     redirector software

--------------------------------------------------------------------------------
1.3: What is the FAQ for and where do I get it from?

This document is intended to serve as both a list of answers to
frequently-asked questions (FAQ) for the newsgroup rec.arts.int-fiction, and as
a source of more general information for those interested in interactive
fiction authorship and/or theory.

The FAQ is updated as and when the maintainer feels it is necessary and has the
time. [Recent Changes: 1.1] will detail major changes to the FAQ. If you see
any problems with the FAQ, or have any suggestions, email the FAQ maintainer
(Stephen Griffiths) at stevgrif "AT" actrix.gen.nz

The most recent version of the FAQ can be found at
<http://plover.net/~textfire/raiffaq/>.

Alternatively, you could download it from the IF Archive in either HTML
<http://ifarchive.org/if-archive/rec.arts.int-fiction/FAQ.htm> or plain text
format <http://ifarchive.org/if-archive/rec.arts.int-fiction/FAQ>. If you have
difficulty accessing the ifarchive.org site try one of the IF Archive mirror
sites listed in [The IF-Archive: 6.1].

There also is an Italian translation at
<http://space.tin.it/computer/lmarcant/raiffaq/index.html> by Lorenzo
Marcantonio ([email protected]).
--------------------------------------------------------------------------------

1.4: How is the FAQ composed?

The FAQ has been split into six separate parts.

You are now reading part 1 (Meta-FAQ information). This answers questions about
the FAQ itself, such as its availability and layout. There is also a full
part-by-part contents at [Contents: 1.2] .

Part 2 (About the newsgroup) describes rec.arts.int-fiction.

Part 3 (General Interactive Fiction information) answers questions asked by
people new to the newsgroup or interactive fiction in general. It does not
cover writing IF.

Part 4 (Programming IF) will be of interest to the (prospective) interactive
fiction author. It includes details of the major authoring systems and other
tools. It is mostly focused on the programming side of IF.

Part 5 (Writing IF) contains an informal bibliography of Internet documents on
interactive fiction theory, and information on the major discussions to be
found in the rec.arts.int-fiction archives. It is mostly focused on the writing
side of IF.

Finally, part 6 (Internet Index) contains brief descriptions and URLs of FTP
and WWW sites and other Internet resources mentioned elsewhere in the FAQ, and
describes the IF-Archive.

It is recommended that those new to rec.arts.int-fiction read part 1 first (to
get a feel for the FAQ), followed by part 3 (if you don't know much about IF)
and then part 2 (to learn about the newsgroup), with parts 4 and 5 last, though
only if you wish to write IF. Part 6 should be referred to as needed, though
the section on the IF-Archive is a must-read. Please read part 2 *before*
posting *anything* to the newsgroup: it'll make it easier on everyone.
--------------------------------------------------------------------------------

1.5: Acknowledgements and Copyright Notice

The FAQ is maintained by Stephen Griffiths (stevgrif "AT" actrix.gen.nz).

Many people have contributed to this document, so thanks to them. In
particular, shiny stars to Jim Aikin, Adam Cadre, Volker Blasius, John Elliott,
Julian Fleetwood, LucFrench, Stephen Granade, Neil K. Guy, Douglas Harter, John
Hill, John Holder, Theodore Hwa, Jonadab the Unsightly One, Amir Karger,
Stephen Kitt, Iain Merrick, Robin Munn, Graham Nelson, Chris Nebel, Bob Newell,
Thomas Nilsson, Andrew Plotkin, Mike Roberts, Gunther Schmidl, Kent Tessman,
Alex Warren, Roger Burton West, and John Wood, plus all the people I forgot to
put here. Special thanks to Doug Harter for his efforts in scouring the
newsgroup archives way back when (which sadly came to nought, but there you
go), to Ivan Cockrum for providing webspace at textfire.com, and to Lorenzo
Marcantonio for the FAQ's Italian translation.

Previous editions were maintained by David Glasser ([email protected]), Julian
Arnold ([email protected]), Jorn Barger ([email protected]) and David A. Graves
([email protected]).

This FAQ is copyright 1998 - 2000 by David Glasser with subsequent changes
made, with permission, by the new FAQ maintainer, Stephen Griffiths. Please
feel free to quote from this document, but you must acknowledge this source.
The FAQ, or individual parts of it, may be freely distributed by any means.
However, no charge may be made for the distribution (save for the cost of the
media itself) and part 1, in its entirety and including this copyright notice
and details of how to obtain the full FAQ, must be included with any and all
distributions.

It would be courteous to inform the FAQ maintainer if you wish to quote from
(well, in anything other than a Usenet post or email or whatever) or
redistribute the FAQ.

As this document is supplied gratis, with no demand or request for payment or
other recompense, the maintainer is hereby pleased to announce that in no event
whatsoever will he be held liable in any way for any loss of data, loss of
earnings, loss of savings, general disappointment or other unhappiness
resulting from the use of or abuse of or inability to use any and all
information or misinformation within or indeed without this document, or from
any admission or omission therein or thereof which either directly or
indirectly causes any one, or any combination of two or more, of the
aforementioned unpleasantries. On the other hand, feel free to attribute any
good things which happen to you or those around you to this document in
general, and to me in particular.

--------------------------------------------------------------------------------
Part 2: About the newsgroup

--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
2.1: What is the purpose of rec.arts.int-fiction?

rec.arts.int-fiction is a reasonably low volume, high signal-to-noise newsgroup
for the discussion of interactive fiction. Many threads are relevant to, and
can be followed by, programmers and non-programmers alike.

In this newsgroup, we discuss the technical and artistic aspects of interactive
fiction, as well as the actual processes of and tools for writing it. While we
do mention specific IF games, it is typically in the context of comparing and
contrasting their structure or artistic merit-- with emphasis on the
development of IF as a literary genre and/or a form of computer-based
art/entertainment.

An associated group, rec.games.int-fiction, focuses on playing interactive
fiction with reviews, requests for hints and so on.

The two groups, rec.arts.int-fiction and its sister-group
rec.games.int-fiction, as you might imagine, complement each other rather
nicely. They are however distinct from one another and you should bear in mind
their particular charter before sending a post. Posting to more than one group
is generally not a good idea. Select the appropriate newsgroup and post only to
that one. Just as you would not post questions about how to solve a specific
game in this group, please refrain from posting questions on IF design and
implementation in rec.games.int-fiction.

Remember, rec.arts.int-fiction is a discussion group, and will only function if
people contribute to it. So, while you ought to just read for a week or two to
get a taste of the flavor of the group before spicing things up with your first
post, don't lurk too long. We do want to hear from you...

One must also realize that rec.games.int-fiction never discusses food in its
off-topic posts. This is left up to raif.
--------------------------------------------------------------------------------

2.2: What topics are appropriate here?

Topics related to interactive fiction design, theory, and implementation are
appropriate, as is the discussion of IF implementation languages (authoring
systems). Ideas on applying popular technologies (object oriented programming,
incremental compilers, etc.) to problems in interactive fiction development
(knowledge representation, natural language parsing, etc.) are welcomed. There
are many pleas of a "how do I do this...?" nature with reference to the
nuts'n'bolts of particular authoring systems (very nearly 100% of which are
answered). You should put the name of the authoring system, enclosed in square
brackets, at the beginning of the subject line of your post (e.g., "[Inform]",
"[Hugo]", "[TADS]", etc.), as this allows people who do not wish to read about
particular systems to maintain effective kill-files. It also often helps if you
post a short piece of code that demonstrates your problem: we cannot read your
mind and your post is useless if we can't understand your problem. However, try
to keep your examples succinct and relevant: it's hard and boring to sift
through pages of code to find one tiny error. Do not post very long or
irrelevant pieces of code.

Sometimes people post "giftware", clever pieces of code which solve a
particular problem. These, too, should be kept as concise as possible.
"Giftware" is usually placed in the public domain, but don't take this for
granted. However, if you intend to post "giftware", please consider uploading
your code to the IF-Archive [What is the IF-Archive?: 6.1] instead and posting
a pointer to it in a raif message. This way your contribution will be given a
permanent home on the Internet and will help to build a large literature
library for the authoring system you have chosen.

Posts on authoring Web-based hyperfiction are not inappropriate on
rec.arts.int-fiction, though it is true that there is not much of an audience
on the newsgroup for this sort of thing.

Reviews of interactive fiction games are gladly received on either newsgroup.
The nature of a review may be such that it is relevant to both the interactive
fiction newsgroups. This is an exception to the cross-posting rule. Whenever
you do cross-post, whether it be for reviews or other purposes, please set your
Followup-To: header to one or the other; this ensures any followup messages are
posted only to the most appropriate group. Post-competition reviews of IF
Competition games [What sort of events does the IF community do?: 2.6] should
be posted only to rgif.

The other major exception to the crossposting rule is requests for betatesters
for games. Such requests may appear on either, or both, of the newsgroups.
However, please *do not* post replies to the newsgroups. Send your reply to the
author via private e-mail. Otherwise, the resulting glut of "me too!" posts is
extremely annoying to the other readers of the newsgroup. Many authors will in
fact *ignore* such replies to the newsgroups, and will only respond to those
sent by e-mail. If you are an author posting for betatesters, you should set
your Followup-To: news header to the word 'poster' (no quotes). See [How do I
become an IF author?: 4.1] for more information on betatesting your game.

Lastly, game announcements are often crossposted to both of the groups, with a
Followup-To: to rgif.

Controversial viewpoints are sometimes posted and indeed are to be encouraged;
when you post a dissenting view remember to attack the idea, not the person.
Let us debate, not battle. raif has been very good when it comes to that; most
fights have been misunderstandings that were soon fixed. Our flamewars rarely
last a week, and there usually are only a handful per year - which is quite
good for a newsgroup.
--------------------------------------------------------------------------------

2.3: ...and what topics are not appropriate?

Please don't post questions about specific adventure game puzzles to this
newsgroup, as it was set up for discussion of interactive fiction from the
point of view of the *author*, not the *player*. Please post these queries to
the newsgroup rec.games.int-fiction, not here. Also, it is usually considered
impolite to post bug reports for games or other software (including authoring
systems) to either newsgroup. The software's author/maintainer would no doubt
welcome a private e-mail though (and you usually get your name in the credits
of the next release). Bugs may be reported on the newsgroup(s) if it is a bug
which can reasonably be assumed to detrimentally affect other users of the
software and/or can be easily avoided or remedied. (Bugs in the old Infocom
games are commonly reported on rgif, especially when they are humorous.)

When discussing specific games, please be careful not to spoil them for readers
who may not have played them. You have a few choices:
 * Simply do not post the "spoilers".
 * Encode them using rot13, a simple "encryption" scheme found on any decent
   newsreader. (Some silly programs call it Unscramble. Sheesh). If you can't
   find a rot13 descrambler, all you have to do is turn each a into an m, each
   b into an n, and so on.
 * put a "spoiler character" in your post right before the spoilers, with a
   warning like "SPOILERS FOR BAD GUYS AHEAD". A spoiler character is a
   control-L character (formfeed), and any good newsreader has a set of keys
   to push or a menu item to insert the character. When somebody reads the
   message, the newsreader should pause at the character to allow the rest of
   the message to be skipped if the reader does not want to read the spoiler.
   Unfortunately, not all newsreaders support the spoiler character; the
   author of this document believes that if everybody uses the spoiler
   character instead of ugly solutions like blank lines, those newsreaders
   that do not support the spoiler character will decide to do so.
 * Put a lot of blank lines in front of your spoiler.

This is not a newsgroup for the discussion of traditional "static" or "passive"
fiction. Literary magazine ads, advertisements for writers, and other general
fiction topics should be posted to the appropriate newsgroup (alt.prose,
misc.writing, rec.arts.books, rec.arts.poems, rec.arts.prose, etc.). However,
this confusion has come up in the past (newcomers believing the group name
means "International Fiction", for example), and a polite pointer is better
than a "get this junk off the newsgroup" flame.

Discussions of MUDs (multi-user dungeons) belong on rec.games.mud.*, although
discussion of multi-player IF theory is certainly appropriate here. Information
on LARPs (live-action role playing games) and FRPs (fantasy role playing games)
can be found in rec.games.frp.misc. Questions about the various "roguelike"
games, such as "NetHack," "Angband," etc. should be posted to
rec.games.roguelike.*.

Though posters may certainly post to raif in non-English languages, speakers of
Italian may be pleased to learn that there is a newsgroup for Italian IF called
it.comp.giochi.avventure.testuali.

You should of course follow basic netiquette conventions such as:
 * Use a meaningful Subject line relevant to the content of your message
 * Don't spam.
 * Include a quote from any previous message you're replying to
 * Don't spam.
 * but don't quote screes of previous discussion to append one little comment
 * Don't spam.
 * DO NOT USE ALL CAPS
 * Don't spam.
 * you also should avoid putting everything in lower-case
 * Don't spam.
 * Don't flame others, you bastard!
 * Don't spam.
 * Well speling and gramer is good.
 * Don't spam.
 * Don't flame people because their spelling or grammar sucks.
 * Don't spam.

--------------------------------------------------------------------------------
2.4: Is there an archive of newsgroup postings?

The very-nearly-complete and unabridged archives of posts to both interactive
fiction newsgroups are stored on the IF-Archive [What is the IF-Archive?: 6.1]
at /if-archive/rec.arts.int-fiction/ . (Unfortunately there is a gap in the
records between January 1997 and mid-1999.) The rec.arts.int-fiction archives
have been converted to HTML, and are on the Web, fully indexed and linked by
date and by thread, at <http://bang.dhs.org/if/raif/>.

If you are looking for the most recent posts, check out
<http://groups.google.com/>. Google Groups' archive goes back to 1995.

Postings to rec.games.int-fiction are similarly archived on the IF-Archive, in
the directory /if-archive/rec.games.int-fiction/ . They have not been HTMLized,
and rec.games.int-fiction is available from "Google Groups".
--------------------------------------------------------------------------------

2.5: What abbreviations will I find on the newsgroups and in the FAQ?

IF == Interactive Fiction, the subject of this FAQ
raif == rec.arts.int-fiction, the newsgroup about writing IF
rgif == rec.games.int-fiction, the newsgroup about playing IF
r*if == either of the above newsgroups
PC == Player Character, the player's character inside a game. (Also, Personal
Computer, which usually implies an Intel/Microsoft setup.)
NPC == Non-Player Character, other characters inside a game.
gmd == the IF Archive (based at ftp.gmd.de)
ifMUD == Interactive Fiction Multi-User Dungeon, or some such [Are there any
IF-related chat spaces?: 6.4]

You may see people referred to by nicknames, many of which are the same as
their ifMUD [Are there any IF-related chat spaces?: 6.4] usernames. Most of
these nicknames are similar to their real names; notable exceptions include
Grocible (Neil K. Guy); Zarf (Andrew Plotkin); Whizzard (G. Kevin Wilson);
devil (Andrew Pontious); and inky (Dan Shiovitz). Nobody's really sure who the
Admiral Jota is.

The FAQ often refers to files on the IF-Archive; see [What is the IF-Archive?:
6.1] for more information on that.
--------------------------------------------------------------------------------

2.6: What sort of events does the IF community do?

Two annual IF traditions are the IF Competition and the XYZZY awards.

The Annual I-F Competition, started in 1995, is open to all authors of
interactive fiction. Entrants' games can be written in any language (e.g.
BASIC, C, a dedicated authoring system, etc.), though use of one of the IF
languages is recommended. The competition was founded by G. Kevin "Whizzard"
Wilson, continued by David Dyte, and currently ran by Stephen Granade
([email protected]). More information about the IF Competition is available
at <http://ifcomp.org/>.

The XYZZY awards, hosted by Eileen Mullin of XYZZYnews, are an Oscar-style
award ceremony each February on ifMUD, giving honor (and trophies!) to the best
IF of the previous year. Anyone can vote on the numerous categories by going to
<http://www.xyzzynews.com/>.
--------------------------------------------------------------------------------

2.7: What is mimesis?

    mimesis (mi-me'sis, mi-) n. 1. The imitation or representation of
    aspects of the sensible world, especially human actions, in
    literature and art.

[the following is stolen from a post to raif by Adam Cadre]
    In brief, there are generally two different things people on this
    group use the word "mimesis" to refer to:

    (1) The extent to which the player feels like she's experiencing what
    the game tells her she is, rather than experiencing the sensation of
    typing on a keyboard and watching words scroll by on a screen;

    (2) The extent to which stuff in the game seems to work the way
    things work in real life, or at least the extent to which it
    maintains a degree of internal consistency.

The idea of mimesis with regard to IF was started by Roger Giner-Sorolla in his
"Crimes Against Mimesis" postings some time back on raif. You can find a copy
of it at <http://bang.dhs.org/if/library/design/mimesis.html>

More recently, Adam "Bruce" Thornton wrote a very funny in-joke game called
"Sins Against Mimesis".

--------------------------------------------------------------------------------
Part 3: General Interactive Fiction information

--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
3.1: What is interactive fiction?

"Interactive fiction" is a catch-all name for many forms of story-telling. Most
forms are text-based (but see below) and feature some degree of reader, or
player, participation beyond the act of, say, turning the page of a book to
read the next one.

In the context of rec.arts.int-fiction the name is most commonly used to refer
to just one type: computer-based text adventures. These games involve the
player entering textual commands in response to the game's output. In turn,
this output is influenced by the player's input. An extremely simple example of
this interplay between player input and game output (from "Zork") is:
    West of House
    You are standing in an open field west of a white house, with a
    boarded front door. There is a small mailbox here.

    >OPEN THE MAILBOX
    Opening the small mailbox reveals a leaflet.

    >TAKE THE LEAFLET
    Taken.

    >READ IT
    "WELCOME TO ZORK!

    ZORK is a game of adventure, danger, and low cunning. In it you will
    explore some of the most amazing territory ever seen by mortals. No
    computer should be without one!"
Although interactive fiction, in the sense of text adventures, is usually
text-only, there has always been limited interest on rec.arts.int-fiction in
graphics and sound. It is widely considered that the most important, if not the
defining, element of interactive fiction is the text-based user interface and
the parser (that part of the program which analyzes and acts upon the player's
input), and as long as this is kept there is no particular reason why the
game's output cannot include, or consist entirely of, graphics (static or
animated) and/or sound. A not insignificant number of "purists" would refute
this, however. Recent updates to the major IF languages have simplified
creation of graphical and aural IF.

"Interactive fiction" is also used to refer to (Web-based) hyperfiction, where
the reader selects links to progress though the story; "Choose Your Own
Adventure" (CYOA) books, which are a sort of non-computer hyperfiction;
multiple author, or contributory, fiction, where multiple authors write a story
by each contributing, say, one chapter; and MUDs and MUSHes, which may loosely
be described as multi-player text adventures. It has also been suggested that
Role Playing Games (RPGs), such as "Dungeons & Dragons", present the ultimate
in interactive fiction.

Interactive movies have also been mentioned on the newsgroup from time to time.
This is a rather poorly defined genre of film-making. Interactive movies seem
to be the cinematic equivalent of CYOA books, rather than text adventures.

Though the non-text adventure forms of IF are rarely discussed on the group,
one must always keep in mind that the group was created (by famous Mac guru
Adam C. Engst, circa 1986) without the intention of text adventures in mind.
Though you may not, many people enjoy discussion of non-text adventure IF on
the newsgroup, and so flaming newcomers with a "that's not what raif is for!"
is not a good idea.

--------------------------------------------------------------------------------
Part 4: Programming IF

--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
4.1: How do I become an IF author?

Write some interactive fiction. This is done with an authoring system, such as
those described below. Most systems comprise of a specialized interactive
fiction language with which you write the source code for your game, a compiler
which turns your source code into a playable gamefile, and an interpreter which
is what is used to play the gamefile produced by the compiler.

However, quite a few people write their own system in C or BASIC or another
language, either focused solely around a single game or as an expandable
language. It is easier to use a pre-made system, and they will offer more
portability. It will also stop you from having to remake the wheel. However, if
you want to make your own system, nobody's going to stop you (well, they
shouldn't, at least). It would probably be a good idea to look at the current
systems to get a basic idea of what to do.

With the advent of Glk, making your own systems portable is easier. If you are
writing in C, take a look at Glk. If you use it for your input and output, it
will make your game a lot more portable. It is simple and powerful. However, it
can't do everything. See [What is Glk?: 4.5] for details.

It is generally agreed upon that much work on a game is done before any source
code is written. There are many and varied approaches to this design and
planning stage, and it is difficult to recommend any one method (and this is
hardly the right place). Several people have written documents on this very
subject. These may be found in the IF-Archive, in the directory
/if-archive/info/ . Of particular note are Graham Nelson's
([email protected]) "The Craft of Adventure" and Gerry Kevin Wilson's
([email protected]) "Whizzard's Guide to Text Adventure Authorship." The
filenames for these are Craft.Of.Adventure.* (where * is one of the various
formats that it has been translated into) and authorship-guide.{base, sup1,
sup2}. Also, there are many excellent articles on game theory and design in the
'zine "XYZZYnews" [What 'zines exist?: 6.5] .

You really ought to betatest your game before releasing it to the general
public. Usually, when betatesting a game, the author sends the game out to her
betatesters, who work as hard as possible to find bugs, writing flaws, and any
other problems with the game and send the author reports. You can find
betatesters by posting on the IF newsgroups (but see [What topics are
appropriate here?: 2.2] for details on how to post betatester requests), by
asking on ifMUD (see [Are there any IF-related chat spaces?: 6.4] ), or by
using Lucian Smith and Liza Daly's IF Betatester page. Using their (free, of
course) service, the author sends them a game which can be downloaded and
tested by any of their registered betatesters (which anybody can sign up to
be). More information on this service can be found at
<http://plover.net/~textfire/beta.html>.

You can also find betatesters among your friends and other people who have not
played IF before; though such a betatester can be useful, it is *very*
important that you have at least one or two betatesters from the "IF community"
(r*if, ifMUD, TextFire Beta, etc). Only somebody who knows IF well will know
where bugs are most likely to crop up.
--------------------------------------------------------------------------------

4.2: Who's going to appreciate my work; who cares about IF anyway?

As it turns out, quite a lot of people. Interactive fiction regularly achieves
respectable rankings on the "Internet PC Games Charts"
<http://www.worldcharts.com/> and has been as high as #3. Indeed, there were
five interactive fiction games in the 1996 Year-end Download Top 40, the
highest romping in at #12 (beating Doom), making these games some of the most
popular non-commercial computer games in the world.

The six winning entries from the 1995 IF competition [What sort of events does
the IF community do?: 2.6] were published by Activision on their CD-ROM
release, "Masterpieces of Infocom" (July 1996), which has sold surprisingly
well. Activision also uses the Inform authoring system as a prototyping tool
for some of their large graphical games (such as "Zork: Grand Inquisitor"), and
used an Inform Zork game (by G. Kevin "Whizzard" Wilson, Marc Blank and Mike
Berlyn) as a promotion for Z:GI.

Specifically, the readership of the two rec.*.int-fiction newsgroups make up a
faithful audience. Popular games such as "Curses" have been played by quite
possibly thousands of people worldwide. In this specific case, the game has
been downloaded at least 2000 times from two sites (more from other sites, but
figures are unavailable), published on at least 4 CDs (probably more without
the author's permission) and as a cover disc of two magazines with circulation
in the 10000s, and included in commercial packages.

--------------------------------------------------------------------------------
4.3: What about copyright; how can I protect my work?

I'm not a legal expert, so you might want to look at such websites as the U.S.
Copyright Office Home Page <http://lcweb.loc.gov/copyright/> and the Public
Record Office of England and Wales <http://www.pro.gov.uk/>.

You should include in your game (perhaps in the response to the HELP command)
something saying that you own the copyright on the game, and giving a
distribution policy: for example, you may not want it to be distributed for
charge, you may not want it distributed at all, or you may not care.

On a somewhat related topic, you should ask John Francis
([email protected]) to list you in the file
/if-archive/info/author-list.txt at the IF-Archive. You can give him your email
address and the distributability status of your game or other IF product.)

On another somewhat related topic, getting commercially sold games, even if
they are no longer available, for free is illegal unless the copyright owner
has specifically decided to allow distribution. There is no such thing as
"abandonware": just because a game or program is no longer sold does not make
it legal for you to distribute it. On the other hand, most people are in favor
of getting copyright owners to freely distribute abandoned programs, but that
choice is up to the owner. This specifically covers most of the Infocom games,
but see [Where can I find Infocom games?: 6.7] for more information on that.
--------------------------------------------------------------------------------

4.4: What authoring systems are available?

Though some people simply write their adventures in C, BASIC, and other general
languages, this tends to lead to a lot of remaking of the wheel and problems
with parsers. Most IF authors choose to use a specialized IF authoring system.
Descriptions of them are below.

Tier (i) contains the most popular systems; posts about them are common on
raif, and even the least-used one has at least a game or two each year. It
contains Hugo, Inform, TADS, and ALAN. These are all good systems, with Inform
and TADS the most popular and ported.

Tier (ii) contains systems that are either waning in popularity, or have not
started waxing yet, though they are being supported by authors. It contains
AGT, Quest, SUDS, ADRIFT and PAWS.

Tier (iii) mostly consists of old systems that never really caught on.

The Unprocessed Tier lists new or previously overlooked systems which should be
listed in one of the other tiers but haven't yet been added.
--------------------------------------------------------------------------------
4.4.1: Tier (i)

The most popular and/or powerful, these are currently used by a large number of
people; many posts to rec.arts.int-fiction concern these systems and their use;
games produced with these systems are guaranteed a relatively large audience.

 Hugo
   /if-archive/programming/hugo/

 Version/Release
   2.5.03d and 3.0.01d

 Author
   Kent Tessman ([email protected]).

 Platforms
   Acorn RISC OS, Amiga, BeOS, MS-DOS, Unix (i.e., Linux, SunOS, etc.,
   with pre-built executables for Linux), OS/2, Win95/NT, and any
   Glk-supporting platform [What is Glk?: 4.5] including the Macintosh.

 Support
   The author intends to continue supporting Hugo indefinitely, and is
   developing further releases of the compiler/engine package. He will
   take e-mail and respond to posts. In his own words, he will contribute
   "anything I can offer" to the product. Messages specific to Hugo are
   posted to rec.arts.int-fiction from time to time.

 Programming Knowledge
   Owes its origins to Inform, C, and BASIC. It is thus object-oriented,
   has a straight-forward syntax, and an effort has been made to keep
   programming as free of punctuation and confusing formatting as much as
   possible. Much low-level (assembly) programming is done within the
   system itself (so the user needn't worry about it).

 Features/Limitations
   As of v2.4 Hugo supports graphics (in JPEG format) and multiple tiled
   windows. It also has music in MOD, S3M, MP3, MIDI, and XM format and
   sound in WAV format. The standard sound package (which the DOS and
   Windows ports use) allows 32 channels. Full multimedia support is
   available in the Windows/DOS, BeOS, and X Windows ports. As of v3.0,
   Hugo even supports movies in MPEG or AVI format. The compiler allows
   precompiled headers. Features include global events, object-linked
   events, object/character scripts, hierarchical inheritance and the
   ability to use objects as classes, dynamic run-time dictionary
   creation, multiple-turn undo, and (practically) unlimited game file
   size due to indexed addressing. Hugo allows the programmer to fully
   manipulate the interpretation of the input line prior to engine
   parsing.

 Documentation and Game Sources
   The "Hugo Programming Manual" covers many of Hugo's features and there
   is an extensively annotated tutorial game, "Vault of Hugo." Currently
   available game source code include ports of "Adventure" and "Pirate
   Adventure", and the author's own full-length games, "Spur", "Guilty
   Bastards", and "Down", and a shell-game to build on.

 Online Documentation
   N/A

 Web Pages
   Hugo - An Interactive Fiction Authoring System
   <http://www.generalcoffee.com/>
   Jerry's Hugo Site
   <http://cub.kcnet.org/~jnichols/hugo/ifpage.html>

 Debugging Features
   The Hugo Debugger, HD, is a full-featured source(ish)-level debugger,
   which allows code search, watch expressions, breakpoints, and so on.
   The HugoFix library is a suite of debugging routines allowing the user
   to monitor, set, and check almost every aspect of a game at run-time.

 Source
   C.

 License
   Freeware, so long as it is distributed in an unmodified manner. Games
   produced by a user are the property of that author, and may be freely
   distributed. Only if the game (including any included libraries from
   Hugo) or the Hugo engine is intended for distribution in any commercial
   manner (shareware or otherwise) must Kent Tessman be contacted for
   permission.

 Quick Pros and Cons
   As it is slightly newer than Inform and TADS, less people are using it
   and the Glk-based port to Macintosh doesn't have all the graphics and
   sounds perks (yet). On the bright side, it is quite powerful and offers
   advanced sound and graphics capabilities. Mac users are very very
   grateful for the Glk port, which is quite nice in the non-multimedia
   areas.

--------------------------------------------------------------------------------
 Inform
   /if-archive/infocom/compilers/inform6/
   All-in-one downloads for Windows and Amiga at Inform for New Writers
   website: <http://www.iflibrary.com/ifnw/>

 Version/Release
   6.21. Library 6/10. (Also, 6.21(G0.32) for glulx is in beta.)

 Author
   Graham Nelson ([email protected]). Glulx features by Andrew
   Plotkin ([email protected]).

 Platforms
   Acorn RISC OS, BeOS, Macintosh, Atari ST (latest release 5.4, may be
   unsupported), Amiga, IBM PC (on pre-386, release 5.5 only), Linux,
   OS/2, UNIX, VMS (for DEC VAX or Alpha), and EPOC (the Psion 5/Revo/7
   handhelds). The ZMachine interpreters needed to play Inform games
   compiled for the ZMachine (that is, those that don't use glulx) are
   available for these platforms and many more.

 Support
   The author fixes library bugs whenever they are reported, and issues
   updates about every three months. The compiler is updated approximately
   twice a year, and the documentation is now in its 3rd edition (with an
   update May 1997). Feedback from users is welcomed. There are a large
   number of relevant posts to rec.arts.int-fiction.

 Programming Knowledge
   Compiles a largely object oriented language, reminiscent of C. A quite
   sophisticated parser is supplied, which can be entirely invisible to
   the designer but is highly programmable if need be. The library is
   itself written in Inform and is relatively easy to modify.

 Features/Limitations
   Produces files in the `Z-machine' format, as used by Infocom. Thus
   Inform games can be played on any of the many publicly available
   `Z-machine' interpreters. A standard library is supplied; it is
   possible to replace library routines. The run-time format does now
   permit dynamic object creation. Low-level programming is provided for,
   including a full assembler.

   The parser can be supplied with a language definition file allowing
   Inform games to be played in non-English languages. Translations of
   Inform have been made into German, Spanish, Italian and Renaissance
   English, with several others in development. These translations are
   linked from Graham Nelson's website (see below).

   A system called "Blorb", for convenient attachment of sound effects and
   modern-quality graphics, has now been fully implemented by Kevin
   Bracey's "Zip2000" interpreter.

   An alternate version can compile to the "Glulx" format, which allows
   advanced I/O capalities and removes many of the ZMachine's arbirtrary
   size restrictions.

 Documentation and Game Sources
   The main manual is the "Designer's Manual"; the "Technical Manual"
   documents very dry internals; the "Specification of the Z-Machine"
   defines the run-time format and the standard for interpreters (an
   alternative to this last document is "The Z-machine, and How To Emulate
   It"). A handful of game sources are available. The Inform Translator's
   Manual documents language definition files.

   The latest (fourth) edition of the Designer's Manual in PDF can be
   downloaded from the IF Archive
   /if-archive/infocom/compilers/inform6/manuals/designers_manual_4.pdf>.
   An HTML version is also available (see next section 'Online
   Documentation'.)

   The Inform Beginners Guide is an excellent introduction to writing IF
   with Inform.http://www.firthworks.com/roger/IBG.html>

   (Both the Designer's Manual and Beginner's Guide may also be available
   as paperback book. Check http://www.iflibrary.com?PageId=Store> for the
   latest details.)

 Online Documentation
   The Inform Designer's Manual
   <http://www.inform-fiction.org/manual/html>
   The Z-Machine Standards Document 1.0
   <http://www.inform-fiction.org/zmachine/standards/z1point0/index.html>

 Web Pages
   Inform 6: A Compiler For Interactive Fiction
   <http://www.inform-fiction.org>
   The Inform FAQ
   <http://www.firthworks.com/roger/informfaq/>
   Inform Tricks
   <http://www.eblong.com/zarf/inftricks/>
   The Informary (and other much other helpful material) can be found at
   Roger Firth's website
   <http://www.firthworks.com/roger/>
   Inform for New Writers, David Cornelson
   <http://www.iflibrary.com/ifnw/>
   Inform for Beginners, Jeff Johnson
   <http://www.geocities.com/SiliconValley/Heights/8200/contents.htm>
   Glulx: A 32-Bit Virtual Machine for IF
   <http://www.eblong.com/zarf/glulx/>
   Gull - beginning with Glulx <http://adamcadre.ac/gull>
   The Inform Library Patch Site
   <http://www.inform-fiction.org/patches/index.html>
   Inform Page (somewhat old)
   <http://www.duke.edu/~srg3/IFprogramming/inform.html>
   Inform Programming (old, outdated)
   <http://www.doggysoft.co.uk/inform/>

 Debugging Features
   Can print tracing information for calls to routines and a suite of
   debugging verbs is included in the library: these monitor timers,
   daemons, actions, the object tree, messages between objects, the
   parser's internal workings and the like, and give the tester
   supernatural powers to travel and move things around. The library can
   also record and play back scripts of commands. Tools such as TXD (a
   disassembler) and Infodump (an inspector of objects, dictionary and
   grammar) are publicly available.

   As of Inform 6.21, you can compile your games with "Infix" debugging
   mode. This allows the author to use a variety of debugging verbs to
   examine and change the game's state in a way similar to the programming
   of Inform itself. You can trace references to a routine or object.

   Inform can also produce a file of information useful to any debugging
   tool, with, for example, Z-machine PC positions assigned to every
   statement of source code.

   There are some help-tools to configure various text editors to Inform,
   too; the Technical Manual provides an algorithm for syntax-colouring
   Inform code which is used in several of these.

 Source
   ANSI C.

 License
   Freeware. The author retains copyright of the compiler in order to
   prevent commercial exploitation, but (subject only to mild
   restrictions) is prepared to let people sell games produced by Inform.

 Quick Pros and Cons
   It is the most highly ported authoring system, and is quite popular. It
   is very powerful; some of the very advanced techniques are difficult to
   understand, though. Though it has a few more ports than TADS,
   HTML-TADS' graphics and sound support are both more powerful and more
   usable (at the current time) than Inform's. Also, the ZMachine suffers
   from the fact that extraordinarily large (and I mean really really big)
   games do not fit in it. However, for a normal-sized, text-only game
   that doesn't do extraordinarily complicated hacks (most games fit this
   description), Inform's problems do not hurt at all, and the glulx
   virtual machine fixes some of these problems.

--------------------------------------------------------------------------------
 TADS (Text Adventure Development System)
   /if-archive/programming/tads2/

 Version/Release
   Version 2.5.5.

 Author
   Michael Roberts (mjr_ at hotmail dot com).

 Platforms
   Acorn RISC OS (interpreter only), AmigaDOS, Atari ST/TT/Falcon,
   DECStation, Linux, Macintosh, MS-DOS (also GO32 DOS extender version
   for 386+), NeXT, OS/2, SGI Iris/Indigo, SunOS & Sun 3.

 Support
   Posts to rec.arts.int-fiction dealing with all manner of TADS queries
   are not uncommon, and there are many third-party programming examples
   and utilities, including WorldClass, Alt and Pianosa, complete
   replacement libraries.

 Programming Knowledge
   Uses a high-level, largely object-oriented language very reminiscent of
   Pascal or C.

 Features/Limitations
   Provides virtual memory support, permitting games much larger than your
   computer's physical memory. Full multiple inheritance is supported, and
   incremental changes can be made to library files so one can include the
   standard library and override bits of it piece by piece. Objects may be
   created at run-time (dynamic object creation). TADS also provides
   multiple UNDO, routines for general-purpose file I/O, and "user exits"
   that let one link in code compiled with other languages (such as C).

   TADS allows you to write your game using HTML TADS, which allows you to
   add styled text, still graphics, sound, and MIDI music to your TADS
   games. Rather than relying on some proprietary markup language, HTML
   TADS uses standard HTML, the language used to mark up Web pages, for
   which documentation is readily available. (However, HTML TADS doesn't
   need a web browser or the Internet: it uses HTML but isn't a Web-based
   system.) HTML TADS also supports ISO Latin-1 character sets, so
   accented letters are easily added.

   At the time of writing, HTML TADS interpreters are only available for
   Windows 95/98/NT and Macintosh. However, a game written in HTML TADS is
   still fully playable (minus graphics and sound, of course) with
   character-based TADS runtimes that have been updated to at least
   version 2.2.6.

   The Windows port of TADS 2.5 and up comes with "Visual Workbench", an
   integrated development environment including the compiler, debugger,
   runtime, and an editor. It can even create self-enclosed executable
   installater programs for Windows for your TADS games.

 Documentation and Game Sources
   TADS' comprehensive manual is available in TeX, PDF and HTML formats,
   although the HTML version is the most current. At the moment, TADS
   documentation is a little scattered between the TADS manual
   (<http://www.tela.bc.ca/tela/tads-manual/>), the TADS Parser Manual in
   /if-archive/programming/tads2/manuals/tads_pm.zip , and the HTML TADS
   Revision Notes, available with HTML TADS. Neil K. Guy is working on
   updating the main TADS manual to include the information from the
   Parser Manual. Lastly, you might want to look at the slightly outdated
   but still useful TADS Tip Sheet at
   <http://www.tela.bc.ca/tela/tads-manual/tads-tip-sheet.html>.

   In addition to the manual the full source for a medium-sized game,
   Ditch Day Drifter, is available from the usual sources. The source code
   for many other games, from small and simple to huge and complex, is
   also readily available.

   Mark Engelberg has written a tutorial for TADS. It can be found on the
   IF-Archive as /if-archive/programming/tads2/manuals/TADSTutorial.zip .

 Online Documentation
   TADS Author's Manual
   <http://www.tela.bc.ca/tela/tads-manual/>
   TADS Manuals directory on the IF-Archive
   /if-archive/programming/tads2/manuals/

 Web Pages
   The TADS Page
   <http://www.tela.bc.ca/tela/tads/>
   Official TADS homepage
   <http://www.tads.org/>
   The Apple Macintosh TADS Home Page
   <http://www.umbar.com/MacintoshTADS/>

 Debugging Features
   TDB is a full-featured source-level debugger. It allows single-stepping
   through your source, the setting of breakpoints at specific lines, and
   the examination and alteration of variables in your program.

 Source
   C.

 License
   Freeware.

 Quick Pros and Cons
   It is very popular and powerful powerful. It has better graphics
   support than Inform/ZMachine, and HTML TADS is available on the Mac
   (which is not the case for graphical Hugo). Its library is very
   object-oriented, which may be a good or bad thing, depending on who you
   are. It has slightly less ports than Inform/ZMachine, especially to
   ancient computers like the C64 and small computers like the PalmPilot.
   On the other hand, the reason is can't run on the PalmPilot is that it
   allows games of any size whatsoever, which is good if your game needs
   to be huge.

--------------------------------------------------------------------------------
 ALAN (Adventure LANguage system)
   /if-archive/programming/alan/

 Version/Release
   2.8, with various correction levels for different platforms.

 Authors
   Thomas Nilsson ([email protected]) and Goran Forslund
   ([email protected]).

 Platforms
   Amiga, Macintosh, MS-DOS (currently only 386+), sun4 (Solaris1, SunOS
   4.1), sun4 (Solaris2, SunOS 5.x). A HP-UX version of 2.8 is upcoming,
   though a 2.7 version exists. There is also a Glk [What is Glk?: 4.5]
   version.

 Support
   As a non-profit project author support may vary, although the authors
   will endeavor to act on bug reports sent by e-mail. Most ALAN questions
   on raif will be answered by other ALAN users.

 Programming Knowledge
   Uses a very high-level language. With an easy-to-learn syntax and
   semantics, ALAN takes a descriptive view of the concepts of adventure
   authoring. There are no variables, subroutines or other traditional
   programming constructs. A general statement which describes the ALAN
   philosophy is that a game's author should not need to program, only
   describe, what the player will see.

 Features/Limitations
   Actors may be scripted and rules are evaluated between each actors turn
   which can trigger actions. Events can be triggered by objects, actors
   or locations. Expansion of the parser syntax is simple. ALAN lacks
   actor interaction and inheritance (although a prototype of v3.0
   supports this). General verbs can be overridden both for locations and
   objects on which they are invoked. There is support for multinational
   character input.

 Documentation and Game Sources
   The manual, available separately in PostScript, HTML, and ASCII
   formats, contains a lot of detail on all aspects of IF authorship from
   a beginner's level upwards. A few examples of ALAN source are
   available, including the source to the games "Saviour" and "Skipping
   Breakfast".

 Online Documentation
   ALAN Adventure Language Manual & Beginners' Tutorial
   <http://welcome.to/alan-if/>

 Web Pages
   The Alan Home Pages
   <http://welcome.to/alan-if/>
   Using Alan on MS Windows PCs
   <http://users.actrix.co.nz/stevgrif/>

 Debugging Features
   The debugger currently supports viewing (but not altering) of most
   data, tracing of significant parts of the execution and single-stepping
   though compiled code.

 Source
   The compiler and interpreter source code is written in C.

 License
   Freeware. The interpreter may be freely distributed with compiled games
   for commercial purposes (i.e., no fee or royalties are required if you
   start to sell games).

 Quick Pros and Cons
   It isn't as powerful as the other Tier (i) systems. However, it is
   apparently easier to learn.

--------------------------------------------------------------------------------
4.4.2: Tier (ii)

Intermediate popularity and new systems, these do not appeal to quite as large
an audience as those in tier (i) or are less powerful; there are infrequent
posts to rec.arts.int-fiction dealing with these systems and their use;
occasionally games are produced using these systems.
--------------------------------------------------------------------------------

 AGT (Adventure Game Toolkit)
   /if-archive/programming/agt/

 Version/Release
   Version 1.7 (may vary between platforms). But if you want to use AGT,
   use MAGX and AGiliTy instead of the original. Please.

 Authors
   David Malmberg ([email protected]) and Mark Welch
   ([email protected]).

 Platforms
   Amiga, Atari ST, Macintosh, MS-DOS, Windows. There seem to be many
   different versions for different platforms.

 Support
   No technical support from the authors (i.e., no new versions). Posts to
   rec.arts.int-fiction are not uncommon.

 Programming Knowledge
   Uses a meta-language similar to English. Standard Level games can be
   created with no prior programming knowledge.

 Features/Limitations
   Creates Standard Level games ("require no programming experience
   (honestly!), only a fertile imagination") or Professional Level games.
   There are limitations on the number of locations (200) and
   animate/inanimate objects (100 each) in a game. As AGT is no longer
   supported by the authors there will be no future upgrades/bug-fixes. It
   is not nearly as powerful as the Tier (i) systems, and many games are
   unportable from DOS.

   There is also now two programs, MAGX and AGiliTy, which are more
   portable and less buggy than the original AGT programs. However, they
   do not improve the language itself much.

 Documentation and Game Sources
   The documentation available on the Internet is out-of-date in regard to
   author support (which no longer applies) and licensing details (AGT is
   now freeware). Included is the source for a small game, Crusade. Other
   source for some two dozen games is publicly available. Mark Welch has
   50-100 copies of the final "Master's Edition" printed manual and would
   invite suggestions from AGT users on how he might disseminate them at
   no charge. He *does not* have the "Master's Edition" source code
   though.

 Online Documentation
   N/A

 Web Page
   AGT Home Page
   <http://www.markwelch.com/agt.htm>
   MAGX webpage
   <http://www.ltlink.com/~jgoemmer/magx.html>
   AGT-authors mailing list page
   <http://www.ltlink.com/~jgoemmer/agt.html>

 Debugging Features
   A few basic debugging commands (such as MOVEPLAYER and LISTROOMS) to be
   used at run-time.

 Source
   Turbo Pascal 4.0/5.0/5.5/6.0. Magx and AGiliTy are written in ANSI C.

 License
   Freeware. Games produced with AGT are freely distributable in whatever
   manner you choose.

 Quick Pros and Cons
   I really wish I could put more pros here. When AGT was first released,
   ages ago, it was an improvement over what little IF creation software
   existed at the time. However, there really is nothing it can do that
   Inform or TADS can't easily do, and unlike the tier (i) systems, it is
   not expandable. That is a key point: in Inform, Hugo, and TADS, you can
   basically get it to do what you want, at least in terms of the internal
   world (if not multimedia output). This is not the case for AGT. It is
   poorly ported. And, though some claim it to be easy to learn, others
   find AGT source incomprehensible. You can write a good game in AGT.
   It's much easier if you just use a different system.

--------------------------------------------------------------------------------
 Quest
   /if-archive/programming/quest/

 Version/Release
   3.12

 Author
   Alex Warren ([email protected]).

 Platforms
   Windows 95 or later.

 Support
   Please email all technical questions, enquiries, bug reports etc. to
   [email protected].

 Programming Knowledge
   None required. Quest comes with a visual editor (QDK), plus full
   documentation on the "ASL" programming language used, if you wish to
   code games by hand rather than using the visual editor. "ASL" is an
   easy-to-use language without much in the way of confusing syntax,
   designed with ease-of-use in mind.

 Features/Limitations
   Pretty much unlimited in any way; memory is allocated dynamically, so
   in theory games of any size could be created. Easy-to-use interface;
   built-in multimedia support for WAV and various image file formats
   (including BMP, GIF, and JPEG); save/load facility; text formatting;
   built-in support for items, characters, objects, selections, string and
   numeric variables, conditional statements, and user-defined commands;
   error checking. Its built-in library isn't as advanced as some of the
   Tier (i) systems in terms of IF capability, but it allows more
   graphical Win32 power than them. Users can use QDK, the Quest
   Development Kit, to create Quest games without any programming.

 Documentation and Game Sources
   QDK and ASL reference plus small sample game included in Quest
   download. Al Bampton's ASL tutorial is also included.

 Online Documentation
   <http://www.axeuk.com/quest/developer/asl/index.htm>

 Web Page
   Quest Home Page
   <http://www.axeuk.com/quest/index.htm>
   Al Bampton's Tips and Resources for Quest
   <http://members.aol.com/agbampton/html/qtips.html>

 Debugging Features
   All variables can be watched via debug windows, and a log file can be
   optionally saved.

 Source
   Not available.

 Licence
   Quest may be used free of charge, but you are encouraged to upgrade to
   Quest Pro for UK£15.95 (US$24.95) via credit card or cheque. Quest Pro
   includes the full version of QDK plus QCompile which allows you to
   encrypt your games so the code cannot be read or edited. The free
   version of Quest is capable of running games from both unencrypted ASL
   source code and encrypted "CAS" code files.

--------------------------------------------------------------------------------
 SUDS
   <http://www.sudslore.com/>

 Version/Release
   SUDS Player: 2.3.2.0. SUDS Constructor: 2.3.1.0.

 Author
   Andy Elliot ([email protected]).

 Platforms
   Windows 9X/98/NT/2000/XP.

 Support
   The author will continue to improve and develop SUDS for the
   foreseeable future in the light of feedback and functionality requests,
   both of which are welcome. Andy endeavours to respond to all queries
   and suggestions within a maximum of five business days.

 Programming Knowledge
   Aimed at writers rather than coders, SUDS requires little or no
   programming knowledge, although it does demand the ability to think
   logically. SUDS enables users to build sophisticated event-driven
   procedures via a simple Cut and Paste mouse-driven interface. Syntax
   and construction of commands is handled automatically by the program.
   Design environment is modelled on object-oriented development packages
   such as Visual Basic.

 Features/Limitations
   Games are designed in the SUDS Constructor, which outputs the game as a
   single file. Games can be installed and run in the SUDS Player without
   compilation. Games are wholly text, although a "welcome" graphic can be
   specified. However, keyboard entry is replaced with a simple
   cursor-driven mouse interface: there is no parser and games consist of
   putting together words on the screen, like in the LucasArts graphical
   adventure games. A graphical map is automatically maintained during
   play, and players can add their own notes to each location.
   Event-driven procedures are triggered by player actions or
   between-turns housekeeping. There is a dedicated conversation interface
   with a drag-and-drop tree editor. The map editor is wholly graphical.
   You can have up to 32767 of each of Objects, Scenery, People, and
   Rooms. The map size is unlimited. Unfortunately, because code is not
   edited as textual source, you cannot export code to share with others.

 Documentation and Game Sources
   In addition to the documentation packaged with the applications, FAQs
   and information on upgrades are available on the SUDS website.

 Online Documentation
   Included in the SUDS download.

 Web Page
   SUDS
   <http://www.sudslore.com/>

 Debugging Features
   The SUDS Player contains fully integrated debugging features which can
   be enabled from the Constructor for a game. These include the ability
   to report on the attributes of every game item and all system
   variables, to move the player to any location, and to take or drop any
   item. An in-game procedure monitor gives the ability to view
   procedures, step through code, skip over individual code lines or
   procedures, evaluate conditions, and pre-decide the result of decision
   points.

 Source
   Borland Delphi (Object Pascal) using a proprietary database.

 Licence
   The SUDS Player and Constructor are both freeware: there is no fee for
   installation or use. SUDS-format games may be distributed for profit at
   the author's discretion.

 Quick Pros and Cons
   If you want a Windows-only program with a good IDE and dialog-box-based
   programming instead of text-based programming, and you do not mind that
   SUDS players converse with your game by a simple point and click
   interface, then SUDS is probably the system for you: it shows every
   sign of being written with care for that purpose. The main
   disadvantages in comparison to more traditional systems are that it is
   a Windows-only program and doesn't have a parser-based user interface
   like most IF.

--------------------------------------------------------------------------------
 ADRIFT
   </if-archive/programming/adrift/>

 Version/Release
   3.90

 Author
   Campbell Wild ([email protected]).

 Platforms
   Windows 95/98/NT4.

 Support
   The author enthusiastically supports ADRIFT and is actively developing
   and improving the system.

 Programming Knowledge
   ADRIFT does not require previous programming experience (though the
   ability to think logically and in depth is required.) Games are
   developed in a forms-based graphical user interface so no 'programming
   code' needs to be written.

 Features/Limitations
   Games are written entirely within the easy-to-use GUI forms environment
   called the ADRIFT generator. Has multimedia support for the addition of
   both images and sounds to a game. The ADRIFT interpreter automatically
   builds a game map during play. While 'programming' in the ADRIFT system
   is fast and straightforward because of the well-designed GUI
   environment it naturally cannot match the flexibility of the code-based
   systems (but the inflexibility is not necessarily a problem as
   ready-made structures provided within ADRIFT meet all the requirements
   needed for most text adventure games.)

 Documentation and Game Sources
   A Tutorial (in HTML format) and sample games are available for download
   at the website.

 Online Documentation
   The Tutorial can be read online at
   <http://www.jcwild.pwp.blueyonder.co.uk/tutorial/<

 Web Page
   ADRIFT Homepage
   <http://www.adrift.org.uk>

 Debugging Features
   A graphical outline of 'task dependancies' is available within the
   ADRIFT generator GUI. The runtime interpret, the 'Runner', includes a
   'debugger' which allows the author to view the current status of
   objects, characters etc and make live changes to the status values.

 Source
   Written in Visual Basic 6. Not generally released to the public.

 Licence
   Freeware. Both the Generator and 'Runner' software can be freely
   distributed and there are no restrictions on distribution or commercial
   release of games written with ADRIFT.

 Quick Pros and Cons
   ADRIFT provides an approachable dialog-box-based programming
   environment which may appeal to aspiring IF authors without programming
   experience. Sufficient capabilities are provided within that
   environment to capabably produce conventional text adventure games,
   optionally with multimedia enhancements. The main disadvantage, besides
   the inherent limitations of a forms-based programming interface is that
   the games can only be played under the various MS Windows operating
   systems.

--------------------------------------------------------------------------------
 PAWS

 Version/Release
   1.0

 Author
   Wolf ([email protected]).

 Platforms
   Any OS supporting the Python language (includes MS Windows, Apple Mac,
   Linux, MSDOS.)

 Support
   Actively supported by the PAWS author.

 Programming Knowledge
   The PAWS language is intended to be fairly easy for beginners to pick.
   Setting up the Python environment may not be all that easy on some
   systems.

 Features/Limitations
   PAWS is the Python Adventure Writing System. It is a set of libraries
   that sits on top of the Python scripting language
   <http://www.python.org/> to let you write IF.

 Documentation and Game Sources
   Available at the PAWS website

 Online Documentation
   Tutorial at website

 Web Page
   <http://w3.one.net/~wolf/PAWS.shtml>

 Debugging Features
   PAWS has a debug mode which lets you view and change variables while
   the game is running, you can disable debugging in the game when you
   release it.

 Source
   Written in Python, source is included and is heavily commented to aid
   authors who want to explore the code.

 Licence
   Freeware.

 Quick Pros and Cons
   Games can be developed and played a lot of systems because the Python
   language has been widely ported. The size of the Python language
   download is a disincentive for people to play PAWS games though.

--------------------------------------------------------------------------------
4.4.3: Tier (iii)

Little current popularity, these are not generally popular; they often cater to
only a small number of platforms (usually only MS-DOS) and may be less advanced
or more specialized (such as handling graphics- or multimedia-based games) than
systems in the other tiers; games are rarely produced with these systems.
--------------------------------------------------------------------------------

 ADL (Adventure Definition Language)
   /if-archive/programming/adl/

 Advent
   /if-archive/programming/advent/

 Adventura
   /if-archive/programming/adventura/

 Adventure Builder
   /if-archive/programming/advbuilder/ MSDOS/Win3.x system. Homepage at
   <http://www.accessone.com/~conroy/ab.html>

 AdvSys (Adventure System)
   /if-archive/programming/advsys/

 AGIFG
   /if-archive/programming/agifg/

 Archetype
   /if-archive/programming/archetype/ A highly object-oriented, bare-bones
   system.

 Aventuro
   /if-archive/programming/aventuro/ A system in Esperanto.

 DROOL (Dave's Reworked Object Oriented Language)
   /if-archive/programming/drool/

 Figment
   /if-archive/programming/figment/

 GAGS (Generic Adventure Game System)
   /if-archive/programming/gags/ The precursor to AGT.

 GameScape
   /if-archive/programming/gamescape/

 GINAS (Generic Interactive Narrative Authoring System)
   /if-archive/programming/ginas/ An experimental, lisp-like system.

 GTAC (Graphic Text Adventure Creator)
   /if-archive/programming/gtac/ Creates a complete playable adventure
   game without losing the friendliness of the Acorn Desktop.

 LADS (Levi's Adventure Development System)
   /if-archive/programming/lads/ Produces games with a distinct "Scott
   Adams" look and feel. The state of the art of IF authoring systems is
   today well beyond this, yet LADS is still a workable, if primitive,
   system in its own right.

 NMP (NM Parser)
   /if-archive/programming/nmp/ A Spanish-language system.

 OASYS
   /if-archive/programming/oasys/

 Questmaker
   /if-archive/programming/questmaker/

 Rexx-Adventure
   /if-archive/programming/rexx-adventure/ For OS/2, a freeware
   object-based adventure creation with a GUI interface. Webpage at
   <http://www.io.com/~desantom/rad.html>

 SINTAC (Sistema Integrado de Creacion de Aventuras Conversacionales)
   /if-archive/programming/sintac/ A Spanish-language system.

--------------------------------------------------------------------------------
4.4.4: Unprocessed

These systems are either new, or are experimental or beta-release systems and
as such may not have the popular and immediate appeal of systems in other
tiers.

IAGE http://www.robin.rawsontetley.btinternet.co.uk/_Iage The Internet
Adventure Game Engine (an open-source system in development)

JACL /if-archive/programming/jacl/
--------------------------------------------------------------------------------
A NOTE ON AUTHOR SUPPORT: While most authors are happy to accept email
concerning their system please remember that reading and responding to email
does take time. While bug reports, requests/suggestions for new features, etc.
should be sent to the author directly, questions on how to implement a
particular feature or operate a particular function should go to
rec.arts.int-fiction, where time is not an issue. Bug reports for the authoring
systems should probably be both emailed to the author, who can fix them, and
posted to raif, so that other readers can realize that the bug exists. (Bug
reports for games other than the Infocom ones should not be posted to
rec.games.int-fiction, but rather emailed to the author. A bug in an authoring
system can create bugs in other people's games; a bug in a game can't do that.)

You should also realize that, especially if you are not paying for the system,
the system authors have no "responsibility" to the community to update their
program. There was once a nasty stir on raif in which a poster ordered Graham
Nelson, who had been unable to read the newsgroup for a while for various
reasons, to update Inform. Graham and the other authors have put a lot of hard
work into their systems, and probably will continue to do so. But if they
wanted to stop, they could. (After many messages asserting that point were
posted, the thread died down. This was shortly followed by a new version of
Inform.)

A NOTE ON LICENSING: Games written with some authoring systems, notably Hugo,
may not be distributed for money (shareware or commercial) without the system
author's express consent. You should always read and abide by any and all
licensing details relating to the system which you choose. If you do not like
the licensing arrangements, use a different system. Of course, system authors
are (usually) good human beings, and will probably say yes.
--------------------------------------------------------------------------------

4.5: What is Glk?

It is a standard for text-based I/O, designed by Andrew "zarf" Plotkin.
Complete information can be found at <http://www.eblong.com/zarf/glk/>.

Here is a brief description of it, plagiarized from LucFrench and Zarf's
descriptions on raif:

GLK is a spec for porting Input/Output code across platforms. In order to
understand why it's necessary, one must understand a bit about I/O.

A Unix machine has a different way of printing to the screen than a Mac, since
one is primarily text based, and the other is a graphical windowing enviroment.
As such, they have two *very* different ways of outputting data, particularly
for some of the special effects that many high level IF systems need (e.g., a
status line, picture, color, etc.).

So, porting the I/O can be difficult. What Glk attempts to do is specify a set
of calls to the Glk system that allows for easy porting across multiple
platforms.

The Glk calls are intended to be not only portable, but to be *easily*
portable: abstracted in such a way that they give the interpreter maximum
flexibility. This allows interpreters on different platforms to take advantage
of particular UI features.

A port of Dungeon, a scripting language, interpreters for the major IF
languages, and a few demos have been ported to Glk. If you are writing an IF
interpreter or similar program, consider using Glk. It'll make everyone happy.
--------------------------------------------------------------------------------

4.6: What are VILE 0 ERRORS FROM HELL, and how should I avoid them in Inform?

It is illegal on the ZMachine that Inform compiles to to do any of the
following when x == 0 (nothing):

child(x), parent(x), sibling(x), etc
if (x has attribute)
if (x.property == ...)
give x attribute
x.property = ...
move x to y
move y to x
remove x
.. or pretty much anything else which assumes x is a legitimate object.

Some interpreters will ignore this, and either end up not messing up, or crash.
In the former case, this means that you will falsely believe there is nothing
wrong with your game. In the latter case, it, well, crashes.

MaxZip, and some other Zip interpreters, will check and warn at these illegal
statements.

There is a bug in the Inform library (version 6/7) that will cause this in the
HasLightSource function. You should patch this immediately if for some reason
your are still using library 6/7.

In the library file parserm, find the function HasLightSource. Near the top,
there are the lines:

  if (i has enterable || IsSeeThrough(i)==1)
  {   objectloop (i in i)
          if (HasLightSource(i)==1) rtrue;
  }

This should be

  if (i has enterable || IsSeeThrough(i)==1)
  {   objectloop (j in i)
          if (HasLightSource(j)==1) rtrue;
  }

In other words, change two i's to j's.

Library 6/8 and later fixes this and a few other uncommon V0EsFH.

Much more information on the subject of VILE 0 ERRORS FROM HELL can be found at
<http://www.eblong.com/zarf/vileerror.html>, thanks to Andrew Plotkin, who made
everyone aware of this problem and helped with this article.

As of Inform 6.20, VILE 0 ERRORS FROM HELL and other common Inform problems are
caught at run-time by compiled-in checking routines. There is much rejoicing!
Unfortunately, if this "strict" mode is turned off, Inform 6.20 (though not the
newer 6.21 which should be used instead of 6.20) creates buggy code; and
Library 6/8 in strict mode is too large to fit in a module, meaning that you
can't create strict library modules. Inform 6.20 should *not* be used due to
its bugs in non-strict mode: either stick with a lower version or upgrade to
6.21.

Inform 6.20 and up also classifies objectloop errors as V0EsFH and catches
them. These are another common cause of problems in Inform. As most Inform
programmers know, objectloop (x) { ... } will run ... once for each object in
the game, setting 'x' to that object. Here's the problem:

objectloop (foo in someobject)
{
  move foo to somewhereelse;
}

You'd think this moves every object in someobject to somewhereelse. But it
doesn't. This is becase objectloop(a in b) {...} is optimized. Instead of being
equivalent to

objectloop(a)
{
  if (a in b)
  {
     ...
  }
}

it is the same as

for (a = child(b); a ~= 0; a = sibling(a))
{
  ...
}

In other words, it simply strolls along the object tree. If a is moved out of
b, it will make the next a be equal to the sibling of the current a, which will
not be what you want.

The solution is, for the simple case of "move all children of foo to bar":

while (children(foo) ~= 0) move child(foo) to bar;

For anything more complicated than that, use:

objectloop(a)
{
  if (a in b)
  {
     ...
  }
}
The same problem can occur in the little-used 'x from object' and 'x near
object' versions, though not in any other ones (such as 'x ofclass c'). Inform
6.20 and up will catch these at run-time.
--------------------------------------------------------------------------------

4.7: How do I find bug fixes for Inform?

Recent versions of Inform's library and compiler have introduced some annoying
bugs and weird ways of parsing. Though Graham Nelson fixes these in new
versions of the Inform library, between releases you can look at the official
Inform Patch Site at <http://www.inform-fiction.org/patches/index.html>,
maintained by Adam Cadre.
--------------------------------------------------------------------------------

4.8: What editors can I use to write IF?

Using a programmer's editor rather than a general-purpose text editor or a
wordprocessor is a very helpful aid to writing IF. There are many text editors
that are useful for writing IF. The following list describes some of them.
There are also some text editors and 'integrated development environments'
specifically written to work with a particular IF language. These are also
listed below. If you have any corrections or suggestions, feel free to email
them to me. Most of the following descriptions were written by others; I'd like
to thank everyone who helped me. However, I edited them, so any incorrect
statements are probably my fault.
 * DOS/Windows (Win32-only (Windows 95, 98, and NT) unless specified)
   * Inform
     * IF-IDE
       * Author: Mike Perlini
       * http://www.geocities.com/mjperlini/
       * IF-IDE is a text editor for Inform programmers.It features dynamic
         syntax highlighting, a semi-dynamic object, class and function
         browser and programmatic compilation and execution of z-code files.

     * Inform Explorer
       * Author: Paul de Valmency
       * http://www.logicshopltd.co.uk/ie/
       * Inform Explorer is a text editor written specifically to cater for
         Inform story source files. It features syntax highlighting and a
         visual representation of the objects and functions that make up the
         story file.

     * Visual Inform
       * Author: David Cornelson
       * http://www.iflibrary.com/vinform/
       * Visual Inform is an integrated development environment. "VI" is a
         complete and useable programming environment for developing Inform
         games in a more visual way than a traditional text editor. "VI"
         provides on-screen forms for defining the attributes, properties and
         descriptions for game objects and locations.

     * Informer
       * Author: William J. Schlaer
       * /if-archive/programming/editors/InEdit10.zip
       * Informer is a text editor that can generate Inform code for objects,
         locations, routine, etc. It includes Inform syntax highlighting; it
         can run the Inform compiler from within the editor and captures error
         messages for viewing; can view code as graphical object tree or
         location map.

     * Inform IDE
       * Author: Andrew Bault
       * <http://www.tiac.net/users/ajb/software.html>
       * Availability: free
       * With Inform IDE, instead of creating your program in a text editor as
         usual, you write code in a "browser" which shows the relationship of
         pieces of code to one another. You can import and export code with
         the normal text version of Inform source code. You can browse and
         modify objects and functions within hierarchical or alphabetical
         trees.

     * IMForm
       * Author: Tim Middleton
       * /if-archive/programming/editors/imfb01.zip
       * IMForm is an ambitious and pretty IDE for Inform. However, it is
         unfinished. It is not recommended for use in writing Inform games,
         but is interesting to look at for anyone thinking about writing an IF
         IDE. It has been uploaded with source code for anybody who wants to
         to complete the project.

   * TADS
     * TADS File Editor
       * Author: Satan's Mutt
       * /if-archive/programming/editors/tfe.zip
       * TFE is a conventional text editor with TADS syntax highlighting. It
         can run the TADS compiler and capture the compiler output to an
         editor window.

   * General
     * Ultraedit
       * Author: Ian David Mead
       * <http://www.ultraedit.com/>
       * Platforms: Win32 and Windows 3.1
       * Availability: $30 shareware
       * Ultraedit is a programmer's text editor with configurable syntax
         highlighting that can be set up for any IF language. You can run a
         compiler from within editor and capture its output to a window for
         viewing. It has macros. You can create your own syntax highlighting
         config files. Giovanni Riccardi has created an Inform config file,
         available at /if-archive/programming/editors/ueditinf12.txt . Gunther
         Schmidl has created a Hugo config file, available at
         <http://x39.deja.com/getdoc.xp?AN=503974273&fmt=text>. Theodore Hwa's
         TADS config file is available at
         /if-archive/programming/editors/ueditTADSwordfile.txt .

     * Programmer's File Editor (PFE)
       * Author: A. Phillips
       * /if-archive/programming/editors/pfe101i.zip (Win32)
       * /if-archive/programming/editors/pfe101.zip (Windows 3.1)
       * Availability: freeware
       * PFE is a programmer's text editor. It can run a compiler and capture
         output from it. It has macros. It is highly configurable. It matches
         paired characters. It remembers your cursor position in previous
         documents. It has no syntax highlighting, however. It interacts well
         with other programs, and can execute them, passing them the current
         file.
       * Note: the author of PFE decided to stop developing PFE in October
         1999; copies of PFE for both 32-bit and 16-bit Windows can now be
         found at the IF-Archive.

     * TextPad
       * Author: ?
       * <http://www.textpad.com/>
       * Availability: $27 shareware
       * Platforms: Win32 and Windows 3.1
       * TextPad is a highly configurable text editor focused on programming.
         Some of its features include automatic indentation; a changeable tab
         size (4 or 8? The tab size Holy War continues...); word-wrap; macros
         (very handy sometimes); a "clip library" for saving related macros
         (many user-created clip libraries are available for download from the
         TextPad website); the ability to compare two files (like Unix diff);
         a user-extensible Tools menu where you can enter custom commands,
         such as calling a compiler or syntax-checker; the ability to sort
         lines in a file according to various user-definable criteria;
         line-break reformatting (a feature that is immensely useful when
         using cross-platform text files); and block highlighting and copying.

     * FED
       * Author: Shawn Hargreaves
       * <http://www.talula.demon.co.uk/fed/>
       * Availability: Free (open source)
       * Platforms: MS-DOS, Linux
       * FED is an open-source folding text editor. It has an intuitive user
         interface, syntax highlighting, the ability to fold blocks of text
         out of sight, multi-level undo and redo, flexible wordwrap, binary
         and hex editing modes, macro recordings, and more. Plus, it has a
         built-in tetris game and screensaver: what more do you want?
       * Configuration files for TADS and ALAN by Stephen Griffiths are on the
         IF-Archive at /if-archive/programming/editors/alan.fed and
         /if-archive/programming/editors/tads.fed .

     * Multi-Edit
       * Author: American Cybernetics
       * <http://www.amcyber.com/>
       * Availability: $199 commercial
       * Multi-Edit is a powerful text editor designed for use in multiple
         languages. It is able to determine which of its customized tools to
         use based on the language of your file. It integrates well with other
         programming tools including version control. It has a powerful
         extension language with the ability to call any DLL function
         including the Win32 API. It also contains many more powerful
         text-editing features. The $199 price includes a printed manual; you
         can also just download the executables from $129. Douglas Harter's
         Hugo template can be found on the IF-Archive at
         /if-archive/programming/editors/hugo.tpt .

     * UED
       * Author: ?
       * <http://www.onlinebible.simplenet.com/> (see below)
       * Platforms: MS-DOS
       * Availability: freeware, probably
       * UED (not to be confused with UltraEdit) is a simple yet powerful text
         editor for DOS. It is distributed with Online Bible (which is
         freeware and available from the above URL). Since OB is freely
         redistributable, the author of this article assumes that UED is also;
         anyone who wants a copy can get it by emailing [email protected],
         the author of this article, if they do not wish to download Online
         Bible. It is small: under 35K when compressed by ZIP. It has no
         IF-specific features, but its nice features include the ability to
         word-wrap; configure the margin; its speed (loads in no time flat
         even on an 8088); fairly smart paragraph reformatting (treats the
         first line of paragraph differently) that can be invoked on the
         current paragraph; the ability to cut/copy/paste groups of lines,
         standard ranges, or even rectangular blocks (very useful); loads up
         to nine files at once and can switch between them easily; can put two
         files on screen at once if desired. Its main limitation is that it
         can only handle about sixty-thousand lines of text at any one time.
         It does not come with any documentation, but (in the opinion of the
         author of this article), it does not need any, as it has a two minute
         learning curve and has no complicated commands.

     * Microsoft Visual C++
       * Author: Microsoft
       * <http://msdn.microsoft.com/visualc/>
       * Availability: expensive
       * Microsoft Visual C++ is an expensive Integrated Development
         Environment (IDE) for C++. It contains, among many other things, an
         excellent programmer's text editor. However, I would never recommend
         purchasing it solely for the text editor, as it is far too expensive;
         if you already own a copy, however, you should give it a try as an IF
         editor.

     * CodeWright
       * Author: Microsoft
       * <http://www.premia.com/products/codewright/>
       * Availability: $299 commercial
       * CodeWright is a commercial Windows text editor with many features.
         Though designed for editing text, it includes many powerful
         automation features such as autocompletion and template languages.
         Its features are mostly customizable.

     * ScopeEdit
       * Author: Loginov Software
       * <http://www.loginov.com/>
       * Availability: $79 commercial
       * ScopeEdit is a unique text editor: it lets you structure your code
         into descriptive folding trees. In addition, it has syntax
         highlighting and a powerful macro language.

     * Windows Notepad and DOS Edit
       * Author: Microsoft
       * Availability: comes with DOS/Windows
       * Windows Notepad and DOS Edit should be preinstalled on your
         DOS/Windows computer. They're usable, but a true programmer's editor
         is much better.

 * Macintosh
   * Inform
     * Yonk
       * Author: Scott Forbes
       * http://www.ravenna.com/~forbes/yonk
       * An integrated development environment for writing Inform games on the
         Macintosh

   * ALAN
     * Starter for ALAN
       * Author: Tony Houlbrooke
       * /if-archive/programming/alan/Starter.hqx
       * Starter for ALAN is a Hypercard application that can help lay out
         your location map and objects and then generate Alan source code from
         it. It is not a real editor, though, and you need to edit the code
         with an editor after creating a skeleton with this.

   * TADS
     * TADS Template
       * Author: Jared L. Reisinger
       * /if-archive/programming/tads2/utils/tads-template-0.9.sit.hqx
       * TADS Template is a Hypercard application that can help lay out your
         location map and objects and then generate TADS source code from it.
         It is not a real editor, though, and you need to edit the code with
         an editor after creating a skeleton with this.

   * General
     * MPW (Macintosh Programmer's Workshop)
       * Author: Apple Computer
       * <http://developer.apple.com/tools/mpw-tools/>
       * MPW has syntax-coloring support for Inform. It's a rather nice editor
         in its own right, and because it's also a Unix-like shell
         environment, it's (almost) totally customizable.

     * Alpha
       * Author: Pete Keleher
       * <http://alpha.olm.net/>
       * Availability: $30 shareware
       * The Alpha editor is a very powerful Mac editor that uses the Tcl
         language for customization. It has an emacs-like feel, but it is not
         an emacs port and uses Tcl instead of LISP. An Inform "mode" can be
         found at <http://www.fastlane.net./~russellm/informmode.html>.

     * BBEdit and BBEdit Lite
       * Author: Bare Bones Software
       * <http://www.barebones.com/>
       * Availability: $117 commercial (with some other deals); Lite version
         free
       * BBEdit is a powerful, easy to use Mac text editor. It has many
         features that make it easy to edit text, especially for programming
         and writing HTML. The full version is commercial; a fully functional
         "Lite" version is available for free and is an excellent text editor
         in its own right (this article is being written in BBEdit Lite).
         BBEdit Lite does not have as many advanced features as the full
         BBEdit, though. (Do not confuse BBEdit Lite, which can be found on
         Bare Bones' "Free Stuff" page, with the BBEdit Demo, which is a
         crippled version of the full BBEdit and should only be used to try
         out the full BBEdit's features for free.)

 * Unix
   * General (see also FED under Windows)
     * emacs (GNU emacs and XEmacs)
       * <http://www.emacs.org/>
       * Platforms: Unix, Windows; others (such as Mac) in old versions
       * Availability: GPL
       * emacs shares with vi the dubious distinction of being the most
         (in)famous UNIX text editor around. This reviewer doesn't know the
         differences between GNU Emacs (the "official" Emacs, if such a title
         can be claimed) and XEmacs off-hand, but XEmacs has most of the
         features of GNU Emacs with possibly a few more. Some of the features
         that make the various emacsen useful for writing IF are color syntax
         highlighting; the fact that it is completely user-configureable using
         the programming language Lisp; the available emacs editing "modes"
         for TADS and Inform, which can be found in the programming/editors
         directory of the IF Archive; and many more features related to
         general text editing and programming such as the ability to open
         multiple files and auto-indent, but listing all of emacs' features
         would make this review far too long. Suffice it to say that if you
         want it, emacs can probably do it. And if you have a need that hasn't
         already been thought of, you can take care of it yourself by writing
         some Lisp code. Though Lisp's detractors (this reviewer among them)
         claim that Lisp stands for "Lots of Irritating Superfluous
         Parentheses" and find it hard to read at best, some people (who must
         have masochistic tendencies) like Lisp. If you happen to be one of
         them, great, and please don't flame your humble reviewer too hard...
         :-) Seriously, though, you don't have to know a thing about Lisp to
         *use* emacs, just to expand its capabilities. You will probably find
         that emacs has all the features you need. emacs works fine in text
         mode (aka console mode); you can also use XEmacs in X Windows. emacs
         comes with complete documentation. Rupert Lane's emacs mode for
         Inform can be found at /if-archive/programming/editors/inform-mode.el
         ; Stephen Granade's emacs mode for TADS is at
         /if-archive/programming/editors/tads-mode.el .

     * vi and offspring
       * <http://www.vim.org/> for vim
       * <http://elvis.the-little-red-haired-girl.org/> for elvis
       * Platforms: many
       * Availability: varies
       * vi is the original visual editor for Unix. There are many clones and
         extensions of it, such as elvis and vim. Inform and TADS syntax
         highlighting files are included with the Vim distribution.

 * Acorn RiscOS
   * General
     * !Zap
       * Availability: Open Source
       * <http://www.zap.uk.eu.org/>
       * !Zap is the text editor of choice of Graham Nelson, the author of
         Inform. It is highly configurable and editable. Graham has written a
         syntax coloring file for Inform for it.

 * Amiga
   * General
     * GoldED
       * Author: Dietmar Eilert
       * <http://members.tripod.com/golded/golded.htm>
       * The GoldED Studio editor core offers all the functions you can expect
         from a modern editor. You get unlimited configurable undo and redo,
         configurable syntax highlighting, templates, folding, automatic
         backup creation, macro recording and support for a script language
         (Rexx). Block functions include support for columnar blocks. Advanced
         layout fuctions provide constant reformatting and word wrap while you
         are typing. Drag and Drop is supported, so text can be moved with the
         mouse. Scrolling is exceptionally fast even on slow Amigas. Optional
         input aids include IntelliSense (context-sensitive completion of
         words) and AutoCase (automatic case correction). At the end of a day,
         you can use the session management functions to save the current
         state of your work.

--------------------------------------------------------------------------------
4.9: What tools and utilities are available?

 Scott2Zip
   /if-archive/scott-adams/

 Description
   Bjorn Gustavsson ([email protected]) has written this Perl script
   which converts the old Scott Adams games to Inform source (you compile
   this with the Inform compiler and then play the resulting gamefile on
   any `Z-machine' interpreter).

--------------------------------------------------------------------------------
 UnQuill
   /if-archive/solutions/tools/

 Description
   John Elliott's ([email protected]) utility will "disassemble"
   Spectrum snapshots (.SNA) of games written with The Quill. Available as
   C source and executables for DOS and CP/M.

--------------------------------------------------------------------------------
 Ztools
   /if-archive/infocom/tools/ztools/

 Description
   This package, maintained by Matthew T. Russotto
   ([email protected]), comprises several tools, including a
   disassembler, for manipulating games in the `Z-machine' format as used
   by Infocom and produced by Inform. They are quite useful. There are
   ports to many platforms.

--------------------------------------------------------------------------------
 Disinformation
   <http://www2.prestel.co.uk/lwtcdi/uninform/instruct.htm>

 Description
   Jeremy A. Smith's program takes output data from TXD and INFODUMP (two
   components of Ztools; see above), mangles it up, and outputs it in an
   Inform-like way. It makes disassembly of Z-machine code a *lot* more
   readable. It doesn't (yet) create completely compilable code, and is by
   no means the same as what was written, but is higher level than
   ZMachine assembly.

--------------------------------------------------------------------------------
4.10: Wouldn't a visual system be great for writing IF in?

This has been discussed a lot.

The general consensus seemed to be that they would be helpful, but only if they
allowed the writer to get at the bare Inform or TADS code underneath and not
use only high-level editing.

Also, it was realized that such tools currently don't exist because the people
with the skills to write them generally don't need them. There is an Inform IDE
(Integrated Development Environment) or three in the works, and TADS comes with
Visual Workbench, but IDEs are not what is usually meant by "visual".

However, if you want to write a visual IF editing tool, great. Show us the
results. Just don't wander in and ask somebody else to write one for you.

The Quest system [System:Quest] includes QDK, a visual development tool.
However, Quest isn't quite as advanced as Inform or TADS, requiring you to code
just about everything from scratch. SUDS [System:SUDS] is quite visual;
however, the games it creates do not have a parser and are more like a
point-and-click game.
--------------------------------------------------------------------------------

4.11: What support does Inform offer for graphics and sounds?

The ZMachine's V6 format supports graphics, and Inform can compile to it quite
well. Jason Penney has written a library called V6Lib, available at the
IF-Archive, that allows you to use a high-level window system (instead of
having to do the ZMachine opcodes by hand).

However (and this is a big however), almost all current V6 ZMachine
interpreters (and not all ZMachine interpreters will do V6) only supports
display of horrible graphics format used by Infocom in some of their later
games. It is horrible because it is proprietary (no tools exist to write to it)
and has many technical problems, such as the fact that you can only use a
*very* limited amount of colors (14, I think).

The Blorb format is a new way of getting images (in PNG or JPEG format) and
other 'resources' to interface with ZMachine interpreters. Now, when I say
"new", I mean it was proposed a few years ago. Barely any interpreters support
it yet. Because of this, no games have been written that use Blorb. Because of
this, barely any interpreters support Blorb. Because of this...

And so on goes the vicious circle. A similar situation exists for sounds: there
are ZMachine opcodes for sound playing, but Blorb is required to make it work
well.

Inform Glk [What is Glk?: 4.5] support would be useful; there exists at least
two ZMachine interpreters that uses Glk (Evin Robertson's Nitfol and GlkZip),
but there is no way to access the Glk functions from Inform: the Glk support of
these interpreters allows the *interpreters* to be easily ported, but not
access to Glk from within the game.

glulx solves all these problems and more. glulx is a virtual machine designed
by Andrew "Zarf" Plotkin that is like the ZMachine, but without its limits. An
alternate version of Inform can compile to it. Once Glulx Inform (currently at
version 6.21(G0.30)) is fully tested, it will become part of the main Inform
distribution. Glulx uses Glk as its native interface, so all of Glk's IO
abilities will be usable from it. For now, look at
<http://www.eblong.com/zarf/glulx/>.
--------------------------------------------------------------------------------

4.12: What support does TADS offer for graphics and sounds?

Early in 1998, a new version of TADS called HTML-TADS was released by Mike
Roberts, the author of TADS. It is the same as TADS, except that it allows
formatted output. The format can control text and background color, images,
sounds, and other cool things. The format is controlled by use of a limited
form of HTML (the language used on the web). HTML-TADS has nothing to do with
the Internet or the Web or Java; it simply uses tags like <IMG> and <B> and <A
HREF>.

The only platforms that (as of April 1999) the HTML-TADS runtime has been
ported to are Windows 95/98/NT and Macintosh. The compiler, though, is the same
as a normal TADS compiler.

Neil K. Guy's TADS site has more information about HTML-TADS:
<http://www.tela.bc.ca/tela/tads/>.

Several games have been created that take advantage of HTML-TADS, including
Neil K. Guy's "The Golden Skull" and "The Landing"; Stephen Granade's "The
Arrival"; and Mike Roberts' "The Plant". As of late 1999, HTML-TADS is probably
the best way to do a relatively portable graphical game.
--------------------------------------------------------------------------------

4.13: What support does Hugo offer for graphics and sounds?

Hugo provides support for a bunch of different graphics and sound formats.
Graphics and sounds only are on the Windows 95/98/NT, DOS, BeOS, and X Windows
ports, though, but that includes most computers except Macs. The picture
placement commands do not allow too much precision, unless you mess around with
tricky window creation commands. Simple stuff works well, but more complicated
stuff is harder, though possible.
--------------------------------------------------------------------------------

4.14: Which IF system should I use?

This is probably the most frequently asked question on rec.arts.int-fiction.
Every answer has been different.

The truth of the matter is that there isn't much that TADS can do but Inform
can't or vice versa, and Hugo is just about as good as the top two; it is just
that some things require a bit more work than others on some systems. ALAN is
also not a bad choice; it is not as powerful as the other three but some have
found it easier to use.

It has been commented that the most difficult thing to learn in any IF language
is not the syntax of the language but its world model. Knowing the
peculiarities of the language is easy compared to understanding the
interactions between the objects of your game world. If you can write IF at
all, then you can certainly master any of the major languages. Many have.

If you are still concerned about the syntax of the various languages, you can
check out Roger Firth's "Cloak of Darkness" at
<http://homepages.tesco.net/~roger.firth/cloak/>. This project has the source
code for a simple game in many of the main IF languages, complete with comments
on how it works. You can look at it to see a sample of how each language works.
--------------------------------------------------------------------------------

4.15: How do I create a standalone executable program out of an IF game?

Often, authors want to create an executable version of their game for a
particular platform so that players do not need to download a separate
interpreter program. While this is not a bad idea, one does need to remember
that the whole reason that most IF systems need interpreters is so that the
game files can be played on just about every type of computer without the
author needing to compile a Windows version, a Mac version, a Unix version, an
Amiga version, etc of every single game. Also, because interpreters are not
bundled with every single TADS, ZMachine, or whatever game on the IF-Archive,
the game files are much smaller. A Windows executable (for example) is
completely useless to a Mac user, and doubly so when at heart the executable
contains a file that could be run on the Mac if available separately. So an
author really should make sure that the platform-independent game file is
available even if she makes a standalone version.

That said, there are several ways to make standalone executables. On Windows,
ZMachine (that is, Inform) games can be made executable with jzexe, a tool
packaged with jzip, and the TADS Workbench comes with a tool that not only puts
TADS games into executable files but even gives them customizable installers.
You can also use maketrx, which is included with TADS, on DOS for games that
don't require Windows, but the full TADS workbench is probably preferable for
recent computers.

On Macs, MaxZip (for Inform ZMachine), MaxTADS, and MacGlk Hugo all allow easy
creation of standalone games. Andrew Plotkin, author of the Max interpreters,
has offered to create a Mac executable of any TADS, Inform, or Hugo game for
authors who don't have access to a Mac; he will even upload it to a popular Mac
ftp site and make it a pretty icon. (The default TADS runtime also can be
binded to a game, but it's better to use MaxTADS.)

On some versions of Unix, jzexe has been reported to work. However, if you're
on Unix, you're probably smart enough to read a README and download the proper
interpreter.

BundleMonkey, by L. Ross Raszewski, is a utility which can be used to package a
gamefile, plus auxilliary files, together with any Windows or MSDOS interpreter
program into a single executable file.
<http://justice.loyola.edu/~lraszews/if/monkey.zip>

--------------------------------------------------------------------------------
Part 5: Writing IF

--------------------------------------------------------------------------------
This part of the FAQ answers the question "What has been written on the
subject...".
--------------------------------------------------------------------------------

5.1: ...in general?

Several papers on IF design and theory are available from the IF-Archive [What
is the IF-Archive?: 6.1] , in /if-archive/info/ . These are mostly available as
ASCII files, although some also exist in other formats.

Graham Nelson's ([email protected]) "The Craft of Adventure"
(available from the IF-Archive) is a treatise on writing interactive fiction.
This is currently in its 2nd edition and is also available as TeX source. HTML
versions are available from "The TADS Page" and <http://www.inform-fiction.org>
in PDF or HTML formats.

Gerry Kevin Wilson ([email protected]) has thoughtfully published his views on
designing and writing interactive fiction in "Whizzard's Guide to Text
Adventure Authorship" (available from the IF-Archive). There are also two
supplementary updates to this document.

Gil Williamson's ([email protected]) book "Computer Adventures, The Secret Art" is
now available as "literary freeware" (at
<http://www.cix.co.uk/~gil/data/ca-tsa.htm>). This is primarily a "how to..."
manual, and although many of the technical details are several years out of
date, the book contains much of interest to the aspiring interactive fiction
author.

The Oz Project, directed by Joseph Bates at the Carnegie-Mellon School of
Computer Science, is developing technology for high quality interactive
fiction. Focusing on the simulations behind the interface (which they call the
deep structure of virtual reality) their goal is to provide users with the
experience of living in a dramatically interesting simulated world populated
with simulated people.

Michael St. Hippolyte's ([email protected]) paper, "A Plot Beyond A Line: New
Ways to Be Nonlinear" <http://www.users.interport.net/~mash/nonlin.html>) looks
at the problems of linearity in interactive fiction, and suggests some possible
solutions.

David A. Graves's ([email protected]) three papers, "Second Generation Adventure
Games" (which focuses on the physical world model, parsing, text generation,
and simple agent planning), "Bringing Characters to Life" (a summary of the
progress in Artificial Personality during the 70's and 80's), and "Plot
Automation" based on his presentation at the Computer Game Developer's
Conference in 1991. All of his papers are available from the IF-Archive.

Authoring system manuals may be of interest, even if you do not use the
particular system. Look for these in the IF-Archive, in the directory
/if-archive/programming/<authoring system name>/manual/, where <authoring
system name> is, for example, tads. Also, there is online documentation
available for several authoring systems, as noted under "[Online
Documentation]" in the authoring system records [What authoring systems are
available?: 4.4] .

The TADS Manual contains useful advice on designing an interactive fiction game
(chapter 6), some of which is TADS-specific, and some honest information on the
limitations of the text adventure format (appendix B).

The Inform "Designer's Manual" details the step-by-step implementation of a
small game as a tutorial throughout the manual (this is, of course,
Inform-specific).

For further references try Stephen Granade's ([email protected])
"Interactive Fiction Bibliography" (1997), available from the IF-Archive in
/if-archive/info/if-bibliography.txt .
--------------------------------------------------------------------------------

5.2: ...of the art of writing NPCs?

Phil Goetz ([email protected]) has made available two of his papers: his
overview of computerized interactive fiction (in DVI, LaTeX, or HTML) and his
notes on using SNePS (Semantic Network Processing System, a knowledge
representation and reasoning system). Both can be found on his web page
<http://www.cs.buffalo.edu/~goetz/>.

Dancer's ([email protected]) paper "'Smart' NPCs in Interactive Fiction"
<http://www.brisnet.org.au/~dancer/smartnpc.html> gives theoretical and
practical advice on writing believable NPCs. [This link seems to be defunct.
dancer.brisnet.org.au seems to exist, but is unreachable.]

(See also: David Graves' "Bringing Character To Life" in [ ...in general?: 5.1]
)
--------------------------------------------------------------------------------

5.3: ...of parsing?

John Holder's "Parser Talk" gives some basics on how a good parser should work.
You can get it at
<http://members-http-4.rwc1.sfba.home.net/j-holder/intfiction/parser.html>.

(See also: David Graves' "Second Generation Adventure Games" in [ ...in
general?: 5.1] .)
--------------------------------------------------------------------------------

5.4: ...of plot/story in interactive fiction?

Paul Munn's senior project paper "The Application of Directed Acyclic Graphs to
First Generation Interactive Fiction" (available from the IF-Archive) contains
ideas on the use of DAGs in interactive fiction and a TADS implementation of
this, as well as information on the evolution of IF, past and future.

"The Stage as a Character: Automatic Creation of Acts of God for Dramatic
Effect" <http://rhodes.www.media.mit.edu/people/rhodes/Papers/aaai95.html>), by
Bradley Rhodes ([email protected]) and Pattie Maes ([email protected]),
considers plot control in a multiple player environment.

(See also: David Graves' "Plot Automation", and Michael St. Hippolyte's "A Plot
Beyond A Line: New Ways to Be Nonlinear" in [ ...in general?: 5.1] .)
--------------------------------------------------------------------------------

5.5: ...of the educational value of interactive fiction?

Brendan Desilets' ([email protected]) series of articles on interactive
fiction as a teaching aid for middle school pupils is available from his Web
page, "Teaching and Learning With IF"
<http://people.ne.mediaone.net/bdesilets/>.

--------------------------------------------------------------------------------
Part 6: Internet Index

--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
6.1: What is the IF-Archive?

The IF-Archive is the world's largest and most comprehensive repository of
interactive fiction-related material, including authoring systems, tools,
utilities, papers, references, reprints of magazine articles, and of course
games. The Archive can be accessed via webbrowser or using ftp software at the
following URLs

<http://ifarchive.org/if-archive/>
<ftp://ftp.ifarchive.org/if-archive/>

Remember this URL well. Every file in the IF-Archive, together with a short
description, is listed in the (text) file "Master-Index" or you can search the
IF-Archive at Stephen van Egmond's site at
<http://bang.dhs.org/if/if-archive-search.html>.

Uploads of new material are encouraged. Please send an e-mail to the
maintainers of the archive, David Kinder ([email protected]) and Stephen
Granade ([email protected]), describing the purpose of your upload and what
machines it works on. The ftp address for uploads is
<ftp://ftp.ifarchive.org/incoming/>.

(Please note the directory is "/incoming/", its not "/if-archive/incoming/".

The IF-Archive (though not the incoming directory) is mirrored at the following
sites, which may be closer to you and thus faster and easier to reach:

<http://mirror.ifarchive.org/>, USA

<ftp://wuarchive.wustl.edu/doc/misc/if-archive/>, St Louis, USA
<http://wuarchive.wustl.edu/doc/misc/if-archive/>

<ftp://ftp.nodomainname.net/pub/mirrors/if-archive/> (ftp may not work from it
with web browsers), USA
<http://ftp.nodomainname.net/pub/mirrors/if-archive/>

<ftp://www.plover.net/if-archive/>, USA

<ftp://ftp.funet.fi/pub/misc/if-archive/>, Helsinki, Finland

<http://www.planetmirror.com/pub/if-archive/>, Sydney, Australia
<ftp://ftp.planetmirror.com/pub/if-archive/>

<ftp://mirror.holmoak.co.uk/if-archive/>, Winchester, UK

If you cannot find a particular file in the location stated in this FAQ or
elsewhere, be sure to also look in the incoming directory, as well as
/if-archive/unprocessed/ , as it may not yet have reached its permanent home.
This is particularly true for recent additions.

The IF Archive maintainers post periodically to several newsgroups, including
rec.arts.int-fiction, detailing all recent additions to the IF-Archive. Any
files added since the last post are in a file called
/if-archive/new-since-last-post .
--------------------------------------------------------------------------------

6.2: What is available via FTP?

Well, as has been mentioned above, the IF-Archive, or one of its mirrors, is
the place to go if you want to download interactive fiction software. Really,
if you can't find what you want there, you probably won't find it anywhere.

The occasional file, especially games, may turn up at some of the larger
platform-specific FTP sites, or on a relevant BBS.
--------------------------------------------------------------------------------

6.3: What is available on the World Wide Web?

There are a large number of Web pages devoted to, or at least relevant to,
interactive fiction; too many to all be mentioned here.

The following is a short list of some of the best general interactive fiction
Web pages. Most of the pages mentioned will contain links to other associated
pages. Pages about specific authoring systems are listed in the section 4.4
"What authoring systems are available."
--------------------------------------------------------------------------------

 Brass Lantern
   <http://brasslantern.org/>

 Description
   Up-to-date news, user guides, interviews, essays and reviews about text
   and graphic adventure games. Site is maintained by Stephen Granade
   ([email protected]).

--------------------------------------------------------------------------------
 PARSIFAL
   <http://www.firthworks.com/roger/parsifal/index.html>

 Description
   An excellent collection of IF website links maintained by Roger Firth.

--------------------------------------------------------------------------------
 ifFinder
   <http://www.corknut.org/ifFinder/>

 Description
   A searchable collection of IF website links maintained by Ryan
   Freebern.

--------------------------------------------------------------------------------
 GUE Technical Institute
   <http://www.guetech.org/>

 Description
   Up-to-date IF news, links and an IF Archive mirror site. Maintained by
   Brian C. Lane.

--------------------------------------------------------------------------------
 Interactive Fiction Scholarship
   <http://jerz.setonhill.edu/if/bibliography/index.html>

 Description
   A collection of academic references related to interactive fiction by
   Dennis G Jerz.

--------------------------------------------------------------------------------
 Dennis G. Jerz Interactive Fiction Page
   <http://jerz.setonhill.edu/if/index.html>

 Description
   Introductory IF information and Inform programming resources collection
   maintained by university lecturer, Dennis G Jerz.

--------------------------------------------------------------------------------
 Interactive Fiction (IF) Authorship
   <http://www.duke.edu/~srg3/IFAuthorship.html>

 Description
   Links to various articles on interactive fiction design and the TADS
   and Inform authoring systems; a number of useful TADS modules. Website
   by Stephen Grenade.

--------------------------------------------------------------------------------
 Twisty Pages/Interactive Fiction Criticism and Authorship
   <http://bang.dhs.org/if/>

 Description
   This excellent page, maintained by Stephen van Egmond
   ([email protected]), is an attempt to gather together many resources
   (papers, news articles, reviews, etc.) relevant to interactive fiction
   authorship and criticism in one place. There are also fully linked HTML
   versions of every article in the rec.arts.int-fiction archives.

   This page is also notable for the excellent browsable index of the
   IF-Archive which Stephen has created.

--------------------------------------------------------------------------------
 Emily Short's Interactive Fiction Page
   <http://emshort.home.mindspring.com/>

 Description
   A collection of thoughtful essays of IF authoring issues and Inform
   programming.

--------------------------------------------------------------------------------
 Doe's Interactive Fiction Page
   <http://members.aol.com/doepage/>

 Description
   Homepage of IF'er Doeadeer, includes an IF 'history'; an interesting IF
   theory essay; Inform and Glulx information.

--------------------------------------------------------------------------------
 Oz Project Home Page
   <http://www.cs.cmu.edu/Groups/oz/>

 Description
   Scott Neal Reilly ([email protected]) maintains this page. Details of the
   Oz Project, including a summary of its aims and links to several Oz
   papers (gzipped postscript) are here.

--------------------------------------------------------------------------------
 The IF Collaborator's List
   <http://www.ltlink.com/~newsguy/ifcollab.html>

 Description
   Authoring interactive fiction requires a certain level of competence in
   two main disciplines-- namely, computer programming and (prose)
   writing. If you do not feel happy with your ability in either one of
   these areas then the IF Collaborator's List, maintained by Jay Goemmer
   ([email protected]) may be of interest.

--------------------------------------------------------------------------------
 The IF Assistance List
   <http://www.geocities.com/Athens/Delphi/7442/if/assistlist.html>

 Description
   Also, Tom Raymond ([email protected]) is running an IF Assistance List
   to fulfill the same purpose as the IF Collaborator's List -- bringing
   together writers, programmers and testers.

--------------------------------------------------------------------------------
 The Inform homepage
   <http://www.inform-fiction.org>

 Description
   Maintained by the author of Inform, Graham Nelson
   ([email protected]) and others, this page has information on
   general IF topics as well as Inform-specific resources

--------------------------------------------------------------------------------
6.4: Are there any IF-related chat spaces?

You know, there is! It's called ifMUD. Basically, regulars from the IF
newsgroups sit around talking about things ranging from IF writing to hints on
games to general computer stuff to music to monkeys, alpacas, and corn. It's
fun. A sense of humor is required. You probably shouldn't refer to it as a chat
space, though.

You can connect by telnetting to ifmud.port4000.com, port 4000. Since May 1999,
ifMUD has been located at 216.161.202.25 (genesis.epicverse.com) and is
maintained by Mark Musante. This may or may not change, so the port4000 address
is the safest.

Log in as "Guest" with password "guest" and ask a wizard (the list of wizards
can be seen by typing '@users wizards') for help with getting a character. If
you are totally lost, type '@holler HELP ME!'.

More information on ifMUD is in the ifMUD FAQ at
<http://www.ministryofpeace.com/text/ifMUD/FAQ.html>.

The Interactive Fiction Hall of Shame (ifHOS) is a collection of photos of raif
and ifMUD regulars. It can be found at <http://www.davidglasser.net/ifhos/>.

ifMUD's website is at <http://ifmud.port4000.com:4001/>; it contains two
web-based clients for ifMUD, though neither of them are as good as a decent MUD
client. You can also sign up for a character on the website, though there is
nearly always a wizard on the MUD to create one for you.

While at port4000.com, check out <http://www.port4000.com/> for Sadie Hawkins,
a band formed of IF people. It is the official band of this FAQ, by the way.
--------------------------------------------------------------------------------

6.5: What 'zines exist?

"XYZZYnews", available in Adobe Acrobat format (.PDF) and plain text, appears
sporadically and usually contains two or three articles on IF design, as well
as sneak previews of upcoming games, spoilers/hints for specific games, and the
occasional game review. Each issue is available from the XYZZYnews Home Page:
<http://www.xyzzynews.com/>. It is edited by Eileen Mullin.

"SPAG" appears irregularly (approximately bi-monthly). Each issue is chock-full
of reviews of interactive fictions, both old and new. See also the "SPAG
mailing list" entry in [Are there any interactive fiction-related mailing
lists?: 6.6] . SPAG's web page is at <http://www.sparkynet.com/spag/>. It is
edited by Paul O'Brian.

A couple of old 'zines can also be found at the IF-Archive, in the
/if-archive/magazines/ directory.
--------------------------------------------------------------------------------

6.6: Are there any interactive fiction-related mailing lists?

SPAG mailing list

This list distributes SPAG magazine. The list is intended only for distribution
of SPAG and announcements from the editor. Submissions should be sent directly
to the editor, Paul O'Brian ([email protected]). To subscribe send email to
[email protected] with "subscribe <your email address>" (without the
quotes) in the *body* of the message.
--------------------------------------------------------------------------------
Z-machine mailing list

Intended for discussion of the Z-machine, an abstract machine designed by
Infocom to run their text adventures, topics on this list include details of
Z-machine operation, its interpreters (ZIP, Frotz, etc.), and compilers
producing Z-machine code (i.e., Inform).

To subscribe send email to [email protected] with "subscribe z-machine <your
email address>" (without the quotes) in the *body* of the message.
--------------------------------------------------------------------------------

6.7: Where can I find Infocom games?

(This question is more appropriate for rec.games.int-fiction, but is answered
for your information here anyway.)

Most of the Infocom games ("The Lurking Horror", "Planetfall", etc.) are *not*
legally available on the Internet. They are still under copyright and may be
bought in various collections from Activision. "Masterpieces of Infocom"
contains all the Infocom games except "The Hitchhiker's Guide to the Galaxy"
and "Shogun". There are other out of print collections such as the "Comedy
Collection" and the "Sci-Fi Collection". Many Infocom games can be found on
auction sites such as <http://www.ebay.com/>.

However, the three "Zork" games are available for free download from the
Activision website at
<http://www4.activision.com/games/zgi/atrium/gameroom/main2.html>. "The
Hitchhiker's Guide to the Galaxy" is available for free Java-based play at
<http://www.douglasadams.com/creations/infocomjava.html> and it is simple for
one to find the ZCode file on that site.
--------------------------------------------------------------------------------

6.8: What are those interactive fiction newsgroups again?

There are several newsgroups other than rec.arts.int-fiction which also discuss
some aspect of interactive fiction.

The group to which this document applies, rec.arts.int-fiction, is a discussion
group for those interested in artistic or technical aspects of interactive
fiction, primarily the processes of and problems posed by methods of design and
implementation of interactive fiction, including planning, plotting,
programming, and writing. For further information see part 2 (Introduction to
the Newsgroup).

A second group, rec.games.int-fiction, is primarily for players of extant
interactive fiction games. Posters ask for help with or spoilers for particular
games, post reviews, and ask for information about games, companies, and
people. For further information see the rec.games.int-fiction FAQ (occasionally
posted to the newsgroup, otherwise available from the IF-Archive in the
directory /if-archive/rec.games.int-fiction/ ).

it.comp.giochi.avventure.testuali, is for discussion of IF in Italian.

alt.games.xtrek discusses both writing and playing "adult interactive fiction"
games. "AIF" games generally involve sex or other interaction between
characters not generally seen in mainstream IF. The unofficial FAQ for
alt.games.xtrek is at the website <www.geocities.com/aetus_kane/faq/>.