Path: senator-bedfellow.mit.edu!bloom-beacon.mit.edu!nycmny1-snh1.gtei.net!news.gtei.net!newsfeed.mathworks.com!sunqbc.risq.qc.ca!cyclone2.usenetserver.com!news-out.usenetserver.com!cyclone1.usenetserver.com!news-west.usenetserver.com.POSTED!not-for-mail
Message-ID: <[email protected]>
From: [email protected] (David Glasser)
Newsgroups: rec.arts.int-fiction,rec.games.int-fiction,rec.answers,news.answers
Subject: [rec.arts.int-fiction] Interactive Fiction Authorship FAQ (2/3)
Approved: [email protected]
Followup-To: rec.arts.int-fiction
Organization: ifMUD: http://ifmud.port4000.com:4001/
Summary: This posting describes the Usenet newsgroup rec.arts.int-fiction,
        and Interactive Fiction Authorship in general.
X-Disclaimer: Approval for postings in *.answers is based on form, not content.
Lines: 1799
X-Abuse-Info: Please be sure to forward a copy of ALL headers
X-Abuse-Info: Otherwise we will be unable to process your complaint properly
X-Complaints-To: [email protected]
NNTP-Posting-Date: Wed, 18 Oct 2000 04:10:42 EDT
Date: Wed, 18 Oct 2000 08:10:42 GMT
Xref: senator-bedfellow.mit.edu rec.arts.int-fiction:71765 rec.games.int-fiction:51797 rec.answers:61905 news.answers:194130

Archive-name: games/interactive-fiction/authoring/part2
Posting-Frequency: monthly
URL: http://www.davidglasser.net/raiffaq/
Copyright: (c) 1999 David Glasser

       [rec.arts.int-fiction] Interactive Fiction Authorship FAQ (2/3)

  Maintained by David Glasser ([email protected])
  This chunk contains part 4 of the raif FAQ.
    _________________________________________________________________

