Some background. The DJS/JGT language (I'm not aware of any name for
it) was ported by D.J.Seal and J.G.Thackray to MVS (IBM's Multiple
Virtual Storage operating system running on Cambridge University's IBM
3090 mainframe) in August 1984. Games written in the language tended to
be hard Colossal Cave-like games and games still extant on the 3090
include "Acheton", "Brand X", "Quondam", "Hezarin", "Hamil", "Murdac",
"Parc", "Avon", "Fyleet", "Crobe", "Quest of the Sangraal", "Nidus",
"Xerb", "Spycatcher".
The system also runs on the BBC Micro, IBM PC, Atari and other
microcomputers and some of these games have been published by Topologika
Ltd (1 Roman Way, Peterborough, PE7 3RU, UK, 0733 244682).
Unless I misunderstand the way DJS/JGT games are written, then source
code for them looks like this (very much like 3-address assembler on a
load-store architecture, so presumably it compiled easily and
efficiently):
TAKESUB:
SKIP IF R (VAR0)O EQ PLAYER / Can't take himself!
SKIP2 UNLESS P NOTAKE (VAR0)O / Is it untakeable?
LOAD V VAR1 I 2
RETURN
LOAD V VAR1 V STRENGTH / Check STRENGTH
SUB V VAR1 V OBJHELD / against OBJHELD.
SKIP2 IF V VAR1 GT 0
LOAD V VAR1 I 3
RETURN
MOVE (VAR0)O WITH TO PLAYER / Move the object.
ADD V OBJHELD I 1 / Update OBJHELD.
LOAD V VAR1 I 1
RETURN
There was no built-in parser, and as a result all the games written in
the system that I've played used two-word "verb object"-style commands.
If you think that TADS or Inform are "much nastier", it may be because
these more modern systems are trying to do more sophisticated things;
allowing general rules for objects through object classes and
inheritance, allowing various forms of exception to the general
rules through pre- and post- actions and subtypes, and parsing many-word
commands.
[setting followups to rec.arts.int-fiction]
--
Gareth Rees
For benefit of others, I suppose I should say that Adam refers here to
the compiler devised by David Seal and Jon Thackray on the Cambridge
University, England, mainframe Phoenix (phx.cam.ac.uk). They were
working from about 1979-80 (i.e., before the commercial release of
Zork, though after its circulation in primitive form as "Dungeon")
and wrote a fine game called "Acheton".
The compiler is rather low-level (it is really a machine-language
assembler), but surprisingly usable for all that. Indeed, many people
did use it over the next decade (and quite likely still, though Phoenix
is due for its final reduction to ashes next year or so).
> Once I worked out more or less what was going on I found it quite easy to
> work with - the awful quality of the game I wrote is my fault and not that
> of the language... :-)
> The bits of TADS I have seen quoted here LOOK much nastier.
I find TADS a little intimidating, with its code somehow curiously arranged:
I don't feel that its rules are quite thought out, and it's full of strange
keywords. On the other hand, it is undeniably powerful and it has many
satisfied customers. I have been quite impressed by some of its features,
and this has partly influenced the design of Inform 5 - but then, all
engineers steal. On the whole, I think TADS is better than it looks.
As for whether Inform looks better than it is, that's for the public to
judge...
Graham Nelson
Oxford, UK