[comp.lang.forth] Interactive Adventure Writting Language

trolfs@vax1.tcd.ie (Tommy) (04/11/89)

( This is also being posted in comp.lang.forth, as well as in
rec.games.programmer, for Forth progammers who might be interested )

  I'm in the initial stages of considering writting an *Interactive
Adventure Writting Language*. My motivation for doing this is the
language FORTH and my love of text adventures.

  Ignoring Forth for the moment ( You can start breathing again:-), I
want to describe the sort of thing I have in mind and see what you
think. I'd like to hear from anyone, even if its just to say you
think its stupid and a waste of time (give reasons).


 Criteria For The Interactive Adventure Writting Language:

   1) Its got to be a Language as apposed to a Package.

          This is very important as I feel packages limit the designer.
          He/she would only be able to do things that the package knew
          about, and as packages are made to be general there could be
          quite alot of compromise.
          The language approach would let the designer make best use of
          resources and his ideas.


   2) Its got to be Interactive.  

          Again, this is a must for creativity. The idea is to be able
          to create something (room/trap/monster/object) and immediately
          be able to use it. As you write the adventure you can play it,
          and thus get instant feedback to the design process.

   3) ... etc.. ? ( any further ideas welcome)


  I'm think of writting this in Forth as it is:

             i) Compact,fast and fits on any microcomputer,
            ii) Interactive, 
           iii) Very flexible, 
            iv) and I like it.

  Of coarse, it doesn't have to be Forth. I'm open to persuation.

 If you have any ideas (eg How movement/actions/events should be 
handled/encoded/tested by IAWL. What you would like to see in IAWL)
or have done anything like this before or have used adventure writting
software or just anything you think might be of value then e-mail me.

 I'll summarys replies and repost to let you  know what the reponse was,
if any. If you don't want me to summarries your reply then I won't.

 I know this has probably been done a hundred times over but I'm doing this
as a hobby and for fun, and who knows, maybe something good might come of it,
so get out your electronic pens and write. I enjoy getting mail so why not
make someone happy.

:-)  Tommy.

Ps. I'm very interested in hearing from anyone who has been thinking of
   doing something like this.
-- 
Thomas Rolfs                         E-mail to trolfs@vax1.tcd.ie
Disclaimer: As an engineer I cannot be held reponsible for spelling misteaks.

bryan@intvax.UUCP (Jon R Bryan) (04/11/89)

In article <39514@vax1.tcd.ie>, trolfs@vax1.tcd.ie (Tommy) writes:
>   I'm in the initial stages of considering writting an *Interactive
> Adventure Writting [sic] Language*.

Electronic Arts' "Adventure Construction Set" was written in Forth by,
umm, Glen Tenney I think.  It's been a long time since I spoke with him
(almost three years).  I always thought it would be interesting to write
something like that.  The thought of writing a parser makes my skin
crawl, though.  :)

krazy@claris.com (Jeff Erickson) (04/12/89)

From article <39514@vax1.tcd.ie>, by trolfs@vax1.tcd.ie (Tommy):
> ( This is also being posted in comp.lang.forth, as well as in
> rec.games.programmer, for Forth progammers who might be interested )
> 
>   I'm in the initial stages of considering writting an *Interactive
> Adventure Writting Language*. My motivation for doing this is the
> language FORTH and my love of text adventures.
> 

I tried to tackle this problem once, from a higher level.  I got as far as
a functional specification, a formal description of the grammar, etc., but
no actual code.  Unfortunately, I tried to tackle too much.

The name of the language was "Adventure System Specifying Hierarchical
Objects, Locations, and Events."

Infocom has had one of these for years.  I think they call it "Zork
Adventure Language" or something.  Runs on a VAX and generates code for
any microcomputer they have a cross-assembler/compiler for.

It's a tough one.  Good luck!
-- 
Jeff Erickson     \  Internet: krazy@claris.com          AppleLink: Erickson4
Claris Corporation \      UUCP: {ames,apple,portal,sun,voder}!claris!krazy
415/960-2693        \________________________________________________________
Soon: 408/987-7309  /        "I'm so heppy I'm mizzabil!" -- Krazy Kat

mroberts@.uucp (Mike Roberts) (04/13/89)

In article <39514@vax1.tcd.ie> trolfs@vax1.tcd.ie (Tommy) writes:
>  I'm in the initial stages of considering writting an *Interactive
>Adventure Writting Language*. My motivation for doing this is the
>language FORTH and my love of text adventures.

I've been working on just such a project for quite a while.  My latest
attempt, which has been running for about a year now, has demonstrated to
me that the ideas the author of this note presented are right on target:
make it a language for maximum flexibility; produce an interactive environment
for maximum productivity.  I would add one other thing:  make the language
object-oriented.  A friend of mine who also likes writing adventure systems
came up with this idea, and it's worked out fantastically well in my system.
OOP was originally invented for programming simulations; an adventure is
essentially a simulation.