Part 4: Programming IF
    _________________________________________________________________
    _________________________________________________________________

 4.1: How do I become an IF author?

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

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

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

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

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

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

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

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

  The six winning entries from the 1995 IF competition [What sort of
  events does the IF community do?: 2.6] were published by Activision on
  their recent 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.

  Mike and Muffy Berlyn have started a company, Cascade Mountain
  Publishing, that, among other things, sells IF. It is doing quite
  well. More information can be found at
  <http://www.cascadepublishing.com/>.
    _________________________________________________________________

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

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

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

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

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

 4.4: What authoring systems are available?

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

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

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

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

  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.02a lib 2.5.02.1, with a 3.0 beta.

  Author
         Kent Tessman ([email protected]).

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

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

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

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

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

  Online Documentation
         N/A

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

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

  Source
         C.

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

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

  Inform
         /if-archive/infocom/compilers/inform6/

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

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

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

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

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

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

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

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

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

  Documentation and Game Sources
         The main manual is the "Designer's Manual"; the "Technical
         Manual" documents very dry internals; the "Specification of the
         Z-Machine" defines the run-time format and the standard for
         interpreters (an alternative to this last document is "The
         Z-machine, and How To Emulate It"). A handful of game sources
         are available. The Inform Translator's Manual documents
         language definition files. The Designer's Manual should shortly
         be available as a printed book, thanks to Cascade Mountain
         Publishing; see <http://www.cascadepublishing.com/>.

  Online Documentation
         The Z-Machine Standards Document 1.0
         <http://www.gnelson.demon.co.uk/zspec/index.html>
         The Inform Designer's Manual (3rd edition, updated)
         <http://www.gnelson.demon.co.uk/dman/index.html>

  Web Pages
         Inform 6: A Compiler For Interactive Fiction
         <http://www.gnelson.demon.co.uk/inform.html>
         The Inform Library Patch Site
         <http://adamcadre.ac/inform.html>
         Inform Page (somewhat old)
         <http://www.duke.edu/~srg3/IFprogramming/inform.html>
         Inform Programming (old, outdated)
         <http://www.doggysoft.co.uk/inform/>
         The Informary - a quick reference summary
         <http://homepages.tesco.net/~roger.firth/informary/>
         Inform for New Writers, David Cornelson
         <http://www.placet.com/int-fiction/>
         Inform for Beginners, Jeff Johnson
         <http://www.geocities.com/SiliconValley/Heights/8200/contents.h
         tm>
         Glulx: A 32-Bit Virtual Machine for IF
         <http://www.eblong.com/zarf/glulx/>

  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/tads/

  Version/Release
         Version 2.5.2.

  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 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/tads/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/tads/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/tads/manuals/

  Web Pages
         The TADS Page
         <http://www.tela.bc.ca/tela/tads/>
         The TADS Programming Page
         <http://www.df.lth.se/~mol/progtads.html>
         WorldClass Programming Page
         <http://www.df.lth.se/~mol/progtadsworldclass.html>

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

  Source
         C.

  License
         Freeware.

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

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

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

  Authors
         Thomas Nilsson ([email protected]) and G�ran Forslund
         ([email protected]).

  Platforms
         Amiga, Macintosh, MS-DOS (currently only 386+), sun4 (Solaris1,
         SunOS 4.1), sun4 (Solaris2, SunOS 5.x). A HP-UX version of 2.8
         is upcoming, though a 2.7 version exists. There is also a Glk
         [What is Glk?: 4.5] version, but because ALAN's source is not
         freely available, it is a little harder to compile your own Glk
         versions than you would with the other IF systems.

  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
         <http://welcome.to/alan-if/>

  Web Page
         The Alan Home Pages
         <http://welcome.to/alan-if/>

  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 source is only available to porters, through the authors.

  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. Its ports to some systems, such
         as MacOS, are not wonderful or completely up-to-date, but work
         is being done on them.
    _________________________________________________________________

  Tier (ii)

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

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

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

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

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

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

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

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

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

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

  Online Documentation
         N/A

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

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

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

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

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

  Quest
         /if-archive/programming/quest/

  Version/Release
         2.14.

  Author
         Alex Warren ([email protected]).

  Platforms
         Windows 95/98/NT4.

  Support
         All technical questions can be emailed to
         [email protected]. Bug reports can be emailed to
         [email protected]. Other enquiries can be directed to
         [email protected]. The author will try his best to
         give an answer to any questions you may have.

  Programming Knowledge
         None required. Quest comes with full documentation on the "ASL"
         programming language used. This 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
         ASL programming language reference and small sample game
         included in Quest download.

  Online Documentation
         Included in the Quest download.

  Web Page
         Quest
         <http://www.axesoftware.co.uk/quest/>

  Debugging Features
         String variables can be viewed at run-time; various warning
         messages outputted to a log file when errors are encountered.

  Source
         Not available.

  Licence
         "Free shareware". You can use the Quest runtime free of charge,
         but you are encouraged to register for 10 UK pounds (US$20) via
         cheque or credit card. For this, you get the compiler, which
         allows you to make your own games without distributing the
         source code to them. The free version of Quest is capable of
         running games from both uncompiled ASL source code and CAS
         compiled game code.
    _________________________________________________________________

  SUDS
         <http://www.sudsystem.freeserve.co.uk/>

  Version/Release
         SUDS Player: 1.0.6.0. SUDS Constructor: 1.0.6.7.

  Author
         Andy Elliot ([email protected]).

  Platforms
         Windows 95/98/NT.

  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. SUDSystems 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.sudsystem.freeserve.co.uk/>

  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 Paradox 7 database.

  Licence
         The SUDS Player is freeware: there is no fee for installation
         or use. However, the SUDS Constructor is shareware: if you
         intend to continue using it to create a text adventure you must
         register. The main benefits of registering are that you receive
         notification of (free) software updates and game releases (if
         you wish) and your support issues take precedence over those
         who have not paid. Registration also deactivates the nagging
         messages in the Constructor and enables your projects to run in
         the SUDS Player without terminating in after 50 turns.
         SUDS-format games must be released as freeware and cannot be
         distributed for profit.

  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 does not even have the pretense
         of a parser and players simply point and click, SUDS is
         probably the system for you: it shows every sign of being
         written with care for that purpose. However, it isn't portable
         outside Windows and doesn't have a parser like most IF, and to
         create games using it costs a small fee, which is more than the
         major IF systems.
    _________________________________________________________________

  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/

  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/

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

  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. (In reality, it means that they have been
  sitting in tier with this description since before I (David) started
  maintaining the FAQ, and I do not really know what to do with them.)

  Adventure Builder
         /if-archive/programming/advbuilder/

  Version/Release
         2.0.

  Author
         Alan Conroy ([email protected]).

  Platforms
         PC-DOS (v2.0 or later), MS-DOS (v2.0 or later), Windows (3.1 or
         later).

  Support
         Minimal, but it does exist. Support is entirely through e-mail
         at this time. Bug reports and suggestions are solicited, and
         response for issues with known work-arounds are timely. Issues
         requiring updates/upgrades of the software are not.

  Programming Knowledge
         No programming is required to create a game. However, some
         programming is necessary if the game is to be customized (which
         is nearly always the case). The programming language is a
         non-conforming subset of Sirius, which is similar to Pascal and
         BASIC. No knowledge of advanced programming techniques is
         required in any case.

  Features/Limitations
         Provides a source language compiler and linker for writing
         routines, and a database compiler. Features include: up to 8191
         nodes and 4096 items per game; memory caching of disk accesses;
         on-line help; easy-to-use database definition language and
         source language for writing routines; support for time, season,
         weather, day, and earthquakes; ability to log game/debug
         sessions; Linker and Librarian for large software projects.

  Documentation and Game Sources
         Documentation consists of a Programmer's Reference manual,
         Database Compiler Reference Manual, Primer, and Master Index.
         Source code for the default handling of basic actions is
         provided. Complete source code for the demonstration game is
         included.

  Online Documentation
         None, though electronic docs do exist that are not HTML.

  Web Page
         ADVENTURE BUILDER
         <http://www.accessone.com/~conroy/ab.html>

  Debugging Features
         Debugging tool built into the run-time system provides insight
         into the internal workings of the run-time system. A
         full-functioned source debugger is available for user-written
         (Sirius) code. The debugger allows setting breakpoints,
         watchpoints (breakpoints on changed data), examination of
         source code and variables, searching of source code,
         single-step, on-line help, and other minor features.

  Source
         Source to Adventure Builder is available only under license and
         in specific cases at this time.

  License
         Shareware. You may use it for personal enjoyment at no charge.
         If you sell, for profit, any byproduct of this software, you
         are REQUIRED to pay a $25.00 (US) one-time fee. Once this fee
         is paid, any number of games may be produced and sold
         royalty-free. Also you will be notified of any updates, you are
         eligible for discounts on updates, and your support issues will
         take precedence over those who have not paid. Adventure Builder
         is freely distributable to anyone and everyone so long as it is
         distributed in UNMODIFIED FORM and no fees, other than
         reasonable for the distribution media, are charged.
    _________________________________________________________________

  Rexx-Adventure
         /if-archive/programming/rexx-adventure/

  Version/Release
         1.0.

  Author
         Mike DeSanto ([email protected]).

  Platform
         OS/2 (2.1 or better, ReXX installed).

  Support
         Send e-mail to the author. At least two people other than the
         author are currently working on adventures, and an AGT to
         Rexx-Adventure converter is being researched by a third party.

  Programming Knowledge
         Minimal programming knowledge required.

  Features/Limitations
         Features object based adventure creation with a GUI interface.
         Object variables are totally user-definable and all ambiguity
         about what objects can be manipulated, and how they can be
         manipulated has been removed. There is currently no indirect
         object support and objects inside other objects can not be seen
         (i.e., water in a bottle), although these are respectively
         planned and already implemented for version 2. While movable
         windows are also implemented for version 2, they are not
         present currently (i.e., fixed screen layout).

  Documentation and Game Sources
         Documentation will soon be available in OS/2 .INF format.

  Online Documentation
         N/A

  Web Page
         Rexx-Adventure <http://www.io.com/~desantom/rad.html>

  Debugging Features
         Very Few.

  Source
         Watcom VX-REXX, available to porters from the author.

  License
         Freeware. Mike DeSanto retains the copyright and it may be
         distributed only in its original form. Authors may charge for
         their adventures on the condition that it is made very clear
         that the fee is for the adventure, and not for Rexx-Adventure.
    _________________________________________________________________

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

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

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

 4.5: What is Glk?

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

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

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

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

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

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

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

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

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

child(x), parent(x), sibling(x), etc
if (x has attribute)
if (x.property == ...)
give x attribute
x.property = ...
move x to y
move y to x
remove x

  ... or pretty much anything else which assumes x is a legitimate
  object.

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

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

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

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

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

  This should be

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

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

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

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

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

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

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

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

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

  it is the same as

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

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

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

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

  For anything more complicated than that, use:

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

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

 4.7: How do I find bug fixes for Inform?

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

 4.8: What editors can I use to write IF?

  There are many text editors that are useful for writing IF. The
  following list describes some of them. 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

    * Informer

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

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

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

    TADS
    * TADS File Editor

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

    General
    * Ultraedit

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

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

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

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

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

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

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

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

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

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

    Macintosh
    * 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/tads/utils/tads-template-0.9.sit.hqx
    * TADS Template is a Hypercard application that can help lay out
      your location map and objects and then generate TADS source code
      from it. It is not a real editor, though, and you need to edit the
      code with an editor after creating a skeleton with this.

    General
    * MPW (Macintosh Programmer's Workshop)

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

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

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

    Unix
    * General (see also FED under Windows)

    * emacs (GNU emacs and XEmacs)

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

    vi and offspring
    * <http://www.vim.org/> for vim
    * <http://www.fh-wedel.de/elvis/> 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. It will do Inform
      syntax hilighting. Amir Karger's syntax file for TADS is available
      from <http://www.hec.utah.edu/~karger/vim/syntax/tads.vim>.

    Acorn RiscOS
    * General

    * !Zap

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

    Amiga
    * General

    * GoldED

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

 4.9: What tools and utilities are available?

  Scott2Zip
         /if-archive/scott-adams/

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

  UnQuill
         /if-archive/solutions/tools/

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

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

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

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

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

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

  This has been discussed a lot.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  More information on this subject can be found at
  <http://interactfiction.about.com/library/weekly/aa061598.htm>. This
  article by Stephen Granade also contains links to articles about
  graphics and sound in Inform and TADS.
    _________________________________________________________________

 4.14: Which IF system should I use?

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

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

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

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

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

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

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

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

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