Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

So you want to write a text adventure?

4 views
Skip to first unread message

Russell L. Bryan

unread,
Nov 10, 1992, 8:13:06 AM11/10/92
to

After mentioning, in passing, the availability of the source code for
Deep Space Drifter, I received a surprising number of requests for it.
So the idea came to me -- if all these people are trying to suffer
through TADS by examining source code (and I will be the first to admit
that it can be a struggle), why wouldn't somebody come forward to teach
folks how to do it?

With this in mind, I invite anyone interested in TADS to sign themselves
up for a course I will be running in the near future. The first lesson
will be sent out two weeks from today, and new lessons will come every
two weeks afterwards starting on January 15th. While the course will
begin with the basics of TADS programming, later lessons will aid you in
first developing the concept for, and then actually creating a TADS
adventure of your own.

There is no charge for these lessons. My only aim is to pull IF out of
the mire of neat graphics and back into the glory of text in which it was
originally born and in which it enjoyed its golden age.

-- Russ

P.S. The reason the course does not go into full swing until January 15th
is because I am awaiting the release of TADS 2.0 before pumping you all
full of outdated information. Please include the quote from the bottom
of page 5 of the manual with your request for the course -- in other
words, only registered users need reply.

David Librik

unread,
Nov 10, 1992, 6:43:31 AM11/10/92
to
Russell L. Bryan <rbr...@Mail.trincoll.edu> writes:

>With this in mind, I invite anyone interested in TADS to sign themselves
>up for a course I will be running in the near future. The first lesson
>will be sent out two weeks from today, and new lessons will come every
>two weeks afterwards starting on January 15th. While the course will
>begin with the basics of TADS programming, later lessons will aid you in
>first developing the concept for, and then actually creating a TADS
>adventure of your own.

(I've added rec.arts.int-fiction to the newsgroups line, since
that's the newsgroup for people who write such games)

This seemed like as good a place as any to list Dave's Quick Guide To
Getting Started With TADS. The key to learning how to write adventures
is to start writing one. You will need the following:

(1) Get the manual for TADS. Register the game, and get the manuals.
(2) Print out (on a good-quality printer): ADV.T, STD.T, and DITCH.T.
ADV and DITCH run to many pages each -- find a free laser printer.
Staple each packet together so they aren't lost and you can flip
through them quickly; ADV and DITCH will require two packets unless
you have a mondo stapler.
(3) Familiarize yourself with the basic ideas of the language. Subtleties
(syntax details, daemons, fuses) should be left for later -- just the
idea of objects, inheritance, and how to print text; it helps if you know
C or Pascal.
(4) Start reading DITCH.T. Look at the basic way items and rooms are defined.
The main way you write TADS code is to take off from something you already
have.
(5) Make a copy of DITCH.T, rip out all the later bits (the actual rooms and
items), leaving the initialization code, the Me definition, all that stuff.
On this, start implementing your adventure. Just rooms and items.
(6) Start adding more complicated things. It really helps if you have played
Ditch Day Drifter; use DITCH as a reference for stuff.
(7) Use notify() rather than daemons and fuses, except for the few "global"
events which are already present in Init. notify() is easier. DITCH
gives plenty of examples of different uses for it -- find something like
what you're looking for and see how he does it.
(8) Eventually it will be time to tear out the Ditch Day Drifter startup code
and basic definitions (the stuff you've been building on). Copy in STD.T
into your file, at the beginning: by now you should have no problem reading
what's going on there. Remove stuff you don't want (food daemon, sleep
daemon, whatever). Add your own stuff -- you've probably already started
putting initialization stuff in the Global object and in Init.
(9) When you want to start making significant changes to the basic "adventure"
behavior, you will have to change ADV.T. Don't worry, that's exactly
what it's there for. When you make a change, though, document exactly
what you're doing -- put comments at the beginning, and down in all the
places you change. CALL THIS NEW ADV.T BY A NEW NAME, SPECIFIC FOR YOUR
ADVENTURE, by the way. (An example: in my game, I wanted to add that
you couldn't leave the room if there was an Armed Guard in it: he shoots
you. Since this is a basic modification of the Room object, I changed
the Leave method to check for the Armed Guard. This would obviously apply
only to my game.) When a new ADV.T comes along you will need to re-apply
these changes to make a new special file; that's why you comment it well.
(10) Finally: this adventure that you're writing will probably be a practice
game. It helps to have the basic idea already laid out, so you can
concentrate on learning to code. You can keep adding stuff -- improved
Actor behaviors -- as you master TADS. The only problem with this
approach is that you spend all your energy on the "practice" game, getting
it really spiffy, and don't feel up to moving onto some Real Adventure
Game Design and Implementation. Yet your "practice" game, however cool,
isn't going to be that great -- simply because your original design should
be simple so you can code it. (I started by implementing in TADS a game
I already had in BASIC).

There is this initial "bump" you have to overcome when you start with TADS.
I didn't get over it until I had the printouts in hand and could look in the
manual. (Even so, I didn't understand most of what was going on in the
"initialization" part of a TADS game for quite a while). The best thing
you can get if you are programming in TADS is examples of pre-written code
to do the kind of things you want. That's why source code to working
games is so useful. It might be cool to assemble a collection of cool
algorithms for doing things (basically clever hacks) -- suitably neutered
so they don't give away the game they come from. I'd like to see the
circulating actor code for Robert Abernathy, for instance. And somewhere
I have rather clever code to implement "sudden death" situations using
daemons, a gun with ammunition, support for objects to be "listening" for
things said by the player (when you SAY a certain phrase, for instance),
and an elevator. None of it is any great shakes but it beats developing
it yourself. I only wish I knew where it was.

If you keep a record of this "class," send me a copy. You might consider
holding off until the semester starts again, though -- most students will still
be on Christmas break on January 15th.

- David Librik
lib...@cory.Berkeley.edu

James E Crawford

unread,
Nov 10, 1992, 11:13:06 AM11/10/92
to
This is probably a FAQ, but I am a writer interested in working on
some interactive fiction in some format or another....

1) What programs are available to create IF and more importantly,
where can I get them? I have a Mac and access to a 486; I'd prefer
to work on the Mac though....

2) Are there any IF "languages" which support collaborative writing
(ie. the "user" has the opportunity to add on to the existing world,
thus creating a dynamic environment)?

