Newsgroups: rec.arts.int-fiction
Path: gmd.de!xlink.net!sol.ctr.columbia.edu!usc!elroy.jpl.nasa.gov!decwrl!waikato!canterbury.ac.nz!huia!greg
From: greg@huia.canterbury.ac.nz (Greg Ewing)
Subject: Let's design a better language
Message-ID: <CFn0GA.GoA@cantua.canterbury.ac.nz>
Nntp-Posting-Host: huia.canterbury.ac.nz
Reply-To: greg@huia.canterbury.ac.nz (Greg Ewing)
Organization: University of Canterbury, Christchurch, New Zealand
Date: Fri, 29 Oct 1993 02:33:45 GMT
Lines: 52

I'd like to start a discussion about the design of a better
adventure programming language.

So far I've used two adventure languages, Alan and TADS, and
looked at a few others, such as ADL and AdvSys. In my opinion,
some of these languages handle some things better than others,
and there are things that none of them handle very well.

I'd like to hear your opinions about these languages: what
are they good at, what are they bad at, and how do you think
they could be improved?

I could write at length about my own thoughts so far, but I
don't want to make this post so long that nobody will read
it! So here's one idea to get things started:

Name Scoping
------------

Often there are mundane objects of which instances appear in
many places, e.g. chairs, paintings on walls, etc. Now, I don't
want to have to invent a globally unique name for every single
chair in every room of the whole game.

What I would like to be able to do is declare such objects
*within* the room where they belong, with the name being local
to that room. For example (choosing a syntax at random):

	location livingRoom {
		ldesc "This seems to be somebody's living room.
			There is a sofa, a chair and a TV set here."
		object sofa
			ldesc "It looks very comfortable."
		object chair
			ldesc "It's well upholstered."
		object tv
			ldesc "It's a Philips K9."
	}

If the furniture needed to be referred to outside the room, it
could be called livingRoom.chair, etc.

An extension of this would allow a large adventure to be split up
into modules, with control over name visibility between modules.

What do you think of this idea?

Greg Ewing, Computer Science Dept, +--------------------------------------+
University of Canterbury,	   | A citizen of NewZealandCorp, a	  |
Christchurch, New Zealand	   | wholly-owned subsidiary of Japan Inc.|
greg@cosc.canterbury.ac.nz	   +--------------------------------------+

