This file is part of the TADS 2 Authors Manual.
Copyright © 1987 - 2002 by Michael J. Roberts. All rights reserved.
Edited by NK Guy, tela design.
TADS is a computer programming language system created especially for writing text adventures. The syntax and structure of the language are designed to make sophisticated adventure games simple and convenient to implement. TADS provides a complete run-time system with all of the features required for a professional adventure game, so the game author can concentrate on his adventure and not on the underlying software.
This section provides an overview of TADS, of text adventures in general, and of this manual.
The first text adventure game was called, appropriately enough, Adventure. The game was an interactive simulation of a cave. The player interacted with the game by typing commands such as north and get rod, and the game responded by describing the consequences of the commands.
In many ways, Adventure was quite rudimentary; each player command was limited to one or two words, and the range of possible actions was quite small. However, Adventure was different from any game that had gone before it, on a computer or otherwise, and it quickly attracted a large following. The game became so popular, in fact, that it spawned an entire genre of games, called adventure games after the first of their kind. As the genre has matured and computer hardware has become capable of supporting more sophisticated programs, many improvements have been made to adventure games, but the basic ideas have remained largely unchanged.
Adventure games appeal to a wide audience. Unlike most arcade-style games, an adventure can be won, and it can take many days, or even weeks or months, to finish a game. At their best, adventure games are rich stories in which a player can become immersed.
Many people are so intrigued with the adventure game genre that theyd like to write adventures themselves. Most people who start writing these games, though, quickly become overwhelmed by the large amount of code that must be written. To write an adventure, a potential author must first write a parser to read player commands, write code to save and restore games, set up data structures to simulate the objects in the scenario, and write many other complicated routines. Not all imaginative people are computer experts, so many potential adventure authors are discouraged from trying their hand at the genre.
Fortunately, the most complex operations that an adventure game must perform are the same, or very nearly so, in every game. Some people interested in adventure game development have discovered that these common operations - displaying messages, checking and setting states of game objects, saving and restoring games, and so forth - could be done by common subroutine libraries that are shared by any number of games. Others have taken this idea further, realizing that a special-purpose language designed specifically for text adventure implementation could simplify game authoring. TADS is such a language.
Authors writing games with TADS will realize several benefits over writing games in a general-purpose language. Some of the advantages of using TADS are:
TADS Version 1 was a very successful and useful piece of software, but theres always room for improvement. We wanted to make TADS even more flexible and powerful, and we wanted to address many of the suggestions that users of version 1 made for enhancing the system. Some of the more important features that are new in version 2 are listed below.
This document is intended for game designers who wish to implement games using TADS. This manual will try to describe the system in such a way that no prerequisites are imposed on a potential author, but youll have the easiest time learning to use TADS if youre already familiar with a traditional structured language such as Pascal or C. Familiarity with the concepts of object-oriented programming will also help.
Heres an overview of the contents of this book:
To use this manual to learn TADS, you should start with Chapters One and Two, but just to get the flavor of the system; dont worry about understanding all of the details right away. You should then proceed to Chapter Three to become familiar with the language. While you are reading this chapter, it may not seem immediately clear how to write an adventure with the language; for now, just try to get an overview of the language. Then, read Chapter Four, which describes how you use the language to write an adventure; this chapter explains the TADS run-time environment in general, and the player command parser in particular. While learning TADS, you will almost certainly find it useful to refer frequently to the lengthy sample game provided with the TADS software, since it has many examples of how the TADS language constructs are used in an actual game.
Chapter Five is reference material, describing the TADS language in detail. This chapter is not intended to be a tutorial, but is designed to provide easy access to the details of writing a TADS game. Likewise, the several Appendices document the microscopic details about the darker corners of the system, such as compiler options and error messages.
The Text Adventure Development System represents many years of work, not the least of which was the preparation of this documentation. I wish to thank the many people who have contributed to this project. Jim Cser used an early version of TADS to write the now-classic High Tech Drifter, and Steve McAdams worked with me on Deep Space Drifter; the experience gained in implementing these full-scale games was invaluable. I also wish to thank the several people who reviewed this manual and play-tested the sample game that is included with the system, and the many other people who have offered advice in the course of the project.
I want to thank the many users of version 1 for their comments and suggestions, and for encouraging me to continue supporting and improving the system. Special thanks to David Baggett, Chris Nebel, and David Leary, authors of the Unnkulian series of TADS games, for their help in testing TADS Version 2, as well as their enormous contribution to the popularity of TADS by demonstrating how good a TADS game can be; and to Andy Miller for the awesome Mount TADSmore cover art used on the original print edition of the book.
I would like to thank everyone who has offered suggestions for new features and improvements; I hope you find at least a few of the items on your TADS wish list fulfilled in TADS 2.4. The continuing improvement of the parser is due, in large part, to the bold imaginings of game authors who steadily invent new things to do with TADS.
Id especially like to thank Stephen Granade, TenthStone, Pieter Spronck, Neil K. Guy, and Kevin Forchione for their advice and many fine ideas. I am also grateful to Neil for bringing the TADS documentation into the modern age through his HTML conversion of the TADS Authors Manual and of the original New Book of the Parser, which served as the basis for this update; and to Kevin for his considerable help in editing this new version.
HTML TADS incorporates several high-quality third-party libraries that made possible some of its sophisticated graphical features. In particular, HTML TADS incorporates the work of the Independent JPEG Group; the PNG Reference Library, developed by Andreas Dilger, Guy Eric Schalnat, and other Contributing Authors; the ZLIB compression library, written by Jean-loup Gailly and Mark Adler; and, in the Windows version, the amp MPEG audio decoder by Tomislav Uzelac. The author would like to express his appreciation to the developers of these libraries for their fine work and their generosity in making their work freely available.
The author would like to thank everyone who has offered bug reports, suggestions, advice, and encouragement during the course of this project. All of your ideas have made this a much better system than it ever could have been otherwise.
For their comments and suggestions during the multimedia TADS development process, the author wishes to express his appreciation to David Baggett and Andrew Plotkin. For their help and patience testing early versions of the software, Id also like to thank G. Kevin Wilson and Neil deMause.
Special thanks go to Chris Nebel, for first suggesting to me the idea of using HTML as a formatting language for text adventures, and for his work porting TADS to the Macintosh; and to Iain Merrick and Andrew Pontious, for bringing HyperTADS to Macintosh. Finally, Id especially like to thank Neil K. Guy, author of The Golden Skull and of the acclaimed 1999 Interactive Fiction Competition entry Six Stories, and Stephen Granade, author of the delightful and award-winning 1998 IF Competition entry Arrival, for their pioneering work with this software, as well as their long-standing generosity in sharing their TADS expertise with other game authors.
The vitality of thought is in adventure.
ALFRED NORTH WHITEHEAD, Dialogues of Alfred North Whitehead (1953)
I know engineers - they love to change things.
DR. McCOY, Star Trek: The Motion Picture (1979)
|Licence and Copyright||Table of Contents||Chapter One|