Good luck--it's an ambitious project!

dunn@uhccux.uhcc.hawaii.edu (John Dunn) (04/13/89)

The idea of making a specific meta language is one I have been
working with for awhile.  I did a MIDI program where the function
modules resembled the old analog synthesizer modules.  For my money,
the best place to work from is the grea area between language and
generalized tool.  I am currently working on a generalized art package
that starts at the outer level looking like a simple system on the order
of "PC-Paint", and ends up as a meta language.
...I, too am leaning toward FORTH.  I particularly like LMI's UR/FORTH
for the 386 Protected Mode.  It has the room to do some serious FORTH
programming.  What I don't like is that FORTH code is hard to maintain, 
no one likes other peoples FORTH code.
...Also, the arguments for Object Oriented languages are making a lot
of sense to me.  I have worked with Lisp and Flavors, am now looking
at Actor and Smalltalk-80.  
...In the FORTH world there is HMSL, and the object language it is 
built upon.  It is lean and mean.  I am in the process (although 
slowly) of porting HMSL from the Mac to the 386.
...Best of luck with your project.  It sounds like a neat one
to be working on.

stever@tree.UUCP (Steve Rudek) (04/15/89)

In article <39514@vax1.tcd.ie>, trolfs@vax1.tcd.ie (Tommy) writes:
>   I'm in the initial stages of considering writting an *Interactive
> Adventure Writting Language*. My motivation for doing this is the
> language FORTH and my love of text adventures.

If you are a serious programmer and competent to do what you are proposing
(i.e., design and follow through with the coding of a new language) then I
would be very interested in participating in this project.

I agree with you that interactive languages beat the pants off of compiled
languages (unless you have one of Borland's "Turbo" products in which case
the distinction becomes moot).  Although I'm not a FORTH expert I've used
it enough to know that it would be a good choice.  But I don't know
of a decent public domain FORTH for UNIX--do you?  Does anyone?  cforth
isn't even worth considering--it's incomplete and too low quality.  I'm
assuming, of course, that you'd be developing this adventure language on
and for UNIX?  There are enough adventure languages which do NOT support
concurrent multiple users; if you want to make this language really something
special then multiuser should be #1 in the specification.

By the way, someone mentioned AdvSys--I believe AdvSys is written by the
same guy who wrote XLISP.  Don't these prolific programmers turn you green?
Unfortunately AdvSys doesn't appear to be anywhere near as powerful as,
say, ADL.  Or am I mistaken??

Have you (or anyone) seen a language called Adventure Authoring Language
(AAL) by Jonathan Amsterdam at MIT?  The author describes this language in
"Creating an Adventurous Language" in the April 1988 issue of Dr. Dobb's
Journal.  AAL is written in and resides atop a Common LISP kernel just as
your proposed language would reside atop FORTH.  The author comments on how
this enables him to always fall back to LISP code if doing someting in AAL
is too difficult.  I've been thinking for some time that it might be
possible to implement AAL in XLISP in which case the entire package
would be pretty portable and freely distributable (at least I *think*
AAL is public domain).  However, I don't know LISP and have been using that
as a convenient excuse for postponing investigating AAL.  Perhaps, though,
it would make more sense to enhance AAL then to start from scratch?

Then again, if it is the excitement of writing the adventurous language
which primarily interests you then investigating AAL is probably the last
thing you want to do. :-)

P.S.  As long as I've got the floor, does anyone know of a good concurrent
multiuser adventure game for System V UNIX?  The closest I've seen is
phantasia but its player interaction is minimal. Surely there is something
better available?  Especially with System V "shared memory" interplayer
communications can't be that difficult to implement. (Yeah, I know--then 
why don't I shut up and implement it myself.  Yeah!  Guess I will!  I've
got a couple hours until bedtime! :-)
-------------
pacbell!sactoh0!tree!stever
ucbvax!ucdavis!csusac!tree!stever

shawn@pnet51.cts.com (Shawn Stanley) (04/17/89)

bryan@intvax.UUCP (Jon R Bryan) writes:
>In article <39514@vax1.tcd.ie>, trolfs@vax1.tcd.ie (Tommy) writes:
>>   I'm in the initial stages of considering writting an *Interactive
>> Adventure Writting [sic] Language*.
>
>Electronic Arts' "Adventure Construction Set" was written in Forth by,
>umm, Glen Tenney I think.  It's been a long time since I spoke with him
>(almost three years).  I always thought it would be interesting to write
>something like that.  The thought of writing a parser makes my skin
>crawl, though.  :)

