Newsgroups: rec.arts.int-fiction
Path: gmd.de!nntp.gmd.de!newsserver.jvnc.net!howland.reston.ans.net!pipex!dircon!rheged!simon
From: simon@rheged.dircon.co.uk (Simon Brooke)
Subject: Re: Adventure language language
In-Reply-To: goetz@cs.buffalo.edu's message of Mon, 26 Sep 1994 18:43:38 GMT
Message-ID: <CwuM7F.6Kv@rheged.dircon.co.uk>
Organization: none. Disorganization: total.
References: <Cwr2or.HAp@acsu.buffalo.edu>
Date: Wed, 28 Sep 1994 16:38:02 GMT
Lines: 62

In article <Cwr2or.HAp@acsu.buffalo.edu> goetz@cs.buffalo.edu (Phil Goetz) writes:

   I have a major decision to make.
   I said in my dissertation proposal that I would use SNePS to create a
   crude adventure language (powerful in some ways, but I'm not going to
   trim off the rough edges until I get my degree).

   I have 3 options:

   1.  Write it in LISP.

   This is bad because LISP, even compiled LISP, is slow.

   2.  Port it to C++.  This is good because C++ is fast and has the
   same object-oriented capabilities as LISP with CLOS.  Also, everybody
   has C++ so the program could be ported to other machines easily.
   Also, I will have an example program to show employers who want to
   know I can write C++.

   This is bad because I have to rewrite everything.

   3.  Port it to Modula-3.  One person in particular tells me debugging
   is easier in M3 than in C++.  I don't know if there is a step-trace
   debugger for GNU M3, though.  M3 compiles to C, so portability is good.

   I also considered option 4:  Port it to Prolog.  Ordinary SNePS 3.0
   might port to Prolog, but I want to do really weird things with
   the mechanism that selects the next rule to fire, and I couldn't
   do it well in Prolog.  Besides, Prolog makes my head ache.


   Does anyone have advice?

   Phil goetz@cs.buffalo.edu

My vote would be LisP, because writing adventure games in LisP is
pretty trivial. LisP doesn't have to be either big or slow; I assume
from the way you're talking that the LisPs you have access to are
Common LISPs. You're broadly not right about benchmarking: check
recent discussion in comp.lang.lisp, but in practice well written
compiled LisP will be better than twice as slow as C. In any case,
text adventures are typically not speed critical, unless you have a
lot of NPCs.

You might look at XLISP or Scheme if you want something smaller. Also,
there are various PD packages now which convert from Common LISP or
Scheme into C++, so not only do you get the advantage in working in a
supportive language, you'd get the portability gains of option 2
without the grief.

Can't comment on option 3: people have been telling me recently that
M3 is pretty wonderful, but it strains my credulity a bit.

Don't go for option 4 unless you are already a ProLog expert. ProLog
is different and tricky. People who are good at it can do phenominal
things, and it's certainly good for language work (but so's LisP).
However the learning curve is *STEEP*.

-- 
simon@rheged.dircon.co.uk

			-- mens vacua in medio vacuo --