Any help would be appreciated.

Jim

Russell L. Bryan

unread,
Nov 10, 1992, 2:41:25 PM11/10/92
to
In article <1992Nov10....@jhunix.hcf.jhu.edu> James E Crawford,

craw...@jhunix.hcf.jhu.edu writes:
>1) What programs are available to create IF and more importantly,
>where can I get them? I have a Mac and access to a 486; I'd prefer
>to work on the Mac though....

OK, TADS is the one I use, and there are version available for both Mac
and IBM. I would suggest that you wait a month before buying it, as
version 2.0 will soon be released.

>2) Are there any IF "languages" which support collaborative writing
>(ie. the "user" has the opportunity to add on to the existing world,
>thus creating a dynamic environment)?

You're looking for a Thieve's World version of interactive fiction, I
suppose, and although I can see no reason why it couldn't work, no such
project has been attempted, or at least not with TADS. There ARE a
number of games within the Unkuulian world for TADS, but they are all
self-sufficient and separately coded.

If you wished to do what you've suggested in TADS, you would probably
want to create a "shell" world with certain locations, rooms, items, and
characters who would run throughout the world in question. It would be
up to the individual writer to adjust that world in the desired manner,
but the "shell" of rooms and actors and such could be used over and over
again ad inifinitum.

TADS, incidentally, is an object-oriented language, so it is very
conducive do this kind of manipulation.

-- Russ

James E Crawford

unread,
Nov 10, 1992, 5:33:07 PM11/10/92
to
Where can I get TADS and (roughly) what price range am I looking at?

Jim

Russell L. Bryan

unread,
Nov 10, 1992, 7:24:15 PM11/10/92
to
In article <1992Nov10.2...@jhunix.hcf.jhu.edu> James E Crawford,

craw...@jhunix.hcf.jhu.edu writes:
>Where can I get TADS and (roughly) what price range am I looking at?

I KNOW that it is available by anonymous FTP from sumex-aim and
Umichigan, for the Mac, and I'd be willing to bet the same places would
carry the IBM version if that's what you need. If not, it is a $40.00
shareware item available from:

High Energy Software
P.O. Box 50422
Palo Alto, CA 94033

Incidentally, version 2.0 (the present version is 1.2) will be released
within a month -- I suggest you wait until an announcement concerning it
before sending in your fee.

-- Russ

David Baggett

unread,
Nov 11, 1992, 12:15:11 AM11/11/92
to
In article <1992Nov10.2...@jhunix.hcf.jhu.edu> craw...@jhunix.hcf.jhu.edu (James E Crawford) writes:
>Where can I get TADS and (roughly) what price range am I looking at?

TADS is available for the PC, Mac, and Atari ST, from the following sites:

msdos.archive.umich.edu: msdos/games/textadv/tads.zip
atari.archive.umich.edu: atari/games/tads/tads.lzh
mac.archive.umich.edu: mac/games/games.utilities/tads1.04.cpt.hqx

I don't know what the current registration fee is, but it's somewhere
in the $30-$50 range.

Dave Baggett
--
d...@ai.mit.edu MIT Artificial Intelligence Laboratory
ADVENTIONS: interactive fiction (text adventures) for the 90's!
d...@ai.mit.edu *** Compu$erve: 76440,2671 *** GEnie: ADVENTIONS

KIENENBERGER MIKE L

unread,
Nov 11, 1992, 9:14:00 AM11/11/92
to
In article <1992Nov10.1...@starbase.trincoll.edu>,
Russell L. Bryan <rbr...@Mail.trincoll.edu> writes...

>In article <1992Nov10....@jhunix.hcf.jhu.edu> James E Crawford,
>craw...@jhunix.hcf.jhu.edu writes:
>>2) Are there any IF "languages" which support collaborative writing
>>(ie. the "user" has the opportunity to add on to the existing world,
>>thus creating a dynamic environment)?
>
>You're looking for a Thieve's World version of interactive fiction, I
>suppose, and although I can see no reason why it couldn't work, no such
>project has been attempted, or at least not with TADS. There ARE a
>number of games within the Unkuulian world for TADS, but they are all
>self-sufficient and separately coded.

Actually, this is the idea around many of the "MUD"-type programs. Most of
these types of programs have a language which allows players to remodel the
world around them. It also shows how difficult it is to create such a game
with collaborative writing.
=============================================================================
-Mike Kienenberger FXMLK@ALASKA (BITNet)
Academic Computing FX...@acad3.alaska.edu (Internet)
University of Alaska-Fairbanks
"I'm a computer programmer....<link><link><kludge><kludge> say-no-more!"

0 new messages