[rec.arts.int-fiction] Interactive Fiction Authorship FAQ
PART 1: Meta-FAQ information
PART 2: About the newsgroup
PART 3: General Interactive Fiction information
PART 4: Programming IF
PART 5: Writing IF: What has been written on the subject...
PART 6: Internet Index: What is available on...
- 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
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 (lomarcan@tin.it).
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.
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 (glasser@iname.com),
Julian Arnold
(hippocampus@kwic.com), Jorn Barger
(jorn@mcs.com) and David A. Graves
(dag@cup.hp.com).
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.
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.
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.
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.
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".
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.
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
(sgranade@phy.duke.edu).
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/>.
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".
"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.
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 (graham@gnelson.demon.co.uk) "The Craft of
Adventure" and Gerry Kevin Wilson's (whizzard@pobox.com)
"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.
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.
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
(jfrancis@dungeon.engr.sgi.com) 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.
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 (general@generalcoffee.com).
- 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 (graham@gnelson.demon.co.uk).
Glulx features by Andrew Plotkin (erkyrath@eblong.com).
- 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
(thomas.nilsson@progindus.se)
and Göran Forslund (gorfo@ida.liu.se).
- 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 (73435.1277@compuserve.com)
and Mark Welch (markwelch@ca-probate.com).
- 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 (alex@axeuk.com).
- Platforms
- Windows 95 or later.
- Support
-
Please email all technical questions, enquiries, bug reports etc. to
alex@axeuk.com.
- 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 (support@sudslore.com).
- 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 (campbell@adrift.org.uk).
- 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 (wolf@one.net).
- 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.
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.
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.
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.
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
- 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 jonadab@bright.net, 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
- 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
- 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.
- Scott2Zip
- /if-archive/scott-adams/
- Description
-
Bjorn Gustavsson (ermbgus@at.ericsson.se) 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 (jce@seasip.demon.co.uk) 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
(russotto@wanda.vf.pond.com), 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.
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.
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/>.
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.
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.
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.
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>
This part of the FAQ answers the question "What has been written on
the subject...".
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 (graham@gnelson.demon.co.uk)
"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 (whizzard@pobox.com) 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 (gil@cix.co.uk) 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 (mash@interport.net)
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 (dag@cup.hp.com) 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
(sgranade@phy.duke.edu) "Interactive Fiction
Bibliography" (1997), available from the IF-Archive in
/if-archive/info/if-bibliography.txt
.
Phil Goetz (goetz@cs.buffalo.edu) 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 (root@brisnet.org.au) 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]
.)
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]
.)
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 (rhodes@media.mit.edu) and Pattie Maes
(pattie@media.mit.edu), 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]
.)
Brendan Desilets' (bdesilets@mediaone.net)
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/>.
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 (davidk@monis.co.uk) and Stephen Granade (sgranade@phy.duke.edu),
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
.
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.
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
(sgranade@brasslantern.org).
- 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
(svanegmond@home.com), 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 (wsr+@cs.cmu.edu) 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 (downbelow@ltlink.com) may be of interest.
- The IF Assistance List
- <http://www.geocities.com/Athens/Delphi/7442/if/assistlist.html>
- Description
- Also, Tom Raymond (sarwyse@yahoo.com) 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
(graham@gnelson.demon.co.uk) and others, this page has information on general IF topics as well as Inform-specific resources
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.
"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.
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
(obrian@colorado.edu).
To subscribe send email to spag-request@df.lth.se
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 majordomo@gmd.de with
"subscribe z-machine <your email address>" (without the quotes)
in the *body* of the message.
(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.
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/>.