home *** CD-ROM | disk | FTP | other *** search
Text File | 2000-10-19 | 83.9 KB | 1,820 lines |
- 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: <raif-faq2_971856602@faq.davidglasser.net>
- From: glasser@iname.com (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: news-answers-request@MIT.EDU
- 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: support@usenetserver.com
- 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 (glasser@iname.com)
- 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 (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://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
- (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.
- _________________________________________________________________
-
- 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 (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/
-
- 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 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 (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, 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 (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
- 2.14.
-
- Author
- Alex Warren (alex@axesoftware.co.uk).
-
- Platforms
- Windows 95/98/NT4.
-
- Support
- All technical questions can be emailed to
- support@axesoftware.co.uk. Bug reports can be emailed to
- bugreport@axesoftware.co.uk. Other enquiries can be directed to
- enquiries@axesoftware.co.uk. 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 (suds@kagi.com).
-
- 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 (alan@accessone.com).
-
- 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 (desantom@io.com).
-
- 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
- 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/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 (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.
- _________________________________________________________________
-
- 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.
-
-
-