| rec.arts.int-fiction FAQ | |
| [rec.arts.int-fiction] Interactive Fiction Authorship FAQ | |
| -------------------------------------------------------------------------------- | |
| Part 1: Meta-FAQ information | |
| -------------------------------------------------------------------------------- | |
| -------------------------------------------------------------------------------- | |
| 1.1: Contents | |
| PART 1: Meta-FAQ information | |
| * 1.1: Contents | |
| * 1.2: Recent Changes | |
| * 1.3: What is the FAQ for and where do I get it from? | |
| * 1.4: How is the FAQ composed? | |
| * 1.5: Acknowledgements and Copyright Notice | |
| PART 2: About the newsgroup | |
| * 2.1: What is the purpose of rec.arts.int-fiction? | |
| * 2.2: What topics are appropriate here... | |
| * 2.3: ...and what topics are not appropriate? | |
| * 2.4: Is there an archive of newsgroup postings? | |
| * 2.5: What abbreviations will I find on the newsgroups and in the FAQ? | |
| * 2.6: What sort of events does IF community do? | |
| * 2.7: What is "mimesis"? | |
| PART 3: General Interactive Fiction information | |
| * 3.1: What is interactive fiction? | |
| PART 4: Programming IF | |
| * 4.1: How do I become an IF author? | |
| * 4.2: Who's going to appreciate my work; who cares about IF anyway? | |
| * 4.3: What about copyright; how can I protect my work? | |
| * 4.4: What authoring systems are available? | |
| * 4.4.1: First Tier Systems | |
| * 4.4.2: Second Tier Systems | |
| * 4.4.2: Third Tier Systems | |
| * 4.4.4: Unprocessed Tier | |
| * 4.5: What is Glk? | |
| * 4.6: What are VILE 0 ERRORS FROM HELL, and how should I avoid them in | |
| Inform? | |
| * 4.7: How do I find bug fixes for Inform? | |
| * 4.8: What editors can I use to write IF? | |
| * 4.9: What tools and utilities are available? | |
| * 4.10: Wouldn't a visual system be great for writing IF in? | |
| * 4.11: What support does Inform offer for graphics and sounds? | |
| * 4.12: What support does TADS offer for graphics and sounds? | |
| * 4.13: What support does Hugo offer for graphics and sounds? | |
| * 4.14: Which IF system should I use? | |
| * 4.15: How do I create a standalone executable program out of an IF game? | |
| PART 5: Writing IF: What has been written on the subject... | |
| * 5.1: in general? | |
| * 5.2: of the art of writing NPCs? | |
| * 5.3: of parsing? | |
| * 5.4: of plot/story in interactive fiction? | |
| * 5.5: of the educational value of interactive fiction? | |
| PART 6: Internet Index: What is available on... | |
| * 6.1: The IF-Archive? | |
| * 6.2: FTP? | |
| * 6.3: the World Wide Web? | |
| * 6.4: chat spaces (ifMUD)? | |
| * 6.5: 'zines? | |
| * 6.6: mailing lists? | |
| * 6.7: Where can I find Infocom games? | |
| * 6.8: Usenet | |
| -------------------------------------------------------------------------------- | |
| 1.2: Recent Changes | |
| * July 2003 | |
| * updated URL for the Yonk IDE | |
| * updated URLs for Dennis Jerz's pages | |
| * May 2003 | |
| * updated Quest information | |
| * updated IF Library URLs | |
| * April 2003 | |
| * updated various Inform-related weblinks | |
| * updated IF Collaborators URL | |
| * March 2002 | |
| * cleaned out section 6.3 (WWW links section); added PARSIFAL, tads.org, | |
| ifFinder, pages by Emily Short, Doe and Dennis G. Jerz | |
| * PAWS debugging, source info added | |
| * fix Elvis text editor URL | |
| * added GUE Tech website to 6.3 | |
| * November 2001 | |
| * Updated SUDS section | |
| * Added URL for Stephen Granade's Brass Lantern site | |
| * IF Archive TADS programming directory now called tads2 | |
| * fix textfire URLs (now at plover.com) | |
| * IF comp URL now ifcomp.org | |
| * Added Inform FAQ URL | |
| * October 2001 | |
| * Removed all references to Stephen Granade's late, lamented 'about.com' | |
| pages | |
| * Updated SUDS information -- now freeware | |
| * Alan sourcecode now available | |
| * Update Hugo version numbers | |
| * Quest now version 3 | |
| * September 2001 | |
| * update syntax highlighting info for Vim | |
| * show geographic locations of Archive mirrors | |
| * update URL for IF Collaborator's List | |
| * add mention of alt.games.xtrek and AIF FAQ | |
| * August 2001 | |
| * added mention of L Ross Raszewski's BundleMonkey to 4:15 - standalone | |
| executable games | |
| * IF Archive moved from ftp.gmd.de to ifarchive.org | |
| * Updated Brendan Desilet's "IF in Education" URL and email address | |
| * July 2001 | |
| * Updated Inform for New Writers URL | |
| * Added mention of pre-packaged Win32 & Amiga downloads at IFNW | |
| * Added 'Yonk' Inform IDE for Macintosh | |
| * Updated John Holder Parser Talk URL | |
| * June 2001 | |
| * Added MacintoshTADS webpage, removed TADS Programming Page | |
| * Added Visual Inform, IF-IDE and Inform Explorer to text editors section | |
| * Fourth Edition of Inform Designer's Manual available | |
| * May 2001 | |
| * Removed references to departed Worldclass webpage | |
| * URLs pointing to Stephen van Egmond's site & email updated | |
| * Updated status of Google Groups' raif archive | |
| * April 2001 | |
| * Updated the Quest details | |
| * Added ADRIFT and PAWS authoring systems (to the "Tier II" list) | |
| * Moved 'Adventure Builder' and 'Rexx-Adventure' systems from "Unprocessed" | |
| to "Tier III" | |
| * added placeholders for IAGE and JACL in "Unprocessed" | |
| * Added some items to netiquette summary (2.3) | |
| * update on raif message archive at gmd plus "Google Groups" instead of | |
| "DejaNews" (2.4) | |
| * Changed FAQ "homepage" to www.textfire.com | |
| * Removed pre-2001 entries from this change list | |
| * March 2001 | |
| * removed cascade mountain publishing | |
| * updated mirrors list | |
| * updated TADS version | |
| * updated Hugo version | |
| * updated ALAN websites list | |
| * updated Quest website and version | |
| * February 2001 | |
| * Changed "FAQ maintainer" contact info from David Glasser and changed FAQ | |
| "homepage" to ftp.gmd.de | |
| * Repointed IF Archive URL's to ftp.gmd.de rather than David's web server's | |
| redirector software | |
| -------------------------------------------------------------------------------- | |
| 1.3: What is the FAQ for and where do I get it from? | |
| This document is intended to serve as both a list of answers to | |
| frequently-asked questions (FAQ) for the newsgroup rec.arts.int-fiction, and as | |
| a source of more general information for those interested in interactive | |
| fiction authorship and/or theory. | |
| The FAQ is updated as and when the maintainer feels it is necessary and has the | |
| time. [Recent Changes: 1.1] will detail major changes to the FAQ. If you see | |
| any problems with the FAQ, or have any suggestions, email the FAQ maintainer | |
| (Stephen Griffiths) at stevgrif "AT" actrix.gen.nz | |
| The most recent version of the FAQ can be found at | |
| <http://plover.net/~textfire/raiffaq/>. | |
| Alternatively, you could download it from the IF Archive in either HTML | |
| <http://ifarchive.org/if-archive/rec.arts.int-fiction/FAQ.htm> or plain text | |
| format <http://ifarchive.org/if-archive/rec.arts.int-fiction/FAQ>. If you have | |
| difficulty accessing the ifarchive.org site try one of the IF Archive mirror | |
| sites listed in [The IF-Archive: 6.1]. | |
| There also is an Italian translation at | |
| <http://space.tin.it/computer/lmarcant/raiffaq/index.html> by Lorenzo | |
| Marcantonio (lomarcan@tin.it). | |
| -------------------------------------------------------------------------------- | |
| 1.4: How is the FAQ composed? | |
| The FAQ has been split into six separate parts. | |
| You are now reading part 1 (Meta-FAQ information). This answers questions about | |
| the FAQ itself, such as its availability and layout. There is also a full | |
| part-by-part contents at [Contents: 1.2] . | |
| Part 2 (About the newsgroup) describes rec.arts.int-fiction. | |
| Part 3 (General Interactive Fiction information) answers questions asked by | |
| people new to the newsgroup or interactive fiction in general. It does not | |
| cover writing IF. | |
| Part 4 (Programming IF) will be of interest to the (prospective) interactive | |
| fiction author. It includes details of the major authoring systems and other | |
| tools. It is mostly focused on the programming side of IF. | |
| Part 5 (Writing IF) contains an informal bibliography of Internet documents on | |
| interactive fiction theory, and information on the major discussions to be | |
| found in the rec.arts.int-fiction archives. It is mostly focused on the writing | |
| side of IF. | |
| Finally, part 6 (Internet Index) contains brief descriptions and URLs of FTP | |
| and WWW sites and other Internet resources mentioned elsewhere in the FAQ, and | |
| describes the IF-Archive. | |
| It is recommended that those new to rec.arts.int-fiction read part 1 first (to | |
| get a feel for the FAQ), followed by part 3 (if you don't know much about IF) | |
| and then part 2 (to learn about the newsgroup), with parts 4 and 5 last, though | |
| only if you wish to write IF. Part 6 should be referred to as needed, though | |
| the section on the IF-Archive is a must-read. Please read part 2 *before* | |
| posting *anything* to the newsgroup: it'll make it easier on everyone. | |
| -------------------------------------------------------------------------------- | |
| 1.5: Acknowledgements and Copyright Notice | |
| The FAQ is maintained by Stephen Griffiths (stevgrif "AT" actrix.gen.nz). | |
| Many people have contributed to this document, so thanks to them. In | |
| particular, shiny stars to Jim Aikin, Adam Cadre, Volker Blasius, John Elliott, | |
| Julian Fleetwood, LucFrench, Stephen Granade, Neil K. Guy, Douglas Harter, John | |
| Hill, John Holder, Theodore Hwa, Jonadab the Unsightly One, Amir Karger, | |
| Stephen Kitt, Iain Merrick, Robin Munn, Graham Nelson, Chris Nebel, Bob Newell, | |
| Thomas Nilsson, Andrew Plotkin, Mike Roberts, Gunther Schmidl, Kent Tessman, | |
| Alex Warren, Roger Burton West, and John Wood, plus all the people I forgot to | |
| put here. Special thanks to Doug Harter for his efforts in scouring the | |
| newsgroup archives way back when (which sadly came to nought, but there you | |
| go), to Ivan Cockrum for providing webspace at textfire.com, and to Lorenzo | |
| Marcantonio for the FAQ's Italian translation. | |
| Previous editions were maintained by David Glasser (glasser@iname.com), Julian | |
| Arnold (hippocampus@kwic.com), Jorn Barger (jorn@mcs.com) and David A. Graves | |
| (dag@cup.hp.com). | |
| This FAQ is copyright 1998 - 2000 by David Glasser with subsequent changes | |
| made, with permission, by the new FAQ maintainer, Stephen Griffiths. Please | |
| feel free to quote from this document, but you must acknowledge this source. | |
| The FAQ, or individual parts of it, may be freely distributed by any means. | |
| However, no charge may be made for the distribution (save for the cost of the | |
| media itself) and part 1, in its entirety and including this copyright notice | |
| and details of how to obtain the full FAQ, must be included with any and all | |
| distributions. | |
| It would be courteous to inform the FAQ maintainer if you wish to quote from | |
| (well, in anything other than a Usenet post or email or whatever) or | |
| redistribute the FAQ. | |
| As this document is supplied gratis, with no demand or request for payment or | |
| other recompense, the maintainer is hereby pleased to announce that in no event | |
| whatsoever will he be held liable in any way for any loss of data, loss of | |
| earnings, loss of savings, general disappointment or other unhappiness | |
| resulting from the use of or abuse of or inability to use any and all | |
| information or misinformation within or indeed without this document, or from | |
| any admission or omission therein or thereof which either directly or | |
| indirectly causes any one, or any combination of two or more, of the | |
| aforementioned unpleasantries. On the other hand, feel free to attribute any | |
| good things which happen to you or those around you to this document in | |
| general, and to me in particular. | |
| -------------------------------------------------------------------------------- | |
| Part 2: About the newsgroup | |
| -------------------------------------------------------------------------------- | |
| -------------------------------------------------------------------------------- | |
| 2.1: What is the purpose of rec.arts.int-fiction? | |
| rec.arts.int-fiction is a reasonably low volume, high signal-to-noise newsgroup | |
| for the discussion of interactive fiction. Many threads are relevant to, and | |
| can be followed by, programmers and non-programmers alike. | |
| In this newsgroup, we discuss the technical and artistic aspects of interactive | |
| fiction, as well as the actual processes of and tools for writing it. While we | |
| do mention specific IF games, it is typically in the context of comparing and | |
| contrasting their structure or artistic merit-- with emphasis on the | |
| development of IF as a literary genre and/or a form of computer-based | |
| art/entertainment. | |
| An associated group, rec.games.int-fiction, focuses on playing interactive | |
| fiction with reviews, requests for hints and so on. | |
| The two groups, rec.arts.int-fiction and its sister-group | |
| rec.games.int-fiction, as you might imagine, complement each other rather | |
| nicely. They are however distinct from one another and you should bear in mind | |
| their particular charter before sending a post. Posting to more than one group | |
| is generally not a good idea. Select the appropriate newsgroup and post only to | |
| that one. Just as you would not post questions about how to solve a specific | |
| game in this group, please refrain from posting questions on IF design and | |
| implementation in rec.games.int-fiction. | |
| Remember, rec.arts.int-fiction is a discussion group, and will only function if | |
| people contribute to it. So, while you ought to just read for a week or two to | |
| get a taste of the flavor of the group before spicing things up with your first | |
| post, don't lurk too long. We do want to hear from you... | |
| One must also realize that rec.games.int-fiction never discusses food in its | |
| off-topic posts. This is left up to raif. | |
| -------------------------------------------------------------------------------- | |
| 2.2: What topics are appropriate here? | |
| Topics related to interactive fiction design, theory, and implementation are | |
| appropriate, as is the discussion of IF implementation languages (authoring | |
| systems). Ideas on applying popular technologies (object oriented programming, | |
| incremental compilers, etc.) to problems in interactive fiction development | |
| (knowledge representation, natural language parsing, etc.) are welcomed. There | |
| are many pleas of a "how do I do this...?" nature with reference to the | |
| nuts'n'bolts of particular authoring systems (very nearly 100% of which are | |
| answered). You should put the name of the authoring system, enclosed in square | |
| brackets, at the beginning of the subject line of your post (e.g., "[Inform]", | |
| "[Hugo]", "[TADS]", etc.), as this allows people who do not wish to read about | |
| particular systems to maintain effective kill-files. It also often helps if you | |
| post a short piece of code that demonstrates your problem: we cannot read your | |
| mind and your post is useless if we can't understand your problem. However, try | |
| to keep your examples succinct and relevant: it's hard and boring to sift | |
| through pages of code to find one tiny error. Do not post very long or | |
| irrelevant pieces of code. | |
| Sometimes people post "giftware", clever pieces of code which solve a | |
| particular problem. These, too, should be kept as concise as possible. | |
| "Giftware" is usually placed in the public domain, but don't take this for | |
| granted. However, if you intend to post "giftware", please consider uploading | |
| your code to the IF-Archive [What is the IF-Archive?: 6.1] instead and posting | |
| a pointer to it in a raif message. This way your contribution will be given a | |
| permanent home on the Internet and will help to build a large literature | |
| library for the authoring system you have chosen. | |
| Posts on authoring Web-based hyperfiction are not inappropriate on | |
| rec.arts.int-fiction, though it is true that there is not much of an audience | |
| on the newsgroup for this sort of thing. | |
| Reviews of interactive fiction games are gladly received on either newsgroup. | |
| The nature of a review may be such that it is relevant to both the interactive | |
| fiction newsgroups. This is an exception to the cross-posting rule. Whenever | |
| you do cross-post, whether it be for reviews or other purposes, please set your | |
| Followup-To: header to one or the other; this ensures any followup messages are | |
| posted only to the most appropriate group. Post-competition reviews of IF | |
| Competition games [What sort of events does the IF community do?: 2.6] should | |
| be posted only to rgif. | |
| The other major exception to the crossposting rule is requests for betatesters | |
| for games. Such requests may appear on either, or both, of the newsgroups. | |
| However, please *do not* post replies to the newsgroups. Send your reply to the | |
| author via private e-mail. Otherwise, the resulting glut of "me too!" posts is | |
| extremely annoying to the other readers of the newsgroup. Many authors will in | |
| fact *ignore* such replies to the newsgroups, and will only respond to those | |
| sent by e-mail. If you are an author posting for betatesters, you should set | |
| your Followup-To: news header to the word 'poster' (no quotes). See [How do I | |
| become an IF author?: 4.1] for more information on betatesting your game. | |
| Lastly, game announcements are often crossposted to both of the groups, with a | |
| Followup-To: to rgif. | |
| Controversial viewpoints are sometimes posted and indeed are to be encouraged; | |
| when you post a dissenting view remember to attack the idea, not the person. | |
| Let us debate, not battle. raif has been very good when it comes to that; most | |
| fights have been misunderstandings that were soon fixed. Our flamewars rarely | |
| last a week, and there usually are only a handful per year - which is quite | |
| good for a newsgroup. | |
| -------------------------------------------------------------------------------- | |
| 2.3: ...and what topics are not appropriate? | |
| Please don't post questions about specific adventure game puzzles to this | |
| newsgroup, as it was set up for discussion of interactive fiction from the | |
| point of view of the *author*, not the *player*. Please post these queries to | |
| the newsgroup rec.games.int-fiction, not here. Also, it is usually considered | |
| impolite to post bug reports for games or other software (including authoring | |
| systems) to either newsgroup. The software's author/maintainer would no doubt | |
| welcome a private e-mail though (and you usually get your name in the credits | |
| of the next release). Bugs may be reported on the newsgroup(s) if it is a bug | |
| which can reasonably be assumed to detrimentally affect other users of the | |
| software and/or can be easily avoided or remedied. (Bugs in the old Infocom | |
| games are commonly reported on rgif, especially when they are humorous.) | |
| When discussing specific games, please be careful not to spoil them for readers | |
| who may not have played them. You have a few choices: | |
| * Simply do not post the "spoilers". | |
| * Encode them using rot13, a simple "encryption" scheme found on any decent | |
| newsreader. (Some silly programs call it Unscramble. Sheesh). If you can't | |
| find a rot13 descrambler, all you have to do is turn each a into an m, each | |
| b into an n, and so on. | |
| * put a "spoiler character" in your post right before the spoilers, with a | |
| warning like "SPOILERS FOR BAD GUYS AHEAD". A spoiler character is a | |
| control-L character (formfeed), and any good newsreader has a set of keys | |
| to push or a menu item to insert the character. When somebody reads the | |
| message, the newsreader should pause at the character to allow the rest of | |
| the message to be skipped if the reader does not want to read the spoiler. | |
| Unfortunately, not all newsreaders support the spoiler character; the | |
| author of this document believes that if everybody uses the spoiler | |
| character instead of ugly solutions like blank lines, those newsreaders | |
| that do not support the spoiler character will decide to do so. | |
| * Put a lot of blank lines in front of your spoiler. | |
| This is not a newsgroup for the discussion of traditional "static" or "passive" | |
| fiction. Literary magazine ads, advertisements for writers, and other general | |
| fiction topics should be posted to the appropriate newsgroup (alt.prose, | |
| misc.writing, rec.arts.books, rec.arts.poems, rec.arts.prose, etc.). However, | |
| this confusion has come up in the past (newcomers believing the group name | |
| means "International Fiction", for example), and a polite pointer is better | |
| than a "get this junk off the newsgroup" flame. | |
| Discussions of MUDs (multi-user dungeons) belong on rec.games.mud.*, although | |
| discussion of multi-player IF theory is certainly appropriate here. Information | |
| on LARPs (live-action role playing games) and FRPs (fantasy role playing games) | |
| can be found in rec.games.frp.misc. Questions about the various "roguelike" | |
| games, such as "NetHack," "Angband," etc. should be posted to | |
| rec.games.roguelike.*. | |
| Though posters may certainly post to raif in non-English languages, speakers of | |
| Italian may be pleased to learn that there is a newsgroup for Italian IF called | |
| it.comp.giochi.avventure.testuali. | |
| You should of course follow basic netiquette conventions such as: | |
| * Use a meaningful Subject line relevant to the content of your message | |
| * Don't spam. | |
| * Include a quote from any previous message you're replying to | |
| * Don't spam. | |
| * but don't quote screes of previous discussion to append one little comment | |
| * Don't spam. | |
| * DO NOT USE ALL CAPS | |
| * Don't spam. | |
| * you also should avoid putting everything in lower-case | |
| * Don't spam. | |
| * Don't flame others, you bastard! | |
| * Don't spam. | |
| * Well speling and gramer is good. | |
| * Don't spam. | |
| * Don't flame people because their spelling or grammar sucks. | |
| * Don't spam. | |
| -------------------------------------------------------------------------------- | |
| 2.4: Is there an archive of newsgroup postings? | |
| The very-nearly-complete and unabridged archives of posts to both interactive | |
| fiction newsgroups are stored on the IF-Archive [What is the IF-Archive?: 6.1] | |
| at /if-archive/rec.arts.int-fiction/ . (Unfortunately there is a gap in the | |
| records between January 1997 and mid-1999.) The rec.arts.int-fiction archives | |
| have been converted to HTML, and are on the Web, fully indexed and linked by | |
| date and by thread, at <http://bang.dhs.org/if/raif/>. | |
| If you are looking for the most recent posts, check out | |
| <http://groups.google.com/>. Google Groups' archive goes back to 1995. | |
| Postings to rec.games.int-fiction are similarly archived on the IF-Archive, in | |
| the directory /if-archive/rec.games.int-fiction/ . They have not been HTMLized, | |
| and rec.games.int-fiction is available from "Google Groups". | |
| -------------------------------------------------------------------------------- | |
| 2.5: What abbreviations will I find on the newsgroups and in the FAQ? | |
| IF == Interactive Fiction, the subject of this FAQ | |
| raif == rec.arts.int-fiction, the newsgroup about writing IF | |
| rgif == rec.games.int-fiction, the newsgroup about playing IF | |
| r*if == either of the above newsgroups | |
| PC == Player Character, the player's character inside a game. (Also, Personal | |
| Computer, which usually implies an Intel/Microsoft setup.) | |
| NPC == Non-Player Character, other characters inside a game. | |
| gmd == the IF Archive (based at ftp.gmd.de) | |
| ifMUD == Interactive Fiction Multi-User Dungeon, or some such [Are there any | |
| IF-related chat spaces?: 6.4] | |
| You may see people referred to by nicknames, many of which are the same as | |
| their ifMUD [Are there any IF-related chat spaces?: 6.4] usernames. Most of | |
| these nicknames are similar to their real names; notable exceptions include | |
| Grocible (Neil K. Guy); Zarf (Andrew Plotkin); Whizzard (G. Kevin Wilson); | |
| devil (Andrew Pontious); and inky (Dan Shiovitz). Nobody's really sure who the | |
| Admiral Jota is. | |
| The FAQ often refers to files on the IF-Archive; see [What is the IF-Archive?: | |
| 6.1] for more information on that. | |
| -------------------------------------------------------------------------------- | |
| 2.6: What sort of events does the IF community do? | |
| Two annual IF traditions are the IF Competition and the XYZZY awards. | |
| The Annual I-F Competition, started in 1995, is open to all authors of | |
| interactive fiction. Entrants' games can be written in any language (e.g. | |
| BASIC, C, a dedicated authoring system, etc.), though use of one of the IF | |
| languages is recommended. The competition was founded by G. Kevin "Whizzard" | |
| Wilson, continued by David Dyte, and currently ran by Stephen Granade | |
| (sgranade@phy.duke.edu). More information about the IF Competition is available | |
| at <http://ifcomp.org/>. | |
| The XYZZY awards, hosted by Eileen Mullin of XYZZYnews, are an Oscar-style | |
| award ceremony each February on ifMUD, giving honor (and trophies!) to the best | |
| IF of the previous year. Anyone can vote on the numerous categories by going to | |
| <http://www.xyzzynews.com/>. | |
| -------------------------------------------------------------------------------- | |
| 2.7: What is mimesis? | |
| mimesis (mi-me'sis, mi-) n. 1. The imitation or representation of | |
| aspects of the sensible world, especially human actions, in | |
| literature and art. | |
| [the following is stolen from a post to raif by Adam Cadre] | |
| In brief, there are generally two different things people on this | |
| group use the word "mimesis" to refer to: | |
| (1) The extent to which the player feels like she's experiencing what | |
| the game tells her she is, rather than experiencing the sensation of | |
| typing on a keyboard and watching words scroll by on a screen; | |
| (2) The extent to which stuff in the game seems to work the way | |
| things work in real life, or at least the extent to which it | |
| maintains a degree of internal consistency. | |
| The idea of mimesis with regard to IF was started by Roger Giner-Sorolla in his | |
| "Crimes Against Mimesis" postings some time back on raif. You can find a copy | |
| of it at <http://bang.dhs.org/if/library/design/mimesis.html> | |
| More recently, Adam "Bruce" Thornton wrote a very funny in-joke game called | |
| "Sins Against Mimesis". | |
| -------------------------------------------------------------------------------- | |
| Part 3: General Interactive Fiction information | |
| -------------------------------------------------------------------------------- | |
| -------------------------------------------------------------------------------- | |
| 3.1: What is interactive fiction? | |
| "Interactive fiction" is a catch-all name for many forms of story-telling. Most | |
| forms are text-based (but see below) and feature some degree of reader, or | |
| player, participation beyond the act of, say, turning the page of a book to | |
| read the next one. | |
| In the context of rec.arts.int-fiction the name is most commonly used to refer | |
| to just one type: computer-based text adventures. These games involve the | |
| player entering textual commands in response to the game's output. In turn, | |
| this output is influenced by the player's input. An extremely simple example of | |
| this interplay between player input and game output (from "Zork") is: | |
| West of House | |
| You are standing in an open field west of a white house, with a | |
| boarded front door. There is a small mailbox here. | |
| >OPEN THE MAILBOX | |
| Opening the small mailbox reveals a leaflet. | |
| >TAKE THE LEAFLET | |
| Taken. | |
| >READ IT | |
| "WELCOME TO ZORK! | |
| ZORK is a game of adventure, danger, and low cunning. In it you will | |
| explore some of the most amazing territory ever seen by mortals. No | |
| computer should be without one!" | |
| Although interactive fiction, in the sense of text adventures, is usually | |
| text-only, there has always been limited interest on rec.arts.int-fiction in | |
| graphics and sound. It is widely considered that the most important, if not the | |
| defining, element of interactive fiction is the text-based user interface and | |
| the parser (that part of the program which analyzes and acts upon the player's | |
| input), and as long as this is kept there is no particular reason why the | |
| game's output cannot include, or consist entirely of, graphics (static or | |
| animated) and/or sound. A not insignificant number of "purists" would refute | |
| this, however. Recent updates to the major IF languages have simplified | |
| creation of graphical and aural IF. | |
| "Interactive fiction" is also used to refer to (Web-based) hyperfiction, where | |
| the reader selects links to progress though the story; "Choose Your Own | |
| Adventure" (CYOA) books, which are a sort of non-computer hyperfiction; | |
| multiple author, or contributory, fiction, where multiple authors write a story | |
| by each contributing, say, one chapter; and MUDs and MUSHes, which may loosely | |
| be described as multi-player text adventures. It has also been suggested that | |
| Role Playing Games (RPGs), such as "Dungeons & Dragons", present the ultimate | |
| in interactive fiction. | |
| Interactive movies have also been mentioned on the newsgroup from time to time. | |
| This is a rather poorly defined genre of film-making. Interactive movies seem | |
| to be the cinematic equivalent of CYOA books, rather than text adventures. | |
| Though the non-text adventure forms of IF are rarely discussed on the group, | |
| one must always keep in mind that the group was created (by famous Mac guru | |
| Adam C. Engst, circa 1986) without the intention of text adventures in mind. | |
| Though you may not, many people enjoy discussion of non-text adventure IF on | |
| the newsgroup, and so flaming newcomers with a "that's not what raif is for!" | |
| is not a good idea. | |
| -------------------------------------------------------------------------------- | |
| Part 4: Programming IF | |
| -------------------------------------------------------------------------------- | |
| -------------------------------------------------------------------------------- | |
| 4.1: How do I become an IF author? | |
| Write some interactive fiction. This is done with an authoring system, such as | |
| those described below. Most systems comprise of a specialized interactive | |
| fiction language with which you write the source code for your game, a compiler | |
| which turns your source code into a playable gamefile, and an interpreter which | |
| is what is used to play the gamefile produced by the compiler. | |
| However, quite a few people write their own system in C or BASIC or another | |
| language, either focused solely around a single game or as an expandable | |
| language. It is easier to use a pre-made system, and they will offer more | |
| portability. It will also stop you from having to remake the wheel. However, if | |
| you want to make your own system, nobody's going to stop you (well, they | |
| shouldn't, at least). It would probably be a good idea to look at the current | |
| systems to get a basic idea of what to do. | |
| With the advent of Glk, making your own systems portable is easier. If you are | |
| writing in C, take a look at Glk. If you use it for your input and output, it | |
| will make your game a lot more portable. It is simple and powerful. However, it | |
| can't do everything. See [What is Glk?: 4.5] for details. | |
| It is generally agreed upon that much work on a game is done before any source | |
| code is written. There are many and varied approaches to this design and | |
| planning stage, and it is difficult to recommend any one method (and this is | |
| hardly the right place). Several people have written documents on this very | |
| subject. These may be found in the IF-Archive, in the directory | |
| /if-archive/info/ . Of particular note are Graham Nelson's | |
| (graham@gnelson.demon.co.uk) "The Craft of Adventure" and Gerry Kevin Wilson's | |
| (whizzard@pobox.com) "Whizzard's Guide to Text Adventure Authorship." The | |
| filenames for these are Craft.Of.Adventure.* (where * is one of the various | |
| formats that it has been translated into) and authorship-guide.{base, sup1, | |
| sup2}. Also, there are many excellent articles on game theory and design in the | |
| 'zine "XYZZYnews" [What 'zines exist?: 6.5] . | |
| You really ought to betatest your game before releasing it to the general | |
| public. Usually, when betatesting a game, the author sends the game out to her | |
| betatesters, who work as hard as possible to find bugs, writing flaws, and any | |
| other problems with the game and send the author reports. You can find | |
| betatesters by posting on the IF newsgroups (but see [What topics are | |
| appropriate here?: 2.2] for details on how to post betatester requests), by | |
| asking on ifMUD (see [Are there any IF-related chat spaces?: 6.4] ), or by | |
| using Lucian Smith and Liza Daly's IF Betatester page. Using their (free, of | |
| course) service, the author sends them a game which can be downloaded and | |
| tested by any of their registered betatesters (which anybody can sign up to | |
| be). More information on this service can be found at | |
| <http://plover.net/~textfire/beta.html>. | |
| You can also find betatesters among your friends and other people who have not | |
| played IF before; though such a betatester can be useful, it is *very* | |
| important that you have at least one or two betatesters from the "IF community" | |
| (r*if, ifMUD, TextFire Beta, etc). Only somebody who knows IF well will know | |
| where bugs are most likely to crop up. | |
| -------------------------------------------------------------------------------- | |
| 4.2: Who's going to appreciate my work; who cares about IF anyway? | |
| As it turns out, quite a lot of people. Interactive fiction regularly achieves | |
| respectable rankings on the "Internet PC Games Charts" | |
| <http://www.worldcharts.com/> and has been as high as #3. Indeed, there were | |
| five interactive fiction games in the 1996 Year-end Download Top 40, the | |
| highest romping in at #12 (beating Doom), making these games some of the most | |
| popular non-commercial computer games in the world. | |
| The six winning entries from the 1995 IF competition [What sort of events does | |
| the IF community do?: 2.6] were published by Activision on their CD-ROM | |
| release, "Masterpieces of Infocom" (July 1996), which has sold surprisingly | |
| well. Activision also uses the Inform authoring system as a prototyping tool | |
| for some of their large graphical games (such as "Zork: Grand Inquisitor"), and | |
| used an Inform Zork game (by G. Kevin "Whizzard" Wilson, Marc Blank and Mike | |
| Berlyn) as a promotion for Z:GI. | |
| Specifically, the readership of the two rec.*.int-fiction newsgroups make up a | |
| faithful audience. Popular games such as "Curses" have been played by quite | |
| possibly thousands of people worldwide. In this specific case, the game has | |
| been downloaded at least 2000 times from two sites (more from other sites, but | |
| figures are unavailable), published on at least 4 CDs (probably more without | |
| the author's permission) and as a cover disc of two magazines with circulation | |
| in the 10000s, and included in commercial packages. | |
| -------------------------------------------------------------------------------- | |
| 4.3: What about copyright; how can I protect my work? | |
| I'm not a legal expert, so you might want to look at such websites as the U.S. | |
| Copyright Office Home Page <http://lcweb.loc.gov/copyright/> and the Public | |
| Record Office of England and Wales <http://www.pro.gov.uk/>. | |
| You should include in your game (perhaps in the response to the HELP command) | |
| something saying that you own the copyright on the game, and giving a | |
| distribution policy: for example, you may not want it to be distributed for | |
| charge, you may not want it distributed at all, or you may not care. | |
| On a somewhat related topic, you should ask John Francis | |
| (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, SUDS, ADRIFT and PAWS. | |
| Tier (iii) mostly consists of old systems that never really caught on. | |
| The Unprocessed Tier lists new or previously overlooked systems which should be | |
| listed in one of the other tiers but haven't yet been added. | |
| -------------------------------------------------------------------------------- | |
| 4.4.1: Tier (i) | |
| The most popular and/or powerful, these are currently used by a large number of | |
| people; many posts to rec.arts.int-fiction concern these systems and their use; | |
| games produced with these systems are guaranteed a relatively large audience. | |
| Hugo | |
| /if-archive/programming/hugo/ | |
| Version/Release | |
| 2.5.03d and 3.0.01d | |
| Author | |
| Kent Tessman (general@generalcoffee.com). | |
| Platforms | |
| Acorn RISC OS, Amiga, BeOS, MS-DOS, Unix (i.e., Linux, SunOS, etc., | |
| with pre-built executables for Linux), OS/2, Win95/NT, and any | |
| Glk-supporting platform [What is Glk?: 4.5] including the Macintosh. | |
| Support | |
| The author intends to continue supporting Hugo indefinitely, and is | |
| developing further releases of the compiler/engine package. He will | |
| take e-mail and respond to posts. In his own words, he will contribute | |
| "anything I can offer" to the product. Messages specific to Hugo are | |
| posted to rec.arts.int-fiction from time to time. | |
| Programming Knowledge | |
| Owes its origins to Inform, C, and BASIC. It is thus object-oriented, | |
| has a straight-forward syntax, and an effort has been made to keep | |
| programming as free of punctuation and confusing formatting as much as | |
| possible. Much low-level (assembly) programming is done within the | |
| system itself (so the user needn't worry about it). | |
| Features/Limitations | |
| As of v2.4 Hugo supports graphics (in JPEG format) and multiple tiled | |
| windows. It also has music in MOD, S3M, MP3, MIDI, and XM format and | |
| sound in WAV format. The standard sound package (which the DOS and | |
| Windows ports use) allows 32 channels. Full multimedia support is | |
| available in the Windows/DOS, BeOS, and X Windows ports. As of v3.0, | |
| Hugo even supports movies in MPEG or AVI format. The compiler allows | |
| precompiled headers. Features include global events, object-linked | |
| events, object/character scripts, hierarchical inheritance and the | |
| ability to use objects as classes, dynamic run-time dictionary | |
| creation, multiple-turn undo, and (practically) unlimited game file | |
| size due to indexed addressing. Hugo allows the programmer to fully | |
| manipulate the interpretation of the input line prior to engine | |
| parsing. | |
| Documentation and Game Sources | |
| The "Hugo Programming Manual" covers many of Hugo's features and there | |
| is an extensively annotated tutorial game, "Vault of Hugo." Currently | |
| available game source code include ports of "Adventure" and "Pirate | |
| Adventure", and the author's own full-length games, "Spur", "Guilty | |
| Bastards", and "Down", and a shell-game to build on. | |
| Online Documentation | |
| N/A | |
| Web Pages | |
| Hugo - An Interactive Fiction Authoring System | |
| <http://www.generalcoffee.com/> | |
| Jerry's Hugo Site | |
| <http://cub.kcnet.org/~jnichols/hugo/ifpage.html> | |
| Debugging Features | |
| The Hugo Debugger, HD, is a full-featured source(ish)-level debugger, | |
| which allows code search, watch expressions, breakpoints, and so on. | |
| The HugoFix library is a suite of debugging routines allowing the user | |
| to monitor, set, and check almost every aspect of a game at run-time. | |
| Source | |
| C. | |
| License | |
| Freeware, so long as it is distributed in an unmodified manner. Games | |
| produced by a user are the property of that author, and may be freely | |
| distributed. Only if the game (including any included libraries from | |
| Hugo) or the Hugo engine is intended for distribution in any commercial | |
| manner (shareware or otherwise) must Kent Tessman be contacted for | |
| permission. | |
| Quick Pros and Cons | |
| As it is slightly newer than Inform and TADS, less people are using it | |
| and the Glk-based port to Macintosh doesn't have all the graphics and | |
| sounds perks (yet). On the bright side, it is quite powerful and offers | |
| advanced sound and graphics capabilities. Mac users are very very | |
| grateful for the Glk port, which is quite nice in the non-multimedia | |
| areas. | |
| -------------------------------------------------------------------------------- | |
| Inform | |
| /if-archive/infocom/compilers/inform6/ | |
| All-in-one downloads for Windows and Amiga at Inform for New Writers | |
| website: <http://www.iflibrary.com/ifnw/> | |
| Version/Release | |
| 6.21. Library 6/10. (Also, 6.21(G0.32) for glulx is in beta.) | |
| Author | |
| Graham Nelson (graham@gnelson.demon.co.uk). Glulx features by Andrew | |
| Plotkin (erkyrath@eblong.com). | |
| Platforms | |
| Acorn RISC OS, BeOS, Macintosh, Atari ST (latest release 5.4, may be | |
| unsupported), Amiga, IBM PC (on pre-386, release 5.5 only), Linux, | |
| OS/2, UNIX, VMS (for DEC VAX or Alpha), and EPOC (the Psion 5/Revo/7 | |
| handhelds). The ZMachine interpreters needed to play Inform games | |
| compiled for the ZMachine (that is, those that don't use glulx) are | |
| available for these platforms and many more. | |
| Support | |
| The author fixes library bugs whenever they are reported, and issues | |
| updates about every three months. The compiler is updated approximately | |
| twice a year, and the documentation is now in its 3rd edition (with an | |
| update May 1997). Feedback from users is welcomed. There are a large | |
| number of relevant posts to rec.arts.int-fiction. | |
| Programming Knowledge | |
| Compiles a largely object oriented language, reminiscent of C. A quite | |
| sophisticated parser is supplied, which can be entirely invisible to | |
| the designer but is highly programmable if need be. The library is | |
| itself written in Inform and is relatively easy to modify. | |
| Features/Limitations | |
| Produces files in the `Z-machine' format, as used by Infocom. Thus | |
| Inform games can be played on any of the many publicly available | |
| `Z-machine' interpreters. A standard library is supplied; it is | |
| possible to replace library routines. The run-time format does now | |
| permit dynamic object creation. Low-level programming is provided for, | |
| including a full assembler. | |
| The parser can be supplied with a language definition file allowing | |
| Inform games to be played in non-English languages. Translations of | |
| Inform have been made into German, Spanish, Italian and Renaissance | |
| English, with several others in development. These translations are | |
| linked from Graham Nelson's website (see below). | |
| A system called "Blorb", for convenient attachment of sound effects and | |
| modern-quality graphics, has now been fully implemented by Kevin | |
| Bracey's "Zip2000" interpreter. | |
| An alternate version can compile to the "Glulx" format, which allows | |
| advanced I/O capalities and removes many of the ZMachine's arbirtrary | |
| size restrictions. | |
| Documentation and Game Sources | |
| The main manual is the "Designer's Manual"; the "Technical Manual" | |
| documents very dry internals; the "Specification of the Z-Machine" | |
| defines the run-time format and the standard for interpreters (an | |
| alternative to this last document is "The Z-machine, and How To Emulate | |
| It"). A handful of game sources are available. The Inform Translator's | |
| Manual documents language definition files. | |
| The latest (fourth) edition of the Designer's Manual in PDF can be | |
| downloaded from the IF Archive | |
| /if-archive/infocom/compilers/inform6/manuals/designers_manual_4.pdf>. | |
| An HTML version is also available (see next section 'Online | |
| Documentation'.) | |
| The Inform Beginners Guide is an excellent introduction to writing IF | |
| with Inform.http://www.firthworks.com/roger/IBG.html> | |
| (Both the Designer's Manual and Beginner's Guide may also be available | |
| as paperback book. Check http://www.iflibrary.com?PageId=Store> for the | |
| latest details.) | |
| Online Documentation | |
| The Inform Designer's Manual | |
| <http://www.inform-fiction.org/manual/html> | |
| The Z-Machine Standards Document 1.0 | |
| <http://www.inform-fiction.org/zmachine/standards/z1point0/index.html> | |
| Web Pages | |
| Inform 6: A Compiler For Interactive Fiction | |
| <http://www.inform-fiction.org> | |
| The Inform FAQ | |
| <http://www.firthworks.com/roger/informfaq/> | |
| Inform Tricks | |
| <http://www.eblong.com/zarf/inftricks/> | |
| The Informary (and other much other helpful material) can be found at | |
| Roger Firth's website | |
| <http://www.firthworks.com/roger/> | |
| Inform for New Writers, David Cornelson | |
| <http://www.iflibrary.com/ifnw/> | |
| Inform for Beginners, Jeff Johnson | |
| <http://www.geocities.com/SiliconValley/Heights/8200/contents.htm> | |
| Glulx: A 32-Bit Virtual Machine for IF | |
| <http://www.eblong.com/zarf/glulx/> | |
| Gull - beginning with Glulx <http://adamcadre.ac/gull> | |
| The Inform Library Patch Site | |
| <http://www.inform-fiction.org/patches/index.html> | |
| Inform Page (somewhat old) | |
| <http://www.duke.edu/~srg3/IFprogramming/inform.html> | |
| Inform Programming (old, outdated) | |
| <http://www.doggysoft.co.uk/inform/> | |
| Debugging Features | |
| Can print tracing information for calls to routines and a suite of | |
| debugging verbs is included in the library: these monitor timers, | |
| daemons, actions, the object tree, messages between objects, the | |
| parser's internal workings and the like, and give the tester | |
| supernatural powers to travel and move things around. The library can | |
| also record and play back scripts of commands. Tools such as TXD (a | |
| disassembler) and Infodump (an inspector of objects, dictionary and | |
| grammar) are publicly available. | |
| As of Inform 6.21, you can compile your games with "Infix" debugging | |
| mode. This allows the author to use a variety of debugging verbs to | |
| examine and change the game's state in a way similar to the programming | |
| of Inform itself. You can trace references to a routine or object. | |
| Inform can also produce a file of information useful to any debugging | |
| tool, with, for example, Z-machine PC positions assigned to every | |
| statement of source code. | |
| There are some help-tools to configure various text editors to Inform, | |
| too; the Technical Manual provides an algorithm for syntax-colouring | |
| Inform code which is used in several of these. | |
| Source | |
| ANSI C. | |
| License | |
| Freeware. The author retains copyright of the compiler in order to | |
| prevent commercial exploitation, but (subject only to mild | |
| restrictions) is prepared to let people sell games produced by Inform. | |
| Quick Pros and Cons | |
| It is the most highly ported authoring system, and is quite popular. It | |
| is very powerful; some of the very advanced techniques are difficult to | |
| understand, though. Though it has a few more ports than TADS, | |
| HTML-TADS' graphics and sound support are both more powerful and more | |
| usable (at the current time) than Inform's. Also, the ZMachine suffers | |
| from the fact that extraordinarily large (and I mean really really big) | |
| games do not fit in it. However, for a normal-sized, text-only game | |
| that doesn't do extraordinarily complicated hacks (most games fit this | |
| description), Inform's problems do not hurt at all, and the glulx | |
| virtual machine fixes some of these problems. | |
| -------------------------------------------------------------------------------- | |
| TADS (Text Adventure Development System) | |
| /if-archive/programming/tads2/ | |
| Version/Release | |
| Version 2.5.5. | |
| Author | |
| Michael Roberts (mjr_ at hotmail dot com). | |
| Platforms | |
| Acorn RISC OS (interpreter only), AmigaDOS, Atari ST/TT/Falcon, | |
| DECStation, Linux, Macintosh, MS-DOS (also GO32 DOS extender version | |
| for 386+), NeXT, OS/2, SGI Iris/Indigo, SunOS & Sun 3. | |
| Support | |
| Posts to rec.arts.int-fiction dealing with all manner of TADS queries | |
| are not uncommon, and there are many third-party programming examples | |
| and utilities, including WorldClass, Alt and Pianosa, complete | |
| replacement libraries. | |
| Programming Knowledge | |
| Uses a high-level, largely object-oriented language very reminiscent of | |
| Pascal or C. | |
| Features/Limitations | |
| Provides virtual memory support, permitting games much larger than your | |
| computer's physical memory. Full multiple inheritance is supported, and | |
| incremental changes can be made to library files so one can include the | |
| standard library and override bits of it piece by piece. Objects may be | |
| created at run-time (dynamic object creation). TADS also provides | |
| multiple UNDO, routines for general-purpose file I/O, and "user exits" | |
| that let one link in code compiled with other languages (such as C). | |
| TADS allows you to write your game using HTML TADS, which allows you to | |
| add styled text, still graphics, sound, and MIDI music to your TADS | |
| games. Rather than relying on some proprietary markup language, HTML | |
| TADS uses standard HTML, the language used to mark up Web pages, for | |
| which documentation is readily available. (However, HTML TADS doesn't | |
| need a web browser or the Internet: it uses HTML but isn't a Web-based | |
| system.) HTML TADS also supports ISO Latin-1 character sets, so | |
| accented letters are easily added. | |
| At the time of writing, HTML TADS interpreters are only available for | |
| Windows 95/98/NT and Macintosh. However, a game written in HTML TADS is | |
| still fully playable (minus graphics and sound, of course) with | |
| character-based TADS runtimes that have been updated to at least | |
| version 2.2.6. | |
| The Windows port of TADS 2.5 and up comes with "Visual Workbench", an | |
| integrated development environment including the compiler, debugger, | |
| runtime, and an editor. It can even create self-enclosed executable | |
| installater programs for Windows for your TADS games. | |
| Documentation and Game Sources | |
| TADS' comprehensive manual is available in TeX, PDF and HTML formats, | |
| although the HTML version is the most current. At the moment, TADS | |
| documentation is a little scattered between the TADS manual | |
| (<http://www.tela.bc.ca/tela/tads-manual/>), the TADS Parser Manual in | |
| /if-archive/programming/tads2/manuals/tads_pm.zip , and the HTML TADS | |
| Revision Notes, available with HTML TADS. Neil K. Guy is working on | |
| updating the main TADS manual to include the information from the | |
| Parser Manual. Lastly, you might want to look at the slightly outdated | |
| but still useful TADS Tip Sheet at | |
| <http://www.tela.bc.ca/tela/tads-manual/tads-tip-sheet.html>. | |
| In addition to the manual the full source for a medium-sized game, | |
| Ditch Day Drifter, is available from the usual sources. The source code | |
| for many other games, from small and simple to huge and complex, is | |
| also readily available. | |
| Mark Engelberg has written a tutorial for TADS. It can be found on the | |
| IF-Archive as /if-archive/programming/tads2/manuals/TADSTutorial.zip . | |
| Online Documentation | |
| TADS Author's Manual | |
| <http://www.tela.bc.ca/tela/tads-manual/> | |
| TADS Manuals directory on the IF-Archive | |
| /if-archive/programming/tads2/manuals/ | |
| Web Pages | |
| The TADS Page | |
| <http://www.tela.bc.ca/tela/tads/> | |
| Official TADS homepage | |
| <http://www.tads.org/> | |
| The Apple Macintosh TADS Home Page | |
| <http://www.umbar.com/MacintoshTADS/> | |
| Debugging Features | |
| TDB is a full-featured source-level debugger. It allows single-stepping | |
| through your source, the setting of breakpoints at specific lines, and | |
| the examination and alteration of variables in your program. | |
| Source | |
| C. | |
| License | |
| Freeware. | |
| Quick Pros and Cons | |
| It is very popular and powerful powerful. It has better graphics | |
| support than Inform/ZMachine, and HTML TADS is available on the Mac | |
| (which is not the case for graphical Hugo). Its library is very | |
| object-oriented, which may be a good or bad thing, depending on who you | |
| are. It has slightly less ports than Inform/ZMachine, especially to | |
| ancient computers like the C64 and small computers like the PalmPilot. | |
| On the other hand, the reason is can't run on the PalmPilot is that it | |
| allows games of any size whatsoever, which is good if your game needs | |
| to be huge. | |
| -------------------------------------------------------------------------------- | |
| ALAN (Adventure LANguage system) | |
| /if-archive/programming/alan/ | |
| Version/Release | |
| 2.8, with various correction levels for different platforms. | |
| Authors | |
| Thomas Nilsson (thomas.nilsson@progindus.se) and Goran Forslund | |
| (gorfo@ida.liu.se). | |
| Platforms | |
| Amiga, Macintosh, MS-DOS (currently only 386+), sun4 (Solaris1, SunOS | |
| 4.1), sun4 (Solaris2, SunOS 5.x). A HP-UX version of 2.8 is upcoming, | |
| though a 2.7 version exists. There is also a Glk [What is Glk?: 4.5] | |
| version. | |
| Support | |
| As a non-profit project author support may vary, although the authors | |
| will endeavor to act on bug reports sent by e-mail. Most ALAN questions | |
| on raif will be answered by other ALAN users. | |
| Programming Knowledge | |
| Uses a very high-level language. With an easy-to-learn syntax and | |
| semantics, ALAN takes a descriptive view of the concepts of adventure | |
| authoring. There are no variables, subroutines or other traditional | |
| programming constructs. A general statement which describes the ALAN | |
| philosophy is that a game's author should not need to program, only | |
| describe, what the player will see. | |
| Features/Limitations | |
| Actors may be scripted and rules are evaluated between each actors turn | |
| which can trigger actions. Events can be triggered by objects, actors | |
| or locations. Expansion of the parser syntax is simple. ALAN lacks | |
| actor interaction and inheritance (although a prototype of v3.0 | |
| supports this). General verbs can be overridden both for locations and | |
| objects on which they are invoked. There is support for multinational | |
| character input. | |
| Documentation and Game Sources | |
| The manual, available separately in PostScript, HTML, and ASCII | |
| formats, contains a lot of detail on all aspects of IF authorship from | |
| a beginner's level upwards. A few examples of ALAN source are | |
| available, including the source to the games "Saviour" and "Skipping | |
| Breakfast". | |
| Online Documentation | |
| ALAN Adventure Language Manual & Beginners' Tutorial | |
| <http://welcome.to/alan-if/> | |
| Web Pages | |
| The Alan Home Pages | |
| <http://welcome.to/alan-if/> | |
| Using Alan on MS Windows PCs | |
| <http://users.actrix.co.nz/stevgrif/> | |
| Debugging Features | |
| The debugger currently supports viewing (but not altering) of most | |
| data, tracing of significant parts of the execution and single-stepping | |
| though compiled code. | |
| Source | |
| The compiler and interpreter source code is written in C. | |
| License | |
| Freeware. The interpreter may be freely distributed with compiled games | |
| for commercial purposes (i.e., no fee or royalties are required if you | |
| start to sell games). | |
| Quick Pros and Cons | |
| It isn't as powerful as the other Tier (i) systems. However, it is | |
| apparently easier to learn. | |
| -------------------------------------------------------------------------------- | |
| 4.4.2: Tier (ii) | |
| Intermediate popularity and new systems, these do not appeal to quite as large | |
| an audience as those in tier (i) or are less powerful; there are infrequent | |
| posts to rec.arts.int-fiction dealing with these systems and their use; | |
| occasionally games are produced using these systems. | |
| -------------------------------------------------------------------------------- | |
| AGT (Adventure Game Toolkit) | |
| /if-archive/programming/agt/ | |
| Version/Release | |
| Version 1.7 (may vary between platforms). But if you want to use AGT, | |
| use MAGX and AGiliTy instead of the original. Please. | |
| Authors | |
| David Malmberg (73435.1277@compuserve.com) and Mark Welch | |
| (markwelch@ca-probate.com). | |
| Platforms | |
| Amiga, Atari ST, Macintosh, MS-DOS, Windows. There seem to be many | |
| different versions for different platforms. | |
| Support | |
| No technical support from the authors (i.e., no new versions). Posts to | |
| rec.arts.int-fiction are not uncommon. | |
| Programming Knowledge | |
| Uses a meta-language similar to English. Standard Level games can be | |
| created with no prior programming knowledge. | |
| Features/Limitations | |
| Creates Standard Level games ("require no programming experience | |
| (honestly!), only a fertile imagination") or Professional Level games. | |
| There are limitations on the number of locations (200) and | |
| animate/inanimate objects (100 each) in a game. As AGT is no longer | |
| supported by the authors there will be no future upgrades/bug-fixes. It | |
| is not nearly as powerful as the Tier (i) systems, and many games are | |
| unportable from DOS. | |
| There is also now two programs, MAGX and AGiliTy, which are more | |
| portable and less buggy than the original AGT programs. However, they | |
| do not improve the language itself much. | |
| Documentation and Game Sources | |
| The documentation available on the Internet is out-of-date in regard to | |
| author support (which no longer applies) and licensing details (AGT is | |
| now freeware). Included is the source for a small game, Crusade. Other | |
| source for some two dozen games is publicly available. Mark Welch has | |
| 50-100 copies of the final "Master's Edition" printed manual and would | |
| invite suggestions from AGT users on how he might disseminate them at | |
| no charge. He *does not* have the "Master's Edition" source code | |
| though. | |
| Online Documentation | |
| N/A | |
| Web Page | |
| AGT Home Page | |
| <http://www.markwelch.com/agt.htm> | |
| MAGX webpage | |
| <http://www.ltlink.com/~jgoemmer/magx.html> | |
| AGT-authors mailing list page | |
| <http://www.ltlink.com/~jgoemmer/agt.html> | |
| Debugging Features | |
| A few basic debugging commands (such as MOVEPLAYER and LISTROOMS) to be | |
| used at run-time. | |
| Source | |
| Turbo Pascal 4.0/5.0/5.5/6.0. Magx and AGiliTy are written in ANSI C. | |
| License | |
| Freeware. Games produced with AGT are freely distributable in whatever | |
| manner you choose. | |
| Quick Pros and Cons | |
| I really wish I could put more pros here. When AGT was first released, | |
| ages ago, it was an improvement over what little IF creation software | |
| existed at the time. However, there really is nothing it can do that | |
| Inform or TADS can't easily do, and unlike the tier (i) systems, it is | |
| not expandable. That is a key point: in Inform, Hugo, and TADS, you can | |
| basically get it to do what you want, at least in terms of the internal | |
| world (if not multimedia output). This is not the case for AGT. It is | |
| poorly ported. And, though some claim it to be easy to learn, others | |
| find AGT source incomprehensible. You can write a good game in AGT. | |
| It's much easier if you just use a different system. | |
| -------------------------------------------------------------------------------- | |
| Quest | |
| /if-archive/programming/quest/ | |
| Version/Release | |
| 3.12 | |
| Author | |
| Alex Warren (alex@axeuk.com). | |
| Platforms | |
| Windows 95 or later. | |
| Support | |
| Please email all technical questions, enquiries, bug reports etc. to | |
| alex@axeuk.com. | |
| Programming Knowledge | |
| None required. Quest comes with a visual editor (QDK), plus full | |
| documentation on the "ASL" programming language used, if you wish to | |
| code games by hand rather than using the visual editor. "ASL" is an | |
| easy-to-use language without much in the way of confusing syntax, | |
| designed with ease-of-use in mind. | |
| Features/Limitations | |
| Pretty much unlimited in any way; memory is allocated dynamically, so | |
| in theory games of any size could be created. Easy-to-use interface; | |
| built-in multimedia support for WAV and various image file formats | |
| (including BMP, GIF, and JPEG); save/load facility; text formatting; | |
| built-in support for items, characters, objects, selections, string and | |
| numeric variables, conditional statements, and user-defined commands; | |
| error checking. Its built-in library isn't as advanced as some of the | |
| Tier (i) systems in terms of IF capability, but it allows more | |
| graphical Win32 power than them. Users can use QDK, the Quest | |
| Development Kit, to create Quest games without any programming. | |
| Documentation and Game Sources | |
| QDK and ASL reference plus small sample game included in Quest | |
| download. Al Bampton's ASL tutorial is also included. | |
| Online Documentation | |
| <http://www.axeuk.com/quest/developer/asl/index.htm> | |
| Web Page | |
| Quest Home Page | |
| <http://www.axeuk.com/quest/index.htm> | |
| Al Bampton's Tips and Resources for Quest | |
| <http://members.aol.com/agbampton/html/qtips.html> | |
| Debugging Features | |
| All variables can be watched via debug windows, and a log file can be | |
| optionally saved. | |
| Source | |
| Not available. | |
| Licence | |
| Quest may be used free of charge, but you are encouraged to upgrade to | |
| Quest Pro for UK�15.95 (US$24.95) via credit card or cheque. Quest Pro | |
| includes the full version of QDK plus QCompile which allows you to | |
| encrypt your games so the code cannot be read or edited. The free | |
| version of Quest is capable of running games from both unencrypted ASL | |
| source code and encrypted "CAS" code files. | |
| -------------------------------------------------------------------------------- | |
| SUDS | |
| <http://www.sudslore.com/> | |
| Version/Release | |
| SUDS Player: 2.3.2.0. SUDS Constructor: 2.3.1.0. | |
| Author | |
| Andy Elliot (support@sudslore.com). | |
| Platforms | |
| Windows 9X/98/NT/2000/XP. | |
| Support | |
| The author will continue to improve and develop SUDS for the | |
| foreseeable future in the light of feedback and functionality requests, | |
| both of which are welcome. Andy endeavours to respond to all queries | |
| and suggestions within a maximum of five business days. | |
| Programming Knowledge | |
| Aimed at writers rather than coders, SUDS requires little or no | |
| programming knowledge, although it does demand the ability to think | |
| logically. SUDS enables users to build sophisticated event-driven | |
| procedures via a simple Cut and Paste mouse-driven interface. Syntax | |
| and construction of commands is handled automatically by the program. | |
| Design environment is modelled on object-oriented development packages | |
| such as Visual Basic. | |
| Features/Limitations | |
| Games are designed in the SUDS Constructor, which outputs the game as a | |
| single file. Games can be installed and run in the SUDS Player without | |
| compilation. Games are wholly text, although a "welcome" graphic can be | |
| specified. However, keyboard entry is replaced with a simple | |
| cursor-driven mouse interface: there is no parser and games consist of | |
| putting together words on the screen, like in the LucasArts graphical | |
| adventure games. A graphical map is automatically maintained during | |
| play, and players can add their own notes to each location. | |
| Event-driven procedures are triggered by player actions or | |
| between-turns housekeeping. There is a dedicated conversation interface | |
| with a drag-and-drop tree editor. The map editor is wholly graphical. | |
| You can have up to 32767 of each of Objects, Scenery, People, and | |
| Rooms. The map size is unlimited. Unfortunately, because code is not | |
| edited as textual source, you cannot export code to share with others. | |
| Documentation and Game Sources | |
| In addition to the documentation packaged with the applications, FAQs | |
| and information on upgrades are available on the SUDS website. | |
| Online Documentation | |
| Included in the SUDS download. | |
| Web Page | |
| SUDS | |
| <http://www.sudslore.com/> | |
| Debugging Features | |
| The SUDS Player contains fully integrated debugging features which can | |
| be enabled from the Constructor for a game. These include the ability | |
| to report on the attributes of every game item and all system | |
| variables, to move the player to any location, and to take or drop any | |
| item. An in-game procedure monitor gives the ability to view | |
| procedures, step through code, skip over individual code lines or | |
| procedures, evaluate conditions, and pre-decide the result of decision | |
| points. | |
| Source | |
| Borland Delphi (Object Pascal) using a proprietary database. | |
| Licence | |
| The SUDS Player and Constructor are both freeware: there is no fee for | |
| installation or use. SUDS-format games may be distributed for profit at | |
| the author's discretion. | |
| Quick Pros and Cons | |
| If you want a Windows-only program with a good IDE and dialog-box-based | |
| programming instead of text-based programming, and you do not mind that | |
| SUDS players converse with your game by a simple point and click | |
| interface, then SUDS is probably the system for you: it shows every | |
| sign of being written with care for that purpose. The main | |
| disadvantages in comparison to more traditional systems are that it is | |
| a Windows-only program and doesn't have a parser-based user interface | |
| like most IF. | |
| -------------------------------------------------------------------------------- | |
| ADRIFT | |
| </if-archive/programming/adrift/> | |
| Version/Release | |
| 3.90 | |
| Author | |
| Campbell Wild (campbell@adrift.org.uk). | |
| Platforms | |
| Windows 95/98/NT4. | |
| Support | |
| The author enthusiastically supports ADRIFT and is actively developing | |
| and improving the system. | |
| Programming Knowledge | |
| ADRIFT does not require previous programming experience (though the | |
| ability to think logically and in depth is required.) Games are | |
| developed in a forms-based graphical user interface so no 'programming | |
| code' needs to be written. | |
| Features/Limitations | |
| Games are written entirely within the easy-to-use GUI forms environment | |
| called the ADRIFT generator. Has multimedia support for the addition of | |
| both images and sounds to a game. The ADRIFT interpreter automatically | |
| builds a game map during play. While 'programming' in the ADRIFT system | |
| is fast and straightforward because of the well-designed GUI | |
| environment it naturally cannot match the flexibility of the code-based | |
| systems (but the inflexibility is not necessarily a problem as | |
| ready-made structures provided within ADRIFT meet all the requirements | |
| needed for most text adventure games.) | |
| Documentation and Game Sources | |
| A Tutorial (in HTML format) and sample games are available for download | |
| at the website. | |
| Online Documentation | |
| The Tutorial can be read online at | |
| <http://www.jcwild.pwp.blueyonder.co.uk/tutorial/< | |
| Web Page | |
| ADRIFT Homepage | |
| <http://www.adrift.org.uk> | |
| Debugging Features | |
| A graphical outline of 'task dependancies' is available within the | |
| ADRIFT generator GUI. The runtime interpret, the 'Runner', includes a | |
| 'debugger' which allows the author to view the current status of | |
| objects, characters etc and make live changes to the status values. | |
| Source | |
| Written in Visual Basic 6. Not generally released to the public. | |
| Licence | |
| Freeware. Both the Generator and 'Runner' software can be freely | |
| distributed and there are no restrictions on distribution or commercial | |
| release of games written with ADRIFT. | |
| Quick Pros and Cons | |
| ADRIFT provides an approachable dialog-box-based programming | |
| environment which may appeal to aspiring IF authors without programming | |
| experience. Sufficient capabilities are provided within that | |
| environment to capabably produce conventional text adventure games, | |
| optionally with multimedia enhancements. The main disadvantage, besides | |
| the inherent limitations of a forms-based programming interface is that | |
| the games can only be played under the various MS Windows operating | |
| systems. | |
| -------------------------------------------------------------------------------- | |
| PAWS | |
| Version/Release | |
| 1.0 | |
| Author | |
| Wolf (wolf@one.net). | |
| Platforms | |
| Any OS supporting the Python language (includes MS Windows, Apple Mac, | |
| Linux, MSDOS.) | |
| Support | |
| Actively supported by the PAWS author. | |
| Programming Knowledge | |
| The PAWS language is intended to be fairly easy for beginners to pick. | |
| Setting up the Python environment may not be all that easy on some | |
| systems. | |
| Features/Limitations | |
| PAWS is the Python Adventure Writing System. It is a set of libraries | |
| that sits on top of the Python scripting language | |
| <http://www.python.org/> to let you write IF. | |
| Documentation and Game Sources | |
| Available at the PAWS website | |
| Online Documentation | |
| Tutorial at website | |
| Web Page | |
| <http://w3.one.net/~wolf/PAWS.shtml> | |
| Debugging Features | |
| PAWS has a debug mode which lets you view and change variables while | |
| the game is running, you can disable debugging in the game when you | |
| release it. | |
| Source | |
| Written in Python, source is included and is heavily commented to aid | |
| authors who want to explore the code. | |
| Licence | |
| Freeware. | |
| Quick Pros and Cons | |
| Games can be developed and played a lot of systems because the Python | |
| language has been widely ported. The size of the Python language | |
| download is a disincentive for people to play PAWS games though. | |
| -------------------------------------------------------------------------------- | |
| 4.4.3: Tier (iii) | |
| Little current popularity, these are not generally popular; they often cater to | |
| only a small number of platforms (usually only MS-DOS) and may be less advanced | |
| or more specialized (such as handling graphics- or multimedia-based games) than | |
| systems in the other tiers; games are rarely produced with these systems. | |
| -------------------------------------------------------------------------------- | |
| ADL (Adventure Definition Language) | |
| /if-archive/programming/adl/ | |
| Advent | |
| /if-archive/programming/advent/ | |
| Adventura | |
| /if-archive/programming/adventura/ | |
| Adventure Builder | |
| /if-archive/programming/advbuilder/ MSDOS/Win3.x system. Homepage at | |
| <http://www.accessone.com/~conroy/ab.html> | |
| AdvSys (Adventure System) | |
| /if-archive/programming/advsys/ | |
| AGIFG | |
| /if-archive/programming/agifg/ | |
| Archetype | |
| /if-archive/programming/archetype/ A highly object-oriented, bare-bones | |
| system. | |
| Aventuro | |
| /if-archive/programming/aventuro/ A system in Esperanto. | |
| DROOL (Dave's Reworked Object Oriented Language) | |
| /if-archive/programming/drool/ | |
| Figment | |
| /if-archive/programming/figment/ | |
| GAGS (Generic Adventure Game System) | |
| /if-archive/programming/gags/ The precursor to AGT. | |
| GameScape | |
| /if-archive/programming/gamescape/ | |
| GINAS (Generic Interactive Narrative Authoring System) | |
| /if-archive/programming/ginas/ An experimental, lisp-like system. | |
| GTAC (Graphic Text Adventure Creator) | |
| /if-archive/programming/gtac/ Creates a complete playable adventure | |
| game without losing the friendliness of the Acorn Desktop. | |
| LADS (Levi's Adventure Development System) | |
| /if-archive/programming/lads/ Produces games with a distinct "Scott | |
| Adams" look and feel. The state of the art of IF authoring systems is | |
| today well beyond this, yet LADS is still a workable, if primitive, | |
| system in its own right. | |
| NMP (NM Parser) | |
| /if-archive/programming/nmp/ A Spanish-language system. | |
| OASYS | |
| /if-archive/programming/oasys/ | |
| Questmaker | |
| /if-archive/programming/questmaker/ | |
| Rexx-Adventure | |
| /if-archive/programming/rexx-adventure/ For OS/2, a freeware | |
| object-based adventure creation with a GUI interface. Webpage at | |
| <http://www.io.com/~desantom/rad.html> | |
| SINTAC (Sistema Integrado de Creacion de Aventuras Conversacionales) | |
| /if-archive/programming/sintac/ A Spanish-language system. | |
| -------------------------------------------------------------------------------- | |
| 4.4.4: Unprocessed | |
| These systems are either new, or are experimental or beta-release systems and | |
| as such may not have the popular and immediate appeal of systems in other | |
| tiers. | |
| IAGE http://www.robin.rawsontetley.btinternet.co.uk/_Iage The Internet | |
| Adventure Game Engine (an open-source system in development) | |
| JACL /if-archive/programming/jacl/ | |
| -------------------------------------------------------------------------------- | |
| A NOTE ON AUTHOR SUPPORT: While most authors are happy to accept email | |
| concerning their system please remember that reading and responding to email | |
| does take time. While bug reports, requests/suggestions for new features, etc. | |
| should be sent to the author directly, questions on how to implement a | |
| particular feature or operate a particular function should go to | |
| rec.arts.int-fiction, where time is not an issue. Bug reports for the authoring | |
| systems should probably be both emailed to the author, who can fix them, and | |
| posted to raif, so that other readers can realize that the bug exists. (Bug | |
| reports for games other than the Infocom ones should not be posted to | |
| rec.games.int-fiction, but rather emailed to the author. A bug in an authoring | |
| system can create bugs in other people's games; a bug in a game can't do that.) | |
| You should also realize that, especially if you are not paying for the system, | |
| the system authors have no "responsibility" to the community to update their | |
| program. There was once a nasty stir on raif in which a poster ordered Graham | |
| Nelson, who had been unable to read the newsgroup for a while for various | |
| reasons, to update Inform. Graham and the other authors have put a lot of hard | |
| work into their systems, and probably will continue to do so. But if they | |
| wanted to stop, they could. (After many messages asserting that point were | |
| posted, the thread died down. This was shortly followed by a new version of | |
| Inform.) | |
| A NOTE ON LICENSING: Games written with some authoring systems, notably Hugo, | |
| may not be distributed for money (shareware or commercial) without the system | |
| author's express consent. You should always read and abide by any and all | |
| licensing details relating to the system which you choose. If you do not like | |
| the licensing arrangements, use a different system. Of course, system authors | |
| are (usually) good human beings, and will probably say yes. | |
| -------------------------------------------------------------------------------- | |
| 4.5: What is Glk? | |
| It is a standard for text-based I/O, designed by Andrew "zarf" Plotkin. | |
| Complete information can be found at <http://www.eblong.com/zarf/glk/>. | |
| Here is a brief description of it, plagiarized from LucFrench and Zarf's | |
| descriptions on raif: | |
| GLK is a spec for porting Input/Output code across platforms. In order to | |
| understand why it's necessary, one must understand a bit about I/O. | |
| A Unix machine has a different way of printing to the screen than a Mac, since | |
| one is primarily text based, and the other is a graphical windowing enviroment. | |
| As such, they have two *very* different ways of outputting data, particularly | |
| for some of the special effects that many high level IF systems need (e.g., a | |
| status line, picture, color, etc.). | |
| So, porting the I/O can be difficult. What Glk attempts to do is specify a set | |
| of calls to the Glk system that allows for easy porting across multiple | |
| platforms. | |
| The Glk calls are intended to be not only portable, but to be *easily* | |
| portable: abstracted in such a way that they give the interpreter maximum | |
| flexibility. This allows interpreters on different platforms to take advantage | |
| of particular UI features. | |
| A port of Dungeon, a scripting language, interpreters for the major IF | |
| languages, and a few demos have been ported to Glk. If you are writing an IF | |
| interpreter or similar program, consider using Glk. It'll make everyone happy. | |
| -------------------------------------------------------------------------------- | |
| 4.6: What are VILE 0 ERRORS FROM HELL, and how should I avoid them in Inform? | |
| It is illegal on the ZMachine that Inform compiles to to do any of the | |
| following when x == 0 (nothing): | |
| child(x), parent(x), sibling(x), etc | |
| if (x has attribute) | |
| if (x.property == ...) | |
| give x attribute | |
| x.property = ... | |
| move x to y | |
| move y to x | |
| remove x | |
| ... or pretty much anything else which assumes x is a legitimate object. | |
| Some interpreters will ignore this, and either end up not messing up, or crash. | |
| In the former case, this means that you will falsely believe there is nothing | |
| wrong with your game. In the latter case, it, well, crashes. | |
| MaxZip, and some other Zip interpreters, will check and warn at these illegal | |
| statements. | |
| There is a bug in the Inform library (version 6/7) that will cause this in the | |
| HasLightSource function. You should patch this immediately if for some reason | |
| your are still using library 6/7. | |
| In the library file parserm, find the function HasLightSource. Near the top, | |
| there are the lines: | |
| if (i has enterable || IsSeeThrough(i)==1) | |
| { objectloop (i in i) | |
| if (HasLightSource(i)==1) rtrue; | |
| } | |
| This should be | |
| if (i has enterable || IsSeeThrough(i)==1) | |
| { objectloop (j in i) | |
| if (HasLightSource(j)==1) rtrue; | |
| } | |
| In other words, change two i's to j's. | |
| Library 6/8 and later fixes this and a few other uncommon V0EsFH. | |
| Much more information on the subject of VILE 0 ERRORS FROM HELL can be found at | |
| <http://www.eblong.com/zarf/vileerror.html>, thanks to Andrew Plotkin, who made | |
| everyone aware of this problem and helped with this article. | |
| As of Inform 6.20, VILE 0 ERRORS FROM HELL and other common Inform problems are | |
| caught at run-time by compiled-in checking routines. There is much rejoicing! | |
| Unfortunately, if this "strict" mode is turned off, Inform 6.20 (though not the | |
| newer 6.21 which should be used instead of 6.20) creates buggy code; and | |
| Library 6/8 in strict mode is too large to fit in a module, meaning that you | |
| can't create strict library modules. Inform 6.20 should *not* be used due to | |
| its bugs in non-strict mode: either stick with a lower version or upgrade to | |
| 6.21. | |
| Inform 6.20 and up also classifies objectloop errors as V0EsFH and catches | |
| them. These are another common cause of problems in Inform. As most Inform | |
| programmers know, objectloop (x) { ... } will run ... once for each object in | |
| the game, setting 'x' to that object. Here's the problem: | |
| objectloop (foo in someobject) | |
| { | |
| move foo to somewhereelse; | |
| } | |
| You'd think this moves every object in someobject to somewhereelse. But it | |
| doesn't. This is becase objectloop(a in b) {...} is optimized. Instead of being | |
| equivalent to | |
| objectloop(a) | |
| { | |
| if (a in b) | |
| { | |
| ... | |
| } | |
| } | |
| it is the same as | |
| for (a = child(b); a ~= 0; a = sibling(a)) | |
| { | |
| ... | |
| } | |
| In other words, it simply strolls along the object tree. If a is moved out of | |
| b, it will make the next a be equal to the sibling of the current a, which will | |
| not be what you want. | |
| The solution is, for the simple case of "move all children of foo to bar": | |
| while (children(foo) ~= 0) move child(foo) to bar; | |
| For anything more complicated than that, use: | |
| objectloop(a) | |
| { | |
| if (a in b) | |
| { | |
| ... | |
| } | |
| } | |
| The same problem can occur in the little-used 'x from object' and 'x near | |
| object' versions, though not in any other ones (such as 'x ofclass c'). Inform | |
| 6.20 and up will catch these at run-time. | |
| -------------------------------------------------------------------------------- | |
| 4.7: How do I find bug fixes for Inform? | |
| Recent versions of Inform's library and compiler have introduced some annoying | |
| bugs and weird ways of parsing. Though Graham Nelson fixes these in new | |
| versions of the Inform library, between releases you can look at the official | |
| Inform Patch Site at <http://www.inform-fiction.org/patches/index.html>, | |
| maintained by Adam Cadre. | |
| -------------------------------------------------------------------------------- | |
| 4.8: What editors can I use to write IF? | |
| Using a programmer's editor rather than a general-purpose text editor or a | |
| wordprocessor is a very helpful aid to writing IF. There are many text editors | |
| that are useful for writing IF. The following list describes some of them. | |
| There are also some text editors and 'integrated development environments' | |
| specifically written to work with a particular IF language. These are also | |
| listed below. If you have any corrections or suggestions, feel free to email | |
| them to me. Most of the following descriptions were written by others; I'd like | |
| to thank everyone who helped me. However, I edited them, so any incorrect | |
| statements are probably my fault. | |
| * DOS/Windows (Win32-only (Windows 95, 98, and NT) unless specified) | |
| * Inform | |
| * IF-IDE | |
| * Author: Mike Perlini | |
| * http://www.geocities.com/mjperlini/ | |
| * IF-IDE is a text editor for Inform programmers.It features dynamic | |
| syntax highlighting, a semi-dynamic object, class and function | |
| browser and programmatic compilation and execution of z-code files. | |
| * Inform Explorer | |
| * Author: Paul de Valmency | |
| * http://www.logicshopltd.co.uk/ie/ | |
| * Inform Explorer is a text editor written specifically to cater for | |
| Inform story source files. It features syntax highlighting and a | |
| visual representation of the objects and functions that make up the | |
| story file. | |
| * Visual Inform | |
| * Author: David Cornelson | |
| * http://www.iflibrary.com/vinform/ | |
| * Visual Inform is an integrated development environment. "VI" is a | |
| complete and useable programming environment for developing Inform | |
| games in a more visual way than a traditional text editor. "VI" | |
| provides on-screen forms for defining the attributes, properties and | |
| descriptions for game objects and locations. | |
| * Informer | |
| * Author: William J. Schlaer | |
| * /if-archive/programming/editors/InEdit10.zip | |
| * Informer is a text editor that can generate Inform code for objects, | |
| locations, routine, etc. It includes Inform syntax highlighting; it | |
| can run the Inform compiler from within the editor and captures error | |
| messages for viewing; can view code as graphical object tree or | |
| location map. | |
| * Inform IDE | |
| * Author: Andrew Bault | |
| * <http://www.tiac.net/users/ajb/software.html> | |
| * Availability: free | |
| * With Inform IDE, instead of creating your program in a text editor as | |
| usual, you write code in a "browser" which shows the relationship of | |
| pieces of code to one another. You can import and export code with | |
| the normal text version of Inform source code. You can browse and | |
| modify objects and functions within hierarchical or alphabetical | |
| trees. | |
| * IMForm | |
| * Author: Tim Middleton | |
| * /if-archive/programming/editors/imfb01.zip | |
| * IMForm is an ambitious and pretty IDE for Inform. However, it is | |
| unfinished. It is not recommended for use in writing Inform games, | |
| but is interesting to look at for anyone thinking about writing an IF | |
| IDE. It has been uploaded with source code for anybody who wants to | |
| to complete the project. | |
| * TADS | |
| * TADS File Editor | |
| * Author: Satan's Mutt | |
| * /if-archive/programming/editors/tfe.zip | |
| * TFE is a conventional text editor with TADS syntax highlighting. It | |
| can run the TADS compiler and capture the compiler output to an | |
| editor window. | |
| * General | |
| * Ultraedit | |
| * Author: Ian David Mead | |
| * <http://www.ultraedit.com/> | |
| * Platforms: Win32 and Windows 3.1 | |
| * Availability: $30 shareware | |
| * Ultraedit is a programmer's text editor with configurable syntax | |
| highlighting that can be set up for any IF language. You can run a | |
| compiler from within editor and capture its output to a window for | |
| viewing. It has macros. You can create your own syntax highlighting | |
| config files. Giovanni Riccardi has created an Inform config file, | |
| available at /if-archive/programming/editors/ueditinf12.txt . Gunther | |
| Schmidl has created a Hugo config file, available at | |
| <http://x39.deja.com/getdoc.xp?AN=503974273&fmt=text>. Theodore Hwa's | |
| TADS config file is available at | |
| /if-archive/programming/editors/ueditTADSwordfile.txt . | |
| * Programmer's File Editor (PFE) | |
| * Author: A. Phillips | |
| * /if-archive/programming/editors/pfe101i.zip (Win32) | |
| * /if-archive/programming/editors/pfe101.zip (Windows 3.1) | |
| * Availability: freeware | |
| * PFE is a programmer's text editor. It can run a compiler and capture | |
| output from it. It has macros. It is highly configurable. It matches | |
| paired characters. It remembers your cursor position in previous | |
| documents. It has no syntax highlighting, however. It interacts well | |
| with other programs, and can execute them, passing them the current | |
| file. | |
| * Note: the author of PFE decided to stop developing PFE in October | |
| 1999; copies of PFE for both 32-bit and 16-bit Windows can now be | |
| found at the IF-Archive. | |
| * TextPad | |
| * Author: ? | |
| * <http://www.textpad.com/> | |
| * Availability: $27 shareware | |
| * Platforms: Win32 and Windows 3.1 | |
| * TextPad is a highly configurable text editor focused on programming. | |
| Some of its features include automatic indentation; a changeable tab | |
| size (4 or 8? The tab size Holy War continues...); word-wrap; macros | |
| (very handy sometimes); a "clip library" for saving related macros | |
| (many user-created clip libraries are available for download from the | |
| TextPad website); the ability to compare two files (like Unix diff); | |
| a user-extensible Tools menu where you can enter custom commands, | |
| such as calling a compiler or syntax-checker; the ability to sort | |
| lines in a file according to various user-definable criteria; | |
| line-break reformatting (a feature that is immensely useful when | |
| using cross-platform text files); and block highlighting and copying. | |
| * FED | |
| * Author: Shawn Hargreaves | |
| * <http://www.talula.demon.co.uk/fed/> | |
| * Availability: Free (open source) | |
| * Platforms: MS-DOS, Linux | |
| * FED is an open-source folding text editor. It has an intuitive user | |
| interface, syntax highlighting, the ability to fold blocks of text | |
| out of sight, multi-level undo and redo, flexible wordwrap, binary | |
| and hex editing modes, macro recordings, and more. Plus, it has a | |
| built-in tetris game and screensaver: what more do you want? | |
| * Configuration files for TADS and ALAN by Stephen Griffiths are on the | |
| IF-Archive at /if-archive/programming/editors/alan.fed and | |
| /if-archive/programming/editors/tads.fed . | |
| * Multi-Edit | |
| * Author: American Cybernetics | |
| * <http://www.amcyber.com/> | |
| * Availability: $199 commercial | |
| * Multi-Edit is a powerful text editor designed for use in multiple | |
| languages. It is able to determine which of its customized tools to | |
| use based on the language of your file. It integrates well with other | |
| programming tools including version control. It has a powerful | |
| extension language with the ability to call any DLL function | |
| including the Win32 API. It also contains many more powerful | |
| text-editing features. The $199 price includes a printed manual; you | |
| can also just download the executables from $129. Douglas Harter's | |
| Hugo template can be found on the IF-Archive at | |
| /if-archive/programming/editors/hugo.tpt . | |
| * UED | |
| * Author: ? | |
| * <http://www.onlinebible.simplenet.com/> (see below) | |
| * Platforms: MS-DOS | |
| * Availability: freeware, probably | |
| * UED (not to be confused with UltraEdit) is a simple yet powerful text | |
| editor for DOS. It is distributed with Online Bible (which is | |
| freeware and available from the above URL). Since OB is freely | |
| redistributable, the author of this article assumes that UED is also; | |
| anyone who wants a copy can get it by emailing 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 | |
| * Inform | |
| * Yonk | |
| * Author: Scott Forbes | |
| * http://www.ravenna.com/~forbes/yonk | |
| * An integrated development environment for writing Inform games on the | |
| Macintosh | |
| * ALAN | |
| * Starter for ALAN | |
| * Author: Tony Houlbrooke | |
| * /if-archive/programming/alan/Starter.hqx | |
| * Starter for ALAN is a Hypercard application that can help lay out | |
| your location map and objects and then generate Alan source code from | |
| it. It is not a real editor, though, and you need to edit the code | |
| with an editor after creating a skeleton with this. | |
| * TADS | |
| * TADS Template | |
| * Author: Jared L. Reisinger | |
| * /if-archive/programming/tads2/utils/tads-template-0.9.sit.hqx | |
| * TADS Template is a Hypercard application that can help lay out your | |
| location map and objects and then generate TADS source code from it. | |
| It is not a real editor, though, and you need to edit the code with | |
| an editor after creating a skeleton with this. | |
| * General | |
| * MPW (Macintosh Programmer's Workshop) | |
| * Author: Apple Computer | |
| * <http://developer.apple.com/tools/mpw-tools/> | |
| * MPW has syntax-coloring support for Inform. It's a rather nice editor | |
| in its own right, and because it's also a Unix-like shell | |
| environment, it's (almost) totally customizable. | |
| * Alpha | |
| * Author: Pete Keleher | |
| * <http://alpha.olm.net/> | |
| * Availability: $30 shareware | |
| * The Alpha editor is a very powerful Mac editor that uses the Tcl | |
| language for customization. It has an emacs-like feel, but it is not | |
| an emacs port and uses Tcl instead of LISP. An Inform "mode" can be | |
| found at <http://www.fastlane.net./~russellm/informmode.html>. | |
| * BBEdit and BBEdit Lite | |
| * Author: Bare Bones Software | |
| * <http://www.barebones.com/> | |
| * Availability: $117 commercial (with some other deals); Lite version | |
| free | |
| * BBEdit is a powerful, easy to use Mac text editor. It has many | |
| features that make it easy to edit text, especially for programming | |
| and writing HTML. The full version is commercial; a fully functional | |
| "Lite" version is available for free and is an excellent text editor | |
| in its own right (this article is being written in BBEdit Lite). | |
| BBEdit Lite does not have as many advanced features as the full | |
| BBEdit, though. (Do not confuse BBEdit Lite, which can be found on | |
| Bare Bones' "Free Stuff" page, with the BBEdit Demo, which is a | |
| crippled version of the full BBEdit and should only be used to try | |
| out the full BBEdit's features for free.) | |
| * Unix | |
| * General (see also FED under Windows) | |
| * emacs (GNU emacs and XEmacs) | |
| * <http://www.emacs.org/> | |
| * Platforms: Unix, Windows; others (such as Mac) in old versions | |
| * Availability: GPL | |
| * emacs shares with vi the dubious distinction of being the most | |
| (in)famous UNIX text editor around. This reviewer doesn't know the | |
| differences between GNU Emacs (the "official" Emacs, if such a title | |
| can be claimed) and XEmacs off-hand, but XEmacs has most of the | |
| features of GNU Emacs with possibly a few more. Some of the features | |
| that make the various emacsen useful for writing IF are color syntax | |
| highlighting; the fact that it is completely user-configureable using | |
| the programming language Lisp; the available emacs editing "modes" | |
| for TADS and Inform, which can be found in the programming/editors | |
| directory of the IF Archive; and many more features related to | |
| general text editing and programming such as the ability to open | |
| multiple files and auto-indent, but listing all of emacs' features | |
| would make this review far too long. Suffice it to say that if you | |
| want it, emacs can probably do it. And if you have a need that hasn't | |
| already been thought of, you can take care of it yourself by writing | |
| some Lisp code. Though Lisp's detractors (this reviewer among them) | |
| claim that Lisp stands for "Lots of Irritating Superfluous | |
| Parentheses" and find it hard to read at best, some people (who must | |
| have masochistic tendencies) like Lisp. If you happen to be one of | |
| them, great, and please don't flame your humble reviewer too hard... | |
| :-) Seriously, though, you don't have to know a thing about Lisp to | |
| *use* emacs, just to expand its capabilities. You will probably find | |
| that emacs has all the features you need. emacs works fine in text | |
| mode (aka console mode); you can also use XEmacs in X Windows. emacs | |
| comes with complete documentation. Rupert Lane's emacs mode for | |
| Inform can be found at /if-archive/programming/editors/inform-mode.el | |
| ; Stephen Granade's emacs mode for TADS is at | |
| /if-archive/programming/editors/tads-mode.el . | |
| * vi and offspring | |
| * <http://www.vim.org/> for vim | |
| * <http://elvis.the-little-red-haired-girl.org/> for elvis | |
| * Platforms: many | |
| * Availability: varies | |
| * vi is the original visual editor for Unix. There are many clones and | |
| extensions of it, such as elvis and vim. Inform and TADS syntax | |
| highlighting files are included with the Vim distribution. | |
| * Acorn RiscOS | |
| * General | |
| * !Zap | |
| * Availability: Open Source | |
| * <http://www.zap.uk.eu.org/> | |
| * !Zap is the text editor of choice of Graham Nelson, the author of | |
| Inform. It is highly configurable and editable. Graham has written a | |
| syntax coloring file for Inform for it. | |
| * Amiga | |
| * General | |
| * GoldED | |
| * Author: Dietmar Eilert | |
| * <http://members.tripod.com/golded/golded.htm> | |
| * The GoldED Studio editor core offers all the functions you can expect | |
| from a modern editor. You get unlimited configurable undo and redo, | |
| configurable syntax highlighting, templates, folding, automatic | |
| backup creation, macro recording and support for a script language | |
| (Rexx). Block functions include support for columnar blocks. Advanced | |
| layout fuctions provide constant reformatting and word wrap while you | |
| are typing. Drag and Drop is supported, so text can be moved with the | |
| mouse. Scrolling is exceptionally fast even on slow Amigas. Optional | |
| input aids include IntelliSense (context-sensitive completion of | |
| words) and AutoCase (automatic case correction). At the end of a day, | |
| you can use the session management functions to save the current | |
| state of your work. | |
| -------------------------------------------------------------------------------- | |
| 4.9: What tools and utilities are available? | |
| Scott2Zip | |
| /if-archive/scott-adams/ | |
| Description | |
| Bjorn Gustavsson (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. | |
| -------------------------------------------------------------------------------- | |
| 4.14: Which IF system should I use? | |
| This is probably the most frequently asked question on rec.arts.int-fiction. | |
| Every answer has been different. | |
| The truth of the matter is that there isn't much that TADS can do but Inform | |
| can't or vice versa, and Hugo is just about as good as the top two; it is just | |
| that some things require a bit more work than others on some systems. ALAN is | |
| also not a bad choice; it is not as powerful as the other three but some have | |
| found it easier to use. | |
| It has been commented that the most difficult thing to learn in any IF language | |
| is not the syntax of the language but its world model. Knowing the | |
| peculiarities of the language is easy compared to understanding the | |
| interactions between the objects of your game world. If you can write IF at | |
| all, then you can certainly master any of the major languages. Many have. | |
| If you are still concerned about the syntax of the various languages, you can | |
| check out Roger Firth's "Cloak of Darkness" at | |
| <http://homepages.tesco.net/~roger.firth/cloak/>. This project has the source | |
| code for a simple game in many of the main IF languages, complete with comments | |
| on how it works. You can look at it to see a sample of how each language works. | |
| -------------------------------------------------------------------------------- | |
| 4.15: How do I create a standalone executable program out of an IF game? | |
| Often, authors want to create an executable version of their game for a | |
| particular platform so that players do not need to download a separate | |
| interpreter program. While this is not a bad idea, one does need to remember | |
| that the whole reason that most IF systems need interpreters is so that the | |
| game files can be played on just about every type of computer without the | |
| author needing to compile a Windows version, a Mac version, a Unix version, an | |
| Amiga version, etc of every single game. Also, because interpreters are not | |
| bundled with every single TADS, ZMachine, or whatever game on the IF-Archive, | |
| the game files are much smaller. A Windows executable (for example) is | |
| completely useless to a Mac user, and doubly so when at heart the executable | |
| contains a file that could be run on the Mac if available separately. So an | |
| author really should make sure that the platform-independent game file is | |
| available even if she makes a standalone version. | |
| That said, there are several ways to make standalone executables. On Windows, | |
| ZMachine (that is, Inform) games can be made executable with jzexe, a tool | |
| packaged with jzip, and the TADS Workbench comes with a tool that not only puts | |
| TADS games into executable files but even gives them customizable installers. | |
| You can also use maketrx, which is included with TADS, on DOS for games that | |
| don't require Windows, but the full TADS workbench is probably preferable for | |
| recent computers. | |
| On Macs, MaxZip (for Inform ZMachine), MaxTADS, and MacGlk Hugo all allow easy | |
| creation of standalone games. Andrew Plotkin, author of the Max interpreters, | |
| has offered to create a Mac executable of any TADS, Inform, or Hugo game for | |
| authors who don't have access to a Mac; he will even upload it to a popular Mac | |
| ftp site and make it a pretty icon. (The default TADS runtime also can be | |
| binded to a game, but it's better to use MaxTADS.) | |
| On some versions of Unix, jzexe has been reported to work. However, if you're | |
| on Unix, you're probably smart enough to read a README and download the proper | |
| interpreter. | |
| BundleMonkey, by L. Ross Raszewski, is a utility which can be used to package a | |
| gamefile, plus auxilliary files, together with any Windows or MSDOS interpreter | |
| program into a single executable file. | |
| <http://justice.loyola.edu/~lraszews/if/monkey.zip> | |
| -------------------------------------------------------------------------------- | |
| Part 5: Writing IF | |
| -------------------------------------------------------------------------------- | |
| This part of the FAQ answers the question "What has been written on the | |
| subject...". | |
| -------------------------------------------------------------------------------- | |
| 5.1: ...in general? | |
| Several papers on IF design and theory are available from the IF-Archive [What | |
| is the IF-Archive?: 6.1] , in /if-archive/info/ . These are mostly available as | |
| ASCII files, although some also exist in other formats. | |
| Graham Nelson's (graham@gnelson.demon.co.uk) "The Craft of Adventure" | |
| (available from the IF-Archive) is a treatise on writing interactive fiction. | |
| This is currently in its 2nd edition and is also available as TeX source. HTML | |
| versions are available from "The TADS Page" and <http://www.inform-fiction.org> | |
| in PDF or HTML formats. | |
| Gerry Kevin Wilson (whizzard@pobox.com) has thoughtfully published his views on | |
| designing and writing interactive fiction in "Whizzard's Guide to Text | |
| Adventure Authorship" (available from the IF-Archive). There are also two | |
| supplementary updates to this document. | |
| Gil Williamson's (gil@cix.co.uk) book "Computer Adventures, The Secret Art" is | |
| now available as "literary freeware" (at | |
| <http://www.cix.co.uk/~gil/data/ca-tsa.htm>). This is primarily a "how to..." | |
| manual, and although many of the technical details are several years out of | |
| date, the book contains much of interest to the aspiring interactive fiction | |
| author. | |
| The Oz Project, directed by Joseph Bates at the Carnegie-Mellon School of | |
| Computer Science, is developing technology for high quality interactive | |
| fiction. Focusing on the simulations behind the interface (which they call the | |
| deep structure of virtual reality) their goal is to provide users with the | |
| experience of living in a dramatically interesting simulated world populated | |
| with simulated people. | |
| Michael St. Hippolyte's (mash@interport.net) paper, "A Plot Beyond A Line: New | |
| Ways to Be Nonlinear" <http://www.users.interport.net/~mash/nonlin.html>) looks | |
| at the problems of linearity in interactive fiction, and suggests some possible | |
| solutions. | |
| David A. Graves's (dag@cup.hp.com) three papers, "Second Generation Adventure | |
| Games" (which focuses on the physical world model, parsing, text generation, | |
| and simple agent planning), "Bringing Characters to Life" (a summary of the | |
| progress in Artificial Personality during the 70's and 80's), and "Plot | |
| Automation" based on his presentation at the Computer Game Developer's | |
| Conference in 1991. All of his papers are available from the IF-Archive. | |
| Authoring system manuals may be of interest, even if you do not use the | |
| particular system. Look for these in the IF-Archive, in the directory | |
| /if-archive/programming/<authoring system name>/manual/, where <authoring | |
| system name> is, for example, tads. Also, there is online documentation | |
| available for several authoring systems, as noted under "[Online | |
| Documentation]" in the authoring system records [What authoring systems are | |
| available?: 4.4] . | |
| The TADS Manual contains useful advice on designing an interactive fiction game | |
| (chapter 6), some of which is TADS-specific, and some honest information on the | |
| limitations of the text adventure format (appendix B). | |
| The Inform "Designer's Manual" details the step-by-step implementation of a | |
| small game as a tutorial throughout the manual (this is, of course, | |
| Inform-specific). | |
| For further references try Stephen Granade's (sgranade@phy.duke.edu) | |
| "Interactive Fiction Bibliography" (1997), available from the IF-Archive in | |
| /if-archive/info/if-bibliography.txt . | |
| -------------------------------------------------------------------------------- | |
| 5.2: ...of the art of writing NPCs? | |
| Phil Goetz (goetz@cs.buffalo.edu) has made available two of his papers: his | |
| overview of computerized interactive fiction (in DVI, LaTeX, or HTML) and his | |
| notes on using SNePS (Semantic Network Processing System, a knowledge | |
| representation and reasoning system). Both can be found on his web page | |
| <http://www.cs.buffalo.edu/~goetz/>. | |
| Dancer's (root@brisnet.org.au) paper "'Smart' NPCs in Interactive Fiction" | |
| <http://www.brisnet.org.au/~dancer/smartnpc.html> gives theoretical and | |
| practical advice on writing believable NPCs. [This link seems to be defunct. | |
| dancer.brisnet.org.au seems to exist, but is unreachable.] | |
| (See also: David Graves' "Bringing Character To Life" in [ ...in general?: 5.1] | |
| .) | |
| -------------------------------------------------------------------------------- | |
| 5.3: ...of parsing? | |
| John Holder's "Parser Talk" gives some basics on how a good parser should work. | |
| You can get it at | |
| <http://members-http-4.rwc1.sfba.home.net/j-holder/intfiction/parser.html>. | |
| (See also: David Graves' "Second Generation Adventure Games" in [ ...in | |
| general?: 5.1] .) | |
| -------------------------------------------------------------------------------- | |
| 5.4: ...of plot/story in interactive fiction? | |
| Paul Munn's senior project paper "The Application of Directed Acyclic Graphs to | |
| First Generation Interactive Fiction" (available from the IF-Archive) contains | |
| ideas on the use of DAGs in interactive fiction and a TADS implementation of | |
| this, as well as information on the evolution of IF, past and future. | |
| "The Stage as a Character: Automatic Creation of Acts of God for Dramatic | |
| Effect" <http://rhodes.www.media.mit.edu/people/rhodes/Papers/aaai95.html>), by | |
| Bradley Rhodes (rhodes@media.mit.edu) and Pattie Maes (pattie@media.mit.edu), | |
| considers plot control in a multiple player environment. | |
| (See also: David Graves' "Plot Automation", and Michael St. Hippolyte's "A Plot | |
| Beyond A Line: New Ways to Be Nonlinear" in [ ...in general?: 5.1] .) | |
| -------------------------------------------------------------------------------- | |
| 5.5: ...of the educational value of interactive fiction? | |
| Brendan Desilets' (bdesilets@mediaone.net) series of articles on interactive | |
| fiction as a teaching aid for middle school pupils is available from his Web | |
| page, "Teaching and Learning With IF" | |
| <http://people.ne.mediaone.net/bdesilets/>. | |
| -------------------------------------------------------------------------------- | |
| Part 6: Internet Index | |
| -------------------------------------------------------------------------------- | |
| -------------------------------------------------------------------------------- | |
| 6.1: What is the IF-Archive? | |
| The IF-Archive is the world's largest and most comprehensive repository of | |
| interactive fiction-related material, including authoring systems, tools, | |
| utilities, papers, references, reprints of magazine articles, and of course | |
| games. The Archive can be accessed via webbrowser or using ftp software at the | |
| following URLs | |
| <http://ifarchive.org/if-archive/> | |
| <ftp://ftp.ifarchive.org/if-archive/> | |
| Remember this URL well. Every file in the IF-Archive, together with a short | |
| description, is listed in the (text) file "Master-Index" or you can search the | |
| IF-Archive at Stephen van Egmond's site at | |
| <http://bang.dhs.org/if/if-archive-search.html>. | |
| Uploads of new material are encouraged. Please send an e-mail to the | |
| maintainers of the archive, David Kinder (davidk@monis.co.uk) and Stephen | |
| Granade (sgranade@phy.duke.edu), describing the purpose of your upload and what | |
| machines it works on. The ftp address for uploads is | |
| <ftp://ftp.ifarchive.org/incoming/>. | |
| (Please note the directory is "/incoming/", its not "/if-archive/incoming/". | |
| The IF-Archive (though not the incoming directory) is mirrored at the following | |
| sites, which may be closer to you and thus faster and easier to reach: | |
| <http://mirror.ifarchive.org/>, USA | |
| <ftp://wuarchive.wustl.edu/doc/misc/if-archive/>, St Louis, USA | |
| <http://wuarchive.wustl.edu/doc/misc/if-archive/> | |
| <ftp://ftp.nodomainname.net/pub/mirrors/if-archive/> (ftp may not work from it | |
| with web browsers), USA | |
| <http://ftp.nodomainname.net/pub/mirrors/if-archive/> | |
| <ftp://www.plover.net/if-archive/>, USA | |
| <ftp://ftp.funet.fi/pub/misc/if-archive/>, Helsinki, Finland | |
| <http://www.planetmirror.com/pub/if-archive/>, Sydney, Australia | |
| <ftp://ftp.planetmirror.com/pub/if-archive/> | |
| <ftp://mirror.holmoak.co.uk/if-archive/>, Winchester, UK | |
| If you cannot find a particular file in the location stated in this FAQ or | |
| elsewhere, be sure to also look in the incoming directory, as well as | |
| /if-archive/unprocessed/ , as it may not yet have reached its permanent home. | |
| This is particularly true for recent additions. | |
| The IF Archive maintainers post periodically to several newsgroups, including | |
| rec.arts.int-fiction, detailing all recent additions to the IF-Archive. Any | |
| files added since the last post are in a file called | |
| /if-archive/new-since-last-post . | |
| -------------------------------------------------------------------------------- | |
| 6.2: What is available via FTP? | |
| Well, as has been mentioned above, the IF-Archive, or one of its mirrors, is | |
| the place to go if you want to download interactive fiction software. Really, | |
| if you can't find what you want there, you probably won't find it anywhere. | |
| The occasional file, especially games, may turn up at some of the larger | |
| platform-specific FTP sites, or on a relevant BBS. | |
| -------------------------------------------------------------------------------- | |
| 6.3: What is available on the World Wide Web? | |
| There are a large number of Web pages devoted to, or at least relevant to, | |
| interactive fiction; too many to all be mentioned here. | |
| The following is a short list of some of the best general interactive fiction | |
| Web pages. Most of the pages mentioned will contain links to other associated | |
| pages. Pages about specific authoring systems are listed in the section 4.4 | |
| "What authoring systems are available." | |
| -------------------------------------------------------------------------------- | |
| Brass Lantern | |
| <http://brasslantern.org/> | |
| Description | |
| Up-to-date news, user guides, interviews, essays and reviews about text | |
| and graphic adventure games. Site is maintained by Stephen Granade | |
| (sgranade@brasslantern.org). | |
| -------------------------------------------------------------------------------- | |
| PARSIFAL | |
| <http://www.firthworks.com/roger/parsifal/index.html> | |
| Description | |
| An excellent collection of IF website links maintained by Roger Firth. | |
| -------------------------------------------------------------------------------- | |
| ifFinder | |
| <http://www.corknut.org/ifFinder/> | |
| Description | |
| A searchable collection of IF website links maintained by Ryan | |
| Freebern. | |
| -------------------------------------------------------------------------------- | |
| GUE Technical Institute | |
| <http://www.guetech.org/> | |
| Description | |
| Up-to-date IF news, links and an IF Archive mirror site. Maintained by | |
| Brian C. Lane. | |
| -------------------------------------------------------------------------------- | |
| Interactive Fiction Scholarship | |
| <http://jerz.setonhill.edu/if/bibliography/index.html> | |
| Description | |
| A collection of academic references related to interactive fiction by | |
| Dennis G Jerz. | |
| -------------------------------------------------------------------------------- | |
| Dennis G. Jerz Interactive Fiction Page | |
| <http://jerz.setonhill.edu/if/index.html> | |
| Description | |
| Introductory IF information and Inform programming resources collection | |
| maintained by university lecturer, Dennis G Jerz. | |
| -------------------------------------------------------------------------------- | |
| Interactive Fiction (IF) Authorship | |
| <http://www.duke.edu/~srg3/IFAuthorship.html> | |
| Description | |
| Links to various articles on interactive fiction design and the TADS | |
| and Inform authoring systems; a number of useful TADS modules. Website | |
| by Stephen Grenade. | |
| -------------------------------------------------------------------------------- | |
| Twisty Pages/Interactive Fiction Criticism and Authorship | |
| <http://bang.dhs.org/if/> | |
| Description | |
| This excellent page, maintained by Stephen van Egmond | |
| (svanegmond@home.com), is an attempt to gather together many resources | |
| (papers, news articles, reviews, etc.) relevant to interactive fiction | |
| authorship and criticism in one place. There are also fully linked HTML | |
| versions of every article in the rec.arts.int-fiction archives. | |
| This page is also notable for the excellent browsable index of the | |
| IF-Archive which Stephen has created. | |
| -------------------------------------------------------------------------------- | |
| Emily Short's Interactive Fiction Page | |
| <http://emshort.home.mindspring.com/> | |
| Description | |
| A collection of thoughtful essays of IF authoring issues and Inform | |
| programming. | |
| -------------------------------------------------------------------------------- | |
| Doe's Interactive Fiction Page | |
| <http://members.aol.com/doepage/> | |
| Description | |
| Homepage of IF'er Doeadeer, includes an IF 'history'; an interesting IF | |
| theory essay; Inform and Glulx information. | |
| -------------------------------------------------------------------------------- | |
| Oz Project Home Page | |
| <http://www.cs.cmu.edu/Groups/oz/> | |
| Description | |
| Scott Neal Reilly (wsr+@cs.cmu.edu) maintains this page. Details of the | |
| Oz Project, including a summary of its aims and links to several Oz | |
| papers (gzipped postscript) are here. | |
| -------------------------------------------------------------------------------- | |
| The IF Collaborator's List | |
| <http://www.ltlink.com/~newsguy/ifcollab.html> | |
| Description | |
| Authoring interactive fiction requires a certain level of competence in | |
| two main disciplines-- namely, computer programming and (prose) | |
| writing. If you do not feel happy with your ability in either one of | |
| these areas then the IF Collaborator's List, maintained by Jay Goemmer | |
| (downbelow@ltlink.com) may be of interest. | |
| -------------------------------------------------------------------------------- | |
| The IF Assistance List | |
| <http://www.geocities.com/Athens/Delphi/7442/if/assistlist.html> | |
| Description | |
| Also, Tom Raymond (sarwyse@yahoo.com) is running an IF Assistance List | |
| to fulfill the same purpose as the IF Collaborator's List -- bringing | |
| together writers, programmers and testers. | |
| -------------------------------------------------------------------------------- | |
| The Inform homepage | |
| <http://www.inform-fiction.org> | |
| Description | |
| Maintained by the author of Inform, Graham Nelson | |
| (graham@gnelson.demon.co.uk) and others, this page has information on | |
| general IF topics as well as Inform-specific resources | |
| -------------------------------------------------------------------------------- | |
| 6.4: Are there any IF-related chat spaces? | |
| You know, there is! It's called ifMUD. Basically, regulars from the IF | |
| newsgroups sit around talking about things ranging from IF writing to hints on | |
| games to general computer stuff to music to monkeys, alpacas, and corn. It's | |
| fun. A sense of humor is required. You probably shouldn't refer to it as a chat | |
| space, though. | |
| You can connect by telnetting to ifmud.port4000.com, port 4000. Since May 1999, | |
| ifMUD has been located at 216.161.202.25 (genesis.epicverse.com) and is | |
| maintained by Mark Musante. This may or may not change, so the port4000 address | |
| is the safest. | |
| Log in as "Guest" with password "guest" and ask a wizard (the list of wizards | |
| can be seen by typing '@users wizards') for help with getting a character. If | |
| you are totally lost, type '@holler HELP ME!'. | |
| More information on ifMUD is in the ifMUD FAQ at | |
| <http://www.ministryofpeace.com/text/ifMUD/FAQ.html>. | |
| The Interactive Fiction Hall of Shame (ifHOS) is a collection of photos of raif | |
| and ifMUD regulars. It can be found at <http://www.davidglasser.net/ifhos/>. | |
| ifMUD's website is at <http://ifmud.port4000.com:4001/>; it contains two | |
| web-based clients for ifMUD, though neither of them are as good as a decent MUD | |
| client. You can also sign up for a character on the website, though there is | |
| nearly always a wizard on the MUD to create one for you. | |
| While at port4000.com, check out <http://www.port4000.com/> for Sadie Hawkins, | |
| a band formed of IF people. It is the official band of this FAQ, by the way. | |
| -------------------------------------------------------------------------------- | |
| 6.5: What 'zines exist? | |
| "XYZZYnews", available in Adobe Acrobat format (.PDF) and plain text, appears | |
| sporadically and usually contains two or three articles on IF design, as well | |
| as sneak previews of upcoming games, spoilers/hints for specific games, and the | |
| occasional game review. Each issue is available from the XYZZYnews Home Page: | |
| <http://www.xyzzynews.com/>. It is edited by Eileen Mullin. | |
| "SPAG" appears irregularly (approximately bi-monthly). Each issue is chock-full | |
| of reviews of interactive fictions, both old and new. See also the "SPAG | |
| mailing list" entry in [Are there any interactive fiction-related mailing | |
| lists?: 6.6] . SPAG's web page is at <http://www.sparkynet.com/spag/>. It is | |
| edited by Paul O'Brian. | |
| A couple of old 'zines can also be found at the IF-Archive, in the | |
| /if-archive/magazines/ directory. | |
| -------------------------------------------------------------------------------- | |
| 6.6: Are there any interactive fiction-related mailing lists? | |
| SPAG mailing list | |
| This list distributes SPAG magazine. The list is intended only for distribution | |
| of SPAG and announcements from the editor. Submissions should be sent directly | |
| to the editor, Paul O'Brian (obrian@colorado.edu). To subscribe send email to | |
| spag-request@df.lth.se with "subscribe <your email address>" (without the | |
| quotes) in the *body* of the message. | |
| -------------------------------------------------------------------------------- | |
| Z-machine mailing list | |
| Intended for discussion of the Z-machine, an abstract machine designed by | |
| Infocom to run their text adventures, topics on this list include details of | |
| Z-machine operation, its interpreters (ZIP, Frotz, etc.), and compilers | |
| producing Z-machine code (i.e., Inform). | |
| To subscribe send email to majordomo@gmd.de with "subscribe z-machine <your | |
| email address>" (without the quotes) in the *body* of the message. | |
| -------------------------------------------------------------------------------- | |
| 6.7: Where can I find Infocom games? | |
| (This question is more appropriate for rec.games.int-fiction, but is answered | |
| for your information here anyway.) | |
| Most of the Infocom games ("The Lurking Horror", "Planetfall", etc.) are *not* | |
| legally available on the Internet. They are still under copyright and may be | |
| bought in various collections from Activision. "Masterpieces of Infocom" | |
| contains all the Infocom games except "The Hitchhiker's Guide to the Galaxy" | |
| and "Shogun". There are other out of print collections such as the "Comedy | |
| Collection" and the "Sci-Fi Collection". Many Infocom games can be found on | |
| auction sites such as <http://www.ebay.com/>. | |
| However, the three "Zork" games are available for free download from the | |
| Activision website at | |
| <http://www4.activision.com/games/zgi/atrium/gameroom/main2.html>. "The | |
| Hitchhiker's Guide to the Galaxy" is available for free Java-based play at | |
| <http://www.douglasadams.com/creations/infocomjava.html> and it is simple for | |
| one to find the ZCode file on that site. | |
| -------------------------------------------------------------------------------- | |
| 6.8: What are those interactive fiction newsgroups again? | |
| There are several newsgroups other than rec.arts.int-fiction which also discuss | |
| some aspect of interactive fiction. | |
| The group to which this document applies, rec.arts.int-fiction, is a discussion | |
| group for those interested in artistic or technical aspects of interactive | |
| fiction, primarily the processes of and problems posed by methods of design and | |
| implementation of interactive fiction, including planning, plotting, | |
| programming, and writing. For further information see part 2 (Introduction to | |
| the Newsgroup). | |
| A second group, rec.games.int-fiction, is primarily for players of extant | |
| interactive fiction games. Posters ask for help with or spoilers for particular | |
| games, post reviews, and ask for information about games, companies, and | |
| people. For further information see the rec.games.int-fiction FAQ (occasionally | |
| posted to the newsgroup, otherwise available from the IF-Archive in the | |
| directory /if-archive/rec.games.int-fiction/ ). | |
| it.comp.giochi.avventure.testuali, is for discussion of IF in Italian. | |
| alt.games.xtrek discusses both writing and playing "adult interactive fiction" | |
| games. "AIF" games generally involve sex or other interaction between | |
| characters not generally seen in mainstream IF. The unofficial FAQ for | |
| alt.games.xtrek is at the website <www.geocities.com/aetus_kane/faq/>. | |
Xet Storage Details
- Size:
- 129 kB
- Xet hash:
- 151b218606f7e45116d4f7b6c38aabba85cab952c38199a6c0120e3b463f3d25
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.