I understood that the program wasn't quite in the "Text Adventure" arena, but
I could be wrong.  The salesman didn't describe the product in enough detail,
and I wasn't given the opportunity to check it out.

(I ended up writing my own game + "language", on my BBS.)

Could you describe the "Adventure Construction Set"?

UUCP: {uunet!rosevax, amdahl!bungia, chinet, killer}!orbit!pnet51!shawn
INET: shawn@pnet51.cts.com

cg@myrias.UUCP (Chris Gray) (04/18/89)

In article <966@orbit.UUCP> shawn@pnet51.cts.com (Shawn Stanley) writes:

>I understood that the program wasn't quite in the "Text Adventure" arena, but
>I could be wrong.  The salesman didn't describe the product in enough detail,
>and I wasn't given the opportunity to check it out.

>(I ended up writing my own game + "language", on my BBS.)

>Could you describe the "Adventure Construction Set"?

I have a version of Electronic Arts "Adventure Construction Set" for my
Amiga. I wasn't overly impressed (other than by how nonstandard the interface
was and by how much work it must have been to do the whole program). I never
finished any of the adventures that came with it, and didn't seriously try
to create any. There are no real opportunities for anything like programming
in it - everything is done by selecting from a bunch of options (using a
wierd hollow-circle mouse cursor!). The graphics were nice, and the sounds
provided were fine, but I always felt constrained by it. It started with
a top-level tiled world (overhead map view of rectangular regions), which
could then take you to other mini-maps, or to other places on the same one.

I've done three or four attempts at adventure writing systems, with varying
degrees of success. I fully intend on doing more, especially multi-user. I'll
try to be brief in the following descriptions.

SIX/FANT: SIX was a compiler for a fairly complete structured programming
language (reminiscent of Algol68 in syntax) which had been augmented by some
fairly powerful constructs for adventure-writing. Things like dynamically
expandable hash tables, linked lists, run-time typing, constructs for
formatted text input and output, special syntax for building locations and
parse rules, etc. It generated code for a stack machine, which was interpreted
by the FANT interpreter. Several full-scale adventures were written in it, by
myself and several others. One was a full re-implementation of the standard
Crowther & Woods "Adventure", which ran faster than the PL/I implementation.
Runs under the MTS operating system on IBM/Amdahl mainframes.

DDSPEC/DD: more of a D & D system than an adventure system. Used character
graphics on IBM 3270 terminals (ran on the same mainframe as SIX/FANT). DDSPEC
allowed on-screen design of rooms. Had lots of random monsters sort-of
animated on the screen. Goal was usually to collect objects, find keys to
unlock rooms, etc. Initially planned to be multi-user, but never got there.

Quest #1: First version done on my CP/M machine in my language Draco. Later
ported to MTS/Pascal by some other folks. Includes a built-in parser which
handles grammar rules/dictionary provided by scenario. Used character
graphics to window around in an algorithmically defined world. Screen display
has three windows: view of world, status window (health, position, items
carried, etc.), and text I/O. Text output automatically paginated and
formatted. No real adventures ever written, but could be done fairly
easily. This one is available in Draco for the Amiga or in C for UNIX.

Quest #2: Done in Draco on my Amiga. Has an interpreter for another full
structured programming language. Adds run-time typing, the same parser as
previous Quest, inter-calling of compiled and interpreted routines, list
manipulation, tables, properties, some inheritance. Again, no true scenario
ever built. Fully interpreted nature allows easy dynamic creation of
everything - in fact the test scenario is just a file that is 'sourced' to
build everything up.

Explore: Graphics D & D system with adventure overtones. First done in Draco
on CP/M, then ported to Amiga. I'm currently working to make the graphics in
this one a lot prettier (scrolling 3-D dungeons, scrolling map-view, etc.).
A full scenario (called "Amelon") exists. The whole thing is along the lines
of the "Ultima" series of commercial games. Program ExpCre allows for mouse-
driven creation of maps, tile patterns, mazes, etc. Text-oriented creation
of objects, monster types, etc. Allows for a fairly large text interaction
by having an auxilliary data file containing just text messages. I'm thinking
of adding the standard Quest parser.

--
So, I like building tools, but don't always use them or finish them. I have in
mind a future system, intended to be multi-player, intended to allow the
dynamic creation of things more complex than anything I know of has allowed.
Naturally, this will take quite a while. It will be based on an interpreted,
structured language like Quest #2, but will add a perspective graphics view
of the world. I also plan to spif up the parser a bit, to handle clauses
as well as phrases.

-- 
Chris Gray		Myrias Research, Edmonton	+1 403 428 1616
	{uunet!mnetor,ubc-vision,watmath,vax135}!alberta!myrias!cg