From mas.supplies@easynet.co.uk Sun Oct 20 22:20:11 CED 1996
Article: 18426 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news01.sunet.se!sunic!02-newsfeed.univie.ac.at!01-newsfeed.univie.ac.at!swidir.switch.ch!in2p3.fr!univ-lyon1.fr!howland.erols.net!feed1.news.erols.com!super.zippo.com!zdc!enews.sgi.com!news-feed.inet.tele.dk!newsfeed.easynet.co.uk!easynet-uk!news.easynet.co.uk!usenet
From: mas.supplies@easynet.co.uk (Bill Hoggett)
Newsgroups: rec.arts.int-fiction,rec.games.int-fiction
Subject: Re: Look vs examine vs search
Date: 17 Oct 96 12:56:48 +0500
Organization: [posted via] Easynet Group PLC
Lines: 75
Message-ID: <3242.6864T776T2425@easynet.co.uk>
References: <5441r6$6km@news.ipass.net>
NNTP-Posting-Host: gamexchange.easynet.co.uk
X-Newsreader: THOR 2.3 (Amiga;TCP/IP) *UNREGISTERED*
X-easynet-cherry: 8455546726117.nnrp
Xref: news.lth.se rec.arts.int-fiction:18426 rec.games.int-fiction:18203

Again, I've posted this to r.a.i-f as it's of relevance to i-f implementors.

Also in the following quote I've replaced the ">" symbol for the prompt
with the "->" symbol. Many newsreaders use ">" and ">>" to signify quoted
lines so this should clear up some confusion.

On 17-Oct-96 Joe Barlow <jbarlow@ipass.net> wrote:

>blore@ibm.net    (Steven Howard) wrote:
>>In most games, especially Infocom/Inform games, "examine" and "look at"
>>are equivalent, while "search" is equivalent to "look in".  So "examine box"
>>will describe the box while "search box" will describe its contents.

>       I agree that it certainly SHOULD be that way, but unfortunately it's
>not always the case:

>->OPEN THE TREASURE CHEST
>The treasure chest is now open.

>->EXAMINE THE CHEST
>The chest is wooden.  It is open.

>->SEARCH CHEST
>You find nothing unusual.

>->LOOK IN CHEST
>You see a pile of jewelery!

>       In my opinion, doing any of the above should have returned the message
>about the jewelery, even the "open" command.  In real life,  if you
>open a container, you immediately know its contents (unless something
>is hidden).  Although its not a major problem usually, I have
>encountered frustration in a few text adventure games.  I remember one
>specific example (though I forgot the game) in which I was looking for
>a key to unlock a door.  I had searched EVERYWHERE for the key, with
>no luck.  I had suspected that it was in a cupboard (based on a clue I
>had found in the game), but when I searched the cupboard, I was told
>"You see nothing special."  After searching fruitlessly for a couple
>of hours, I went back to the keyboard just to double check.

>->SEARCH CUPBOARD
>You see nothing special.

>Just as a desperate act, I then tried:

>->LOOK IN CUPBOARD
>You find a large key!

>The key was not mentioned either when I opened the cupboard or when I
>searched it.  I find this unacceptable, and it so annoyed me that I
>never bothered to finish the game.

I agree this is totally unacceptable. As I've mentioned elsewhere SEARCH
should cover LOOK INSIDE automatically (and LOOK UNDER, BEHIND, etc.).
The question of what should be visible when opening say, a box, is more
interesting. You should obviously see anything clearly visible inside
the box but not something hidden under some clothes, for instance. You
would need to SEARCH the box (or TAKE the clothes) before the hidden item
was revealed. Another problem arises when you open not a box, but a pouch
or sack. The items inside are not usually visible (it's dark in there) and
even a search might not reveal everything (things tend to move and shift in
a very disconcerting manner inside a pouch or sack - it's easy to miss
something). The only sure way to search the pouch/sack is to empty it onto
a surface. (NASTY TRAP: have something fragile in the sack so that upending
it results in the item smashing to smithereens).

However, I don't see how all this can be properly programmed into libraries.
Much of it is common sense and I think it's the programmer's resposibility
to cover these areas. (You reading this Kevin ? - how will AGATE cope ?)


Bill Hoggett (aka BeeJay)   <mas.supplies@easynet.co.uk>

who will one day use a spell-checker on his posts...



From erkyrath@netcom.com Mon Oct 21 10:09:02 CED 1996
Article: 18467 of rec.arts.int-fiction
Newsgroups: rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news01.sunet.se!sunic!surfnet.nl!sun4nl!EU.net!howland.erols.net!netcom.com!erkyrath
From: erkyrath@netcom.com (Andrew Plotkin)
Subject: Re: [CONTEST] Crashing
Message-ID: <erkyrathDzLvxB.Jxq@netcom.com>
Organization: NETCOM On-line Communication Services (408 261-4700 guest)
X-Newsreader: TIN [version 1.2 PL1]
References: <54b5nm$lfh@agate.berkeley.edu> <54bmc7$nbb@newsbf02.news.aol.com> <Pine.SUN.3.91.961019212452.17954A-100000@xp.psych.nyu.edu>
Date: Mon, 21 Oct 1996 03:19:59 GMT
Lines: 48
Sender: erkyrath@netcom23.netcom.com

Roger Giner-Sorolla (giner@xp.psych.nyu.edu) wrote:
> On 19 Oct 1996, Nulldogma wrote:

> > > Oh, it just gets better and better.  Keep me informed of 
> > > all the things going wrong and I'll try and fix them as 
> > > soon as possible.
> > 
> > Here's my scorecard to date of files that won't play under either MaxZip
> > or Zip Infinity:

> I took a look at a couple of those, just for grins, before I read this. 
> Not only do they crash upon input after showing the first quote box but
> the strings "ce" and "se" are replaced by "ch" and "sh". (Pleash press the
> space bar...) Which at first led me to believe that some evil anti-Inform
> prankster had been sabotaging the contest, mocking the language's 
> recently-discussed ability to output "drunken" text.

Heh. After more email from RGS, I discover that he was downloading the 
game files in ascii FTP mode. No! No! See me roll up the newspaper! Whap!

(Well, he had a plausible reason, actually, but not actually a correct one.)

For extra credit, determine why transferring .z5 files to a Mac in ascii 
mode will turn "se" to "sh"... I was rather amused. Check the definition 
of Z-machine text encoding.

I snarfed all the entries as everything.zip (which also has to be
transferred in binary mode.) I unpacked it using StuffIt Expander with
DropStuff/Expander Enhancer. (The DS/EE module is shareware, but you can
use it for a month for free, I believe, so it may be worth getting solely
for the contest. You *do* need to install DS/EE in order for StuffIt 
Expander to handle .zip files.)

I have now played several of the Inform entries all the way through, and 
at least a few moves of every one, in MaxZip 1.5.1. I continue to have no 
problems. Except that in a couple of places, a "Hit any key to continue" 
message fails to be cleared when it should be. I'm working fixing that 
now. :)

The other possible problem is the all-fixed-width mode of Delusion, which 
may or may not be deliberate.

--Z

-- 

"And Aholibamah bare Jeush, and Jaalam, and Korah: these were the
borogoves..."


From jbarlow@ipass.net Mon Oct 21 10:10:02 CED 1996
Article: 18447 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news01.sunet.se!sunic!surfnet.nl!howland.erols.net!www.nntp.primenet.com!nntp.primenet.com!newspump.sol.net!news.mindspring.com!mindspring!cpk-news-feed3.bbnplanet.com!news.ipass.net!newsadmin@passport.ipass.net
From: jbarlow@ipass.net (Joe Barlow)
Newsgroups: rec.arts.int-fiction,rec.games.int-fiction
Subject: Re: Judging has begun!
Date: Sun, 20 Oct 1996 04:31:48 GMT
Organization: IPass.net
Lines: 26
Message-ID: <54ca5g$5ka@news.ipass.net>
References: <2126.6866T1052T2369@easynet.co.uk>
NNTP-Posting-Host: customs213.ipass.net
X-Newsreader: Forte Free Agent 1.0.82
Xref: news.lth.se rec.arts.int-fiction:18447 rec.games.int-fiction:18226

mas.supplies@easynet.co.uk (Bill Hoggett) wrote:
>They're there! This year's entries are with GMD. Great work whizzard!

	Yes, well done.  I didn't mind a little delay in getting the games
out, as long as they DID finally appear.  :)

>OK, I say to myself, if I manage to play on average one per day, I'll
>cover them all by the end of November. So I started and, in fact have
>played three today! Wow!   (Alright, one was quite short)

	I, too, an enjoying the first few entries.  One of them boasts some
superb prose-writing, but I'm a little frustrated by its lack of true
control.  You don't seem free to wander the map; rather, the player is
transported to locations by the game itself.  As a story, it's quite
good, but as INTERACTIVE fiction, it's a bit misleading.  (Almost
"Dragon's Lair"-ish, in a way...)  Still, I haven't spent two hours
with it yet, so perhaps that will change as I get a bit further into
the story....




-=-=-=-=-=-=-=-=-=-=-
Joe Barlow  (jbarlow@ipass.net)
"Zorkers do it under the rug..."



From edharel@eden.rutgers.edu Mon Oct 21 10:15:28 CED 1996
Article: 18440 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news00.sunet.se!sunic!news.sprintlink.net!news-peer.sprintlink.net!uunet!in3.uu.net!dziuxsolim.rutgers.edu!er6.rutgers.edu!not-for-mail
From: edharel@eden.rutgers.edu (Bozzie)
Newsgroups: rec.arts.int-fiction
Subject: Re: ARGH, More [Contest] problems
Date: 20 Oct 1996 18:28:26 -0400
Organization: Rutgers University
Lines: 48
Message-ID: <54e92a$ffs@er6.rutgers.edu>
References: <54dm5n$ki0@remus.rutgers.edu> <erkyrathDzL52F.BI7@netcom.com>
NNTP-Posting-Host: er6.rutgers.edu

erkyrath@netcom.com (Andrew Plotkin) writes:

>Edan Harel (edharel@remus.rutgers.edu) wrote:
>> BTW, if you finish a game early, can I assume we don't have to play it out
>> for 2 hours?  Cause I havent been looking in at some of the games I've 
>> finished for extra stuff.  Should I? 

>I don't see why you should do anything which you wouldn't ordinarily do 
>when playing a game. [*]

Good, then I shouldn't feel guilty.  Although one exception is that I'm 
slightly more quick to use help/hint files here then in a real game because
I'm sure that I wouldn't be able to finish some of the games.  Mainly I use
them when I haven't been able to find/do anything new in 15-20 minutes (in a
real game, I would wait at least 45 minutes or so before I look, since once
I start looking, I might never stop ;-)

I've looked at hints for 5 of the games.  Once it turned out it was a
verb/syntax problem.  Twice it turned out that the puzzles didn't have enough
identification or explanation.  Once it didn't really help.  Only once did I 
look in it to solve a puzzle.  Which I suppose is a good thing. (I haven't 
seen any really-great puzzles, but on the whole most of the good games have
decent-to-good puzzles and have concentrated more on the fiction (or 
interactive part)

>> (Then again, if the author hasn't
>> made the enviorment interesting enough for me to want to spend those 2
>> hours, should I stick with those two hours?)  

>Exactly the right question. I wouldn't.

Yeah.  but there's always the chance that you could miss something.  But if
somethingthing's that hidden, it's their problem.

>[*]: One exception: Normally my opinion of a game is heavily weighted by 
>its spelling and grammar. For the competition, I'm letting spelling and 
>grammar errors slide, because I know these haven't been as heavily 
>beta-tested as they should be.

Yeah.  Plus I'd by a hypocrite if that's what I'd base my points on (still,
come my spag reviews and they'll definatly be in there...)  Wait a second,
are we going to have a huge SPAG issue next time? Well, last time the issue
was bigger that a z3 storyfile, maybe we'll beat a .z8 this time round. :)

BTW, how are the votes tabulated?  Are they added up?  Or is it the average?





From baf@max.tiac.net Mon Oct 21 10:15:50 CED 1996
Article: 18478 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news00.sunet.se!sunic!news.sprintlink.net!news-peer.sprintlink.net!uunet!news-in2.uu.net!news-in.tiac.net!posterchild!max.tiac.net!baf
From: baf@max.tiac.net (Carl Muckenhoupt)
Newsgroups: rec.arts.int-fiction
Subject: Re: ARGH, More [Contest] problems
Date: 21 Oct 96 03:28:36 GMT
Organization: The Internet Access Company, Inc.
Lines: 29
Message-ID: <baf.845868516@max.tiac.net>
References: <54dm5n$ki0@remus.rutgers.edu> <erkyrathDzL52F.BI7@netcom.com> <54e92a$ffs@er6.rutgers.edu>
NNTP-Posting-Host: max.tiac.net

edharel@eden.rutgers.edu (Bozzie) writes:

>>[*]: One exception: Normally my opinion of a game is heavily weighted by 
>>its spelling and grammar. For the competition, I'm letting spelling and 
>>grammar errors slide, because I know these haven't been as heavily 
>>beta-tested as they should be.

>Yeah.  Plus I'd by a hypocrite if that's what I'd base my points on (still,
>come my spag reviews and they'll definatly be in there...)

I disagree.  I'll let a few typos slide, but consistently bad spelling sets
my teeth on edge.  I cannot in good conscience ignore this when casting my
votes.  There's no excuse for not proofreading, especially with automatic
spellcheckers built into most modern word processors.

(Now someone's going to catch me reading Riddley Walker and call me a
hypocrite...)

>BTW, how are the votes tabulated?  Are they added up?  Or is it the average?

It's the average.  If it were the total, the most portable game would win.
Mind you, I've said before that the way to win this contest is to write a
game that only runs on the TRS-80.  The ten people left in the world who
still use the things would be so overjoyed to see it that they'd all give
it a 10...
-- 
Carl Muckenhoupt              | Text Adventures are not dead!
baf@tiac.net                  | Read rec.[arts|games].int-fiction to see
http://www.tiac.net/users/baf | what you're missing!


From mol@marvin.df.lth.se Mon Oct 21 20:32:40 CED 1996
Article: 18514 of rec.arts.int-fiction
Path: news.lth.se!mol
From: mol@marvin.df.lth.se (Magnus Olsson)
Newsgroups: rec.arts.int-fiction
Subject: [INFORM] Strange grammar problem (bug?)
Date: 21 Oct 1996 18:30:54 GMT
Organization: /etc/organization
Lines: 71
Message-ID: <54gfgu$g89@news.lth.se>
NNTP-Posting-Host: marvin.df.lth.se

I'm having a strange problem with Inform 6.05 and Library version 6/2.

In the Library, the verbs "light" and "burn" are synonymous, and
result in the action Burn. I want "light" to have its own action, so
that I can "light lamp" without setting it on fire. 

My first try was to write a new LightSub routine and to add this
grammar line (after including grammar.h):

extend only "light" 
	* noun                          -> Light;

This is syntactically correct according to the Designer's Manual
(latest edition). However, when I tried to compile I got the following
messages: 

> 386PC Inform 6.05 (September 24th 1996)
> ::####################################################
> "./verbs.inf", line 3: Error: Expected 'replace', 'last', 'first' or '*' but 
> found noun
> >  * noun
> "./verbs.inf", line 3: Error: Expected '*' divider but found ->
> >  * noun                          ->
> "./actions.inf", line 17: Warning: Routine "LightSub" declared but not used
> Compiled with 2 errors and 1 warning (no output)

This seems like a bug. But I will probably need the "replace"
qualifier anyway, or the parser will never find this line. So I
changed the source to


extend only "light" replace
	* noun                          -> Light;

This compiled with no errors or warnings. However, when I type "light
lamp", the run-time still generates the action < burn lamp >!

The same thing happened when I wrote (in some desperation)

extend only "burn" replace
	* noun                          -> Burn;

extend only "light" replace
	* noun                          -> Light;

- both verbs "burn" and "light" call the Burn action!

Finally, 

extend "light" replace
	* noun                          -> Light;

works as expected, that is, *both* "burn" and "light" are replaced,
which is unfortunately not what I want. 


In short, it seems totally impossible to separate the two words "burn"
and "light". I should guess that there is a *serious* bug in how
"only" works. Good thing I didn't write my contest entry in Inform!

Or am I totally confused about how Inform works?


BTW, I did work around the bug this time by adding the kluge

    if (verb_word ~= 'light') << Burn noun >>;

to LightSub, but that is an *ugly* solution.

-- 
Magnus Olsson (mol@df.lth.se)


From nkg@vcn.bc.ca Tue Oct 22 10:33:49 CED 1996
Article: 18506 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news00.sunet.se!sunic!mn6.swip.net!solace!eru.mt.luth.se!news.algonet.se!eua.ericsson.se!cnn.exu.ericsson.se!uunet!in3.uu.net!van-bc!unixg.ubc.ca!freenet.vancouver.bc.ca!nkg
From: nkg@vcn.bc.ca (Neil K. Guy)
Newsgroups: rec.arts.int-fiction
Subject: HTML TADS manual again
Date: 18 Oct 1996 15:10:40 GMT
Organization: Vancouver CommunityNet
Lines: 17
Message-ID: <5486lg$bl5@milo.vcn.bc.ca>
NNTP-Posting-Host: opus.vcn.bc.ca
X-Newsreader: TIN [version 1.2 PL2]

 Okay... after far too much slaving away I've fixed up the conversion of 
the TADS documentation to HTML. Unfortunately I had to do most of it 
manually (TeX -> HTML converters are less than flawless) and so I'd 
appreciate it if a couple people with access to either the original 
printed copies or to TeX readers could perhaps proofread what I've put 
online... make sure there aren't any major problems.

 http://www.tela.bc.ca/tela/tads-manual/

 Note that I haven't linked in the indexing stuff yet, so there are lots 
of rogue words preceded by carets in the files.

 - Neil K.

--
        the Vancouver CommunityNet   *   http://www.vcn.bc.ca/
              (formerly the Vancouver Regional FreeNet)


From goetz@cs.buffalo.edu Tue Oct 22 10:34:09 CED 1996
Article: 18509 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news00.sunet.se!sunic!news.sprintlink.net!news-peer.sprintlink.net!news-peer.gsl.net!news.gsl.net!portc01.blue.aol.com!newsstand.cit.cornell.edu!news.acsu.buffalo.edu!acsu.buffalo.edu!goetz
From: goetz@cs.buffalo.edu (Phil Goetz)
Newsgroups: rec.arts.int-fiction
Subject: Why you must use Prolog
Date: 21 Oct 1996 16:40:31 GMT
Organization: State University of New York at Buffalo/Computer Science
Lines: 144
Message-ID: <54g91v$j2q@prometheus.acsu.buffalo.edu>
NNTP-Posting-Host: pollux.cs.buffalo.edu
NNTP-Posting-User: goetz

TADS, Hugo, Inform, ALAN, Advsys, AGT --

	You're all wrong.	:)

My adventure language of choice, at the moment, is Prolog.  Partly because
it's easy to write an adventure in Prolog.  Mostly because it's *necessary*
to write huge parts of the game in a logical notation anyway so that
non-player characters can reason about the gameworld and form plans.

I've implemented an adventure engine in Prolog, and I spent last week
adding a planning system to it.  Now I can give my NPCs goals like
"Get the babel fish" or "Kill Fred", and they can construct plans to
accomplish them.

There are basically three ways to construct a plan.  One is to backchain
on the effects of actions.  Another is to take plan hints that the
programmer writes ahead of time -- "Y is a plan to do X."  The third,
and perhaps the most powerful, is to analyze the program's code that
specifies how the gameworld works, to find out how to achieve your goal.

You can do the first two in any language.  To do the third, you have two
choices: Either

1. Write a runtime interpreter for your language, so that a running program
can disassemble and run pieces of itself, or

2. For every piece of Inform/TADS/Hugo code in your program, write the same
thing again in a logical notation for use by your planner, making sure that
the program code and the logic code give the same results under all
circumstances, or

2. Use a logical programming language such as Prolog.

In other words: If you are using TADS, Hugo, Inform, etc., you can never
match the power of what I can do in Prolog unless you basically rewrite
most of your program in something very like Prolog.

The following example should explain what I mean.

Say I give Jim the goal of giving Fred the whistle.
I do this by giving him the goal achieve([has(fred,whistle)],[]).
This reads as "achieve all the formulae in [has(fred,whistle)]
while not violating any of the formulae in []".

Each action has a set of preconditions, a set of facts no longer true after
performing the action, and a set of facts newly true after performing the
action.  (This is the STRIPS formalism of Fikes and Nillson from 1971).
The entry for give might look like this:

	action(give(Actor, Recipient, Obj),
	       [has(Actor,Obj), canreach(Actor, Recipient)], % preconditions
	       [has(Actor,Obj)],	% delete list
	       [has(Recipient,Obj)]).	% add list

The planner searches for any action which has has(fred,whistle) in its
add list.  It finds that the action give(jim,fred,whistle) does, if we make

	Actor = jim, Recipient = fred, and Obj = whistle.

The preconditions are then

	[has(jim,whistle), canreach(jim,fred)]

the delete list is

	[has(jim,whistle)]

and the add list is

	[has(fred,whistle)]

The planner then tries to form a plan to achieve all the preconditions of
give(jim,fred,whistle), and then execute the act.  The code says:
P3 is a plan for

	achieve([has(fred,whistle)],[])

starting in situation S_In and ending in situation S_Out, if P1 is a plan for

	achieve([has(jim,whistle), canreach(jim,fred)],[])

starting from situation S_In and ending in situation S2, and P2 is a plan for

	do(give(jim,fred,whistle))]

starting from situation S2 and ending in situation S_Out,
and P3 = P1 followed by P2.

The planner then says that P1 is a plan for

	achieve([has(jim,whistle), canreach(jim,fred)],[])

starting in situation S_In and ending in situation S2 -- which I will now
denote as

	plan(achieve([has(jim,whistle), canreach(jim,fred)],[]), S_In, P1, S2)

if
	plan(achieve([has(jim,whistle)],[]), S_In, P4, S4)
and
	plan(achieve([canreach(jim,fred)],[has(jim,whistle)]), S4, P5, S2)

and P1 = P4 followed by P5.
(The last plan statement means, P5 is a plan for achieveing
canreach(jim,fred) while keeping has(jim,whistle) true, starting from S4
and ending in S2.)

The planner finds that has(jim,whistle) is already true.  It then tries to
achieve canreach(jim,fred).  It has two ways of doing this:

1. Find an action which has canreach(jim,fred) as a result.
(This is standard STRIPS planning, and can be done in any language.)

2. Find the definition in the program of "canreach", and construct a plan
to achieve a situation in which canreach(jim,fred) is true.

This second method is essential.  It is very unlikely that any of
your actions will have canreach(jim,fred) as a result.  canreach is
a complex predicate that specifies all the situations in which Jim can
reach Fred.

Here's why we can only do this in Prolog and not in TADS, Inform, Hugo,
or any of the other procedural languages:  The planner needs to find out
how to make it true that Jim can reach Fred.  The program code will say
something like, Jim can reach Fred if Jim is in the same room as Fred.
Prolog, unlike those other languages, is a logic programming language
(Prolog stands for "programming in logic").
So every precondition is written as a logical assertion about objects --
canreach(jim, fred) is true if there is some L such that in(jim,L) is
true and in(fred,L) is true.  In other words, the preconditions have
preconditions, and so on, ad infinitum.  The planner just pulls out
the precondition canreach(jim,fred) from its plan-under-construction
and plugs in the preconditions in(jim,L) and in(fred,L), then continues
on its merry way.

This is a simple example, and could be hacked around in a procedural
language, but if you work out some more complicated examples I think
you will come to agree with me that the only practical way to have an
effective planning system is to use a logical programming language.

If people are interested, I'll write a post explaining how the
planning system works in theory and in practice.

Phil Goetz@cs.buffalo.edu


From marnix@worldonline.nl Tue Oct 22 12:28:39 CED 1996
Article: 18550 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news00.sunet.se!sunic!news.sprintlink.net!news-peer.sprintlink.net!howland.erols.net!surfnet.nl!news.unisource.nl!news.worldonline.nl!usenet
From: marnix@worldonline.nl (Marnix Klooster)
Newsgroups: rec.arts.int-fiction
Subject: [CONTEST] Inform 5.5 game errors
Date: Tue, 22 Oct 1996 08:16:01 GMT
Organization: World Online
Lines: 48
Message-ID: <54hvs9$h2v@mars.worldonline.nl>
NNTP-Posting-Host: drdt2-p104.worldonline.nl
X-Newsreader: Forte Free Agent 1.0.82

Hello all,

Here are some detail I dug up on the Inform games that halt
with an error message on some interpreters.  At least, I
examined Delusions, and suspect other game files have the
same problem.  A bug in Inform 5.5 seems to be the culprit.

The error occurs when the Z-code for this game tries to
write into 'static memory' (ROM, so to speak).  Some
interpreters don't check this, others (including Frotz) do.
The code where the error arises is used to show a quote box.
Inform 5.5 generates Z-code for such a box uses a global
array.  When a box is to be displayed, (pointers to) strings
are stored in this array, and then a special display routine
is called.  The problem seems to be that the space reserved
for this array is one word too short.  So when the longest
quote is about to be displayed, the word after the array is
overwritten.  In the case of Delusions, this word is in fact
the first word of static memory.  Which makes Frotz
complain, as it should.  More lenient interpreters allow the
overwriting, but this could lead to trouble later.

As far as I can see, Inform 6 uses another (and more
efficient) mechanism for displaying boxes, so that this does
not occur.

The best solution would be to patch Inform 5.5 and
recompile, or to recompile with Inform 6 (and library 5/?).
A simpler one (for the author) is simply to leave out all
"box" statements; maybe the authors of the affected games
could upload such a version ASAP?

As a last resort (for the judge), use an interpreter without
much error-checking, and hope everything goes OK.  But it's
very well possible that you'll run into trouble later.  What
kind of trouble, I dare not foretell.

Groetjes,



 <><

Marnix
--
Marnix Klooster
marnix@worldonline.nl



From mulveyr@frontiernet.net Tue Oct 22 12:46:59 CED 1996
Article: 18532 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news00.sunet.se!sunic!nntp.coast.net!news.kei.com!news.texas.net!node2.frontiernet.net!usenet
From: mulveyr@frontiernet.net (Katy Mulvey)
Newsgroups: rec.arts.int-fiction
Subject: Re: Why you must use Prolog
Date: 21 Oct 1996 22:13:44 GMT
Organization: Total Chaos
Lines: 20
Distribution: world
Message-ID: <54gsio$afi@cheatum.frontiernet.net>
References: <54g91v$j2q@prometheus.acsu.buffalo.edu> <54gbrh$e3g@cheatum.frontiernet.net>
Reply-To: mulveyr@frontiernet.net
NNTP-Posting-Host: usr11-214.dial.roc.frontiernet.net
X-Newsreader: News for Windows NT X1.0-92

mulveyr@frontiernet.net (Katy Mulvey) wrote:
> I'd be more interested in knowing where I can get a free prolog compiler/
> interpreter that will work on a large variety of computers. (Windows PC,
> Linux, Macintosh, other unix variants, Amiga, Acorn, etc...)

Rather than wait, I found the following web site, which lists free
Prolog compilers:

http://www.cis.ohio-state.edu/hypertext/faq/usenet/prolog/resource-guide/part2/faq-doc-2.html

So now I have another question for Phil Goetz - do you know of
any predicate libraries specialized for use in writing adventure
games? 

  Katy

-- 
Rich or Katy Mulvey
mulveyr@frontiernet.net



From dmb@ai.mit.edu Tue Oct 22 13:14:14 CED 1996
Article: 18552 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news00.sunet.se!sunic!news.sprintlink.net!news-peer.sprintlink.net!www.nntp.primenet.com!nntp.primenet.com!cpk-news-hub1.bbnplanet.com!newsfeed.internetmci.com!news.kei.com!bloom-beacon.mit.edu!ai-lab!rice-chex!dmb
From: dmb@rice-chex.ai.mit.edu (David Baggett)
Newsgroups: rec.arts.int-fiction
Subject: Dave's TADS source distribution uploaded to IF archive
Date: 22 Oct 1996 02:49:46 GMT
Organization: MIT Artificial Intelligence Lab
Lines: 35
Message-ID: <54hcoa$7lm@life.ai.mit.edu>
Reply-To: dmb@ai.mit.edu
NNTP-Posting-Host: rice-chex.ai.mit.edu

I've uploaded my TADS source distribution, with Unix, Atari, and bugfix
changes applied.  It's a tarred and gzipped archive:

  <ftp://ftp.gmd.de/if-archive/programming/tads/source/>

I don't remember the exact filename and ftp.gmd.de is currently
inaccessible from my machine so I can't check it.  But it should be obvious
once you get there.

As an aside, Dave Picton has pointed out that the shipped version of ADV.T
has a bug.  Quoting him:

>In the version distributed with TADS 2.2.0.5, the following line in
>showcontcont
>
>           if (obj.isqsurface)
>
>is unkind to players - it makes surfaces 'quiet' by default, making
>it necessary to examine a desk to find out what is on it! It should
>read:
>
>           if (not obj.isqsurface)

Since there have been some other problems with the ADV.T in this recent
distribution, perhaps we should wait for a new ADV.T from Mike before
releasing a new TADS distribution?

Dave Baggett

PS> Volker, I will add this file to the newfiles list when I can get
    an rlogin into ftp.gmd.de.
__
dmb@ai.mit.edu
"Mr. Price: Please don't try to make things nice! The wrong notes are *right*."
--- Charles Ives (note to copyist on the autograph score of The Fourth of July)


From jbarlow@ipass.net Tue Oct 22 15:04:40 CED 1996
Article: 18555 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news00.sunet.se!sunic!news.sprintlink.net!news-peer.sprintlink.net!arclight.uoregon.edu!super.zippo.com!zdc-e!uunet!in3.uu.net!news.mindspring.com!mindspring!cpk-news-feed3.bbnplanet.com!news.ipass.net!newsadmin@passport.ipass.net
From: jbarlow@ipass.net (Joe Barlow)
Newsgroups: rec.arts.int-fiction,rec.games.int-fiction
Subject: Idea for Future I-F Competitions
Date: Tue, 22 Oct 1996 07:17:52 GMT
Organization: IPass.net
Lines: 85
Message-ID: <54hsl4$rcm@news.ipass.net>
NNTP-Posting-Host: customs127.ipass.net
X-Newsreader: Forte Free Agent 1.0.82
Xref: news.lth.se rec.arts.int-fiction:18555 rec.games.int-fiction:18295

Hello everyone!
	By now, most of us have probably had a chance to at least BEGIN
looking over the many wonderful entries in this year's competition.
I've played six of them so far, and every one has been impressive in
at least one regard (such as: a terrifically original plot, wonderful
prose quality, great puzzle implementation, etc).  I'm having a
difficult time picking my favorite of just the six that I've played...
and there are still over twenty to go!  Truly, Dickens was right: "It
was the best of times, it was the worst of times."  :)  All of the
writers should be tremendously proud of their achievements, but you've
made it difficult for us poor judges.  :)
	I think this year's entries have surpassed many people's expectations
with both their quality and quantity.  It has been commented that
finding time to play nearly thirty entries in a fairly short time
period will be difficult for many people.  Although there's nothing we
can do about that this year, I have an idea which might help future
competitions.  Please let me know what you think:

	Suppose next year, instead of having everyone download and play every
single entry, we seperate the games into various " lots"?   For
example, say that I am interested in judging next year's entries.  I
would simply e-mail Whizzard (or whoever) and request a lot number.
He would then write back "You are a judge for Lot #1" (or some other
number).  I would then download the games which comprise Lot #1, and
the judges for the other lots would do the same.  We would then vote
upon the best games in our lot, and the top three games from each lot
would then go to the Finals, where everyone could vote on them.  

Confused?  Thought so!  Let me talk you through it......

For instance, suppose 30 games are entered in next year's competition.
These 30 games are then divided into 3 lots (numbered Lot #1, Lot #2
and Lot #3), with each lot consisting of 10 games.  We'll also assume
that when I e-mailed Whizzard (or whoever) to ask for a lot number, I
was assigned Lot #1.  I would then go into the COMPETITION97 directory
on GMD.  Under this directory would be three more subdirectories:
LOT1, LOT2, and LOT3.  I would then go to the LOT1 directory, since
that's the lot I was assigned.  This directory would contain ten
entries, such as GAME1.Z5, GAME2.GAM, etc.  I would download all of
the entries in my lot and then play them, as would all of the other
folks who also were members of Lot #1.  All of the Lot #1 members
would vote on which of the ten titles they thought were the best.  The
top three entries for Lot #1 would then go to the Finals.  Folks
assigned to Lot #2 would do the same thing with the ten games in their
lot, and ditto for Lot #3. 
	Now the competition would progress to the Finals, which would consist
of nine games (the three "winners" from each lot).  Everyone would
then download the six Finalist games that they have not already played
as a part of their previous lot, and again, everyone would vote for
the best of the 9 Finalists.  Tabulate the votes, and we have our
winners!
	With this method, I think folks will be less "swamped" with the
entries than they are this year.  Every game is still actively played
by a roughly equal number of people, and the best games still seem
like they will rise to the top.  An additional advantage of using this
system: authors can participate in the voting. Suppose I authored a
"Lot #2" game.  If I was assigned to judge Lot #1, I could still
participate in the voting.  
	So one more time.  We'll say Lot #1 contains Games 1-10.  Lot #2
contains games 11-20.  Lot #3 contains Games 21-30.  I am assigned to
be a judge for Lot #1.  I download the ten games in lot #1 and play
them all (Judges for Lots #2 and #3 do the same thing).  The Lot #1
judges decide (by voting) that the best games are games #4, #7 and #9.
Lot #2 judges choose games #12, #17 and #18.  The Lot #3 folks choose
games #22, #24 and #30.  These nine games then go to the Finals.
Everyone downloads the games that they haven't already played, and we
vote again, but of course we can only vote on the 9 finalists.  The
votes received from this level of the competition would determine the
winners of the IF competition.
	Another thing to stress: just because you are assigned to one
particular lot doesn't mean you can't play the games in the other lots
(assuming you are blessed with enough free time to do that).  All it
means is that you can't VOTE ON the other lots.  For the first round,
you can only vote on the games in your individual lot, and in the
Finals, you can only vote on the Finalist Games.  But anyone is free
to PLAY the games from any lot, if time allows them that luxury.

Whaddya think?

Joe
 
-=-=-=-=-=-=-=-=-=-=-
Joe Barlow  (jbarlow@ipass.net)
"Zorkers do it under the rug..."



From slim@ladle.demon.co.uk Tue Oct 22 15:50:37 CED 1996
Article: 18557 of rec.arts.int-fiction
From: John Hartnup <slim@ladle.demon.co.uk>
Subject: Re: Why you must use Prolog
X-Newsreader: TIN [version 1.2 PL2]
Organization: At home with John & Debbie
Message-ID: <DzoCLq.8A@ladle.demon.co.uk>
References: <54g91v$j2q@prometheus.acsu.buffalo.edu> <54gbrh$e3g@cheatum.frontiernet.net> <54gjrl$ote@prometheus.acsu.buffalo.edu> <baf.845936561@max.tiac.net> <erkyrathDznnEK.D1L@netcom.com>
Date: Tue, 22 Oct 1996 11:15:25 GMT
Path: news.lth.se!newsfeed.sunet.se!news01.sunet.se!sunic!02-newsfeed.univie.ac.at!01-newsfeed.univie.ac.at!voskovec.radio.cz!www.nntp.primenet.com!nntp.primenet.com!enews.sgi.com!arclight.uoregon.edu!dispatch.news.demon.net!demon!mail2news.demon.co.uk!ladle.demon.co.uk!slim
Newsgroups: rec.arts.int-fiction
X-NNTP-Posting-User: news@ladle.demon.co.uk
X-Mail2News-Path: news.demon.net!relay-1.mail.demon.net!post.demon.co.uk!relay-3.mail.demon.net!ladle.demon.co.uk
Lines: 39

Andrew Plotkin (erkyrath@netcom.com) wrote:

: Efficiency is another issue (which Phil Goetz raises in another post.) 
: Any interpreter running on the Z-machine is going to be miserably slower 
: than an interpreter written in native code. If the bottleneck is 
: computation, anyway.

Surely this is an issue with any program running under the Z-Machine? It's
just that most Inform programs aren't all that computationally intensive
at the moment.

Presumably if someone wrote some code for goal-driven NPCs, then whether
it was written in a prolog way or in some other way, it would take a
lot of CPU cycles.

Another thing to bear in mind: when would NPCs be allowed to "think",
"plan" etc... do these goal-analysis computations occur in normal
game computation time (i.e. between when you press "enter" and when
the game's response appears), or should they occur in the background,
calculating while the prompt is waiting for input?

If the player acts quickly (in real time or in turns?), does this 
mean the goal-seeking system gets less time? Is there a way we can
force the NPC to act on an incomplete search?

I gather commercial games, particularly sports games and bead-em-ups,
employ some pretty serious AI to control NPCS (Electronic Arts publish
white papers on Genetic Programming). Presumably IF could employ GP,
neural nets... all sorts of alternatives to the rather mechanical
Prolog.

*I* don't fancy implementing them, mind you...

John
-- 
-----------------------------------------------------------
John Hartnup          | You can drink your weak lemon drink
slim@ladle.demon.co.uk| now, or you can save it 'til later.
-----------------------------------------------------------


From nulldogma@aol.com Tue Oct 22 15:51:41 CED 1996
Article: 18563 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news00.sunet.se!sunic!news.sprintlink.net!news-peer.sprintlink.net!howland.erols.net!newsxfer2.itd.umich.edu!portc01.blue.aol.com!newstf01.news.aol.com!newsbf02.news.aol.com!not-for-mail
From: nulldogma@aol.com (Nulldogma)
Newsgroups: rec.arts.int-fiction
Subject: [Comp96: Specific] Genres
Date: 22 Oct 1996 08:31:19 -0400
Organization: America Online, Inc. (1-800-827-6364)
Lines: 34
Sender: root@newsbf02.news.aol.com
Message-ID: <54ieqn$b4u@newsbf02.news.aol.com>
References: <Pine.OSF.3.95.961021214003.28904A-100000@saul7.u.washington.ed
Reply-To: nulldogma@aol.com (Nulldogma)
NNTP-Posting-Host: newsbf02.mail.aol.com

Matthew Amster-Burton wrote:


















> Is anyone else getting sick of traditional sci-fi/fantasy games?  I have
> nothing against the genre (Spellbreaker and Trinity were my favorite
> Infocoms), but its works are becoming stale and indistinguishable. 
Games
> that take a different tack are making a much better impression on me.

Yeah. Though I have to admit, my hands-down favorite game so far has a lot
of traditional aspects. Still, the number of games where I read the
opening screen and went "Oh, not another one of *those*" was pretty high.

Neil
---------------------------------------------------------
Neil deMause                            neild@echonyc.com
                  http://www.echonyc.com/~wham/neild.html
---------------------------------------------------------


From nulldogma@aol.com Tue Oct 22 16:14:55 CED 1996
Article: 18563 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news00.sunet.se!sunic!news.sprintlink.net!news-peer.sprintlink.net!howland.erols.net!newsxfer2.itd.umich.edu!portc01.blue.aol.com!newstf01.news.aol.com!newsbf02.news.aol.com!not-for-mail
From: nulldogma@aol.com (Nulldogma)
Newsgroups: rec.arts.int-fiction
Subject: [Comp96: Specific] Genres
Date: 22 Oct 1996 08:31:19 -0400
Organization: America Online, Inc. (1-800-827-6364)
Lines: 34
Sender: root@newsbf02.news.aol.com
Message-ID: <54ieqn$b4u@newsbf02.news.aol.com>
References: <Pine.OSF.3.95.961021214003.28904A-100000@saul7.u.washington.ed
Reply-To: nulldogma@aol.com (Nulldogma)
NNTP-Posting-Host: newsbf02.mail.aol.com

Matthew Amster-Burton wrote:


















> Is anyone else getting sick of traditional sci-fi/fantasy games?  I have
> nothing against the genre (Spellbreaker and Trinity were my favorite
> Infocoms), but its works are becoming stale and indistinguishable. 
Games
> that take a different tack are making a much better impression on me.

Yeah. Though I have to admit, my hands-down favorite game so far has a lot
of traditional aspects. Still, the number of games where I read the
opening screen and went "Oh, not another one of *those*" was pretty high.

Neil
---------------------------------------------------------
Neil deMause                            neild@echonyc.com
                  http://www.echonyc.com/~wham/neild.html
---------------------------------------------------------


From crosby@nordsieck.cs.colorado.edu Wed Oct 23 11:20:56 CED 1996
Article: 18607 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news00.sunet.se!sunic!news.sprintlink.net!news-peer.sprintlink.net!uunet!in2.uu.net!boulder!nordsieck.cs.colorado.edu!crosby
From: crosby@nordsieck.cs.colorado.edu (Matthew Crosby)
Newsgroups: rec.arts.int-fiction,rec.games.int-fiction
Subject: Re: CONTEST: STALKER.Z5  (MAJOR SPOILERS)
Date: 23 Oct 1996 02:49:53 GMT
Organization: University of Colorado, Boulder
Lines: 72
Message-ID: <54k14h$kvv@lace.colorado.edu>
References: <54jtml$6o6@news.ipass.net>
NNTP-Posting-Host: nordsieck.cs.colorado.edu
NNTP-Posting-User: crosby
Xref: news.lth.se rec.arts.int-fiction:18607 rec.games.int-fiction:18325

In article <54jtml$6o6@news.ipass.net>, Joe Barlow <jbarlow@ipass.net> wrote:
>
>WARNING!  THIS POST CONTAINS MAJOR SPOILERS AND VERY STRONG OPINIONS
>REGARDING THE GAME "THE HOUSE OF THE STALKER", ONE OF THE 1996 I-F
>CONTEST ENTRIES.  IF YOU HAVE NOT ALREADY PLAYED AND EVALUATED THE
>GAME, PLEASE DO NOT CONTINUE.
>
>
 
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>        I just got done with my evaluation period of Jason Clayton
>White's "House of the Stalker".  Several things about it strike me as
>either odd or disappointing, and I wanted to mention some of them and
>see what other folks thought. 
>        The premise of the game: the player is in the attic of his (or
>her) house.  A report comes on the radio, informing you that a
>dangerous criminal has escaped from a local mental institution.
>Seconds later, you hear a crash downstairs.  Your job is merely to
>investigate the noise.
>
>
>THE GOOD:
>        This game employs a "Beyond Zork"-style status line, listing
>all of the exits available from the player's current location.  This
>is a nice feature that helped me keep track of where I was in the
>house.  I wouldn't mind seeing this in more games.
>        The game is non-gender specific.  Through the course of the
>game, you learn that your character is recently divorced, and your
>ex-spouses' name is given simply as "Jamie", a name which is used for
>both men and women. It's a small, subtle touch, but it didn't go
>unnoticed by me.
>    The hint system in the game is quite well implemented, and I
>actually *liked* the fact that the game takes away a point from your
>score if you type HELP.  It encourages you to really think about
>things before getting a hint. 

It had some other nice touches.  I liked the computer, even though of
course it wasn't hard to do, just adds to the little details.

>THE BAD:
>        Unfortunately, the solutions to some of the puzzles are quite
>illogical.  (How do you load a gun if you can't find any bullets?  Oh,
>just pour some DRANO inside the gun; it works just as well as bullets
>do!)

This is unfair.  Its a _squirt_ gun.  (unless there are bugs that allow
you to use the pistol as well)

I do agree that the prose wasn't amazing, though it wasn't TERRIBLE.
I also though the story was a bit ho-hum.  And the bugs where a bit
biting.  I also agree that the killer was a cutout.  But I still think 
overall I liked this, maybe it isn't top 10 but it is hardly Detective.

-- 
Matthew Crosby                                         crosby@cs.colorado.edu
Disclaimer:  It was in another country, and besides, the wench is dead.


From nelson@vax.oxford.ac.uk Wed Oct 23 12:59:53 CED 1996
Article: 18611 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news00.sunet.se!sunic!news.sprintlink.net!news-peer.sprintlink.net!howland.erols.net!EU.net!usenet2.news.uk.psi.net!uknet!usenet1.news.uk.psi.net!uknet!uknet!bhamcs!news.ox.ac.uk!oxvaxd!nelson
From: nelson@vax.oxford.ac.uk (Graham Nelson)
Newsgroups: rec.arts.int-fiction
Subject: Misplaced pride / Inform 5 vs 6
Date: 23 Oct 96 09:26:38 GMT
Organization: Oxford University VAX 6620
Lines: 26
Message-ID: <1996Oct23.092638@oxvaxd>
NNTP-Posting-Host: vax.ox.ac.uk


Just a note to say how splendid it is to see 17, count them, SEVENTEEN
brand-new Inform games come into the world this week, as part of the 1996
Interactive Fiction Competition.

Half as many as the entire Infocom output!  I almost feel proud, even as a
mere backroom boy.

--- --- --- ---

If I can just lapse back into grumpy technician mode now, it does strike me
that of those 17, only 5 are using Inform 6; the other 12 sticking to Inform
v1502 (and library 5/12), that is, with the final version of Inform 5.

This is the nearest I can get to a customer survey, in some ways.  Would it be
appropriate to ask how people are reacting to Inform 6?  I've generally hoped
that it would be thought a step forward.  (Though it hasn't been available for
all that long, and nobody likes learning a new system.)

Do people intend to upgrade?  Is it that I6 is too new to have tried yet, or
do people actually prefer I5?  Is there anything I could do to help?

(Incidentally this is a good time to email me with bug reports about v6.05 --
though of course Inform 6.05 is perfect.)

    Graham Nelson


From erkyrath@netcom.com Thu Oct 24 14:05:36 CED 1996
Article: 18673 of rec.arts.int-fiction
Newsgroups: rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news00.sunet.se!sunic!nntp.coast.net!dispatch.news.demon.net!demon!netcom.net.uk!netcom.com!erkyrath
From: erkyrath@netcom.com (Andrew Plotkin)
Subject: Re: [All systems] Genere: Depressing
Message-ID: <erkyrathDzrM2I.3Bp@netcom.com>
Organization: NETCOM On-line Communication Services (408 261-4700 guest)
X-Newsreader: TIN [version 1.2 PL1]
References: <326EBBEE.6130@skipjack.bluecrab.org>
Date: Thu, 24 Oct 1996 05:32:42 GMT
Lines: 30
Sender: erkyrath@netcom13.netcom.com

Ross Raszewski (rraszews@skipjack.bluecrab.org) wrote:
> Is anyone still interested in writing your basic adventuring-type text
> adventure?  I mean, what with "A Change in the Weather", "So Far" and
> all, people seem to be engrossed in the concept of making anti-games,
> with no puzzles, where your purpose is to wander about and sample the
> ambiance.

I give unto you a funny look. The central puzzle in "Weather" was rated 
as damn near unsolvable by quite a few people. _So Far_ is, well, if 
you'd been watching me design it, you'd have thought I was planning a 
series of puzzles loosely strung together by some plot. (You'd have been 
wrong, but for complicated reasons.)

>  There are at least two games like this in the competiton. 
> I'm not saying this isn't moving and signifigant, but I think I may have
> actually ceased to exist at one point while playing these games.  A game
> that leaves me questioning the meaningfulness of life is deep, yeah, but
> it's not exactly _fun_

Well, I know your initial rhetorical question was rhetorical, but it was 
a particularly bad way to phrase it. *Sure* some people are still 
interested in classic quest games. I'm sure you can find some examples
among the entries.

--Z

-- 

"And Aholibamah bare Jeush, and Jaalam, and Korah: these were the
borogoves..."


From masenten@hans.math.upenn.edu Thu Oct 24 14:09:28 CED 1996
Article: 18670 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news01.sunet.se!sunic!02-newsfeed.univie.ac.at!01-newsfeed.univie.ac.at!voskovec.radio.cz!www.nntp.primenet.com!nntp.primenet.com!feed1.news.erols.com!howland.erols.net!newsxfer2.itd.umich.edu!portc01.blue.aol.com!newsstand.cit.cornell.edu!news.acsu.buffalo.edu!dsinc!netnews.upenn.edu!hans.math.upenn.edu!masenten
From: masenten@hans.math.upenn.edu (Robert Masenten)
Newsgroups: rec.arts.int-fiction,rec.games.int-fiction
Subject: AGiliTy 0.3
Date: 24 Oct 1996 06:53:00 GMT
Organization: Univ. of Pennsylvania Dept. of Mathematics
Lines: 69
Message-ID: <54n3oc$9eu@netnews.upenn.edu>
NNTP-Posting-Host: hans.math.upenn.edu
Xref: news.lth.se rec.arts.int-fiction:18670 rec.games.int-fiction:18366

  I've just uploaded AGiliTy 0.3 to ftp.gmd.de; it's currently in
/incoming/if-archive/, but will end up in /if-archive/betas/.
  The files are 
    agil03src.zip    The source code
    agil03linux.tgz  The linux version
    agil03dos.zip    The DOS version 
It includes a number of enhancements and bug fixes over 0.2 and in
particular it now runs both of the competition entries.
      
Robert Masenten


=================================================
AGILITY: THE (MOSTLY) UNIVERSAL AGT INTERPRETER
Version 0.3 (beta)
=================================================

  This is an interpreter for game files created with Malmberg and
Welch's _Adventure Game Toolkit_. AGiliTy is universal in the sense
that it understands and interprets most of the many versions of the
AGT game file format (unlike the original interpreters which were
only intended to run the game file format associated with them) and
also in that it is written in ANSI C and so should be straightforward
to port to other systems.

  It is *not* a port of the original interpreters but rather a
completely new interpreter built around the game file format; while it
follows the original interpreters on most things, there are some
differences which are described below.

  AGiliTy is known to understand the following versions of AGT (which
include almost every AGT game at ftp.gmd.de):
  --1.18
  --the early 'Classic AGT': e.g. 1.19, 1.2, 1.21 
  --"Classic AGT", both big and small: e.g. 1.3, 1.32, 1.35, 1.5, 1.7
  --the "Even Bigger 1.32" used by _Cosmoserve_
  --the "Chemically Altered 1.32" used by _Shades of Gray_, 
  --Menichelli's 1.82 and 1.83 (only minimally tested)
  --Both known "pre-Master's" 1.5 variants
  --The "Master's Edition", versions 1.0, 1.55, and 1.56/1.6. 


DIFFERENCES BETWEEN AGILITY AND THE ORIGINAL INTERPRETERS
-----------------------------------------------------------
 --Disambiguation is done on the normal command entry line rather than
having a special prompt.
 --LISTEXIT ON, LISTEXIT OFF will turn automatic listing of exits on or
off (in AGT there is a LIST EXITS command, so some AGT games fail to
list exits to a room).
 --OOPS, UNDO, and RESTART are supported (at least on systems with
enough memory).
 --Adjective-only matches are accepted by the parser.
 --Some more multiple word verbs are automatically recognized (for
example, GET IN is automatically translated into ENTER).
 --Some built-in verbs have additional synonyms. (In particular,
standard one-letter abbreviations are supported: X for EXAMINE, Z for
WAIT)
 --The standard error messages are different than the original (except
in Master's Edition games where most of the standard error messages
are included in the game file)
 --SCRIPT output is sent to a file rather than to the printer.
 --AGiliTy has an extended AGILDEBUG debugging verb and supports more
detailed metacommand debugging output.  
 --AGiliTy uses a different save file format.  
 --COLORS is not supported, although on some systems equivilant
functionality may be supported in the configuration file. 
 --Graphics, sound, and fonts are not supported (although the remaining
Master's Edition language extensions are).



From jota@laraby.tiac.net Thu Oct 24 17:56:11 CED 1996
Article: 18677 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news01.sunet.se!sunic!02-newsfeed.univie.ac.at!01-newsfeed.univie.ac.at!voskovec.radio.cz!nntp.zit.th-darmstadt.de!nntp.uio.no!Norway.EU.net!sn.no!news-stkh.gsl.net!news.gsl.net!news-peer.gsl.net!news.gsl.net!howland.erols.net!newsfeed.internetmci.com!in1.uu.net!news-in.tiac.net!posterchild!laraby.tiac.net!jota
From: jota@laraby.tiac.net (Admiral Jota)
Newsgroups: rec.arts.int-fiction
Subject: Re: [All systems] Genere: Depressing
Date: 24 Oct 96 13:50:32 GMT
Organization: The Internet Access Company, Inc.
Lines: 30
Message-ID: <jota.846165032@laraby.tiac.net>
References: <326EBBEE.6130@skipjack.bluecrab.org>
NNTP-Posting-Host: laraby.tiac.net
X-Newsreader: NN version 6.5.0 #1 (NOV)

Ross Raszewski <rraszews@skipjack.bluecrab.org> writes:

>Is anyone still interested in writing your basic adventuring-type text
>adventure?  I mean, what with "A Change in the Weather", "So Far" and
>all, people seem to be engrossed in the concept of making anti-games,
>with no puzzles, where your purpose is to wander about and sample the
>ambiance.  

Woah... If you consider "A Change in the Weather" to be puzzle-less IF, I 
don't think it would be possible to create a puzzle to satisfy you!

>There are at least two games like this in the competiton. 
>I'm not saying this isn't moving and signifigant, but I think I may have
>actually ceased to exist at one point while playing these games.  A game
>that leaves me questioning the meaningfulness of life is deep, yeah, but
>it's not exactly _fun_

Oh, I don't know, some of them are, some aren't. In this competition 
alone, I've played several quest-ish games that were pretty boring, and 
some deep, thoughtful games that were great. I think the only reason that 
there are so many deep/thoughtful games right now is because it's kind of 
a new thing (well, not completely *new*, but they're just starting to 
become popular). In a while, the fad will die down, and they'll just be 
another genre (IMHO), and something else will pop up to take its place.

--
                         /<-= -=-=- -=  Admiral Jota  =- -=-=- =->\
                     __/><-=-  http://www.tiac.net/users/jota/  =-><\__
                       \><-= jota@mv.mv.com  --  Finger for PGP =-></
                         \<-=- -=  -=-  -=  -==-  =-  -=-  =- -=->/


From whizzard@uclink.berkeley.edu Fri Oct 25 09:21:28 CED 1996
Article: 18692 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news00.sunet.se!sunic!news.sprintlink.net!news-peer.sprintlink.net!howland.erols.net!newsxfer2.itd.umich.edu!agate!uclink.berkeley.edu!whizzard
From: whizzard@uclink.berkeley.edu (Gerry Kevin Wilson)
Newsgroups: rec.arts.int-fiction
Subject: Re: Let Beta-Testers Vote
Date: 24 Oct 1996 16:59:53 GMT
Organization: University of California at Berkeley
Lines: 33
Message-ID: <54o7a9$iao@agate.berkeley.edu>
References: <23OCT96.14940990.0045@128.192.253.5> <54m3gv$num@newsbf02.news.aol.com> <erkyrathDzsFsC.5vs@netcom.com>
NNTP-Posting-Host: uclink.berkeley.edu

In article <erkyrathDzsFsC.5vs@netcom.com>,
>Nulldogma (nulldogma@aol.com) wrote:
>> (In fact, last year authors voted, didn't we? I know I did -- and no, I
>> didn't vote for Undo. Though I'm not sure I would've even if I hadn't
>> written it...)

Different contest entirely.  The rules have evolved quite a bit from last
year's ONE RULE.  (Which, I admit, I liked better.)  Still, too much stuff
came up.  Possible copyright infringement, among others.  So, things got
more complex, but allow for lumping everything in one category fairly
without killing every non-Inform game out there.  On the bad side, this
means that an author's vote could have a much greater impact than last
year, because he/she could pull down every opponent's score while raising
his/her own score.  I don't believe this would happen, but neither do I
want to be witness to such lameness.

And with betatesters, they tested a number of games, but not every game.
I daresay people tend to like games that they've contributed to.  So, to
prevent those authors who used the official testers getting an unfair
advantage (as opposed to a legitimate advantage from planning ahead and
testing.) I had to remove betatesers from the voting pool as well.  Since
all those authors and testers were looking depressed, someone suggested a
Ms. Congeniality award.  Thus, we have the system currently in place.

And as Andrew said, it's far too late to be changing rules.  I'll try and
fill in the gaps that the rules don't cover, but the established rules are
set in steel, this year anyways.

-- 
<~~~VERTIGO~~~~~~~~~~~~~~~~SPAG~~~~TENTH~ISSUE~DUE~REAL~SOON~NOW~~~~~|~~~~~~~>
<  The Society for the Preservation of Adventure games.  Filled with |  ~~\  >
<  reviews, ratings, and advertisements...all about text adventures. | /~\ | >
<___SOFTWARE______E-MAIL_FOR_INFO______whizzard@uclink.berkeley.edu__|_\__/__>


From erkyrath@netcom.com Fri Oct 25 09:22:39 CED 1996
Article: 18689 of rec.arts.int-fiction
Newsgroups: rec.arts.int-fiction,rec.games.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news00.sunet.se!sunic!news.sprintlink.net!news-peer.sprintlink.net!howland.erols.net!netcom.com!erkyrath
From: erkyrath@netcom.com (Andrew Plotkin)
Subject: Re: Let Beta-Testers Vote
Message-ID: <erkyrathDzsFL9.5CA@netcom.com>
Followup-To: rec.arts.int-fiction,rec.games.int-fiction
Organization: NETCOM On-line Communication Services (408 261-4700 guest)
X-Newsreader: TIN [version 1.2 PL1]
References: <23OCT96.14940990.0045@128.192.253.5>
Date: Thu, 24 Oct 1996 16:10:21 GMT
Lines: 94
Sender: erkyrath@netcom.netcom.com
Xref: news.lth.se rec.arts.int-fiction:18689 rec.games.int-fiction:18379

Dave Gatewood (DGATEWOO@MUSIC.CC.UGA.EDU) wrote:
> I feel like authors and beta-testers (beta-testers at the very least)
> should be allowed to vote in the general competition.  

First, I will reorder your post:

> It's certainly not too late to change this rule if others agree with
> me

Yes it is. It's *way* too late. Do not attempt to change radiator fluid 
while nuclear power plant is in operation.

So for next year: 

> I see only 3
> reasons why not:

> PROBLEM #1: It's difficult to judge a game fairly that you wrote or
> tested.

> Okay, I agree with that.  I'm only petitioning for voting on the OTHER
> games, that you weren't involved with.

Ok.

> PROBLEM #2: Unintentional effect on scores.  Let me give my own
> situation as an illustrative example of what I mean here.  I beta
> tested one game, Fear.  If I now vote on every game EXCEPT for Fear,
> and I tend to be a low scorer, then I give Fear a slight advantage,
> because it doesn't get one of my typically low scores.  Similarly,
> if I tend to score high, Fear has a slight disadvantage.

I agree that this is irrelevant; the system accepts the fact that not 
every person can vote on every game.

> PROBLEM #3: Cheating.  An author (or a really gung-ho beta-tester)
> could give a 1 to every game that's not his own.  (Or he could do
> something similar but not so obvious.)

> I'm sorry, but it's just SO EASY to cheat anyway, if someone wants to.
> Stuffing an e-mail ballot box is not a problem.  Thus we're on the
> honor system already - we're just going to have to trust people to
> be fair.

I also am not greatly worried about deliberate cheating, but I do worry 
about unconscious influence. (You may note that I'm the one who's always 
bragging that he knows he's influenced by reading other people's 
opinions. Related story here.)

> ADVANTAGE #1: With 26 games in the competition, we've got to have
> disallowed at least 100 people from voting officially.  I don't
> know how many people are lurking on r.g.i-f, but it's reasonable to
> predict that we'll have a fairly small group of judges
> (Personally, I expect the Miss Congeniality contest to have more
> judges than the general contest.)

I don't expect that at all. I expect that, just as there was a tremendous 
upsurge in entries this year (many from people I'd never heard of), there 
will also be a tremendous and unexpected (except by me :-) surge in 
voters. Two hundred? Three hundred? (How many people voted last year?)

We tend to judge the size of the IF community by the number of people who 
post to r.*.i-f. This is just plain wrong. Of the people I know 
face-to-face (most of whom are computer people), I'm the only one who 
posts, but at least three people either lurk or check ftp.gmd.de regularly, 
and are probably going to vote.

> ADVANTAGE #2: I would think (forgive the huge generalization) that
> authors and beta-testers would in general have a different viewpoint
> than "strictly game players" about what's good and bad in a game.
> (For one thing, by knowing how the programming languages work , they
> are better able to determine what elements of a game should be
> credited to the specific game, and what elements are due to, say,
> Graham Nelson.)  The inclusion of this additional viewpoint would,
> IMHO, make for a better contest.

This is true. The authors/testers'-choice section does display this 
viewpoint, although that's not the same as including it in the 
general contest.

> ADVANTAGE #3: It'll make people like me happy that our votes count
> in the official competition.  (Aha, so now we see your REAL
> motivation... ;)  Seriously, I'll invest a lot of time in scoring
> all these games - I'd like it to count.

I regard both sections as "official". If you're right and there are more 
MC voters, the MC section will be even more "official" for that fact.

--Z

-- 

"And Aholibamah bare Jeush, and Jaalam, and Korah: these were the
borogoves..."


From ct@ecs.ox.ac.uk Sun Oct 27 20:37:53 CET 1996
Article: 18804 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news00.sunet.se!sunic!news.sprintlink.net!news-peer.sprintlink.net!howland.erols.net!netcom.com!www.nntp.primenet.com!nntp.primenet.com!cs.utexas.edu!newshost.convex.com!newsgate.duke.edu!agate!sunsite.doc.ic.ac.uk!warwick!bham!bhamcs!news.ox.ac.uk!news
From: ct@ecs.ox.ac.uk (ct)
Newsgroups: rec.arts.int-fiction
Subject: Re: [CONTEST] * (really quite explicit) SPOILERS *
Date: 26 Oct 1996 08:04:08 GMT
Organization: oucl
Lines: 46
Message-ID: <54sglo$l7h@news.ox.ac.uk>
References: <54h1fj$e1s@nr1.calgary.istar.net> <54ip0f$1vd@news.ipass.net> <54kr0p$56a@news.ox.ac.uk> <baf.846085211@max.tiac.net>
NNTP-Posting-Host: client43.comlab.ox.ac.uk

SPOILER WARNING !!










In article <baf.846085211@max.tiac.net>,
Carl Muckenhoupt <baf@max.tiac.net> wrote:
>>ct wrote:
>>Now I've just got to
>>find a 'lists' expert to find out why my inital attempt at the last
>>puzzle didn't work...
>
>Post it (with appropriate spoiler warnings) and we'd be happy to take a
>look.  Alternately, there's comp.lang.scheme...

Well, my final solution was:

(define p (lambda (b) (lambda (x) (cond ((null? x) b) (t (p x)) ) )))

However, I'd originally tried to remove the second function into a LETREC
structure as:

(define p (letrec (
  ((a (lambda (x) (cond ((null? x) b) (t (p x)) ))
  lambda (b) a))
 )))

or somesuch, I don't have it with me, but it wouldn't bind the b in referenced
in a to the parameter of p. Having thought about it since, I could presumably
have moved the letrec inside to get lambda (b) (letrec ((a ...)) a), but
that seems rather self-defeating.

Anyway, it all worked, and I loved the game.

regards, ct


                     




From whizzard@uclink.berkeley.edu Sun Oct 27 20:44:50 CET 1996
Article: 18795 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news00.sunet.se!sunic!news.sprintlink.net!news-peer.sprintlink.net!cs.utexas.edu!howland.erols.net!agate!uclink.berkeley.edu!whizzard
From: whizzard@uclink.berkeley.edu (Gerry Kevin Wilson)
Newsgroups: rec.arts.int-fiction,rec.games.int-fiction
Subject: Re: two competition entries have been updated
Date: 26 Oct 1996 05:19:52 GMT
Organization: University of California at Berkeley
Lines: 50
Message-ID: <54s71o$egh@agate.berkeley.edu>
References: <326C7F55.2CC8@gmd.de> <54jq7c$2lr6$2@news-s01.ca.us.ibm.net> <326FA8ED.674C21CD@lynx.ps.uci.edu> <54p5bm$qpa@lace.colorado.edu>
NNTP-Posting-Host: uclink.berkeley.edu
Xref: news.lth.se rec.arts.int-fiction:18795 rec.games.int-fiction:18445

In article <54p5bm$qpa@lace.colorado.edu>,
Matthew Crosby <crosby@nordsieck.cs.colorado.edu> wrote:
>In article <326FA8ED.674C21CD@lynx.ps.uci.edu>,
>Carl Edman  <cedman@lynx.ps.uci.edu> wrote:
>>
>>Oh, calm down !  The purpose of competitions such as this is to allow
>>writers to enjoy themselves writing and players to enjoy themselves
>>playing.  Even the prizes are largely nominal.  I doubt there is a
>>single author who couldn't have earned an order of magnitude more than
>>the monetary value of any price in the time he spent creating his
>>competition entry.
>
>Here here!  I have been seeing a lot of bellyaching recently, about
>"fairness" and trying to micromanage the rules to exact specifications
>and stuff.  This, in my mind, misses the point.  The point is not
>to find an exact ranking of who is better then who.  The point is
>to get new IF out there, to experiminent, to see what your peers think
>of your writing.
>
>There are sonme great games.  There are some real turkeys.  There
>are some games that try to be experimental--and fail, and some that
>succeed.  But they have all been fun.  Each represents someones hard
>work.

Amen guys.  I do this for fun, the authors do this for fun.  Hopefully the
judges have fun when playing the games.  Last year's ONE RULE is really
the epitomy of what I wanted in the contest.  But, it wasn't to be.
Still, I'd like to preserve that sense of things as much as possible.
More rules = less fun.  And of course, if someone would prefer a
micromanaged contest, they can start their own.  Me, I'm happy allowing as
broad a range of entries as possible.  It encourages people to experiment
both with new styles of I-F and with new authorship programs (as well as
writing their own parsers.)  I like to see what folks can come up with.

Of course, with all the system snobbery this year, I fear that next year's
entries will all be written in Inform.  Inform, while I'm sure an
excellent system, should hardly be the be-all of I-F.

This year's discussions have been noticeably less friendly than last
year's.  It saddens me to see this.  It also makes me sad to see so many
entries discounted out of hand, or with only a cursory glance.  Me, I
loved playing them all.  Every entry is a sign that my favorite hobby is
still kicking.

Oh well, maybe everyone will mellow out.
-- 
<~~~VERTIGO~~~~~~~~~~~~~~~~SPAG~~~~TENTH~ISSUE~DUE~REAL~SOON~NOW~~~~~|~~~~~~~>
<  The Society for the Preservation of Adventure games.  Filled with |  ~~\  >
<  reviews, ratings, and advertisements...all about text adventures. | /~\ | >
<___SOFTWARE______E-MAIL_FOR_INFO______whizzard@uclink.berkeley.edu__|_\__/__>


From erkyrath@netcom.com Sun Oct 27 23:01:05 MET 1996
Article: 18784 of rec.arts.int-fiction
Newsgroups: rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news00.sunet.se!sunic!nntp.coast.net!howland.erols.net!netcom.com!erkyrath
From: erkyrath@netcom.com (Andrew Plotkin)
Subject: Re: [Inform] redirecting actions
Message-ID: <erkyrathDzwL6M.Ist@netcom.com>
Organization: NETCOM On-line Communication Services (408 261-4700 guest)
X-Newsreader: TIN [version 1.2 PL1]
References: <54r8ti$8m4@sjx-ixn10.ix.netcom.com> <54rcgo$g9e@dfw-ixnews12.ix.netcom.com>
Date: Sat, 26 Oct 1996 22:01:34 GMT
Lines: 44
Sender: erkyrath@netcom13.netcom.com

Russell Wain Glasser (rglasser@ix.netcom.com) wrote:
> In <54r8ti$8m4@sjx-ixn10.ix.netcom.com> rglasser@ix.netcom.com(Russell
> Wain Glasser) writes: 
> >
> >    Here's something new I want to try.  Let's say you have some
> >objects, and one should "steal" the actions for the other one.  
> [snip snip snip]

>     Please disregard last posting.  The answer was so obvious I almost
> kicked myself.

> Object yorick "ghost of Yorick"
>     with react_before
>     [;
>         if (self in noun)
>             noun = self;
>         if (self in second)
>             second = self;
>     ];

I actually wouldn't do this. The noun and second variables are "owned" by 
the library, and I don't know everything the library is doing with them 
deep in the works. I'd certainly spend a lot of time inspecting the 
library source code before I started changing them on the fly.

This is safer:

Object yorick "ghost of Yorick"
    with react_before
    [;
        if (self in noun && noun == second)
            <<(action) self self>>;
        if (self in noun)
            <<(action) self second>>;
        if (self in second)
            <<(action) noun self>>;
    ];

--Z

-- 

"And Aholibamah bare Jeush, and Jaalam, and Korah: these were the
borogoves..."


From as400477@orion.yorku.ca Sun Oct 27 23:01:29 MET 1996
Article: 18769 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news01.sunet.se!sunic!02-newsfeed.univie.ac.at!01-newsfeed.univie.ac.at!swidir.switch.ch!in2p3.fr!univ-lyon1.fr!howland.erols.net!torn!newshub.ccs.yorku.ca!orion.yorku.ca!as400477
From: as400477@orion.yorku.ca
Newsgroups: rec.arts.int-fiction
Subject: [Hugo] Cardinal's black magic
Date: 25 Oct 96 22:11:28 -500
Organization: York University
Lines: 15
Message-ID: <1996Oct25.221128.1@orion.yorku.ca>
NNTP-Posting-Host: orion.yorku.ca

Has anybody checked out the Cardinal's spell system at ftp://ftp.gmd.de/
if-archive/programming/hugo/library/contributions?  Pretty damned cool.

I got myself giggling when, after about five minutes of cutting, pasting, 
and a bit of coding, I had incorporated the frotz spell into the Hugo 
sample game and was merrily making everything around me glow.  With very 
little effort, it seems, you could create an endless variety of scrolls 
and spells to plug into the framework.

Enchanter was one of my Infocom favorites, so I would love to see another
full-fledged adventure chock full of scrolls and spellcasting.  The
Cardinal is apparently working on something in secret, letting slip
only cryptic comments about his plans, so maybe I'll get my chance.

--Kent


From avrom@Turing.Stanford.EDU Mon Oct 28 12:47:23 MET 1996
Article: 18757 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news01.sunet.se!sunic!surfnet.nl!howland.erols.net!www.nntp.primenet.com!nntp.primenet.com!cpk-news-hub1.bbnplanet.com!nntp-hub2.barrnet.net!news.Stanford.EDU!not-for-mail
From: avrom@Turing.Stanford.EDU (Avrom Faderman)
Newsgroups: rec.arts.int-fiction
Subject: Re: How intiuitive should a puzzle be?
Date: 25 Oct 1996 14:06:02 -0700
Organization: CSLI, Stanford University
Lines: 91
Message-ID: <54ra3q$6bc@Turing.Stanford.EDU>
References: <326FD46D.6952@someplace.com> <54qj2q$fd7@koala.scott.net>
NNTP-Posting-Host: turing.stanford.edu

In article <54qj2q$fd7@koala.scott.net>,  <aultman@koala.scott.net> wrote:
>[Note I've put the Followup: to rec.arts.int-fiction, where this belongs]
>
>In article <326FD46D.6952@someplace.com>,  <someguy@someplace.com> wrote:
>>
>>Still with me? K. Good. heres my question.  Technically, there is
>>NOTHING in the game to this point that indicates you should switch
>>the labels.  Is it allright to assume that becuase it is an adventure
>>game, the player will try and do everything he can?  Or should I
>>try and work in a warning that the labels must be switched.
>
>Any problem that I might have with this situation would not be about
>the labels. I think that's fine. What I would find to be a problem is
>that apparently the player would have to die at least once, possibly
>several times, before being able to solve the puzzle. There is simply
>no way for the player to know (Warner Bros. references notwithstanding)
>that the desintegrator gun will quite literally do that.

Well, there are a few things you can do.  If, for example, the game
was chock-full of Acme products (a la the Unkuulian Unventures), none
of which worked the way they were supposed to, the player would have
some reason to guess that making sure Triax ended up with the Acme gun
rather than the Kill-O-Zap gun, without having to die first.

My worry here is that of another poster--you can't assume, if you give
players a label-maker, that they're only going to make the labels
you've thought of.  If they can make acme labels and kill-o-zap
labels, why not frobozz magic company company labels?

Worse, having "Make acme label" make a label with "Acme brand
disintegrator pistol" on it is just asking for trouble.  What if the
player decides to make an "Acme brand label maker" label for their
label maker, before they ever _see_ the guns?  They'll type "Make acme
label," and the game will respond with "You make an 'Acme brand
disintegrator pistol' label."  In addition to leaving the player a bit
nonplussed, this will give them a hint that you probably don't want to
for later in the game.

Here's a way you might solve this problem:  Require players to say
exactly what's going on the label, and just put that on the label as a
string.  That is, handle labels the way, say, Spellbreaker handles
writing on cubes, so that the player can

Make "Acme brand disintegrator" label
Make "Chicken soup" label
Make "11?345" label

Or any other string they want.

Now, of course, the trouble is NPC reactions to the labels.  In the
case of Triax, you could try a couple of things:

1)  Make Triax require that the labels are _identical_ to the
originals:

[game setup as before]
MAKE "ACME BRAND PISTOL" label.
[Player puts the two labels, including the subtly new one, 
Triax stalks into the room, and glances at the display case, and
starts to open it.  Then he notices something odd about the labels.
"Hey," he growls, "Who's been messing with my gun case?"  He looks at
you suspiciously for a moment, then back to the gun case.  Finally, he
seems to decide that discretion is the better part of killing
earthlings, takes both pistols from the case, and proceeds to shoot
you with each.  Quite predictably, the Acme Brand Disintegrator pistol
fails to function.  Equally predictably, the Kill-O-Zap pistol does
not.

*You have died*


2)  Alternately, you can have Triax read the label the same way the
parser would--so that any way the parser might understand you as
referring to the Acme Brand Disintegrator Pistol, Triax might
understand the label as doing the same thing.  If he can't understand
the label, either at all or to be referring to his guns, he reacts as
before.

Now, the more NPC responses to labels you can work in, the better--It
would be nice, perhaps, if Triax had a reaction to your plastering
"Acme brand smelly alien ship" labels all over the inside of his
ship.  It's at least important to get reactions to as many things as
the player is really likely to try as possible...but, of course, you
won't get them all, and this can, beyond a certain point, just be
regarded as a flaw in the medium.

If you can get all those bits worked out, though, it sounds like a
fine puzzle.

-Avrom



From t91_eks@t.kth.se Mon Oct 28 17:12:33 CET 1996
Article: 18863 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news00.sunet.se!sunic!news.sprintlink.net!news-peer.sprintlink.net!news-peer.gsl.net!news.gsl.net!news-stkh.gsl.net!news.gsl.net!eru.mt.luth.se!news.kth.se!EKELUND
From: t91_eks@t.kth.se (Anders Ekelund)
Newsgroups: rec.arts.int-fiction
Subject: [z-machine] Redrawing the upper window?
Date: 28 Oct 1996 14:27:42 GMT
Lines: 14
Message-ID: <552fsu$e4a@news.kth.se>
NNTP-Posting-Host: sl01.modempool.kth.se
Mime-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit
Keywords: z-machine
X-Newsreader: News Xpress Version 1.0 Beta #4

If I have understood the specifiction of the z-machine correctly, it is 
legal for an interpreter to change the screen dimensions whenever it 
likes to, as long as it writes the new size to the appropriate places in 
the header.
The results of this arent always pleasing, however. While most games 
seems to notice this change and for example prints the time/score in a 
new position, they dont redraw the entire upper window. This often 
leaves trails of old information that doesnt look very pretty.
So, is there a way for the interpreter to tell the V3-V5 game that it 
should redraw the entire upper window, or can the problem be solved in 
another way? (Or have I completely misunderstood the whole thing?)

Thanks
Anders Ekelund


From erkyrath@netcom.com Tue Oct 29 00:26:44 CET 1996
Article: 18874 of rec.arts.int-fiction
Newsgroups: rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news01.sunet.se!sunic!02-newsfeed.univie.ac.at!01-newsfeed.univie.ac.at!swidir.switch.ch!news.grnet.gr!btnet-feed2!btnet!dispatch.news.demon.net!demon!www.nntp.primenet.com!nntp.primenet.com!howland.erols.net!netcom.com!erkyrath
From: erkyrath@netcom.com (Andrew Plotkin)
Subject: Re: Soon my pretties [I-F Competition]
Message-ID: <erkyrathE005vw.6My@netcom.com>
Organization: NETCOM On-line Communication Services (408 261-4700 guest)
X-Newsreader: TIN [version 1.2 PL1]
References: <545v7e$df3@agate.berkeley.edu> <5468vu$l5@romulus.rutgers.edu> <5473pj$bt9@news.dx.net> <3272b85c.2867030@hermes.rdrop.com> <E000wt.AD@ladle.demon.co.uk>
Date: Mon, 28 Oct 1996 20:21:31 GMT
Lines: 38
Sender: erkyrath@netcom.netcom.com

John Hartnup (slim@ladle.demon.co.uk) wrote:
> Laurel Halbany (mythago@agora.rdrop.com) wrote:

> : I've found that it doesn't take much time when I can eliminate many of
> : the games in ten minutes of playing. The remaining games (the ones
> : that grab me, that interest me from the start) are good if they *stay*
> : nifty.

> The judging rules say you're honour bound to play every game for two 
> hours before voting. 

No, the rules say you must give all games an equal chance, and not play 
*more* than two hours before deciding on a rating.

This is getting into real technicalities, but if I find a game that I 
would throw across the room in the first ten minutes (metaphorically), I 
will. And I'll rate it on that basis.

And yes, that's giving it an equal chance. My criteria were the same when 
I started it up.

> Many IF games take a fair while to get into.

True, but I wouldn't pitch a game because I failed to get into it. 
A game doesn't have to lay everything out for me in the first ten 
minutes, but it must make me want to play ten more minutes.

That said, I don't expect I'll throw any competition games across the 
room. Morbid curiosity counts for a lot. :-) When I reach the point of 
not caring, I grab the walkthrough and whiz through to the end, and 
*then* give it a lousy score.

--Z

-- 

"And Aholibamah bare Jeush, and Jaalam, and Korah: these were the
borogoves..."


From nkg@vcn.bc.ca Wed Oct 30 09:20:15 CET 1996
Article: 18900 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news00.sunet.se!sunic!news.sprintlink.net!news-peer.sprintlink.net!howland.erols.net!feed1.news.erols.com!arclight.uoregon.edu!news.bc.net!unixg.ubc.ca!freenet.vancouver.bc.ca!nkg
From: nkg@vcn.bc.ca (Neil K. Guy)
Newsgroups: rec.arts.int-fiction
Subject: Re: Proposal for a WWW page on authorship
Date: 29 Oct 1996 17:26:44 GMT
Organization: Vancouver CommunityNet
Lines: 39
Message-ID: <555eok$ajt@milo.vcn.bc.ca>
References: <1996Oct29.133729@oxvaxd>
NNTP-Posting-Host: opus.vcn.bc.ca
X-Newsreader: TIN [version 1.2 PL2]

Graham Nelson (nelson@vax.oxford.ac.uk) wrote:

:   * short articles which have been posted to rec.arts.int-fiction and
:     subsequently put onto one of the IF web pages (r.a.i-f is one of the
:     better-archived newsgroups: it would be painful to wade through it all,
:     but there's gold in there somewhere);

 I agree. I know I often save enlightening posts to my local hard drive 
when I come across them. I'm sure others do also. There have been, over 
the years, some very interesting discussions here. (contest rules 
notwithstanding :)

: There's too little meeting of minds already -- I wonder how many TADS writers
: have read Gareth Rees's article about developing games from pre-written
: scripts (which made me change my whole design process)?  (It's on the Inform
: home page, for want of anywhere better to be, but it's not anything to do
: with Inform.)

 I should preface my comment by saying I suppose I'm as guilty as the next 
person for this distinction between development systems, having created 
a TADS-only page myself. However I've found it very useful to follow 
developments in the world of Inform, and wander by the Inform home pages 
from time to time.

 The article you cite, not to mention your designer's manual and craft of
adventure documents, have all been of great interest to me. I think it'd
be very useful to put some of this material together, and I'd be willing
to work on coordinating it, since I do have access to the Web space I use
for my consulting work. I would, however, want to see it as a
collaborative sort of thing - people send me stuff and I merely put it 
up. I don't think I really have the time to take on such a task in an 
editorial capacity, but general sorting and posting I'd be happy enough 
to take on.

 - Neil K.

--
        the Vancouver CommunityNet   *   http://www.vcn.bc.ca/
              (formerly the Vancouver Regional FreeNet)


From nulldogma@aol.com Wed Oct 30 15:58:24 CET 1996
Article: 18922 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news01.sunet.se!sunic!02-newsfeed.univie.ac.at!01-newsfeed.univie.ac.at!swidir.switch.ch!in2p3.fr!univ-lyon1.fr!howland.erols.net!newsfeed.internetmci.com!in1.uu.net!newstf01.news.aol.com!newsbf02.news.aol.com!not-for-mail
From: nulldogma@aol.com (Nulldogma)
Newsgroups: rec.arts.int-fiction
Subject: Re: Style questions
Date: 30 Oct 1996 08:24:03 -0500
Organization: America Online, Inc. (1-800-827-6364)
Lines: 89
Sender: root@newsbf02.news.aol.com
Message-ID: <557ktj$7rt@newsbf02.news.aol.com>
References: <2030.6875T1324T746@otn.net>
Reply-To: nulldogma@aol.com (Nulldogma)
NNTP-Posting-Host: newsbf02.mail.aol.com

>  1. Scoring -  does it distract from the game or add to it?  If you
think
>    scoring is a good thing, what type of events should be rewarded?
>    Treasure colected, puzzles solved, anything else?

It depends on the game. The important thing to me is that I have some
sense of how much progress I've made -- if there are other indicators of
this in the game, then I don't need a score. 

>  2. Puzzles -  what is more important, a simple puzzle that fits into a
>    game, or a hard puzzle that seems out of place?

Definitely the first priority should be that the puzzle fits the game.
After that, I wouldn't think in terms of *difficult* puzzles but of
*satisfying* ones -- I don't get pleasure from wracking my brains to guess
what fiendish puzzle the author has set for me, but rather from being able
to piece together the clues that I've been left in the game for solving
it.

>  3. Game length - outside of the competition, how long should the
average
>    game last?  Also, about how many locations are the average?

[WARNING: GRATUITOUS SEXISM AHEAD]

My 9th-grade English teacher, when we'd ask how long a paper should be,
would always say "As long as a woman's dress: short enough to be
interesting, but long enough to cover the subject."

My 9th-grade English teacher was a jerk, but you get the point. 

>  4. Ending - I've noticed that nearly every game I've played had only
one
>    ending (besides the many deaths), is there a reason for this?

Two possible reasons: 1) It takes a lot more effort to write multiple
endings; 2) If you have multiple endings, you make it all but certain that
players will miss out on seeing part of your brilliant prose. If you do
have multiple endings, you should somehow make that clear to the player,
so that they have the option of going back and trying again.

>  5. Emotions and Morals - would puzzles based on emotions and morals be
>    considered acceptable?

If it's done well. If it's a matter of "guess the moral lesson the author
is trying to make you learn," then, no. 

>  6. Eating and Sleeping - are these considered too anoying to use even
if
>    they are integrated into the story but not deadly?  (i.e. no
starving,
>    no anoying messages)

If they're necessary to the plot, I suppose. (Path to Fortune does this
pretty well, for example.) Still, remember that you're writing a game, not
a simulation -- if you  make me find a bathroom every 50 turns, I'd
consider that taking things too far.

>  7. Undo - what was the overall opinion on this subject (I missed most
of
>    that thread) should they be allowed?

There was no consensus. I think it's absolutely necessary, for what it's
worth.

>  8. All - for verbs, see question 7.

I disallow it for all verbs except "drop", "take", and "put" -- i.e, verbs
that only apply to a constrained list of objects in the first place, so
you can't cheat by typing, say "EAT ALL" to get a list of everything in
the room. 

>  9. Non-Traditional puzzles - How far could an author stray from the
>    standard puzzles before it's no longer considered a puzzle or even
>    interactive fiction?

A really long way, I'd hope.

> Thanks for your help,

Sure thing. And remember to freely ignore any of this advice if you so
choose -- it's your game, and the most important person to please with it
is yourself.

Neil
---------------------------------------------------------
Neil deMause                            neild@echonyc.com
                  http://www.echonyc.com/~wham/neild.html
---------------------------------------------------------


From esuzm@csv.warwick.ac.uk Wed Oct 30 16:01:43 CET 1996
Article: 18924 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news01.sunet.se!sunic!02-newsfeed.univie.ac.at!01-newsfeed.univie.ac.at!swidir.switch.ch!in2p3.fr!univ-lyon1.fr!howland.erols.net!www.nntp.primenet.com!nntp.primenet.com!dispatch.news.demon.net!demon!puppy.demon.co.uk
From: ajc@puppy.demon.co.uk (Andrew Clover)
Newsgroups: rec.arts.int-fiction,rec.games.int-fiction
Subject: Re: May I suggest a convention?
Date: Sun, 27 Oct 1996 18:16:18 GMT
Organization: DoggySoft Ltd.
Lines: 41
Message-ID: <n23C6A0DA@puppy.demon.co.uk>
References: <54gqd6$s5c@koala.scott.net> <Pine.OSF.3.95.961021214003.28904A-100000@saul7.u.washington.edu> <n214486A7@puppy.demon.co.uk> <erkyrathDzqMDJ.9ps@netcom.com>
Reply-To: esuzm@csv.warwick.ac.uk (Andrew Clover)
NNTP-Posting-Host: puppy.demon.co.uk
X-NNTP-Posting-Host: puppy.demon.co.uk
X-Newsreader: Offlite 0.09 / Termite Internet for Acorn RISC OS
Xref: news.lth.se rec.arts.int-fiction:18924 rec.games.int-fiction:18519

erkyrath@netcom.com (Andrew Plotkin) wrote:

> You're right. My biggest embarrassment about _So Far_ is that it's so 
> unoriginal in genre. I was sick of lots-of-little-dimensions games when
> I *wrote* it, but it was a lots-of-little-dimensions idea from the
> beginning and I couldn't separate what I wanted to say from that 
> construction.

 We'll let you get away with one game like this, I think.

> You're only the second person to complain, though. Ok, third, counting 
> me. This doesn't mean I forgive myself, of course.

 It'll be fine unless the next half a dozen Inform games released are also
weird-travel games too: this is what we wanted to avoid, I think.

> (Although "largely unexplained" is kind of rude; I thought the ending of
> _So Far_ was very well explained.

 All right, then, I admit it: I didn't finish "So Far". (Shock!) It was
weird and unexplained up to the point I got up to. :-(

 (Also, I thought I saw something that looked like a weird ending that
didn't explain what these funny black shadows and odd people were and stuff,
whilst I was disassembling away like a right cheat looking for how the cage
things were supposed to work. Feel free to go "Tsk!" at me.)

 Anyway, I had already exempted "So Far" for the "unusual prologue and
general originality". :-)

> Be assured that I'll avoid this model like miserable death in any future
> efforts.

 Aww... don't stop cornish curmudgeons like me stop you from writing games,
our Andrew. :-)

BCNU, AjC, who last finished writing a complete adventure game in 1986, and
           even that didn't really count

PS. May I license the Zarfian Interaction Fiction Rating System for the games
    list on the new Inform pages?


From joe.mason@tabb.com Thu Oct 31 09:39:47 CET 1996
Article: 18939 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news00.sunet.se!sunic!news.sprintlink.net!news-peer.sprintlink.net!howland.erols.net!newsfeed.internetmci.com!in3.uu.net!news.uunet.ca!tabb!joe.mason
Distribution: world
Newsgroups: rec.arts.int-fiction
Subject: [CONTEST] DELUSIONS BUG
From: joe.mason@tabb.com (Joe Mason)
Message-ID: <66.6431.1727@tabb.com>
References: <551bfm$imt@news.bu.edu>
Date: Tue, 29 Oct 1996 23:20:00 -0500
Organization: Timmins Area BBS (705)268-0801
Lines: 36


"[CONTEST] DELUSIONS BUG", declared David Gilbert from the Vogon ship:

DG>  Ok.  I looked through other posts and couldn't find the answer to
DG>this one, so I figure I'll write myself.  After I escape the lab sim,
DG>Justy tells me to go see Dr. Shimada who will "tell me more."  I go
DG>see her, but she tells me nothing.  I try asking her things, etc but
DG>I just get messages telling me that this "isn't the time for idle
DG>conversation".  Is there a way around this?

I ran into this bug too, my second time playing the game.  When you're 
in the lab sim, there's something that you have to discover (I'm being 
purposely vague, but I'm sure you'll know what it is); the game assumes 
that if you're out of the sim you must have discovered it for some of 
the NPC's, and for others it checks if you've actually discovered it.  
So Justy tells you to go talk to Shimada, but Shimada acts just like she 
did before you entered the sim.  (It's important because Shimada talks 
about it when you go see her.)  The game SHOULD have either not let you 
finish the sim until you'd actually made that discovery, or put a third 
"mode" for Dr. Shimada where she will talk to you but not mention that 
discovery.  Unfortunately, it didn't.

The solution: play through the lab sim again, and this time be sure 
you've done everything before you finish it.

Joe

joe.mason@tabb.com
Shad Valley Carleton '96

--  The 1996 Interactive Fiction Contest is now open!  --
--  From Oct. 30 to Nov. 30, vote for the best of '96  --
--   ftp://ftp.gmd.de/if-archive/games/competition96   --


 CMPQwk 1.42 9550 The gene pool has no lifeguard


From baf@max.tiac.net Thu Oct 31 09:40:18 CET 1996
Article: 18931 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news00.sunet.se!sunic!news.sprintlink.net!news-peer.sprintlink.net!uunet!in3.uu.net!news-in.tiac.net!posterchild!max.tiac.net!baf
From: baf@max.tiac.net (Carl Muckenhoupt)
Newsgroups: rec.arts.int-fiction
Subject: Re: Style questions
Date: 30 Oct 96 19:18:15 GMT
Organization: The Internet Access Company, Inc.
Lines: 125
Message-ID: <baf.846703095@max.tiac.net>
References: <2030.6875T1324T746@otn.net>
NNTP-Posting-Host: max.tiac.net


patrick@otn.net (Patrick Kellum) writes:

> Ok, what is everyones opinion about thes subjects:

First, let me urge you to not take any responses too seriously.
Write a game that *you'd* like to play and chances are someone else will
like it.

>  1. Scoring -  does it distract from the game or add to it?  If you think
>    scoring is a good thing, what type of events should be rewarded?
>    Treasure colected, puzzles solved, anything else?

This depends on the game.  I think it's enough of a convention of the genre
to not be distracting, except perhaps in the more introspective pieces
we've been seeing lately.  The actions you choose to reward should be
appropriate to the story you're trying to tell.  If it's a game about
treasure hunting, give points for collecting treasures.  If it's about
exploration, give points for reaching hard-to-reach places.  If you want
the player to adopt the role of a mass murderer, make the score be a body
count - gamers will do just about anything if it increases their score.
Just make a decision and be consistent about it.

The most common decision is to award points for puzzles solved.  This has
the side effect of letting the player know when a puzzle is actually
solved - possibly a good thing, possibly bad, depending on how devious
your game is.  ("A Change in the Weather" would definitely be the worse for
such a system.)

It should be pointed out that in adventure games, unlike other narrative
media, there's no built-in way to tell how close you are to the end.
The reader of a novel is always dimly aware of the thickness of the unread
pages.  A theater-goer knows approximately how long the play is and how
much of that time has passed.  This perception helps to shape expectations.
If the villain is killed in the last five minutes of a film, it's a
victorious ending; if the villain is killed only halfway through, it's a
shocking plot twist.

Adventure games lack this guideline.  Scoring is one way of restoring it.
If I have 340 points out of 350, I'm going to be expecting a dramatic
climax.  Of course, it isn't the only possible guideline.  In Jigsaw, for
example, once you've gotten past the prologue you pretty much know that
there are going to be 16 chapters followed by an ending.  Even without
clearly delineated chapters, a known set of sub-goals can provide a sense
of progress  - I think of the middle section of Monkey Island 2, in which
the player seeks four fragments of a treasure map.

In some ways, it's a shame that those games that reject the typical
quest plots tend to also reject scoring.  It becomes difficult to gague
whether you're well into the game or just beginning it, and endings can
take the player by surprise, inspiring questions like "Is that all?"
Well-tuned prose could help, butseems to be difficult.

>  2. Puzzles -  what is more important, a simple puzzle that fits into a
>    game, or a hard puzzle that seems out of place?

This could be debated endlessly.  My advice is, if a puzzle is deserving
enough, the setting can be molded around it until it fits.  Suppose you
have a game about the origins of Buddhism, say, and a really nice puzzle
based on computer programming.  Fine! Throw in a scene where the player,
meditating on the nature of time, gains visions of the future.  You could
even turn it into a warning about the seductive nature of technology and
how it distracts us from the pursuit of enlightenment.

Some will argue that throwing in extraneous material like this dilutes
the original vision.  I reply that incorporating an alien element into a
strongly-themed work is exactly the sort of problem that inspires creative
thinking.  The result is only cheapened if you fail to find a way to make
it work.

>  3. Game length - outside of the competition, how long should the average
>    game last?  Also, about how many locations are the average?

As long and as many as possible.  I like 'em big.  Of course, I also like
'em detailed, which puts a sort of tension on it all - you only have so
much time to waste writing this thing, after all.

>  4. Ending - I've noticed that nearly every game I've played had only one
>    ending (besides the many deaths), is there a reason for this?

a) Programmers are lazy. (Not as lazy as non-programmers, though.)
b) Most games are geared towards Winning.  In such games, there tends to be
an ultimate victory that is clearly best.  Multiple endings just become a
different sort of death - if you chose to go home instead of slaying the
dragon, would you feel you had won?
c) The author is trying to tell a story.  The player's sense of freedom is
a carefully-crafted illusion; all aspects of the story, except how fast it
goes and the order of certain plot elements, are preset.  Thus, there is
only one true ending.

>  5. Emotions and Morals - would puzzles based on emotions and morals be
>    considered acceptable?

It worked for the Ultima series.

>  6. Eating and Sleeping - are these considered too anoying to use even if
>    they are integrated into the story but not deadly?  (i.e. no starving,
>    no anoying messages)

Use it if it fits.  Anything completely irrelevant is annoying.  The need
to sleep can be an obstacle and can provide dream sequences.  Food can be
an obstacle and/or be used for atmosphere (witness the High Table scene in
Christminster.)  They're only objectionable if they're thrown into a game
out of a misguided sense of realism.

>  7. Undo - what was the overall opinion on this subject (I missed most of
>    that thread) should they be allowed?

Unless you have some overriding reason to not allow it, allow it.  It's a
handy tool that helps us to explore the possibilities of your story.  If
you have a puzzle where "undo" amounts to cheating, you can always disable
it temporarily.

>  8. All - for verbs, see question 7.

>  9. Non-Traditional puzzles - How far could an author stray from the
>    standard puzzles before it's no longer considered a puzzle or even
>    interactive fiction?

Pretty darned far.  If you ask me, we have not yet strayed far enough.

-- 
Carl Muckenhoupt              | Text Adventures are not dead!
baf@tiac.net                  | Read rec.[arts|games].int-fiction to see
http://www.tiac.net/users/baf | what you're missing!


From jbarlow@ipass.net Thu Oct 31 09:43:52 CET 1996
Article: 18943 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news00.sunet.se!sunic!news.sprintlink.net!news-peer.sprintlink.net!www.nntp.primenet.com!nntp.primenet.com!hunter.premier.net!netaxs.com!news.misty.com!news.ipass.net!newsadmin@passport.ipass.net
From: jbarlow@ipass.net (Joe Barlow)
Newsgroups: rec.arts.int-fiction,rec.games.int-fiction
Subject: Re: two competition entries have been updated
Date: Thu, 31 Oct 1996 00:02:27 GMT
Organization: IPass.net
Lines: 20
Message-ID: <558qid$nt1@news.ipass.net>
References: <326C7F55.2CC8@gmd.de> <54jq7c$2lr6$2@news-s01.ca.us.ibm.net> <326FA8ED.674C21CD@lynx.ps.uci.edu> <54p5bm$qpa@lace.colorado.edu> <54s71o$egh@agate.berkeley.edu>
NNTP-Posting-Host: customs26.ipass.net
X-Newsreader: Forte Free Agent 1.0.82
Xref: news.lth.se rec.arts.int-fiction:18943 rec.games.int-fiction:18535

whizzard@uclink.berkeley.edu (Gerry Kevin Wilson) wrote:

>Of course, with all the system snobbery this year, I fear that next year's
>entries will all be written in Inform.  Inform, while I'm sure an
>excellent system, should hardly be the be-all of I-F.

	Do you really think this will be a factor?  While Inform is indeed an
excellent system, I haven't seen any lack of interest in TADS, and
AGT seems to enjoy a dedicated (if admittedly small) following.  I
wouldn't look for Inform to become the ONLY I-F authoring system
anytime soon, even if a lot of us have adopted it as our own.  :)
	In fact, one of the things I like best about the contest is the
ability to see new games written on a plethora of different platforms.
I hope that doesn't change in the future.


-=-=-=-=-=-=-=-=-=-=-
Joe Barlow  (jbarlow@ipass.net)
"Zorkers do it under the rug..."



From jbarlow@ipass.net Thu Oct 31 09:46:00 CET 1996
Article: 18936 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news00.sunet.se!sunic!news.sprintlink.net!news-stk-200.sprintlink.net!news.sgi.com!enews.sgi.com!arclight.uoregon.edu!hammer.uoregon.edu!hunter.premier.net!netaxs.com!news.misty.com!news.ipass.net!newsadmin@passport.ipass.net
From: jbarlow@ipass.net (Joe Barlow)
Newsgroups: rec.arts.int-fiction,rec.games.int-fiction
Subject: Re: CONTEST: STALKER.Z5  (MAJOR SPOILERS)
Date: Thu, 31 Oct 1996 00:02:31 GMT
Organization: IPass.net
Lines: 102
Message-ID: <558qij$nt1@news.ipass.net>
References: <54jtml$6o6@news.ipass.net> <54sbve$9ur@news2.alpha.net>
NNTP-Posting-Host: customs26.ipass.net
X-Newsreader: Forte Free Agent 1.0.82
Xref: news.lth.se rec.arts.int-fiction:18936 rec.games.int-fiction:18533


<Spoiler space>























Jason Clayon White wrote:
>The pistol and the squirt gun are two different things. It makes no
>sense to pour drano into a pistol, and the game will not let you do
>this. It is perfectly logical to pour drano into a squirt gun, and I
>have seen much worse puzzles than that.

	I have seen movies that are worse than "Attack of the 50 Foot Woman",
but that doesn't mean "50 Foot Woman"  is a good movie just because
worse ones exist.

>1) This game was meant to teach me Inform. Entry into the competition
>was merely an afterthought.

	Regardless, the fact that the game *was* entered into the contest
means that it must be judged by the same standards that the other
entries are held to.  Surely we shouldn't say "I'll give LISTS a 7 out
of 10 because Andrew Plotkin is an established I-F writer.  Now I'll
have to spot Jason Clayton White a few freebie points because this
game was only intended to be a programming excercise."
	Please observe that I'm not trying to flame you.  If you will go back
and re-read my original post, you will observe that I said many
favorable things about STALKER.  I didn't think it was a terrible
game.  I still don't.  But yes, I noticed some problems and wanted to
post publicly to see if folks agreed with my definition of "flaw".

>2) It is not meant to be taken seriously. It is supposed to be a
>parody of really bad horror movies, and you have to keep this in mind.

	Parody generally involves humor, and I found very little of that in
the game.  Rather than placing a humorous slant on the horror movie
idea (which could have been terrific), the game seemed to be merely an
I-F version OF one of these horror movies.  It sure didn't feel like a
parody to me.
.
>3) Any oddities in the game's style are by design - it was supposed to
>be that way.

	Uh huh.

>Um...my parser was written to have an attitude. It was something I
>don't recall having seen before, and I thought I'd put that in there.

	I'll agree; I certainly haven't seen it done before, at least not to
this degree.  But there's a difference between a parser with an
attitude (such as Hitchhiker's Guide, where the game will occasionally
lie to you about what items a room contains) and this game, where the
game simply seems to think the player is an idiot.

>Imagine Jason from the Friday the 13th movies. The victims would
>always run away and get really far away from him, yet an instant
>later, he's there hacking them to bits. If you leave the room, you
>only buy yourself a few turns until you get wasted. This is BY DESIGN.

	Touche'.  I won't argue this point, if that is your explanation.  If
the killer is *supposed* to feel like a cardboard movie killer, let me
congratulate you by saying that you succeeded beyond your wildest
expectations.  :)

>Effort? Well...no, not really. LOL

	Oh, come on.  :)  Despite some of my fairly strong comments, there is
a lot that's good about the game.  Most of my complaints deal with
opinion-related subjects  (ie, I would have done it THIS way instead
of THAT way) and stuff that would have been caught by more
beta-testers.  It's a good debut, and I hope to see more stuff in the
future (and would even offer to help beta-test any future efforts, if
you like.)
	The main disappointment I experienced while playing the game is that,
with a little more time, it could have been a text "Alone in the
Dark", and that would've been superb.

Joe

-=-=-=-=-=-=-=-=-=-=-
Joe Barlow  (jbarlow@ipass.net)
"Zorkers do it under the rug..."



From goetz@cs.buffalo.edu Thu Oct 31 11:03:40 CET 1996
Article: 18951 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news00.sunet.se!sunic!news.sprintlink.net!news-peer.sprintlink.net!news-peer.gsl.net!news.gsl.net!portc01.blue.aol.com!newsstand.cit.cornell.edu!news.acsu.buffalo.edu!acsu.buffalo.edu!goetz
From: goetz@cs.buffalo.edu (Phil Goetz)
Newsgroups: rec.arts.int-fiction
Subject: Decisions, not just puzzles
Date: 31 Oct 1996 04:31:17 GMT
Organization: State University of New York at Buffalo/Computer Science
Lines: 81
Message-ID: <559a2l$msj@prometheus.acsu.buffalo.edu>
References: <2030.6875T1324T746@otn.net> <jota.846654181@laraby.tiac.net>
NNTP-Posting-Host: dnoces.cs.buffalo.edu
NNTP-Posting-User: goetz

jota@laraby.tiac.net (Admiral Jota) writes:
>Date: 30 Oct 96 05:43:01 GMT
>
>patrick@otn.net (Patrick Kellum) writes:
>
>>  9. Non-Traditional puzzles - How far could an author stray from the
>>    standard puzzles before it's no longer considered a puzzle or even
>>    interactive fiction?
>
>I believe that most authors attempt to make their puzzles as 
>un-puzzle-like as possible. I think the point is to make them blend away 
>into the plot, so that the player thinks he's just figuring out what to 
>do, and doesn't realize that he's solving a puzzle.

I wonder why we have not seen games which challenge the player with
decisions instead of puzzles.  Let me call a "puzzle" something like
how to get a fish from a dispenser, or how to sneak past the
plainclothesman.  By "decision" I mean something more strategic,
like what provisions to buy at the trading post, or who to hire
as your lawyer.

I propose a few guidelines that should help decisions have dramatic impact:

1.  The results of the decision must eventually be made clear.

2.  The results of the decision must not immediately be made clear.
If they are, then the player will not have any time for suspenseful
nail-biting.  One "undo" and everything will be all right.

3.  The results of the decision must be predictable, so that the player
can feel justified or condemned, but not cheated.  If the player can
look at a good outcome and say, "That was lucky!", he doesn't feel
pleased with himself.  If he can look at a bad outcome and say, "But it
wasn't my fault!", he experiences frustration (shallow) rather than
self-criticism (deep).

Here's an example in which the decision is whether to A) leave a child
behind on the ship for his own safety, or B) take him down to the
planet's surface because he might prove useful.

	You and your team beam down to the planet, with some grumbling
	  from Worf about taking children.
	The surface is strewn with enormous monotone grey boulders.

	>examine boulder
	"Fascinating," Data says, walking over to a boulder.
	  "This rock resembles Earth styrofoam."
	A ravenous bugbladder beast rises up from behind the rock!

Good continuation:
	Wesley aims his tricorder at the beast, which suddenly streaks away.
	"What did you do?" Riker asks Wesley.
	Wesley grins shyly.  "I just determined the beast's position exactly
	  with my tricorder, then applied Heisenberg's uncertainty
	  principle, making his velocity infinite."
	Worf turns to you.  "I apologize, Captain," he says.
	  "Wesley was a useful addition to the away team."

Bad continuation:
	Data feeds Wesley to the ravenous bugbladder beast.
	  It burps contentedly, then falls asleep.
	Worf turns to you.  "I apologize, Captain," he says.
	  "Wesley was a useful addition to the away team."

In the "good" continuation, the player can pat himself on the back for
a good command decision.  In the "bad" continuation, the player may feel
pleased to have gotten rid of both the bugbladder beast and the ensign,
but can hardly feel self-satisfied about it.

4.  Decisions should interact in a nonlinear manner.  That is,
decision C might be good after decision A, but bad after decision B.
If the player could evaluate the results of each decision independently,
the game would degenerate into a choose-your-own-adventure book,
which for me don't have the same degree of immersion.

One of the reasons I want to create more intelligent NPCs is that I
think we would then see more decisions in IF.  It's hard to make
strategic decisions about objects other than which ones to take.


Phil Goetz@cs.buffalo.edu


From whizzard@uclink.berkeley.edu Thu Oct 31 12:57:13 CET 1996
Article: 18947 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news01.sunet.se!sunic!news99.sunet.se!cph-1.news.DK.net!dkuug!dknet!news-feed.inet.tele.dk!enews.sgi.com!www.nntp.primenet.com!nntp.primenet.com!howland.erols.net!news.sprintlink.net!news-peer.sprintlink.net!uunet!news-in2.uu.net!newsxfer2.itd.umich.edu!agate!uclink.berkeley.edu!whizzard
From: whizzard@uclink.berkeley.edu (Gerry Kevin Wilson)
Newsgroups: rec.arts.int-fiction
Subject: Re: ARGH, More [Contest] problems (warning; vague opinions)
Date: 21 Oct 1996 03:04:16 GMT
Organization: University of California at Berkeley
Lines: 40
Message-ID: <54ep7g$6qh@agate.berkeley.edu>
References: <54dm5n$ki0@remus.rutgers.edu> <MPG.cd4935cda518429989688@nntp.one.net>
NNTP-Posting-Host: uclink.berkeley.edu


Actually, I would be obliged if folks would not turn the competition into
an unpleasant thing for me, but rather try to keep it friendly and give
every game they can an equal chance before making up their minds.  If you
are not sure of the conditions for judging, then please reread the rules.
They state that you are honor-bound to play each game you are CAPABLE of,
not each game that you think you will like.  I would like you all to read
the quote that I placed at the top of the revised rules that concerns
itself with voting.

The competition is meant to be fun for both the authors and the players
(and while I wouldn't call organizing it fun, I do get a warm sense of
accomplishment from it.)

Kindly do not say anything on the newsgroup that you wouldn't be willing
to say to the author's face.  If you would feel like a jerk saying it to
them, chances are that you need to tone down your comments before hitting
that send key.

To do otherwise discourages future competition, hurts feelings
unneccessarily, and make me noticably less willing to organize the Third
Annual I-F Competition.

I don't think that many of you realize that there is a certain emotional
investment in writing a game, much like painting a picture, or writing a
song.  When you slam on someone's efforts without thinking, you cause a
lot of pain.  It's bad enough to lose the competition, I don't feel we
need to heap insult on top of that.

In any event, a friendlier competition will be much more enjoyable.

[For those keeping score, this is exactly the sort of reason I did not
want discussion before the polls closed.  You get some rather rabid and
cruel remarks, and that can kill a game's chances before it even gets
started.]
-- 
<~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|~~~~~~~>
<         Join in the 1996 Interactive Fiction Competition.         |  ~~\  >
< The Deadline is OCTOBER 15th, 1996!!  Enter, judge, betatest or ??| /~\|  >
<______________________________________whizzard@uclink.berkeley.edu_|_\__/__>


From nulldogma@aol.com Thu Oct 31 14:32:23 CET 1996
Article: 18953 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news01.sunet.se!sunic!psinntp!psinntp!news.intercon.com!news5.digex.net!news.ezy.net!news2.dn.net!news6.digex.net!news2.digex.net!news7.digex.net!spike.lci.net!odin.oar.net!malgudi.oar.net!news.apk.net!wariat.org!uunet!news-in2.uu.net!feed1.news.erols.com!howland.erols.net!news-peer.gsl.net!news.gsl.net!portc01.blue.aol.com!newstf01.news.aol.com!newsbf02.news.aol.com!not-for-mail
From: nulldogma@aol.com (Nulldogma)
Newsgroups: rec.arts.int-fiction
Subject: Problem with ADV.T 2.2.1
Date: 17 Oct 1996 17:02:44 -0400
Organization: America Online, Inc. (1-800-827-6364)
Lines: 70
Sender: root@newsbf02.news.aol.com
Message-ID: <5466tk$k06@newsbf02.news.aol.com>
Reply-To: nulldogma@aol.com (Nulldogma)
NNTP-Posting-Host: newsbf02.mail.aol.com

Though the new upload of TADS 2.2.1 claims to include numberedObject
support, it looks as if Mike forgot to update ADV.T to include the
necessary code. (The compiler and run-time, though, handle it perfectly --
I just tested it.)

To fix this, the following should be added to ADV.T:

/*
@numbered_cleanup: function
This function is used as a fuse to delete objects created by the
\tt numberedObject\ class in reponse to calls to its \tt newNumbered\
method.  Whenever that method creates a new object, it sets up a fuse
call to this function to delete the object at the end of the turn in
which it created the object.
*/
numbered_cleanup: function(obj)
{
    delete obj;
}

/*
@numberedObject: object
This class can be added to a class list for an object to allow it to
be used as a generic numbered object.  You can create a single object
with this class, and then the player can refer to that object with
any number.  For example, you can create a single "button" object
that the player can refer to with ``button 100'' or ``button 1000''
or any other number.  If you want to limit the range of acceptable
numbers, override the \tt num_is_valid\ method so that it displays
an appropriate error message and returns \tt nil\ for invalid numbers.
If you want to use a separate object to handle references to the object
with a plural ("look at buttons"), override \tt newNumberedPlural\ to
return the object to handle these references; by default, the original
object is used to handle plurals.
*/

class numberedObject: object
    adjective = '#'
    anyvalue(n) = { return n; }
    clean_up = { delete self; }
    newNumberedPlural(a, v) = { return self; }
    newNumbered(a, v, n) =
    {
 local obj;

 if (n = nil) return self.newNumberedPlural(a, v);
 if (not self.num_is_valid(n)) return nil;
 obj := new self;
 obj.value := n;
        setfuse(numbered_cleanup, 0, obj);
 return obj;
    }
    num_is_valid(n) = { return true; }
    dobjGen(a, v, i, p) =
    {
 if (self.value = nil)
 {
     "You'll have to be more specific about which one you mean.";
     exit;
 }
    }
    iobjGen(a, v, d, p) = { self.dobjGen(a, v, d, p); }
;



---------------------------------------------------------
Neil deMause                            neild@echonyc.com
                  http://www.echonyc.com/~wham/neild.html
---------------------------------------------------------


From avrom@Turing.Stanford.EDU Thu Oct 31 14:49:46 CET 1996
Article: 18954 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news00.sunet.se!sunic!news.sprintlink.net!news-peer.sprintlink.net!nntp-hub2.barrnet.net!news.Stanford.EDU!not-for-mail
From: avrom@Turing.Stanford.EDU (Avrom Faderman)
Newsgroups: rec.arts.int-fiction
Subject: Re: Style questions
Date: 30 Oct 1996 23:22:44 -0800
Organization: CSLI, Stanford University
Lines: 143
Message-ID: <559k44$6nu@Turing.Stanford.EDU>
References: <2030.6875T1324T746@otn.net>
NNTP-Posting-Host: turing.stanford.edu

In article <2030.6875T1324T746@otn.net>,
Patrick Kellum <patrick@otn.net> wrote:
>
> Ok, what is everyones opinion about thes subjects:
Well, here's mine:
>
>  1. Scoring -  does it distract from the game or add to it?  If you think
>    scoring is a good thing, what type of events should be rewarded?
>    Treasure colected, puzzles solved, anything else?

I think this really depends on what sort of game you're going for.  If
you're going for a traditional collect-the-treasures sort of romp, or
even a more sophisticated but still essentially fluffy game, scoring
doesn't distract from anything and has some potential to add--it gives
the players a sense of progress, and gives them some idea how far into
the meat of the game they are.

If, on the other hand, you're going for a game that has some artistic
pretensions, scoring is obviously out of place--it draws attention to
the game-like aspects of whatever it occurs in, which you might want
to play down.

Now I personally don't think there's an answer to the question of
which of these sorts of games you should go for.  I happen to enjoy
both, and I think a lot of people do, although lord knows there have
been a lot of recent complaints along the lines of either "All anyone
is writing are still boring old fantasy/sci-fi games with no artistic
merit" or "Nobody writes good old fantasy/sci-fi games any more;
everyone's so hung up on artistic merit."  This is a decision you, as
author, are simply going to have to make for yourself.

>  2. Puzzles -  what is more important, a simple puzzle that fits into a
>    game, or a hard puzzle that seems out of place?

See above.  Obviously, in a puzzle-oriented
dungeon dig, plot consistency isn't as important as giving the player
some good brain-teasers, so bring on any puzzle you can think of.  If
you're trying to establish a definite mood, or demonstrate something
about a character or a world, integration of puzzles is paramount.  So
I'd go for clever puzzles in "pulp" I-F, and relevant puzzles in more
"serious" I-F.  Again, think about your goals:  Are you trying to give
your players a bit of innocent fun, or are you trying to engage them
on a deeper level?

>  3. Game length - outside of the competition, how long should the average
>    game last?  Also, about how many locations are the average?

This is a bit like asking, "How long should a story be?"  A story
should be somewhere between two pages and 3,000 pages.  Similarly, a
game should last between 15 minutes and a year.

Now, this is maybe a bit glib.  You might want to put _some_ limits
(in both directions) on game length, for this reason:  A game that
takes too little time won't have been worth the download (I think,
BTW, that this was the primary problem with an otherwise very well
done competition entry that will remain nameless), and a game that is
too long will be certain to be riddled with bugs.  But short of these
constraints, go for it.

>  4. Ending - I've noticed that nearly every game I've played had only one
>    ending (besides the many deaths), is there a reason for this?

Absolutely not.  This is something I've been thinking about for a
while, and if I ever seriously try my hand at writing, it's one of the
primary issues I'd like to explore.  In fact, I think there's no real
reason why games should have one best ending, or, if they do have one
best ending, why it should be obvious when you've hit it.

One famous historical example of a game that doesn't fit into this
mold:  Infidel.  If it weren't for the scoring system, the only way to
tell when you had won would require you to get fully into the
character you are playing, to understand what he would have considered
winning.

>  5. Emotions and Morals - would puzzles based on emotions and morals be
>    considered acceptable?

Certainly.  Puzzles based on emotions, in particular, can be the most
interesting (and certainly the most realistic) puzzles there are.

You should be a bit careful, perhaps, with puzzles based on morals:
You don't want to come off as preachy.

Now, something interesting to do would be to combine puzzles based on
morals with your previous question, about there being only one
non-dying ending.  I think this would be a very interesting form for a
puzzle:

Present the player with a serious moral dilemma.  Make it hard--no
20 minute sit-com solution in sight.  The game need never (even after the
player chooses) make it clear whether that choice was the right one;
it could simply explore the consequences of the choice and leave its
rightness to the player to decide.

You might not even want to call this a puzzle anymore, since there's
no single way of responding to it the game will accept above others.
For that matter, you might not want to call game events based on
emotions "puzzles" (unless you really want the players to think of
themselves as _manipulating_ NPCs as if they were levers or pulleys).
Call them obstacles, or a turning points.  They're still legitimate I-F
devices.

>  6. Eating and Sleeping - are these considered too anoying to use even if
>    they are integrated into the story but not deadly?  (i.e. no starving,
>    no anoying messages)

Do they lend something to the story, either to its plot or by creating
an interesting puzzle?  If yes, throw them in.  If no, don't.  Think
of breathing:  A game set in space should perhaps deal with it;  one set
in Springfield presumably shouldn't, even though people in Springfield
need to breathe.

>  7. Undo - what was the overall opinion on this subject (I missed most of
>    that thread) should they be allowed?

If your game allows saving and restoring, it should certainly allow
undoing--it is, after all, just like saving before every move and
restoring if something goes wrong, except much less annoying.

I'm partial to allowing it in general.  The only thing you should
realize is that it puts an additional burden on you as author.  If you
allow undoing, you shouldn't put in any puzzles that are easy to solve
by going through them, possibly dying or messing up, and undoing if
necessary.  But then, you shouldn't put in any puzzles that are easy
to solve by going through them, possibly dying or messing up, and
restoring if necessary.

>  8. All - for verbs, see question 7.

Why not?  It should only cover visible items, of course.  You don't
want to solve puzzles for the players.

>  9. Non-Traditional puzzles - How far could an author stray from the
>    standard puzzles before it's no longer considered a puzzle or even
>    interactive fiction?

The former is simply a matter of terminology.  As for the latter, why
does interactive fiction need to have puzzles at all?


-Avrom




From nulldogma@aol.com Thu Oct 31 16:46:40 CET 1996
Article: 18953 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news01.sunet.se!sunic!psinntp!psinntp!news.intercon.com!news5.digex.net!news.ezy.net!news2.dn.net!news6.digex.net!news2.digex.net!news7.digex.net!spike.lci.net!odin.oar.net!malgudi.oar.net!news.apk.net!wariat.org!uunet!news-in2.uu.net!feed1.news.erols.com!howland.erols.net!news-peer.gsl.net!news.gsl.net!portc01.blue.aol.com!newstf01.news.aol.com!newsbf02.news.aol.com!not-for-mail
From: nulldogma@aol.com (Nulldogma)
Newsgroups: rec.arts.int-fiction
Subject: Problem with ADV.T 2.2.1
Date: 17 Oct 1996 17:02:44 -0400
Organization: America Online, Inc. (1-800-827-6364)
Lines: 70
Sender: root@newsbf02.news.aol.com
Message-ID: <5466tk$k06@newsbf02.news.aol.com>
Reply-To: nulldogma@aol.com (Nulldogma)
NNTP-Posting-Host: newsbf02.mail.aol.com

Though the new upload of TADS 2.2.1 claims to include numberedObject
support, it looks as if Mike forgot to update ADV.T to include the
necessary code. (The compiler and run-time, though, handle it perfectly --
I just tested it.)

To fix this, the following should be added to ADV.T:

/*
@numbered_cleanup: function
This function is used as a fuse to delete objects created by the
\tt numberedObject\ class in reponse to calls to its \tt newNumbered\
method.  Whenever that method creates a new object, it sets up a fuse
call to this function to delete the object at the end of the turn in
which it created the object.
*/
numbered_cleanup: function(obj)
{
    delete obj;
}

/*
@numberedObject: object
This class can be added to a class list for an object to allow it to
be used as a generic numbered object.  You can create a single object
with this class, and then the player can refer to that object with
any number.  For example, you can create a single "button" object
that the player can refer to with ``button 100'' or ``button 1000''
or any other number.  If you want to limit the range of acceptable
numbers, override the \tt num_is_valid\ method so that it displays
an appropriate error message and returns \tt nil\ for invalid numbers.
If you want to use a separate object to handle references to the object
with a plural ("look at buttons"), override \tt newNumberedPlural\ to
return the object to handle these references; by default, the original
object is used to handle plurals.
*/

class numberedObject: object
    adjective = '#'
    anyvalue(n) = { return n; }
    clean_up = { delete self; }
    newNumberedPlural(a, v) = { return self; }
    newNumbered(a, v, n) =
    {
 local obj;

 if (n = nil) return self.newNumberedPlural(a, v);
 if (not self.num_is_valid(n)) return nil;
 obj := new self;
 obj.value := n;
        setfuse(numbered_cleanup, 0, obj);
 return obj;
    }
    num_is_valid(n) = { return true; }
    dobjGen(a, v, i, p) =
    {
 if (self.value = nil)
 {
     "You'll have to be more specific about which one you mean.";
     exit;
 }
    }
    iobjGen(a, v, d, p) = { self.dobjGen(a, v, d, p); }
;



---------------------------------------------------------
Neil deMause                            neild@echonyc.com
                  http://www.echonyc.com/~wham/neild.html
---------------------------------------------------------


From giner@xp.psych.nyu.edu Thu Oct 31 18:33:40 CET 1996
Article: 18956 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news01.sunet.se!sunic!02-newsfeed.univie.ac.at!newsfeed.uk.ibm.net!news.ibm.net.il!arclight.uoregon.edu!news.sprintlink.net!news-peer.sprintlink.net!howland.erols.net!newsfeed.internetmci.com!news.ycc.yale.edu!yale!oitnews.harvard.edu!cmcl2!news.nyu.edu!xp.psych.nyu.edu!giner
From: Roger Giner-Sorolla <giner@xp.psych.nyu.edu>
Newsgroups: rec.arts.int-fiction
Subject: Scoring criteria
Date: Mon, 28 Oct 1996 10:21:00 -0500
Organization: New York University
Lines: 26
Message-ID: <Pine.SUN.3.91.961028101223.11872A-100000@xp.psych.nyu.edu>
NNTP-Posting-Host: xp.psych.nyu.edu
Mime-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII


Ay ay ay, quit arguing about how you "should" be doing things.

Just use your own scoring criteria.  I cooked up a SPAG-like itemized 
scoring system: 3 points for prose, 2 each for plot, puzzles, and 
interactivity, 1 last lousy point for innovation.  I awarded one bonus 
point to a low-scoring game I thought was amusingly flawed (a la Detective).

About 1/3 of the way thru the entries, my scores range from 3 to 9.  My 
standards for a two-hour game are a bit more lenient than my standards 
for a full-length one, though.  After all, as I recall, two hours into 
So Far I was thinking "This game is well written but the puzzles are stupid 
and it makes no sense."  Now I think it's one of the best.

(Then again, it's hard to write a humongous game and have everything be 
consistently excellent.  I mean, look at Jigsaw's Proust segment...)

Roger Giner-Sorolla          University of Virginia, Charlottesville, VA
rsg3x@virginia.edu           Dept. of Psychology (Social)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"Please, your Majesty," said the Knave, "I didn't write it, and they can't
prove I did: there's no name signed at the end."
"If you didn't sign it," said the King, "that only makes the matter worse.
You /must/ have meant some mischief, or else you'd have signed your name
like an honest man."   --  Lewis Carroll, Alice's Adventures in Wonderland



From erkyrath@netcom.com Thu Oct 31 18:39:14 CET 1996
Article: 18959 of rec.arts.int-fiction
Newsgroups: rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news01.sunet.se!sunic!02-newsfeed.univie.ac.at!newsfeed.uk.ibm.net!news.ibm.net.il!arclight.uoregon.edu!news.sprintlink.net!news-peer.sprintlink.net!howland.erols.net!netcom.com!erkyrath
From: erkyrath@netcom.com (Andrew Plotkin)
Subject: Re: [z-machine] Redrawing the upper window?
Message-ID: <erkyrathDzzv5L.C2L@netcom.com>
Organization: NETCOM On-line Communication Services (408 261-4700 guest)
X-Newsreader: TIN [version 1.2 PL1]
References: <552fsu$e4a@news.kth.se>
Date: Mon, 28 Oct 1996 16:29:45 GMT
Lines: 54
Sender: erkyrath@netcom.netcom.com

Anders Ekelund (t91_eks@t.kth.se) wrote:
> If I have understood the specifiction of the z-machine correctly, it is 
> legal for an interpreter to change the screen dimensions whenever it 
> likes to, as long as it writes the new size to the appropriate places in 
> the header.

I don't think it's the best idea, though. While standard library Inform 
games *do* notice the change, and redraw the upper window differently, 
they can't notice it until a turn is passed. (Because DrawStatusWindow is 
called just before a line of text is input, not *while* text is being 
input.)

This is the reason for the oft-complained-about setup of MaxZip, in two 
windows. The user can resize one but not the other.

> The results of this arent always pleasing, however. While most games 
> seems to notice this change and for example prints the time/score in a 
> new position, they dont redraw the entire upper window. This often 
> leaves trails of old information that doesnt look very pretty.
> So, is there a way for the interpreter to tell the V3-V5 game that it 
> should redraw the entire upper window, or can the problem be solved in 
> another way? (Or have I completely misunderstood the whole thing?)

You could improve the Inform library in the following way: store the old 
status window width in a variable, and check during DrawStatusLine to see 
if the current width has changed. If so, clear the status window before 
redrawing it.

This still leaves the window not being redrawn correctly until a turn has 
passed. 

You could also write the interpreter to clear the status window whenever 
it changes width, but then it'll actually be blank until a turn has 
passed. 

I don't believe there is any way to get the status line redrawn during a 
@read call. (Ok, unless you do a timed @read and check the width every 
tenth of a second. This is probably dumb.) There was a tentative proposal 
at one point to add an "interrupt" callback to the spec, which gets 
called whenever the screen changes size. I don't believe anyone tried 
mplementing it.

Frankly I think interpreters should not change the logical status window 
size. If the actual native window gets bigger, shift the status "window" 
over so that it's centered in the actual window. If the actual window 
gets smaller, clip the edges off the status window so that the user knows 
not to do that. :-) 

--Z

-- 

"And Aholibamah bare Jeush, and Jaalam, and Korah: these were the
borogoves..."


From mas.supplies@easynet.co.uk Thu Oct 31 18:43:03 CET 1996
Article: 18957 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news00.sunet.se!sunic!news.sprintlink.net!news-peer.sprintlink.net!newsfeed.internetmci.com!btnet!btnet-feed2!newsfeed.easynet.co.uk!easynet-uk!news.easynet.co.uk!usenet
From: mas.supplies@easynet.co.uk (Bill Hoggett)
Newsgroups: rec.arts.int-fiction,rec.games.int-fiction
Subject: Re: CONTEST: (NO SPOILERS)
Date: 31 Oct 96 12:20:40 +0500
Organization: [posted via] Easynet Group PLC
Lines: 34
Message-ID: <1431.6878T740T2009@easynet.co.uk>
References: <559fp6$bml@nr1.calgary.istar.net>
NNTP-Posting-Host: gamexchange.easynet.co.uk
X-Newsreader: THOR 2.3 (Amiga;TCP/IP) *UNREGISTERED*
X-easynet-cherry: 8467696695881.nnrp
Xref: news.lth.se rec.arts.int-fiction:18957 rec.games.int-fiction:18545

On 31-Oct-96 Roger Carbol <rog@col.ca> replied to Joe Barlow's post:

>I agree with you more or less, Joe; on the other hand, I think that
>an important category in a review of a game might be "Potential."

>"Potential" reflects not the potential of the game, but the potential
>of the author.  There are some authors out there who are very accomplished
>and pretty much set in there ways, and I know that I will most likely
>never really enjoy anything they write.  Other writers are quite
>obviously new, and although they might make a few mistakes here and
>there, they are firmly on the learning curve.

>It's something that I consider important, anyways.

I consider potential important too, but that should mean more than just
being able to think up an interesting plot. I've seen replies from two
authors of some of the worst games in this year's competition, and there
was a marked difference in their attitudes: One admitted that his game
was awful and said that he would welcome any comments in an attempt to
improve his work, while the other stated that any percieved deficiencies
in his game were put there by design.

To sum up, potential has to include the ability and willingness to learn,
otherwise it will always remain unrealised and so lose the right to be
called *potential*.

<preaching mode off>



Bill Hoggett (aka BeeJay)   <mas.supplies@easynet.co.uk>

Who's played through a few contest horrors already.



From erkyrath@netcom.com Fri Nov  1 10:29:39 CET 1996
Article: 18975 of rec.arts.int-fiction
Newsgroups: rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news00.sunet.se!sunic!news.sprintlink.net!news-peer.sprintlink.net!www.nntp.primenet.com!nntp.primenet.com!netcom.com!erkyrath
From: erkyrath@netcom.com (Andrew Plotkin)
Subject: Re: IF Genres [WAS:May I suggest a convention?]
Message-ID: <erkyrathE06K1s.JJn@netcom.com>
Organization: NETCOM On-line Communication Services (408 261-4700 guest)
X-Newsreader: TIN [version 1.2 PL1]
References: <32732f9a.3539586@hermes.rdrop.com> <777.6878T1404T2675@easynet.co.uk>
Date: Fri, 1 Nov 1996 07:13:04 GMT
Lines: 42
Sender: erkyrath@netcom8.netcom.com

Bill Hoggett (mas.supplies@easynet.co.uk) wrote:
> On 27-Oct-96, Laurel Halbany <mythago@agora.rdrop.com> wrote:

> >Matthew Amster-Burton <mamster@u.washington.edu> wrote:

> >>Is anyone else getting sick of traditional sci-fi/fantasy games?

> >Yes. Unless their theme is an exceedingly clever and interestingly new
> >one, I'm bored.

> OK, and we can also eliminate Detective/Murder Mysteries, Horror and
> Time Travel games as they have all been done to death in the last few
> years.

> Put aside the puzzle-less i-f and the programming genre as they are
> too gimmicky to appeal to the average gamer and, errr... have I left
> anything out ?

> Now, where's my copy of Doom...

One of the goals of "A Change in the Weather" was to have a non-genre 
story, and it certainly wasn't puzzle-free. (A fantasy element crept in, 
eventually -- one fantasy element -- but it's hardly high fantasy.)

Is puzzle-less a genre? Couldn't a non-puzzle-based IF story be written 
in an SF setting, or a fantasy setting? (Maybe not a mystery setting, 
since a mystery is a puzzle by definition.)

Anyway, there's also situation comedy, historical fiction, romance, spy 
thrillers, political satire, ancient Norse eddas, teenage coming-of-age 
stories, road movies....

Show some imagination here, people. And don't limit what we're doing with 
categories. For two years we've had one category, "Great Stuff." I like 
the results.

--Z

-- 

"And Aholibamah bare Jeush, and Jaalam, and Korah: these were the
borogoves..."


From dusyk&barlow@cableregina.com Fri Nov  1 12:49:05 CET 1996
Article: 18878 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news01.sunet.se!sunic!02-newsfeed.univie.ac.at!newsfeed.uk.ibm.net!news.stealth.net!www.nntp.primenet.com!nntp.primenet.com!howland.erols.net!news.sprintlink.net!news-peer.sprintlink.net!news-peer.gsl.net!news.gsl.net!news-dc.gsl.net!news.gsl.net!fin.firstnations.ca!news
From: Jim MacKenzie <dusyk&barlow@cableregina.com>
Newsgroups: rec.arts.int-fiction,rec.games.int-fiction
Subject: Re: Mirroring these groups on mailing lists
Date: Mon, 28 Oct 1996 17:09:14 -0600
Organization: Dusyk & Barlow Insurance Brokers Inc.
Lines: 37
Message-ID: <32753D1A.6853@cableregina.com>
References: <5534th$1hs@mars.worldonline.nl>
NNTP-Posting-Host: cabler98.cableregina.com
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
X-Mailer: Mozilla 3.0Gold (Win95; I)
To: Marnix Klooster <marnix@worldonline.nl>
CC: dankna@bergen.org
Xref: news.lth.se rec.arts.int-fiction:18878 rec.games.int-fiction:18486

Marnix Klooster wrote:
> 
> And I received the following response through private e-mail from
> dankna@bergen.org (A.K.A. TheWiz):
> 
> > PLEASE!!!  I've been "enforced lurking" on these lists for mabye half a
> > year now...  Speaking of which, forward my reply to the newsgroup?
> > Please?
> 
> Thus it seems that there is at least one person who would very
> much appreciate an e-mail mirror for these newsgroups.

This isn't an email mirror, but anyone on Earth can access news
at:

   news://news.uni-stuttgart.de

Furthermore, while you can't post normally, anyone on Earth can
post news by sending the post as mail to:

newsgroup.name@news.uni-stuttgart.de

e.g.

rec.arts.int-fiction@news.uni-stuttgart.de

Jim
-- 
/====================================================================\
|Jim MacKenzie                  Dusyk & Barlow Insurance Brokers Ltd.|
|Insurance Broker                                  4615 Albert Street|
|dusyk&barlow@cableregina.com           Regina, Saskatchewan (Canada)|
|Ph : (306) 789-8384                                          S4S 6B6|
|FAX: (306) 525-8540   http://www.cableregina.com/users/dusyk&barlow/|
|All opinions expressed are personal, and do not necessarily reflect |
|those of my employer.                                               |
\====================================================================/


From whizzard@uclink.berkeley.edu Fri Nov  1 13:14:18 CET 1996
Article: 18978 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news00.sunet.se!sunic!nntp.coast.net!howland.erols.net!agate!uclink.berkeley.edu!whizzard
From: whizzard@uclink.berkeley.edu (Gerry Kevin Wilson)
Newsgroups: rec.arts.int-fiction
Subject: Planning Ahead for 1997 I-F Contest.
Date: 1 Nov 1996 08:31:31 GMT
Organization: University of California at Berkeley
Lines: 28
Message-ID: <55cch3$j1b@agate.berkeley.edu>
NNTP-Posting-Host: uclink.berkeley.edu


Hi folks.  Things are kind of quiet for me at long last, so I've been
giving some thought to the competition's format.  Now, I like the current
voting system, and the lack of categories, that's not going to change.
I'll probably allow 1 decimal place on the scores next year (ie. 9.4) and
that'll be that.

However, there are some more serious and interesting things to be
discussed.

1. Next year, all games will be entered anonymously.  Now, how will I
protect the copyrights of the authors if their names do not appear in the
game?

2. Entrants will be banned from talking about the entries while the voting
period is underway.  Everyone else can still post about the games, but
authors will be disqualified for posting about either their own, or
someone else's entry.

3. A walkthrough is now defined as a plain text file with a sequence of
commands in it that a player can type in order and reach at least one of
the intended 'winning' endings of your game.  All entries will again be
required to have walkthroughs with them next year.  Hint systems are
optional.

That's my initial thoughts on the matter.  More later.
-- 
	"Shh...<looks around worriedly> The wires have ears, you know..."


From goetz@cs.buffalo.edu Sat Nov  2 14:58:27 CET 1996
Article: 19007 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news00.sunet.se!sunic!news.sprintlink.net!news-peer.sprintlink.net!howland.erols.net!news-peer.gsl.net!news.gsl.net!portc01.blue.aol.com!newsstand.cit.cornell.edu!news.acsu.buffalo.edu!acsu.buffalo.edu!goetz
From: goetz@cs.buffalo.edu (Phil Goetz)
Newsgroups: rec.arts.int-fiction
Subject: AI: Tracking knowledge
Date: 2 Nov 1996 06:01:48 GMT
Organization: State University of New York at Buffalo/Computer Science
Lines: 46
Message-ID: <55eo4c$3p0@prometheus.acsu.buffalo.edu>
NNTP-Posting-Host: pollux.cs.buffalo.edu
NNTP-Posting-User: goetz

Tonight I hacked out some elementary code about belief spaces.
It keeps track, for every action, of who the witnesses to that action
are, and what they know.  This is used within the planning code,
to anticipate when forming a plan who would witness each of the actions
in the plan and what they would know.  Thus I can now give a plan
specification like

   plan(me,
	achieve([not(lockedp(door))],[not(knows(joe,not(lockedp(door))))]),
	[[],[]],PLAN,S2,[],0).	% don't worry about stuff on this line

which means, "Unlock the door without Joe finding out about it."

The next step is to simulate reasoning, so that characters will derive
new knowledge from what they observe, and so that characters constructing
plans can predict what witnesses to their actions will infer from them.
The next step after that is to link the inferences to responses and
formation of counter-plans.  The final step is for characters to
simulate the counter-plans of other characters and take them into
account while still forming their original plans.

What am I talking about?  Well, suppose Curly has the goal
of killing Judd Fry.  Curly might form a plan to walk up to Judd in the
middle of the street and shoot him.  What I want to happen is for Curly
to anticipate that the witnesses will know he has killed Judd, they
will infer that murder is a crime, and they will respond to this
knowledge by forming plans to capture Curly and hang him.  This would
violate Curly's plan constraint of staying alive, so he would give up
on this plan.

I plan to subsume emotions under reasoning, by having rules that basically
let characters infer what their emotions are.  Emotion will be treated
not as a state of a character, but as a belief of a character.
Thus if I say a character is angry, by definition I mean he believes
he is angry.

What do people think about these efforts?
Will these capabilities make a great difference in the type of games
that can be written, or is some other aspect more important?

Would anybody give up Inform/TADS/Hugo and program in Prolog
if I provided an engine with these capabilities?

Phil Goetz@cs.buffalo.edu

I keep hitting the escape key, but I'm still here...


From giner@xp.psych.nyu.edu Tue Nov  5 09:30:53 CET 1996
Article: 19071 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news01.sunet.se!sunic!02-newsfeed.univie.ac.at!03-newsfeed.univie.ac.at!sbg.ac.at!cosy.sbg.ac.at!voskovec.radio.cz!www.nntp.primenet.com!nntp.primenet.com!howland.erols.net!newsfeed.internetmci.com!csn!nntp-xfer-1.csn.net!news-2.csn.net!csn!nntp-xfer-2.csn.net!yuma!purdue!oitnews.harvard.edu!cmcl2!news.nyu.edu!xp.psych.nyu.edu!giner
From: Roger Giner-Sorolla <giner@xp.psych.nyu.edu>
Newsgroups: rec.arts.int-fiction
Subject: Re: IF Genres [WAS:May I suggest a convention?]
Date: Mon, 4 Nov 1996 11:19:26 -0500
Organization: New York University
Lines: 27
Message-ID: <Pine.SUN.3.91.961104111016.24221A-100000@xp.psych.nyu.edu>
References: <32732f9a.3539586@hermes.rdrop.com> <777.6878T1404T2675@easynet.co.uk> <E07DJ1.Bn@ladle.demon.co.uk> <55h8s4$phi@informer1.cis.McMaster.CA>
NNTP-Posting-Host: xp.psych.nyu.edu
Mime-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
In-Reply-To: <55h8s4$phi@informer1.cis.McMaster.CA> 

On 3 Nov 1996, C.K. Smith wrote:

> John Hartnup (slim@ladle.demon.co.uk) wrote:
> 
> : "Fantasy" isn't dull, but your bog standard Tolkien-clone paperback
> : trilogy is.

I think the best fantasy works are those that take a little slice of the 
real world -- history, myth, legend, social satire -- and run with it.  
Tolkien was doing this when he drew on Anglo-Norse legend, folk tales, 
and medieval chivalrous romance to create his world.  Fantasy works that 
merely copy Tolkien (or other fantasy works) are missing the point.  

On a related note, I have much more respect for fantasy works that show 
research into original sources (for one, T. H. White's The Once and 
Future King) than those that try to get away with a generic medieval 
setting cribbed from the Dungeons and Dragons game master's guide.

Roger Giner-Sorolla          University of Virginia, Charlottesville, VA
rsg3x@virginia.edu           Dept. of Psychology (Social)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"Please, your Majesty," said the Knave, "I didn't write it, and they can't
prove I did: there's no name signed at the end."
"If you didn't sign it," said the King, "that only makes the matter worse.
You /must/ have meant some mischief, or else you'd have signed your name
like an honest man."   --  Lewis Carroll, Alice's Adventures in Wonderland



From jbarlow@ipass.net Tue Nov  5 09:40:23 CET 1996
Article: 19057 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news00.sunet.se!sunic!surfnet.nl!howland.erols.net!newspump.sol.net!news.mindspring.com!mindspring!cpk-news-feed3.bbnplanet.com!news.ipass.net!newsadmin@passport.ipass.net
From: jbarlow@ipass.net (Joe Barlow)
Newsgroups: rec.arts.int-fiction
Subject: Re: Style questions
Date: Sun, 03 Nov 1996 23:43:45 GMT
Organization: IPass.net
Lines: 101
Message-ID: <55jas8$266@news.ipass.net>
References: <2030.6875T1324T746@otn.net>
NNTP-Posting-Host: customs25.ipass.net
X-Newsreader: Forte Free Agent 1.0.82

patrick@otn.net (Patrick Kellum) wrote:

>  1. Scoring -  does it distract from the game or add to it?  If you think
>    scoring is a good thing, what type of events should be rewarded?
>    Treasure colected, puzzles solved, anything else?

	I don't really think there's one all-encompassing answer for this
question.  In an Adventure/Zork-type game, I think a score of some
type is pretty much expected, whether it be in the form of "X out of a
possible 400 points" or "You have obtained 3 shards of magical glass."
Some games don't really work well with a numeric score (mysteries, for
instance).  "Moonmist" had a nice method, though: "You have met X
guests, and have found no evidence nor the secret treasure nor
identified the ghost."  Arthur used a similar scoring system, though
of course that game was not a mystery.  Speaking personally, I really
like having some indication of my progress, but it doesn't have to be
a numeric score.
	(On a related note, does anyone else dislike how certain AGT games
tell you how many locations you've visited?  ("Your score is 44 out of
100, and you have visited 18 of 41 possible locations.")  I think this
really diminishes the feeling that the player is in a "world".)

>  2. Puzzles -  what is more important, a simple puzzle that fits into a
>    game, or a hard puzzle that seems out of place?

	Puzzles that seem out of place, whether hard or not, have no business
in a game (unless you're going for a certain effect, etc.)

>  3. Game length - outside of the competition, how long should the average
>    game last?  Also, about how many locations are the average?

	I'm probably in the minority here, but I really like LONG, LONG games
more than shorter games  (and in fact, I prefer novels to short
stories).  I like really getting immersed in a game and learning the
layout.  I enjoy spending weeks playing through someone's creation!
Avalon has been touted as being really huge.  If it ever comes out,
I'll be the first to obtain it.  :)
	But again, this isn't an all-encompassing answer.  I have an old issue
of Family Computing magazine somewhere that contains an interview with
Michael Berlyn and Marc Blank of Infocom, where they were talking
about the new "Plus" system of games they were developing, such as
Trinity and A Mind Forever Voyaging.  Berlyn said something along the
lines of (and this is not an exact quote):  "We are looking forward to
developing games that take advantage of more locations and objects....
but it won't be a Zork with a glandular problem.  We won't make a game
bigger just for the sake of making it bigger."  This is absolutely
vital.  Games like Jigsaw and Trinity kept me enthralled for many many
days because nearly every  location was important to the storyline.
The occasional red herring is fine, as long as the game is not
excessively stacked with dead wood.

>  4. Ending - I've noticed that nearly every game I've played had only one
>    ending (besides the many deaths), is there a reason for this?

	Wishbringer handled this quite nicely.  Many of the puzzles had
multiple solutions, depending on whether or not the player used
magick.  I played through it twice, using each method (finishing with
94 out of 100 on the magick route and 100 out of 100 with the logic
route).

>  5. Emotions and Morals - would puzzles based on emotions and morals be
>    considered acceptable?

	In theory, yes.  Depends on how heavy-handed the implementation is.

>  6. Eating and Sleeping - are these considered too anoying to use even if
>    they are integrated into the story but not deadly?  (i.e. no starving,
>    no anoying messages)

	I liked this effect in Enchanter, but it has driven me batty in other
games that use it too often.  

>  7. Undo - what was the overall opinion on this subject (I missed most of
>    that thread) should they be allowed?

	I think so.

>  8. All - for verbs, see question 7.

	For TAKE and DROP, certainly.  I question whether GIVE should be
allowed.  The first time I found the salesman in Leather Goddesses of
Phobos, I was able to figure out what to do by typing GIVE ALL TO
SALESMAN.

>  9. Non-Traditional puzzles - How far could an author stray from the
>    standard puzzles before it's no longer considered a puzzle or even
>    interactive fiction?

	Another difficult one to answer, since there are many different
interpretations of your question.  There has been much discussion of
one particular competition entry this year.  While the game in
question is very innovative, I have to question whether it is
Interactive Fiction in the most basic sense of the term.  After the
competition's voting period is over, I'm sure many folks will want to
answer this question a bit more indepth, possibly citing the game in
question in the process.

-=-=-=-=-=-=-=-=-=-=-
Joe Barlow  (jbarlow@ipass.net)
"Zorkers do it under the rug..."



From erkyrath@netcom.com Tue Nov  5 13:11:38 CET 1996
Article: 19078 of rec.arts.int-fiction
Newsgroups: rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news00.sunet.se!sunic!02-newsfeed.univie.ac.at!01-newsfeed.univie.ac.at!swidir.switch.ch!in2p3.fr!univ-lyon1.fr!howland.erols.net!netcom.com!erkyrath
From: erkyrath@netcom.com (Andrew Plotkin)
Subject: Re: Planning Ahead for 1997 I-F Contest.
Message-ID: <erkyrathE07B5J.n0u@netcom.com>
Organization: NETCOM On-line Communication Services (408 261-4700 guest)
X-Newsreader: TIN [version 1.2 PL1]
References: <55cch3$j1b@agate.berkeley.edu>
Date: Fri, 1 Nov 1996 16:58:30 GMT
Lines: 46
Sender: erkyrath@netcom.netcom.com

Gerry Kevin Wilson (whizzard@uclink.berkeley.edu) wrote:

> 1. Next year, all games will be entered anonymously.  Now, how will I
> protect the copyrights of the authors if their names do not appear in the
> game?

Is perfect anonymity really feasible? Note that Magnus Olsson's entry this
year takes place in the same multiverse as his entry last year. 
("Cyr-Dhool" is mentioned in each.) Will this be illegal next year? Will 
the person who wrote "Punkirita Quest One" be barred from writing 
"Punkirita Quest Two"?

I don't disagree with the spirit of the idea; I have gotten the impression
that my reputation is interfering with people's honest judging of my
entry. 

> 2. Entrants will be banned from talking about the entries while the voting
> period is underway.  Everyone else can still post about the games, but
> authors will be disqualified for posting about either their own, or
> someone else's entry.

This is fine by me.

> 3. A walkthrough is now defined as a plain text file with a sequence of
> commands in it that a player can type in order and reach at least one of
> the intended 'winning' endings of your game.  All entries will again be
> required to have walkthroughs with them next year.  Hint systems are
> optional.

This gets badly screwed by randomness in games. It doesn't even have to 
be very deep randomness in the plot. It could be as simple as a random 
even which occurs after 5 to 10 turns in a given location, which you have 
to wait for. Or a formal puzzle which starts in a random configuration.

The Z-machine has a "deterministic" mode for its random-number generator, 
but I don't know if every interpreter implements it. TADS also has such a 
mode. I don't know about other systems. However, I'd worry that 
deterministic mode might make a game seem too mechanical -- random 
scenery messages that always appear in the same order are a little goofy.

--Z

-- 

"And Aholibamah bare Jeush, and Jaalam, and Korah: these were the
borogoves..."


From stephens@math.ruu.nl Tue Nov  5 13:13:19 CET 1996
Article: 19081 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news00.sunet.se!sunic!surfnet.nl!ruu.nl!news
From: stephens@math.ruu.nl (Bruce Stephens)
Newsgroups: rec.arts.int-fiction
Subject: Re: AI: Tracking knowledge
Date: 04 Nov 1996 13:07:51 +0100
Organization: Utrecht University
Lines: 53
Sender: stephens@bommel.math.ruu.nl
Message-ID: <wwapw1u5ai0.fsf@bommel.math.ruu.nl>
References: <55eo4c$3p0@prometheus.acsu.buffalo.edu>
NNTP-Posting-Host: bommel.math.ruu.nl
In-reply-to: goetz@cs.buffalo.edu's message of 2 Nov 1996 06:01:48 GMT
X-Newsreader: Gnus v5.1

>>>>> "Phil" == Phil Goetz <goetz@cs.buffalo.edu> writes:

> What do people think about these efforts? 

I think that's the right way to go.  Having NPCs use the real database
gives them the wrong kind of knowledge.

> Will these capabilities make a great difference in the type of games
> that can be written, or is some other aspect more important?

I think it's clear that they have the potential of changing the kind
of games that can be written, but I'm not at all sure that anybody has
enough experience to know whether or not such games can work.  The Oz
project is doing this kind of thing, have they produced anything
convincing yet?  

There have been games with independentish characters: The Hobbit
springs to mind, as do some of the later Level-9 games.  The Hobbit's
handling of characters wasn't bad.  The Level-9 games were a bit
hack-and-slash, and felt a lot like MUD games, so it was more an
atmosphere than anything.

> Would anybody give up Inform/TADS/Hugo and program in Prolog if I
> provided an engine with these capabilities?

I suspect different authors (and I'm not an author) will react in
different ways.  Part of the appeal of current games is this artistic
conflict of the game telling a story, and restricting the player from
doing things that would break the story, and giving the player the
illusion of as much choice as possible.  What your system seems to
offer is the ability to build a bunch of agents with individual goals
and knowledge, together presumably with a traditional environment of
rooms, objects, and the opportunity of puzzles.  So how can I build a
story out of it?  How can I either control things sufficiently so I
know how the plot's going to work, or (presumably better) have the
system develop sufficiently interesting plots on the fly?

Many puzzle forms look a bit dangerous.  What if I need to use a bomb
in a particular place, but some NPC sets it off somewhere else, just
to see what'll happen?  What happens if I need a particular key, and I
know where it should be, but some stupid NPC has picked it up and
moved it somewhere else, or even worse, has gone through the door and
locked it from the other side?

Or am I going to be writing something like an interactive soap-opera?
Nothing particularly long-term happens, but in the short term there
are interesting plots and little puzzles, all with suitable NPC
behaviour.
-- 
Bruce Stephens			| email: B.Stephens@math.ruu.nl
Utrecht University              | telephone: +31 30 2534630
Department of Mathematics       | telefax:   +31 30 2518394
P.O. Box 80010, 3508 TA Utrecht, The Netherlands


From erkyrath@netcom.com Wed Nov  6 23:19:18 MET 1996
Article: 19154 of rec.arts.int-fiction
Newsgroups: rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news01.sunet.se!sunic!02-newsfeed.univie.ac.at!newsfeed.uk.ibm.net!news.stealth.net!www.nntp.primenet.com!nntp.primenet.com!netcom.com!erkyrath
From: erkyrath@netcom.com (Andrew Plotkin)
Subject: Re: MaxTADS & addword/delword
Message-ID: <erkyrathE0GK4C.Is8@netcom.com>
Organization: NETCOM On-line Communication Services (408 261-4700 guest)
X-Newsreader: TIN [version 1.2 PL1]
References: <55qcv9$dic@newsgate.duke.edu>
Date: Wed, 6 Nov 1996 16:50:36 GMT
Lines: 27
Sender: erkyrath@netcom.netcom.com

Stephen Granade (sgranade@bashful.phy.duke.edu) wrote:
> Hihi,

> I have a game fragment which makes insane use of TADS' addword/delword  
> commands.  While putting MaxTADS through the ringer, I ran this fragment.   
> Lo and behold, delword was handled correctly.  [General note: the original  
> TADS Mac interpreter does not handle delword() correctly.]  Can anyone  
> else verify this?  If so, it means I don't have to rewrite that fragment  
> to run on Macintoshes (Macintoshi?).

MaxTADS is based on the TADS 2.2.1 source that was posted by Mike Roberts 
about three weeks ago. I believe that contains the delword fix.

You should probably test your code on the standard 2.2.1 Mac runtime 
(which was uploaded at the same time.) Most likely you can stop worrying 
about it. (Although, for example, the Atari TADS runtime seems to be 
dated 1994, so it's not a perfect world.)

I also included a fix for a bug that screws up parsing for commands that
end with a number. ("set dial to 354".) That fix is probably not in the
standard Mac TR, but it is in the Unix source (daves-tads-src.tar.z)

--Z
-- 

"And Aholibamah bare Jeush, and Jaalam, and Korah: these were the
borogoves..."


From baf@max.tiac.net Wed Nov  6 23:20:44 MET 1996
Article: 19162 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news01.sunet.se!sunic!02-newsfeed.univie.ac.at!newsfeed.uk.ibm.net!arclight.uoregon.edu!feed1.news.erols.com!howland.erols.net!newsfeed.internetmci.com!in3.uu.net!news-in.tiac.net!posterchild!max.tiac.net!baf
From: baf@max.tiac.net (Carl Muckenhoupt)
Newsgroups: rec.arts.int-fiction
Subject: Re: Z?
Date: 6 Nov 96 16:13:05 GMT
Organization: The Internet Access Company, Inc.
Lines: 58
Message-ID: <baf.847296785@max.tiac.net>
References: <01bbcb8e$d46983e0$0e3699ce@shadetree.shadetree.com>
NNTP-Posting-Host: max.tiac.net

"Dan Dalton" <rimfire@shadetree.com> writes:

>I've read the history of infocom and browsed through alot of
>post here but never have I come across anything that clearly
>states what the Z-MACHINE is or what it does; one states it was created to
>handle the memory problems of older machine (allows
>them to play games 118k in size on a computer that has 36k)
>if this is true how does it do that? If not then why didn't they use
>the interpreter for the language it was originally written in?
>just wondering

The chief thing the Z-machine provides is platform independence.
That is, a given game file will work on Z-code interpreters for any
computer without the need to recompile or modify it.  When the
Z-machine was invented, there was no single brand of computer that
held the majority of the game market, you see.  If someone came out
with a new computer, all Infocom had to do was port the Z-machine to
that system and hey presto! there's a complete line of Infocom games
for it.

It is true that Infocom's interpreters can handle games larger than
the amount of physical memory your machine has.  They manage this by
reading data from the disk as it is needed.  Come to think of it, this
is probably the reason for the distinction between static and dynamic
memory in the Z-machine - static memory can be thrown away when you're
low on space and re-loaded later if necessary.  However, although this
is one thing the Z-machine provides, I find it unlikely that it's the
chief reason for its creation.  One could write routines for swapping
static memory in and out without writing a whole virtual machine.
It should also be noted that it's the particular interpreter
that determines how memory is managed; modern implementations of the
Z-machine tend to ignore the whole issue and simply hold the whole
game in memory at once.

"Why didn't they use the interpreter for the language it was
originally written in"?  I'm not sure what you mean by "it".  If you
mean the Z-code interpreter, then the reason is that there is no
language that exists on all the platforms they wanted their games to
run on.  (True, BASIC was ubiquitous in those days, but every machine
had its own version of BASIC that wouldn't work on any other machine.)
Since size and speed were great concerns, the original Z-code
interpreters were probably written in assembly language, and that's
about as platform-specific as you can get.

If you mean the particular games, then the reason they didn't use
an interpreter for the language is than no such interpreter
exists.  Infocom games were written in ZIL, a language invented by
Infocom.  It was specifically invented as a way to write Z-code.
I suppose that they could have distributed a ZIL interpreter
instead of a Z-code interpreter with their games, but this would
increase the size and complexity of the interpreter for no clear
advantage.  The whole idea behind compiling is to do the
complicated stuff once and get it over with, so you don't have to
do it every time you run the program.
-- 
Carl Muckenhoupt              | Text Adventures are not dead!
baf@tiac.net                  | Read rec.[arts|games].int-fiction to see
http://www.tiac.net/users/baf | what you're missing!


From erkyrath@netcom.com Wed Nov  6 23:20:53 MET 1996
Article: 19158 of rec.arts.int-fiction
Newsgroups: rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news01.sunet.se!sunic!surfnet.nl!howland.erols.net!www.nntp.primenet.com!nntp.primenet.com!netcom.com!erkyrath
From: erkyrath@netcom.com (Andrew Plotkin)
Subject: Re: Z?
Message-ID: <erkyrathE0GKv5.L00@netcom.com>
Organization: NETCOM On-line Communication Services (408 261-4700 guest)
X-Newsreader: TIN [version 1.2 PL1]
References: <01bbcb8e$d46983e0$0e3699ce@shadetree.shadetree.com>
Date: Wed, 6 Nov 1996 17:06:41 GMT
Lines: 35
Sender: erkyrath@netcom.netcom.com

Dan Dalton (rimfire@shadetree.com) wrote:
> I've read the history of infocom and browsed through alot of
> post here but never have I come across anything that clearly
> states what the Z-MACHINE is or what it does; one states it was created to
> handle the memory problems of older machine (allows
> them to play games 118k in size on a computer that has 36k)

That's really a small part of what it does. The main thing is that the 
Z-machine is a fixed standard. Infocom wrote thirty games, and most of 
them -- in the early days, all of them -- appeared on more than a dozen 
different home computers. They *really* didn't want to write 360 
different programs (12 * 30).

So they wrote all of their games for the Z-machine, and then wrote a 
Z-machine interpreter for each computer. Thus, only 42 programs (12 + 
30). I trust the reduction in effort is obvious.

(I'm simplifying, of course -- there were several versions of the 
Z-machine. But you get the idea.)

We're still using the same system; we write games for Z-machine or the 
TADS machine, and they run on any platform on the appropriate interpreter.

The memory thing is kind of a side benefit. The game assumes that the 
Z-machine has enough memory to run it. If the machine doesn't actually 
have enough memory, the interpreter can be written to do a "virtual 
memory" thing and load different pieces of the game as necessary. The 
game author never needs to worry about this.

--Z

-- 

"And Aholibamah bare Jeush, and Jaalam, and Korah: these were the
borogoves..."


From joe.mason@tabb.com Thu Nov  7 08:12:34 CET 1996
Article: 19176 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news01.sunet.se!sunic!mn6.swip.net!solace!news.ecn.uoknor.edu!feed1.news.erols.com!howland.erols.net!news.sprintlink.net!news-peer.sprintlink.net!uunet!in3.uu.net!news.uunet.ca!tabb!joe.mason
Distribution: world
Newsgroups: rec.arts.int-fiction
Subject: Style questions
From: joe.mason@tabb.com (Joe Mason)
Message-ID: <66.6451.1727@tabb.com>
References: <2030.6875T1324T746@otn.net>
Date: Sat, 02 Nov 1996 14:18:00 -0500
Organization: Timmins Area BBS (705)268-0801
Lines: 106

"Style questions", declared Patrick Kellum from the Vogon ship:

PK>  1. Scoring -  does it distract from the game or add to it?  If you
PK>  think   scoring is a good thing, what type of events should be
PK>    rewarded? Treasure colected, puzzles solved, anything else?

Depends on the game.  Scoring is certainly a good way to measure 
progress, so if you think some sort of measure of this is important, by 
all means leave it in.  If you're trying to make the game as REALISTIC 
as possible, to the extent that you don't want anything spoiling the 
suspension of disbelief, scoring could get in the way.  And if there's 
something in the game that shows you in itself how far you're getting 
(one of the competition entries experimented with this) you don't really 
NEED scoring for anything - but in many games, scoring is much easier to 
implement, and its not enough of a drawback that including it or not 
will be a major point for or against your game.

If you do use scoring, base it on whatever the plot of the game is based 
around.  If the point is to collect as many treasures as possible, score 
for players getting the treasures, and don't worry about scoring puzzles 
- players will know solving puzzles is good, because it lets them get 
treasures.  If the point is to solve all the puzzles in order to reach 
the end, score for puzzles solved.  If the point is to explore as much 
of the world as possible, score for finding new areas.  Noticing what 
makes the score go up will tell the player what exactly they're supposed 
to be doing.

PK>  2. Puzzles -  what is more important, a simple puzzle that fits
PK>  into a   game, or a hard puzzle that seems out of place?

Fits in.  Every puzzle has to fit in.

PK>  3. Game length - outside of the competition, how long should the
PK>  average   game last?  Also, about how many locations are the
PK>  average?

Every game has a perfect length: "As long as it has to be, and no longer 
then it needs to be."  You'll have to estimate how long it can sustain 
interest for.

In the end, it doesn't come down to how long the game should be, but 
whether every part of the game works out.  If you find part of it drags 
on, cut it down.  If you think one part needs expanding, expand it.  
Take care of the parts, and the whole will take care of itself.  
(Providing the parts fit together, of course.)

PK>  4. Ending - I've noticed that nearly every game I've played had
PK>  only one   ending (besides the many deaths), is there a reason for
PK>  this?

Becaue it's easier that way?  I think it comes from the fact that a lot 
of games are "quest" games, you have a definite goal to accomplish, so 
there are only two real endings - you succeed or you don't.  But if you 
want to expand this, please do!

PK>  5. Emotions and Morals - would puzzles based on emotions and morals
PK>  be   considered acceptable?

Definitely.  Don't be afraid to experiment.  In the end, it comes down 
not to "is this puzzle acceptable?" but to "does this puzzle work?"  And 
in the end, you won't know if they work or not till you release the game 
and get feedback on them.

PK>  6. Eating and Sleeping - are these considered too anoying to use
PK>  even if   they are integrated into the story but not deadly?  (i.e.
PK>    no starving, no anoying messages)

Ehhh.... I find them annoying myself, unless they really are a big part 
of the story.  If the story has to cover several days, sleeping is 
definitely in.  I find looking for food to be really annoying, unless of 
course its a survival story, so if you put eating in either make a 
source of food obvious from the beginning (like the kitchen machine in 
Planetfall, or maybe a tavern where you can buy whatever you need) or 
scatter it all over the place (like the fruit in Unkullia 2) - but I 
find the second option really doesn't work for me (WHY is there fruit 
lying around, anyway?)

PK>  7. Undo - what was the overall opinion on this subject (I missed
PK>  most of   that thread) should they be allowed?

Unless there's some reason you don't want the player to undo, sure.  But 
be aware that, in Inform 5.5 at least, its hard to turn off (maybe 
harder then its worth).

PK>  8. All - for verbs, see question 7.

Don't see why not, unless you have a reason you don't want it.

PK>  9. Non-Traditional puzzles - How far could an author stray from the
PK>    standard puzzles before it's no longer considered a puzzle or
PK>    even interactive fiction?

Oh, very very far.  I'm very lenient on this - I'd rather see games push 
the envelope as much as possible.

Joe

joe.mason@tabb.com
Shad Valley Carleton '96

--  The 1996 Interactive Fiction Contest is now open!  --
--  From Oct. 30 to Nov. 30, vote for the best of '96  --
--   ftp://ftp.gmd.de/if-archive/games/competition96   --


 CMPQwk 1.42 9550 Insomnia isn't anything to lose sleep over.


From whizzard@uclink.berkeley.edu Mon Nov 11 09:51:31 CET 1996
Article: 19266 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news01.sunet.se!sunic!surfnet.nl!howland.erols.net!agate!uclink.berkeley.edu!whizzard
From: whizzard@uclink.berkeley.edu (Gerry Kevin Wilson)
Newsgroups: rec.arts.int-fiction
Subject: Re: Planning Ahead for 1997 I-F Contest.
Date: 7 Nov 1996 18:42:31 GMT
Organization: University of California at Berkeley
Lines: 68
Message-ID: <55tain$740@agate.berkeley.edu>
References: <55cch3$j1b@agate.berkeley.edu> <staff.0d23@rabbit.augs.se> <55ijod$o21@engr.orst.edu> <staff.0d4b@rabbit.augs.se>
NNTP-Posting-Host: uclink.berkeley.edu

In article <staff.0d4b@rabbit.augs.se>,
Staffan Friberg <staff@rabbit.augs.se> wrote:
>
>Something that irks me about this group is that the concensus seems to be
>that everyone playing adventure games or everyone intrested in them are
>complete nincompoops.
>
>On this issue, people are unable to judge fairly because some people may be
>more famous than others. (There may be a point in this but MNSHO is that
>it's overrated.)

I think you are taking the new rules in the wrong light.  The anonymity
rule is there to keep new game authors from being scared off by
well-established and well-known authors.  There is no guarantee that these
well-known authors are going to be able to always produce consistantly
wonderful games.  There is nothing to say that a complete beginner can't
produce a 'Wow!' game.  As far as it biasing the votes, that was a
concern, but only inasmuch that people this year have taken too much
liberty with the voting process (i.e. a random sampling of games?  What
the...I'm pretty sure I didn't write that into the rules.)  I am worried
that if that trend continues (and if there are 30+ entries next year it
surely will) that some games may get overlooked in order to play
the latest Andrew Plotkin or Leon Lin production.  As I have stated
though, this is a small concern, and only a very minor contributor to the
situation.  The big thing is that I don't want authors feeling that they
don't have a chance against a well-known author, because that's a load of
hooey.

And about the 'author missing from conversation, so he must be entered.'
If we applied that even this year (when authors are allowed to post), it
would mean that Dave Baggett, Mike Roberts, Scott Adams, the entire group
of original Infocom programmers, and about 9/10s of all SPAG subscribers,
are entered in the contest.  Can you say "Non-feasible argument"?  And
hey, if I go on a vacation, am I going to start a panic in the streets?
"Oh my god, Whizzard's in the contest this year, flee for your lives!"
Yeah sure, like I'd get anything done in time to enter before 2005.

>There's very little noise here but I think some people around here need to
>work on their attitude towards other people. [And that includes myself, I
>suppose...]

Mine's pretty much finished and polished.  I hate everyone. :)

>And again, what exactly is the point of banning just authors from the
>discussion? I'd like to know exactly why Whizzard limited himself to just
>them.

Because of a big flap that occurred during this year's competition.  An
author jokingly remarked that he knew his games weren't very good on the
newsgroup.  He was then jumped by a passle of rather uncalled for remarks.
This is known as foot-in-mouth disease.  Simplest solution?  Tell authors
that they get disqualified if they post about their games or anyone else's
in the contest during the voting period.  Not the most graceful solution.
However, I know that if I make it a rule, the authors won't violate it,
and thereby they will save themselves, and me, from several headaches.  If
they do violate it, I state in the rules that I give one warning.  After
that, they would have to be tragically stupid to break it again.  So there
will be no 'accidental disqualifications'.

By the way, I think you forgot to criticize the new version of the
walkthrough rule, and the requirement for a non-random mode.  You're just
not covering all your bases, man.

I've said it before, and I'll probably have to say it again.  I come up
with new rules as I see a need for them.  That means that a situation has
come up this year that would have benefitted by the new rule.
-- 
	"Shh...<looks around worriedly> The wires have ears, you know..."


From rog@col.ca Mon Nov 11 09:53:54 CET 1996
Article: 19280 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news00.sunet.se!sunic!news.sprintlink.net!news-peer.sprintlink.net!newsfeed.internetmci.com!in3.uu.net!ott.istar!istar.net!van.istar!west.istar!cal.istar!news
From: Roger Carbol <rog@col.ca>
Newsgroups: rec.arts.int-fiction,rec.games.int-fiction
Subject: Re: Finishing competition entries
Date: 10 Nov 1996 19:55:11 GMT
Organization: iSTAR internet Incorporated
Lines: 47
Message-ID: <565buv$553@nr1.calgary.istar.net>
References: <326C7F55.2CC8@gmd.de> <3274e6b7.9033624@hermes.rdrop.com> <55b3qo$bfo@koala.scott.net> <328359ca.2571753@hermes.rdrop.com> <560417$1rt@koala.scott.net> <erkyrathE0L9pp.I65@netcom.com> <561a0a$m9h@nr1.calgary.istar.net> <erkyrathE0MJ0p.1HC@netcom.com>
NNTP-Posting-Host: 207.81.234.55
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
X-Mailer: Mozilla 2.01KIT (Win16; I)
Xref: news.lth.se rec.arts.int-fiction:19280 rec.games.int-fiction:18709

Andrew Plotkin wrote:

> In a class, students are being graded on how well they learn the subject
> matter. They are not competing with each other. The teacher is judging
> how much the students have learned, and (most importantly) it's for the
> students' benefit, to *tell* them how much they've learned. The grade is
> a rating of the student.
> 
> This competition is an opinion contest. It's for the *players'* benefits.
> I mean, the actual judging system is. The competition is of tremendous
> benefit to the authors, but we the players are not *grading* the authors,
> or how much they have learned, or how much potential they have to
> transform 21st-century literature. At least, I'm not. I'm rating the
> *games*, and *in competition* with each other, and I'm rating them by how
> well *I* like them.
> 
> The difference between a popularity contest and a rating of learning is
> so great that I find it absurd to compare them.

Hmmmm....I understand what your point is, I think.  I suspect that I
go about scoring a little differently than you do (though probably not
as much as you'd expect) and that might come from a different internal
model of the competition, maybe not.

I do like your comparision with the Oscars...however, rather than comparing
the I-F competition to merely the Oscar for Best Film, I think it also
has some elements of Oscar for Best Special Effects mixed in also. 

By that, I mean that I think that Best Special Effects is awarded based not
only on how enjoyable the movie was, or how enjoyable the effect was for
the audience, but also on how purely technically demanding it was.

To again use the example of Lists, mostly because it happens to be a 
good example of what I'm talking about, I personally didn't find it something
I'd call enjoyable, really.  If there was a whole CD of games just like it,
I'm not sure I'd rush out and buy it.  But I'm still likely to give it a 
high mark due to its high level of technical excellence.  A counter-example
might be the MST3K Detective.  I found that to be extremely entertaining;
on the other hand, the technical aspects (which were still solid; don't
get me wrong) were not really extraordinary.

Interesting discussion though, regardless.  I hadn't really thought there
might be this much underlying difference in how people viewed the
contest.


Roger Carbol .. rog@col.ca .. and a 5.9 from the Canadian judge


From mol@marvin.df.lth.se Tue Nov 12 23:40:12 CET 1996
Article: 19331 of rec.arts.int-fiction
Path: news.lth.se!mol
From: mol@marvin.df.lth.se (Magnus Olsson)
Newsgroups: rec.arts.int-fiction
Subject: Re: Planning Ahead for 1997 I-F Contest.
Date: 12 Nov 1996 22:38:33 GMT
Organization: /etc/organization
Lines: 70
Message-ID: <56au99$od@news.lth.se>
References: <55ijod$o21@engr.orst.edu> <staff.0d4b@rabbit.augs.se> <55tain$740@agate.berkeley.edu> <55tguv$9e8@kodak.rdcs.kodak.com>
NNTP-Posting-Host: marvin.df.lth.se

In article <55tguv$9e8@kodak.rdcs.kodak.com>,
Matthew Daly <daly@PPD.Kodak.COM> wrote:
>The ultimate telling of whether this no talk rule is good will be
>if people remember to post their unfettered opinion of the games
>when they're through.  Will these authors receive the same feedback
>a month and a half from now, or will people have forgotten playing
>the games?  Is the object to pronounce the best game of the year or
>to make an army of better i-f writers?

The object is to have a fair contest, with as polite discussion as
possible. If the object were to make an army of better I-F writers,
then I suppose some kind of on-line writing workshop, where authors
posted games-in-development and got comments and criticism while
developing, would be better than a contest. If the object were to
pronounce the best game of the year, then obviously all games written
during the year should be allowed to enter, shouldn't they? 

Last year, people did refrain from posting about the games during the
voting period - IIRC, the silence was near-total. Immediately after
the votes where in, we got a lot of very detailed and productive
discussion about the entries. Apparently, people didn't forget!

>The decisions are yours to make, Gerry, but when it's my turn to
>enter, I'd much rather post under my real name 

So would I. However, I can understand that people want to enter
anonymously. I can also understand why people think it would be fairer
to have "blind" voting.

>and receive timely
>critiques of my work from people who are more familiar with the
>art of creation than I,

"Timely"? Are you in such a hurry that you can't wait for a month?

> and forgo the unlikely chance that I would
>win anything.

Well, in that case I have a serious suggestion: don't enter the
contest.  Just publish your game and ask for feedback. You'll get
"timely" (i.e. immediate) critique and no rules restricting your
creative freedom. 

>  Perhaps you could split the experience into two
>classes, "professional" and "ameteur"?

Who is a professional in this field nowadays? Do you mean "previous
entrants" and "beginners"? 

About walkthrus:

>Eliminating non-random modes also removes a lot of interesting puzzles.

A good point. However, I think Whizzard's original intention wasn't to
force all games to be deterministic, just to have a deterministic *option*
to guarantee that the walkthru would work.

> If I were kept from
>doing all of those innovative things, and had to hide my identity
>from a public that I'm trying to reach out to, then I might conclude
>that the contest wasn't filling my needs and that there wasn't anything
>around that would anymore.

For crying out loud: nobody is *forcing* anyobody to enter the contest. 
If you don't like the rules, don't enter, just publish: people will
play your game anyway. Or enter another contest (such as Graham Nelson's),
or hold your own contest.

-- 
Magnus Olsson (mol@df.lth.se)


From graham@gnelson.demon.co.uk Wed Nov 13 12:25:16 CET 1996
Article: 19328 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news01.sunet.se!sunic!02-newsfeed.univie.ac.at!newsfeed.uk.ibm.net!arclight.uoregon.edu!dispatch.news.demon.net!demon!graham
From: Graham Nelson <graham@gnelson.demon.co.uk>
Newsgroups: rec.arts.int-fiction,rec.games.int-fiction
Subject: Graham Nelson's email address changing
Date: Mon, 11 Nov 1996 01:45:04 +0000 (GMT)
Organization: none
Lines: 36
Message-ID: <ant1101041cbM+4%@gnelson.demon.co.uk>
NNTP-Posting-Host: gnelson.demon.co.uk
X-NNTP-Posting-Host: gnelson.demon.co.uk
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; CHARSET=ISO-8859-1
X-Newsreader: ANT RISCOS Marcel [ver 1.09]
Xref: news.lth.se rec.arts.int-fiction:19328 rec.games.int-fiction:18760

REC.ARTS.INT-FICTION
USENET DRIVE
EREWHON

Dear REC,

  You may already have won a prize!  If your email address has
recently changed
from nelson@vax.ox.ac.uk to

      graham@gnelson.demon.co.uk

then you are eligible to be a finalist in our Grand Prize Draw!  All
finalists
will have their real names put into a top hat.  Yes yes yes indeedy,
the
first name pulled out of the hat will be the toast of USENET DRIVE
and will win

      the right to maintain Inform 6!

Not only that, but the photons streaking towards you now are ENTIRELY
FREE,
yours to keep WHETHER OR NOT YOUR EMAIL ADDRESS HAS CHANGED THE WAY
MINE HAS
(oh what a giveaway).

      Lt-Col Graham Nelson (Mrs)
        Head of Quality Assurance
          Suckers Digest, Inc
            Erewhon.

-- 
Graham Nelson: gnelson@graham.demon.co.uk               Oxford,
United Kingdom



From professor.falken@pnx.com Thu Nov 14 10:02:44 CET 1996
Article: 19365 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news00.sunet.se!sunic!news.sprintlink.net!news-peer.sprintlink.net!su-news-hub1.bbnplanet.com!news.bbnplanet.com!cpk-news-hub1.bbnplanet.com!www.nntp.primenet.com!nntp.primenet.com!feed1.news.erols.com!news.idt.net!cdc2.cdc.net!news.texas.net!node2.frontiernet.net!news.sprintlink.net!news-pen-15.sprintlink.net!news.dx.net!news
From: professor.falken@pnx.com (Greg Falcon)
Newsgroups: rec.arts.int-fiction
Subject: [Z-Machine] multiple undos (long)
Date: Tue, 12 Nov 1996 22:00:35 GMT
Organization: Association against the abuse of Organization fields
Lines: 269
Message-ID: <56artg$sgf@news.dx.net>
References: <erkyrathE0GK4C.Is8@netcom.com> <55r0gi$t05@newsgate.duke.edu> <564akq$bck@life.ai.mit.edu> <erkyrathE0nw89.Ar5@netcom.com> <565c3s$j2g@newsstand.cit.cornell.edu> <erkyrathE0oCqu.3M2@netcom.com> <565jvc$m0j@milo.vcn.bc.ca> <erkyrathE0oy2D.7py@netcom.com> <566gi3$o0c@milo.vcn.bc.ca> <erkyrathE0ptA2.345@netcom.com>
NNTP-Posting-Host: s100.pnx.com
X-Newsreader: Forte Free Agent 1.0.82

************
*DISCLAIMER*
************
This message is extremely long.  Stop now if you're not interested in
technical aspects of the Z-machine.

erkyrath@netcom.com (Andrew Plotkin) wrote:

>The former. (I still hold that the Z-machine is compatible with multiple 
>undo, if the interpreter wants to support it, which some do.)

THAT'S IT!  (I remember there was some thread I was involved in when I
was making my first appearances here that I dropped out of before
making a final case.  It was on this topic.  Thanks for bringing it
back up.)

I disagree with you here, and I will make my case starting with
excerpts from the spec.

6.1 The "state of play" is defined as the following:  the contents of
    dynamic memory; the contents of the stack; the value of the
    program counter (PC), and the "routine call state" (that is, the 
    chain of routines which have called each other in sequence, and 
    the values of their local variables). Note that the routine call 
    state, the stack and the PC must be stored outside the Z-machine 
    memory map, in the interpreter's private memory.

6.1.1.2 An internal saved game for "undo" purposes (if there is one)
        is not part of the state of play.  This is important:  if a 
        saved game file also contained the internal saved game at the 
        time of saving, it would be impossible to undo the act of 
        restoration.  It also prevents internal saved games from 
        growing larger and larger as they include their predecessors.

6.1.2 On a "restore" or "undo" (which restores a game saved into 
      internal memory), the entire state of play is written back 
      except for one bit: bit 0 of `Flags 2' in the header, the flag 
      revealing whether the game is being transcribed to printer.

restore undo   EXT:266  A  5  restore_undo    <result>
               Like restore, but restores the state saved to memory by
               save_undo.  (The optional parameters of restore may not

               be supplied.) The behaviour of restore_undo is 
               unspecified if no save_undo has previously occurred 
               (and a game may not legally use it):  an interpreter 
               might simply ignore this.
save undo      EXT:265  9  5  save_undo       <result>
               Like save, except that the optional parameters may not 
               be specified:  it saves the game into a cache of memory

               held by the interpreter.  If the interpreter is unable 
               to provide this feature, it must return -1:  otherwise 
               it returns the save return value.  (This call is 
               typically needed once per turn, in order to implement 
               "UNDO", so it needs to be quick.)


For an interpreter to support multiple undos while still following
this spec, it would need to provide secondary caches of memory.  After
the second @save_undo, the cache from the first @save_undo would have
to be written to a secondary cache.  (I am aware that there are many
ways an interpreter might implement this cache.  I am not arguing
about how it is to be implemented; I am only interested in the end
result.)

I don't argue that an interpreter shouldn't have a "secondary cache",
as I have chosen to call it.  An interpreter should be allowed to
store whatever it wants into in its own private memory.  I'm sure we
can agree on this.

My argument is that there is no "legal" way for the Z-Machine itself
to access what is in this secondary cache.  (Another clarification: I
am not even considering the behavior of the UNDO verb in a game right
now.  A program is expected to do some homework before calling
@restore_undo, clearly.  I am only discussing the behavior of the
Z-Machine opcodes.)

Say two @save_undo's have been called.  You would agree with me that
the first @restore_undo would restore the state of the last called
@save_undo.  However, IMO, a second @restore_undo would not restore
the first @save_undo state.

@restore_undo does a very simple task.  Everything in the undo cache
(except the transcription bit) is loaded back into place.  This
includes dynamic memory, the stack, the program counter, etc... but
NOT the internal save cache.  This is spelled out clearly in 6.1.1.2.
For multiple undos to be supported at the Z-Machine level, there would
have to be some mechanism to change what's in the cache.  However,
there is only ONE opcode that can write anything to this cache, and
that is @save_undo.  @restore_undo by definition only loads what is in
the undo cache back into memory.  Since the undo cache does not hold
any undo cache information (6.1.1.2.), it is inconsistant with the
spec to expect @restore_undo to leave the state of play and undo cache
in a condition to allow a second undo.

I'm going to write a program to test out how the Infocom's
interpreters would handle this.  As I write this paragraph, the
program hasn't been written yet.  I have no idea what the result will
be, but I will report it no matter what the result is.  (How
scientific.  ;-)

This program is written in Inform's z-assembly (for the most part),
and is therefore a little long.  As a technical side question (for
those who are still reading this ;-), was is the proper syntax for
@jump in Inform?  I couldn't figure it out, and finally resorted to
using Inform's own "jump"... sorry about that.

!For use in Inform 6 or greater...
[ main f x;
  @store f 'A';
  .start;
  @print "Undo Test^
          Current value of F is ";
  @print_char f;
  @print ".^
          Menu options:^
          1) Set new value of F^
          2) Call @@064save_undo^
          3) Call @@064restore_undo^
          4) Exit^^
          Your choice?";
  .inputloop;
  @read_char 1 -> x;
  @sub x 48 -> x;
  @jg x 4 ?inputloop;
  @jg 1 x ?inputloop;
  @je x 4 ?finished;
  @je x 1 ?isone;
  @je x 2 ?istwo;
  @je x 3 ?isthree;
  jump start;

  .isone;
  @print "Set new value^^
          New character?";
  @read_char 1 -> f;
  @print_char f;
  @print "^^";
  jump start;

  .istwo;
  @print "Call @@064save_undo^^
          Attempting save...";
  @save_undo -> x;
  @jg 1 x ?usfailed;
  @je 1 x ?ussucc;
  @print "@@064restore_undo succeeded.^^";
  jump start;

  .usfailed;
  @print "@@064save_undo failed.^^";
  jump start;

  .ussucc;
  @print "@@064save_undo succeeded.^^";
  jump start;

  .isthree;
  @print "Call @@064restore_undo^^
          Attempting restore...";
  @restore_undo -> x;
  @print "@@064restore_undo failed.^^";
  jump start;

  .finished;
  @print "Exit^^";
  @quit;
];



I have just run this program using Frotz and Infocom's DOS Beyond Zork
interpreter, and they both agree with me.  @restore_undo does NOT
change the undo cache.  If a second @restore_undo is called before a
@save_undo can change the cache, it succeeds... and loads the cache
that was written by the last @save_undo.

Of course, transcripting cannot be accessed in my program, and I'm not
good enough yet with z-machine language to add that feature easily.
(Read as: Too lazy to RTFM.)  However, here is what happened when I
ran this program... brought to you by cut-and-paste.


Undo Test
Current value of F is A
<Menu options snipped>
Your choice?Call @restore_undo

Attempting save...@restore_undo failed.

Undo Test
Current value of F is A.
<snipped>
Your choice?Call @save_undo

Attempting save...@save_undo succeeded.

Undo Test
Current value of F is A.
<snipped>
Your choice?Set new value

New character?B

Undo Test
Current value of F is B.
<snipped>
Your choice?Call @save_undo

Attempting save...@save_undo succeeded.

Undo Test
Current value of F is B
<snipped>
Your choice?Set new value

New character?C

Undo Test
Current value of F is C
<snipped>
Your choice?Call @restore_undo

Attempting restore...@restore_undo succeeded.

Undo Test
Current value of F is B.
<snipped>
Your choice?Call @restore_undo

Attempting restore...@restore_undo succeeded.

Undo Test
Current value of F is B.
<snipped>
Your choice?Exit


See my point?  The first @restore_undo failed, as the cache was empty.
The third succeeded, as the cache still had contents in it from the
LATEST @save_undo, which held the game state in which f='B'.

I don't disagree with your philosophy about how multiple undos could
be handled.  However, the 0.2 spec does not support your philosophy,
IMO.

(I think we need to work on making a 1.0 spec, myself.  Your
philosophy could be easily added to the spec without altering the way
any current z-files are interpreted... we could have @restore_undo
revert the cache if possible, and empty it if not.)

Note that the first call to @restore_undo in my program should cause
an "unspecified" result, according to the spec.  I propose in 1.0 that
calling @restore_undo while the cache was empty will always cause
@restore_undo to return 0.

That's enough for one post.  Awaiting your reply.

					Greg (out of breath)
---
  ___     ___     ___     ___    Greg Falcon  (professor.falken@pnx.com)
 / __\   / __\   / __\   / __\
( (     ( (     ( (     ( (      MEMBER S.S.S.S.
 \ \     \ \     \ \     \ \      (Society to Stop Sizeable .SIGs)
  \ \     \ \     \ \     \ \
___) )  ___) )  ___) )  ___) )   (With heartfelt apologies to people with
\___/ * \___/ * \___/ * \___/ *   proportional fonts or no sense of humor)



From goetz@cs.buffalo.edu Thu Nov 14 10:47:18 CET 1996
Article: 19371 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news01.sunet.se!sunic!02-newsfeed.univie.ac.at!01-newsfeed.univie.ac.at!swidir.switch.ch!surfnet.nl!howland.erols.net!feed1.news.erols.com!uunet!in3.uu.net!news.consultix.com!newsstand.cit.cornell.edu!news.acsu.buffalo.edu!acsu.buffalo.edu!goetz
From: goetz@cs.buffalo.edu (Phil Goetz)
Newsgroups: rec.arts.int-fiction
Subject: Re: AI: Tracking knowledge
Date: 11 Nov 1996 16:23:04 GMT
Organization: State University of New York at Buffalo/Computer Science
Lines: 42
Message-ID: <567jt8$m33@prometheus.acsu.buffalo.edu>
References: <55eo4c$3p0@prometheus.acsu.buffalo.edu> <n2B21416F@puppy.demon.co.uk>
NNTP-Posting-Host: pollux.cs.buffalo.edu
NNTP-Posting-User: goetz

In article <n2B21416F@puppy.demon.co.uk>,
Andrew Clover <ajc@puppy.demon.co.uk> wrote:
>goetz@cs.buffalo.edu (Phil Goetz) wrote:
>
>> What am I talking about?  Well, suppose Curly has the goal of killing
>> Judd Fry.  Curly might form a plan to walk up to Judd in the middle of
>> the street and shoot him.  What I want to happen is for Curly to
>> anticipate that the witnesses will know he has killed Judd
>
> Whoah! Are you sure this is all going to work? :-)

It works already.  I'm not saying it's bug-free, mind you.  ;)

> Though the biggest problem I have with it is that even if you manage to
>make this model work, you're going to have to write text to go with it. You
>could leave this to be generated automatically by the program, but that
>would leave you with extremely flat, boring writing.

What I described in that post was just planning.
I don't think you have to write text unless you also implement
question-answering:

  >ask curly, "why are you behind a barrel?"
  Curly says, "I don't want the Sheriff to see me here."

Then it's a problem.  Imagine the computer-generated text:

  Curly says, "Standing behind a barrel protects my goal of not being dead."

Right, Curly.

>> Would anybody give up Inform/TADS/Hugo and program in Prolog if I
>> provided an engine with these capabilities?
>
> I'd not think too many people would without the same high level of backup
>that the likes of TADS and Inform have - fast interpreters and compilers
>for a large range of machines, in particular.

<sigh>

Phil
just a coder who can't say "no"


From erkyrath@netcom.com Thu Nov 14 12:55:43 CET 1996
Article: 19378 of rec.arts.int-fiction
Newsgroups: rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news01.sunet.se!sunic!02-newsfeed.univie.ac.at!01-newsfeed.univie.ac.at!swidir.switch.ch!in2p3.fr!univ-lyon1.fr!howland.erols.net!www.nntp.primenet.com!nntp.primenet.com!netcom.com!erkyrath
From: erkyrath@netcom.com (Andrew Plotkin)
Subject: Re: Speaking of Z8 files...
Message-ID: <erkyrathE0tGL6.A2q@netcom.com>
Organization: NETCOM On-line Communication Services (408 261-4700 guest)
X-Newsreader: TIN [version 1.2 PL1]
References: <56c1s1$apl@dfw-ixnews3.ix.netcom.com> <56ch3q$eh3@rs18.hrz.th-darmstadt.de>
Date: Wed, 13 Nov 1996 16:03:06 GMT
Lines: 46
Sender: erkyrath@netcom.netcom.com

Alexander Lehmann (lehmann@mathematik.th-darmstadt.de) wrote:
> Russell Wain Glasser <rglasser@ix.netcom.com> wrote:
> :     Out of academic curiosity, what causes a game written in Inform to
> : be saved as ".z8" rather than ".z5"?
> :     Does it depend on which version of Inform you use? 

No. There's a "version" flag in Inform, which I usually set by putting
  Switches v5;
or
  Switches v8;
at the top of my source code. That's what determines the form of the 
output. 

> : (Doubtful... I
> : used Inform 5.5 for "Reverberations," and I think that's typical; and
> : when I upgraded "Hot Cross Doubles" to Inform 6 there was no change.)
> :     Is it strictly a function of how long the code is?  (Don't think
> : so... "Curses" is much longer than "So Far", as is the short version of
> : "Jigsaw" with no footnotes; yet "So Far" is z8 and the other two are
> : z5.)

The author *chooses* a version based on how big the game file is. _So 
Far_ has a shorter plotline than _Curses_, but it has a lot more text, so 
it's over 300K. _Curses_ is under 256K.

> This has something to do with the file size due to the available
> address space.

> All Zmachine versions use 16 bit addresses. The initial Zmachine (v3)
> used 2 byte words, so that maximum file size was 128k. The v4 and v5
> machines used 4 byte words so 256k was maximum. .z8 uses 8 byte words
> and has a maximum of 512k.  

It's not actually the word size; words are always 16 bits on the 
Z-machine. It's the alignment of string and routine addresses. In v5, all 
strings and routines start at addresses that are multiples of 4. This 
allows the game to store them in 16-bit words (by dropping the two 0 
bits off the bottom) and still have a range of 256K. In v8, it's 
multiples of 8, three 0 bits, and a range of 512K.

--Z

-- 

"And Aholibamah bare Jeush, and Jaalam, and Korah: these were the
borogoves..."


From lpsmith@rice.edu Tue Nov 19 10:18:36 CET 1996
Article: 19538 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news01.sunet.se!sunic!02-newsfeed.univie.ac.at!01-newsfeed.univie.ac.at!voskovec.radio.cz!nntp.zit.th-darmstadt.de!news.nacamar.de!howland.erols.net!cs.utexas.edu!bcm.tmc.edu!newsfeed.rice.edu!rice!ural.owlnet.rice.edu!lpsmith
From: lpsmith@rice.edu (Lucian Paul Smith)
Newsgroups: rec.games.int-fiction,rec.arts.int-fiction
Subject: Contest Review Guidelines [REPOST]
Date: 18 Nov 1996 23:12:42 GMT
Organization: Rice University, Houston, Texas
Lines: 87
Message-ID: <56qqha$iah@listserv.rice.edu>
NNTP-Posting-Host: ural.owlnet.rice.edu
X-Newsreader: TIN [version 1.2 PL2]
Xref: news.lth.se rec.games.int-fiction:18970 rec.arts.int-fiction:19538


While browsing the r.a.i-f archive (thanks again, Steve!) I came across 
the following post, and felt that it needed to be posted again, before 
this year's contest is over, and we get swamped by a bunch of reviews.

The post is from Jacob Solomon Weinstein, in April of 1996, and can be 
found in its entirety (and in context) at:

http://www.truespectra.com/~svanegmo/raif/110/msg00313.html

Enjoy!  And keep this in mind when posting Competition Criticism!

(And, Jacob, I hope you don't mind!)

-Lucian Smith

----begin quoted post----

Since we've been discussing what sort of criticism of IF is appropriate,
let me offer my own rules, which I've drawn from my experience in
workshops. 

Jacob's Guide To Giving Constructive Feedback on IF

1) Discuss the game, not the author. 
Wrong: The latest game from Jane Doe proves, once again, that she needs to
pay more attention to grammar. 
Right: In "Mr. Bily's Real Good Game," the numerous spelling and
grammatical errors give an unprofessional appearance. 

2) Be specific. 
Wrong: I didn't like the plot of this game. 
Right: I thought that the idea of giant ants terrorizing the populace was
kind of silly, and I found it unbelievable that the President would ask a
kindergartner to help solve the problem.

3) Offer suggestions on how to fix things. 
Wrong:  Captain Ahab wasn't a very interesting character. 
Right: Captain Ahab wasn't a very interesting character. I would have
liked him to react to being shown or given more objects. He certainly
should react when you show him the sword you stole from his cabin. 

4) Phrase your criticisms politely. 
Wrong: The prose sucks. 
Right: The prose needs a great deal of polishing. 

5) Don't be afraid of criticising. 
Wrong: (said to oneself) "Well, gee, I really didn't like this game, but I
don't want to hurt the author's feelings, so I'll just say how much I
liked the title and leave it at that." 
Right:  (said to oneself) "Well, gee, I really didn't like this game, but
if the author doesn't get feedback from players, he'll never be able to
improve, so I'll post some polite and constructive criticism. And I'll be
sure to include some mention of what worked in the game, so he'll know
what he's doing right." 

6) Don't be afraid of praising. 
Wrong: (said to oneself) "Well, gee, I thought this was the greatest game
since Zork I, but it's a traditional puzzle-oriented game, and I'm afraid
that if I say how much I like it, people will make fun of me, and,
besides, just telling the author how great the game is won't help him
improve." 
Right: (said to oneself) "Well, gee, I thought this was the greatest game
sinze Zork I, and so I'm going to post specific and detailed comments
about what I liked. This will let the author know what his strengths are
as a writer. And if those avant-garde anti-puzzle types don't agree, they
can post responses, thereby provoking an interesting and useful
discussion." 

7) If you disagree with another poster, let the world know. 
Wrong: (said to oneself) "Oooh, that Jacob Weinstein makes me mad. I'm
going to sit at the keyboard and fume silently." 
Right: (said to oneself) "Ooh, that Jacob Weinstein makes me mad. I'm
going to swallow my anger and post a polite and thoughtful response
disagreeing with him." 

8) Admit to your biases. 
Wrong: I thought the section in the labyrinth of Crete was the best part
of the game. 
Right: I'm a sucker for clever variations on the old maze puzzle, so I
though the section in the labyrinth of Crete was the best part of the game. 



-Jacob

----end quoted post----


From erkyrath@netcom.com Tue Nov 19 10:24:18 CET 1996
Article: 19540 of rec.arts.int-fiction
Newsgroups: rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news01.sunet.se!sunic!02-newsfeed.univie.ac.at!01-newsfeed.univie.ac.at!zeus.cc.ucy.ac.cy!athena.cytanet.com.cy!imci5!news.internetMCI.com!newsfeed.internetmci.com!www.nntp.primenet.com!nntp.primenet.com!netcom.com!erkyrath
From: erkyrath@netcom.com (Andrew Plotkin)
Subject: Re: [tech pondering] Tck/Tk = portability in GUI?
Message-ID: <erkyrathE1398I.Fvp@netcom.com>
Organization: NETCOM On-line Communication Services (408 261-4700 guest)
X-Newsreader: TIN [version 1.2 PL1]
References: <wwad8xbiofq.fsf@bommel.math.ruu.nl> <erkyrathE12u0H.5x1@netcom.com> <Pine.LNX.3.95.961118134148.21446K-100000@adamant.res.wpi.edu>
Date: Mon, 18 Nov 1996 23:00:17 GMT
Lines: 84
Sender: erkyrath@netcom.netcom.com

George Caswell (timbuktu@adamant.res.wpi.edu) wrote:
> On Mon, 18 Nov 1996, Andrew Plotkin wrote:

> > I would point out, however, that the concept of "a nice interface" is not
> > portable. A Z-machine interpreter interface acceptable in X is not
> > acceptable on the Mac, and vice versa. (Remember, I've written both.) So
> > this whole concept is chasing a chimera, to some extent. 
> > 
>   Hm..  are you referring to just graphical look stuff, or the fact that all
> Mac interfaces conform to the system's 'standard', and that what's needed on a
> Mac would be unwelcome on Unix...?

Well, both. I don't know if I can explain it perfectly, because I'm not 
familiar with Tcl/Tk stuff. But go look at XZip, and then look at MaxZip. 
On the Mac there's a menu bar; not in X. There are subtle differences in 
the way cutting and pasting works, because XZip is ultimately based on 
the Emacs model. The Mac version has a tremendous amount of code for 
dealing with stand-alone apps and double-clicked game and save files; 
this is meaningless in any other OS. The way preferences are edited on 
the Mac is entirely done with Mac widgets, some of which probably don't 
exist anywhere else (for example, the system-generated popup menu list of 
available fonts; the color chooser dialog.) In X it's acceptable to make 
the user edit an .Xdefaults file, although it would be nicer to have some 
kind of interactive editing of the info.

There are just a lot of little wacky things. In the original TADS 
interpreter on the IBM, there are a couple of little data files 
(TADSERR.MSG, CONFIG.TR) which are expected to be installed in the same 
directory as the runtime executable. When I wrote MaxTADS, that went 
*away*. It is incredibly ugly to have such things on the Mac; an 
application should be complete unto itself. It is *not* ugly in MS-DOS; 
it's normal. And in Unix it's normal for there to be little data files, 
but they don't belong in with the application, they belong in some 
compiled-in "/usr/local/zip/" path, overridden by optional environment 
variables or dot files in the user's home directory.

For a compiler, it's worse. A compiler in Unix *should be* command-line 
oriented. Any kind of GUI is just getting in the way of the people who do 
everything with Makefiles, or do everything with Emacs, or do everything 
with Perl scripts.

On the Mac, I'd be pretty pleased if there was an Inform interface that 
looked like CodeWarrior. Project files, maybe even replacing the ICL 
language. Support for using BBEdit or Alpha as an external editor. 
Drag-n-drop of source files into the project.

What about Mac-specific preferences? Choosing the file type/creator of the
output file? 

I'm just picking random ideas here. I only programmed in Windows for eight
months, and I was, uh, unhappy. The Mac and Windows 95 GUIs disagree on a
*lot*. Order and meaning of standard menu items. User involvement in
preference and config files. Semantics of file types. The use of icons for
verbs as opposed to nouns. Approach to hotkeys, TAB, and other
mouse-alternative accelerators. Handling of user-selectable desktop themes
(which will change further on the Mac in upcoming OS releases.) Color
schemes of icons, for chrissake. 

Let's put it this way: I really, really hope I never have to use Visual 
C++ ever again in my life. I believe someone posted here (although it may 
have been a different group entirely) saying that they thought VC++ was 
the ideal programming environment, and CodeWarrior was awful. I believe 
we may take this as some kind of evidence about how different are the 
expectations of Mac and Windows users. :-)

BTW, I don't think this is a reason *not* to create a Tcl/Tk version of 
Inform or Zip. (Or the TADS interpreter and compiler.) I would rather use 
a Tcl version of Inform on the Mac than the command-line (MPW) version. 
And having several versions of tools means more flexibility, and faster 
detection of bugs and divergence-from-standards.

What I'm saying is that a Tcl/Tk version will not replace an OS-native 
version (of an interpreter or a compiler.) Some users will like it and 
use it; some won't.

(PS: Yes, I'm actually trying to *not* restart the OS advocacy argument. 
I'm describing variances, not saying which variant is superior.)

--Z

-- 

"And Aholibamah bare Jeush, and Jaalam, and Korah: these were the
borogoves..."


From graham@gnelson.demon.co.uk Tue Nov 19 19:51:55 CET 1996
Article: 19570 of rec.arts.int-fiction
Path: news.lth.se!solace!eru.mt.luth.se!www.nntp.primenet.com!nntp.primenet.com!EU.net!usenet2.news.uk.psi.net!uknet!usenet1.news.uk.psi.net!uknet!dispatch.news.demon.net!demon!graham
From: Graham Nelson <graham@gnelson.demon.co.uk>
Newsgroups: rec.arts.int-fiction
Subject: Re: Extending the Z-Machine ? (was Re: An idea for including animations...)
Date: Tue, 19 Nov 1996 12:23:31 +0000 (GMT)
Organization: none
Lines: 45
Message-ID: <ant191231313M+4%@gnelson.demon.co.uk>
References: <328D87D9.792E@-.-> <3290B7D0.170BE526@post.rwth-aachen.de> 
NNTP-Posting-Host: gnelson.demon.co.uk
X-NNTP-Posting-Host: gnelson.demon.co.uk
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; CHARSET=ISO-8859-1
X-Newsreader: ANT RISCOS Marcel [ver 1.09]

In article <3290B7D0.170BE526@post.rwth-aachen.de>, Linards Ticmanis
<URL:mailto:Linards.Ticmanis@post.rwth-aachen.de> wrote:
> 
> Really.. Let's not repeat the mess that "Beyond Zork" made of the
> Z-Machine. The existence of this one game is responsible for nearly
> everything that's messy in e.g. the Frotz/DOS source code. (The
rest is
> to be blamed on Intel/IBM/Microsoft, e.g. near and far pointers) The
> reason was that some comittee came up with a lot of strange ideas
about
> what to include in the Z-Machine, without first checking if it was
> really necessary or useful.

Not forgetting the Seastalker sonar display, and the sound effects
put into The Lurking Horror (which was cut back from V5 to V3 at the
last minute, I believe).  But yes, I agree.

> ...
> However for each extension of the Z machine (and many have been
> proposed) we should really check if they are 
> 1.) Useful (I mean _really_ useful.)
> 2.) Necessary (i.e. can't be done with a witty Z-Code program
within the
>                existing machine)
> 3.) Minimal (i.e. put as little as possible new stuff into the
>              interpreter, let the Z Program do the rest.)
> 4.) Realizable on most (or better all) the existing architechtures.

Exactly.  I am very reluctant to change anything of significance
within the present design.  As an example of (2), people frequently
used to say "the Z-Machine is no good, because you can only have
63 properties" (though no game has ever needed even that many,
so far as I'm aware).  But Inform 6 has unlimited properties by
compiling better code for the existing Z-machine.

The only feature I would like to add to the Z-machine is the
ability to call a routine from within text being printed.
Existing interpreters already do this for V6 games, in some
circumstances.  But it wouldn't be all that useful, and the point
about a standard is that it's a compromise or it is nothing.

-- 
Graham Nelson  |  graham@gnelson.demon.co.uk  |  Oxford, United
Kingdom



From nkg@vcn.bc.ca Tue Nov 19 23:02:20 CET 1996
Article: 19576 of rec.arts.int-fiction
Path: news.lth.se!solace!dataphone!www.nntp.primenet.com!nntp.primenet.com!howland.erols.net!news.sprintlink.net!news-peer.sprintlink.net!newsfeed.internetmci.com!newsfeed.direct.ca!nntp.portal.ca!news.bc.net!unixg.ubc.ca!freenet.vancouver.bc.ca!nkg
From: nkg@vcn.bc.ca (Neil K. Guy)
Newsgroups: rec.arts.int-fiction
Subject: Re: befuddled beginner
Date: 19 Nov 1996 08:18:55 GMT
Organization: Vancouver CommunityNet
Lines: 44
Message-ID: <56rqhf$jks@milo.vcn.bc.ca>
References: <32910830.7F98@charm.net>
NNTP-Posting-Host: opus.vcn.bc.ca
X-Newsreader: TIN [version 1.2 PL2]

W. Wiggins (weevil@charm.net) wrote:
: I'm using a mac quadra 950 with 24 megs of ram and Inform 2.1.2 because 
: it's free and seems well documented. (And a later version I had wouldn't 
: even compile the "hello world" program) I'm still trying to find a good 
: interpreter (I'm about to go through a few I've just downloaded).

 Well, 24 Mb on a 950 is more than adequate to write IF; certainly. As 
for Z-machine interpreters try MaxZip or Zip Infinity - they're both 
polished pieces of work that behave like real Mac applications. Mainly 
because they are.

: Anyway, the point of this message is that I'm already aware of how 
: frustrating the process of getting everything set up and learning the 
: language is going to be. I'm not sure how well my trickle of experience 
: authoring in mud-like enviroments is going to counteract my somewhat 
: appalling lack of experience with any computer language. I really love IF 
: and I'm excited about authoring, so I'm hoping that someone who has gone 
: through what I am now confronting will be willing to help.

 If you haven't checked already be sure to look at Graham Nelson's own 
Inform Web page, which can be found at:

 http://www.gnelson.demon.co.uk/inform.html

 has a good collection of material and links. And there are always people 
in this newsgroup who'd be happy to answer your questions and offer a 
wide variety of opinions. Incidentally, if you're getting started you 
might want to take a look at TADS as well; it being also free and well- 
documented.

 http://www.tela.bc.ca/tela/tads/

 Of course, that's the page I maintain and I happen to like TADS, so take 
that suggestion as you will. But I also think it's worth checking out 
your options before committing to an authoring system - the languages are 
structured somewhat differently and you may find yourself more 
comfortable with one than the other. You can't go wrong choosing one or 
the other, though - I think they're both excellent systems.

 - Neil K. Guy

--
        the Vancouver CommunityNet   *   http://www.vcn.bc.ca/
              (formerly the Vancouver Regional FreeNet)


From timbuktu@wpi.edu Wed Nov 20 18:01:19 CET 1996
Article: 19581 of rec.arts.int-fiction
Path: news.lth.se!solace!news.stealth.net!www.nntp.primenet.com!nntp.primenet.com!feed1.news.erols.com!uunet!in2.uu.net!news.ultranet.com!bigboote.WPI.EDU!adamant.res.wpi.edu!timbuktu
From: George Caswell <timbuktu@adamant.res.wpi.edu>
Newsgroups: rec.arts.int-fiction
Subject: Re: The mythic source or binary-portable interpreter.
Date: Tue, 19 Nov 1996 17:16:10 -0500
Organization: Worcester Polytechnic Institute
Lines: 42
Message-ID: <Pine.LNX.3.95.961119170726.23217C-100000@adamant.res.wpi.edu>
References: <Pine.LNX.3.95.961113174929.1064B-100000@adamant.res.wpi.edu> <Pine.LNX.3.95.961116124153.18281I-100000@adamant.res.wpi.edu> <56n9n5$6dr@cnn.Princeton.EDU> <Pine.LNX.3.95.961117134335.20202C-100000@adamant.res.wpi.edu> <56pud2$hsf@cnn.Princeto <baf.848347516@max.tiac.net> <Pine.LNX.3.95.961118230324.22066B-100000@adamant.res.wpi.edu> <3291e6a2.1561684@news.u.washington.edu>
Reply-To: timbuktu@wpi.edu
NNTP-Posting-Host: adamant.res.wpi.edu
Mime-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
In-Reply-To: <3291e6a2.1561684@news.u.washington.edu>

On Tue, 19 Nov 1996, Matthew Amster-Burton wrote:

> George Caswell <timbuktu@adamant.res.wpi.edu> wrote:
> 
> >   Yeah, I use 4dos a lot...  It's almost as good as tcsh, except when it
> >doesn't work.  It's Torgo's main shell.
> 
> 1.  4DOS is great.
> 
   Like I said, 4dos is great...  except when it doesn't work.  Always seems
to leave me with a bunch of dead swapfiles, and there's some software it won't
run.  Seriously, though, I think 4dos is about as good a compromise you can
have between the good Unix shells and the limitations of DOS.

> 2.  Who is Torgo?
> 
   Torgo is my real computer's 'evil underling'.  It's a system I built out of
super cheap parts..   a 386-25 with 13 MB RAM, 44 MB HD, and an old video
card...  $40 in all...  since it's not networked and since one of my goals
building Torgo was to make a DOS machine so I could run DOS binaries without
an emulator, all it's 44 MB is filled with DOS, GNUish DOS programs,
utilities, and games.  Probably coolest of all is that it's not just a 386,
it's a -weird- 386...  has 4 banks of memory, split BIOS, alphanumeric LED
display on the front panel, takes a long time to do its memory check, and
makes a really cool sound when you start it up.  <g>  Yes, I'm quite afraid
this -is- what CS types do for fun.

> 3.  Tcsh is evil--see http://www.perl.com/perl/versus/csh.whynot
> 
   If you're talking about perl vs. tcsh, that argument is from a
-programming- context.  As a programming language 4dos would be even worse.
As a command shell, tcsh is excellent.
                           ________________________________________________
 ______________ _/> ____  | George Caswell, WPI CS 1999. Member L+L and    |
<___ _________// _/<_  /  | SOMA. Sometimes artist, writer, builder. Admin |
   // <> ___  <  > / _/   | of ADAMANT, a Linux box for the creative and   |
  // /> /  / _/ / / <____ | productive members of the computer world. For  |
 // </ <<</ < _/ <______/ |_more info see http://www.wpi.edu/~timbuktu.____|
</          </             ---This blatently off-topic message brought to you
by the makers of 'Americans are perfect!', 'Macintoshes suck', and other high
quality threads.



From puma@u.washington.edu Wed Nov 20 18:02:17 CET 1996
Article: 19607 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news01.sunet.se!sunic!02-newsfeed.univie.ac.at!01-newsfeed.univie.ac.at!swidir.switch.ch!nntp.coast.net!howland.erols.net!news.sprintlink.net!news-peer.sprintlink.net!uunet!in3.uu.net!news.u.washington.edu!puma
From: puma@u.washington.edu (Clyde Sloniker)
Newsgroups: rec.arts.int-fiction
Subject: The well-dressed adventurer...
Date: 19 Nov 1996 19:57:31 GMT
Organization: University of Washington, Seattle
Lines: 51
Message-ID: <56t3fb$90r@nntp5.u.washington.edu>
References: <sourcerer.0a90@starbug.49.249.155> <56r0ik$hnn@milo.vcn.bc.ca> <Pine.LNX.3.95.961118231520.22066C-100000@adamant.res.wpi.edu>
NNTP-Posting-Host: saul1.u.washington.edu
NNTP-Posting-User: puma

(Forgive my dip into humor, please.  (grin))

George Caswell  <timbuktu@wpi.edu> wrote:

>On 19 Nov 1996, Neil K. Guy wrote:

>> compass rose directions simply out of convenience (it's really no less 
>> realistic than in any other game. After all, the player isn't expected to 
>> be wandering around with a compass in her pocket - absolute directions 
>
>   Well, originally this wasn't true.  Adventure and Zork characters were,
>well, adventurers.  I think in the case of Infocom, at least, this was just
>-continued- for convenience, as you say..

Which brings to mind the question (at least for me): what should the
Well-Dressed Adventurer be equipped with?  I think we can fairly safely
identify the following items as essential to the adventuring trade:

* A light source.  There are dark rooms out there, after all, and the
Well-Dressed Adventurer's night vision is notoriously poor.  Preferably
the source can be refueled, or doesn't require fuel.  In the olden days,
adventurers were always running out of lamp oil right when they needed it
most...

* A compass.  While the Well-Dressed Adventurer understands the basic
concept of doors (often as obstacles to further progress), he doesn't
think of rooms in the same way as you or I, namely, the connections
between rooms.  (Quiz yourself.  Do *you* know which way north is from
your house?)  Imagine trying to give the Well-Dressed Adventurer
directions: "Bathroom?  Yeah.  Go through that door, on the end of the
hall, on your left."  "Pardon?"  "South twice, than east."  "Ah."

* Map-making tools.  The Well-Dressed Adventurer never relies on his
memory to navigate around even such a theoretically familiar place as his
own home digs.  Paper, a writing utensil (preferably a pencil), and a
surface are a must.  Many modern adventurers, though, just take notes in
the field and render a map on their computer when they get back to home
base.

* A major case of kleptomania.  While the Well-Dressed Adventurer would
never *steal* from you, he is always on the lookout for items he can
borrow until his adventure is done.  To prevent unfortunate property
damage, I recommend against attempting to secure your valuables in a safe,
by nailing them down, by hiding them under the bed, etcetera.  The more
difficult an item is to obtain, the more obsessed he becomes with getting
it.  Lay in a supply of sticky labels instead, and label anything you
don't want him fiddling with 'scenery'.  This magic incantation wards the
Well-Dressed Adventurer more often than not.

Can anyone come up with additions to this list?



From cardinalt@earthlink.net Wed Nov 20 18:04:50 CET 1996
Article: 19591 of rec.arts.int-fiction
Path: news.lth.se!solace!demos!news.stealth.net!www.nntp.primenet.com!nntp.primenet.com!feed1.news.erols.com!uunet!in2.uu.net!nntp.earthlink.net!usenet
From: cardinalt@earthlink.net (Cardinal Teulbachs)
Newsgroups: rec.arts.int-fiction
Subject: Re: The well-dressed adventurer...
Date: Tue, 19 Nov 1996 03:31:02 GMT
Organization: Earthlink Network, Inc.
Lines: 27
Message-ID: <56ttva$2me@colombia.earthlink.net>
References: <sourcerer.0a90@starbug.49.249.155> <56r0ik$hnn@milo.vcn.bc.ca> <Pine.LNX.3.95.961118231520.22066C-100000@adamant.res.wpi.edu> <56t3fb$90r@nntp5.u.washington.edu>
NNTP-Posting-Host: max2-sc-ca-01.earthlink.net
X-Newsreader: Forte Free Agent 1.0.82

puma@u.washington.edu (Clyde Sloniker) wrote:

>Can anyone come up with additions to this list?

Piece of cake. No Well-Dressed Adventurer would be caught dead without
his bag, or at least a designer zipper. Now, admittedly, some retro
deviants try to swim against the tide using only their hands, yet a
container by any other name is still a way to cart around your loot. 

--Cardinal T

          I mean, what the hell kind of villain thwarts the hero's
	  progress with soup cans in the kitchen pantry?
	                                         --Russ Bryan
	
         Are there any text games prominently featuring dinosaurs?  
         If not, does anyone besides me think it would be cool? 
                                                 --Matthew Amster-Burton

         "Cyber-Babushka"
                                                 --Bonni Mierzejewska
         
         "Bathroom?  Yeah.  Go through that door, on the end
         of the hall, on your left."  "Pardon?"  "South twice,
         than east."  "Ah."
                                                  --Clyde Sloniker



From puma@u.washington.edu Wed Nov 20 18:05:01 CET 1996
Article: 19595 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news01.sunet.se!sunic!02-newsfeed.univie.ac.at!01-newsfeed.univie.ac.at!swidir.switch.ch!news.grnet.gr!btnet-feed2!btnet!newsfeed.internetmci.com!feed1.news.erols.com!howland.erols.net!news.sprintlink.net!news-peer.sprintlink.net!uunet!in3.uu.net!news.u.washington.edu!puma
From: puma@u.washington.edu (Clyde Sloniker)
Newsgroups: rec.arts.int-fiction
Subject: Re: The well-dressed adventurer...
Date: 20 Nov 1996 07:52:59 GMT
Organization: University of Washington, Seattle
Lines: 13
Message-ID: <56udcr$o3h@nntp5.u.washington.edu>
References: <sourcerer.0a90@starbug.49.249.155> <Pine.LNX.3.95.961118231520.22066C-100000@adamant.res.wpi.edu> <56t3fb$90r@nntp5.u.washington.edu> <56ttva$2me@colombia.earthlink.net>
NNTP-Posting-Host: saul3.u.washington.edu
NNTP-Posting-User: puma

Cardinal Teulbachs <cardinalt@earthlink.net> wrote:

>         "Bathroom?  Yeah.  Go through that door, on the end
>         of the hall, on your left."  "Pardon?"  "South twice,
>         than east."  "Ah."
>                                                  --Clyde Sloniker

Flattered as I am, I should point out I'm really *Fred* Sloniker; I'm
using my brother's account until I get the software for mine up and
running.  (His is a shell, mine is PPP.)

I'm saving contributions to this thread, and will summarize them at a
later date.


From RDQW@music.macarthur.uws.EDU.AU Wed Nov 20 18:05:44 CET 1996
Article: 19588 of rec.arts.int-fiction
Path: news.lth.se!solace!demos!news.stealth.net!www.nntp.primenet.com!nntp.primenet.com!feed1.news.erols.com!howland.erols.net!swrinde!ihnp4.ucsd.edu!munnari.OZ.AU!metro!metro!ob1.uws.edu.au!tscc.macarthur.uws.EDU.AU
From: Bruce Alan Greenwood <RDQW@music.macarthur.uws.EDU.AU>
Newsgroups: rec.arts.int-fiction
Subject: RE: The well-dressed adventurer...
Date: 20 NOV 96 12:57:16 -1100
Organization: University of Western Sydney, Macarthur
Lines: 24
Sender: usenet@music.macarthur.uws.EDU.AU
Message-ID: <20NOV96.13991060.0107@tscc.macarthur.uws.EDU.AU>
References: <sourcerer.0a90@starbug.49.249.155> <56r0ik$hnn@milo.vcn.bc.ca> <Pine.LNX.3.95.961118231520.22066C-100000@adamant.res.wpi.edu> <56t3fb$90r@nntp5.u.washington.edu>
NNTP-Posting-Host: tscc.macarthur.uws.edu.au

In article <56t3fb$90r@nntp5.u.washington.edu> puma@u.washington.edu (Clyde Sloniker) writes:
[Snip]
>Can anyone come up with additions to this list?

* Pocketless clothes.  The well-dressed adventurer spurns pockets, even
when it -would- make it easier to carry that rubber duck(which the
well dressed adventurer needs to be able to get Focault's Pendulum
away from the Sword of Damocles).

* A bad memory.  I forget why.

* A funny little voice inside their heads, which tells them what to
do.

* A good case of deja vu.  The well-dressed adventurer will often
know that pulling that lever will propell them into certain death
at the teeth of a six-foot razor worm at the bottom of a pit, in spite
of the fact that the only way such information could be gained would
be by actually pulling the lever.  Odd, that.

---
Bruce Greenwood
"Wave the rod while standing on the rainbow.  Go on, it can't huuuuuuuu



From russotto@wanda.vf.pond.com Wed Nov 20 19:14:25 CET 1996
Article: 19616 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news00.sunet.se!sunic!news.sprintlink.net!news-peer.sprintlink.net!news.sprintlink.net!news-hub.sprintlink.net!news.sprintlink.net!news-ana-24.sprintlink.net!news.pond.com!wanda.vf.pond.com!not-for-mail
From: russotto@wanda.vf.pond.com (Matthew T. Russotto)
Newsgroups: rec.arts.int-fiction
Subject: Re: The well-dressed adventurer...
Date: 20 Nov 1996 11:17:36 -0500
Organization: Ghotinet
Lines: 16
Message-ID: <56vav0$mku@wanda.vf.pond.com>
References: <sourcerer.0a90@starbug.49.249.155> <56r0ik$hnn@milo.vcn.bc.ca> <Pine.LNX.3.95.961118231520.22066C-100000@adamant.res.wpi.edu> <56t3fb$90r@nntp5.u.washington.edu>
NNTP-Posting-Host: wanda.vf.pond.com

In article <56t3fb$90r@nntp5.u.washington.edu>,
Clyde Sloniker <puma@u.washington.edu> wrote:
}Which brings to mind the question (at least for me): what should the
}Well-Dressed Adventurer be equipped with?  I think we can fairly safely
}identify the following items as essential to the adventuring trade:
}
[...]
* A rucksack, backpack, or other pack capable of holding all the
things he's err.. borrowed.  Of course, this is an idea the Well-Dressed
Adventurer got from a certain lean and hungry gentleman.  The
Well-Dressed Adventurer likes to carry everything around with him at
all times, for he never knows when he might need it.
-- 
Matthew T. Russotto                                russotto@pond.com
"Extremism in defense of liberty is no vice, and moderation in pursuit
of justice is no virtue." 


From erkyrath@netcom.com Thu Nov 21 10:11:19 MET 1996
Article: 19634 of rec.arts.int-fiction
Newsgroups: rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news01.sunet.se!sunic!surfnet.nl!howland.erols.net!netcom.com!erkyrath
From: erkyrath@netcom.com (Andrew Plotkin)
Subject: Re: The well-dressed adventurer...
Message-ID: <erkyrathE14xyK.Do9@netcom.com>
Organization: NETCOM On-line Communication Services (408 261-4700 guest)
X-Newsreader: TIN [version 1.2 PL1]
References: <sourcerer.0a90@starbug.49.249.155> <56r0ik$hnn@milo.vcn.bc.ca> <Pine.LNX.3.95.961118231520.22066C-100000@adamant.res.wpi.edu> <56t3fb$90r@nntp5.u.washington.edu>
Date: Tue, 19 Nov 1996 20:51:56 GMT
Lines: 22
Sender: erkyrath@netcom.netcom.com

Clyde Sloniker (puma@u.washington.edu) wrote:
> Which brings to mind the question (at least for me): what should the
> Well-Dressed Adventurer be equipped with?  I think we can fairly safely
> identify the following items as essential to the adventuring trade:

> * A compass. 

Certainly not. The Well-Dressed Adventurer has a perfect sense of
direction. He doesn't need a compass. He can tell you which way is north
after being stripped naked and teleported to a pitch-black room on a
different planet. 

I think you have to add

* No manners at all.

--Z

-- 

"And Aholibamah bare Jeush, and Jaalam, and Korah: these were the
borogoves..."


From nulldogma@aol.com Thu Nov 21 10:11:45 MET 1996
Article: 19623 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news00.sunet.se!sunic!news.sprintlink.net!news-peer.sprintlink.net!howland.erols.net!newsxfer2.itd.umich.edu!portc01.blue.aol.com!audrey01.news.aol.com!not-for-mail
From: nulldogma@aol.com
Newsgroups: rec.arts.int-fiction
Subject: Re: The well-dressed adventurer...
Date: 20 Nov 1996 18:03:11 GMT
Organization: AOL http://www.aol.com
Lines: 34
Message-ID: <19961120180500.NAA19480@ladder01.news.aol.com>
References: <56v82v$bcj@alpha.netusa.net>
NNTP-Posting-Host: ladder01.news.aol.com
X-Admin: news@aol.com

> The WDA is also never surprized by a lack of people milling about
> and thinks everyone he(/she) encounters is going to help or
> hinder.

Oh, man, I ran into one of those WDAs the other day. What a pain:

ME: Hey, nice to meet you, how's it going?

WDA: Hello.

ME: So, what brings you to this desolate corridor in an abandoned
building?

WDA: What about the abandoned building?

ME: Er, right, abandoned building. That's what I said.

WDA: What about the abandoned building?

ME: Um, sorry, what?

WDA: Give me all.

ME (backing away slowly): Sorry, I don't have anything for you right now.
Well, nice to meet you...

At that point he tried to attack me with this oddly-carved box he happened
to be carrying, and I ran for it. "No manners," indeed.

Neil
---------------------------------------------------------
Neil deMause                            neild@echonyc.com
                  http://www.echonyc.com/~wham/neild.html
---------------------------------------------------------


From timbuktu@wpi.edu Thu Nov 21 10:12:11 MET 1996
Article: 19646 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news01.sunet.se!sunic!surfnet.nl!howland.erols.net!news.sprintlink.net!news-peer.sprintlink.net!uunet!in1.uu.net!news.ultranet.com!bigboote.WPI.EDU!adamant.res.wpi.edu!timbuktu
From: George Caswell <timbuktu@adamant.res.wpi.edu>
Newsgroups: rec.arts.int-fiction
Subject: Re: The well-dressed adventurer...
Date: Tue, 19 Nov 1996 17:26:47 -0500
Organization: Worcester Polytechnic Institute
Lines: 37
Message-ID: <Pine.LNX.3.95.961119171845.23217D-100000@adamant.res.wpi.edu>
References: <sourcerer.0a90@starbug.49.249.155> <56r0ik$hnn@milo.vcn.bc.ca> <Pine.LNX.3.95.961118231520.22066C-100000@adamant.res.wpi.edu> <56t3fb$90r@nntp5.u.washington.edu>
Reply-To: timbuktu@wpi.edu
NNTP-Posting-Host: adamant.res.wpi.edu
Mime-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
In-Reply-To: <56t3fb$90r@nntp5.u.washington.edu>

On 19 Nov 1996, Clyde Sloniker wrote:

> (Forgive my dip into humor, please.  (grin))
> 
   NO!  DIE, DIE, DIE, DIE, DIE, DIE, DIE, DIE, DIE DIE, DIE, DIE, DIE, DIE,
DIE, DIE, DIE, DIE DIE, DIE, DIE, DIE, DIE, DIE, DIE, DIE, DIE DIE, DIE, DIE,
DIE, DIE, DIE, DIE, DIE, DIE DIE, DIE, DIE, DIE, DIE, DIE, DIE, DIE, DIE DIE,
DIE, DIE, DIE, DIE, DIE, DIE, DIE, DIE DIE, DIE, DIE, DIE, DIE, DIE, DIE, DIE,
DIE DIE, DIE, DIE, DIE, DIE, DIE, DIE, DIE, DIE DIE, DIE, DIE, DIE, DIE, DIE,
DIE, DIE, DIE!!!  Well, OK, you're forgiven.

> directions: "Bathroom?  Yeah.  Go through that door, on the end of the
> hall, on your left."  "Pardon?"  "South twice, than east."  "Ah."
> 
   <One of the design goals of my system is to make adventurers use the first
directions...>
   Let's not forget the wise adventurer always knows that things aren't always
what they seem to be, even when they seem to be what you think they are-  If,
for example, you go east, the way back might -not- be west....

> it.  Lay in a supply of sticky labels instead, and label anything you
> don't want him fiddling with 'scenery'.  This magic incantation wards the
> Well-Dressed Adventurer more often than not.
> 
   It also helps if you give all your posessions really obscure names or
describe them in odd nous.  Instead of 'computer', make sure your 386 can only
be referred to by the name 'Torgo'.  Always call your mouse a pointer, and
call the phone a audicom.  More often than not, this will make an adventurer
simply give up.
                           ________________________________________________
 ______________ _/> ____  | George Caswell, WPI CS 1999. Member L+L and    |
<___ _________// _/<_  /  | SOMA. Sometimes artist, writer, builder. Admin |
   // <> ___  <  > / _/   | of ADAMANT, a Linux box for the creative and   |
  // /> /  / _/ / / <____ | productive members of the computer world. For  |
 // </ <<</ < _/ <______/ |_more info see http://www.wpi.edu/~timbuktu.____|
</          </             



From timbuktu@wpi.edu Thu Nov 21 10:15:41 MET 1996
Article: 19629 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news00.sunet.se!sunic!news.sprintlink.net!news-peer.sprintlink.net!cs.utexas.edu!howland.erols.net!www.nntp.primenet.com!nntp.primenet.com!usenet.eel.ufl.edu!news.ultranet.com!bigboote.WPI.EDU!adamant.res.wpi.edu!timbuktu
From: George Caswell <timbuktu@adamant.res.wpi.edu>
Newsgroups: rec.arts.int-fiction
Subject: Re: The well-dressed adventurer...
Date: Wed, 20 Nov 1996 14:39:44 -0500
Organization: Worcester Polytechnic Institute
Lines: 27
Message-ID: <Pine.LNX.3.95.961120143830.24817D-100000@adamant.res.wpi.edu>
References: <sourcerer.0a90@starbug.49.249.155> <56r0ik$hnn@milo.vcn.bc.ca> <Pine.LNX.3.95.961118231520.22066C-100000@adamant.res.wpi.edu> <56t3fb$90r@nntp5.u.washington.edu> <56vav0$mku@wanda.vf.pond.com>
Reply-To: timbuktu@wpi.edu
NNTP-Posting-Host: adamant.res.wpi.edu
Mime-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
In-Reply-To: <56vav0$mku@wanda.vf.pond.com>

On 20 Nov 1996, Matthew T. Russotto wrote:

> In article <56t3fb$90r@nntp5.u.washington.edu>,
> Clyde Sloniker <puma@u.washington.edu> wrote:
> }Which brings to mind the question (at least for me): what should the
> }Well-Dressed Adventurer be equipped with?  I think we can fairly safely
> }identify the following items as essential to the adventuring trade:
> }
> [...]
> * A rucksack, backpack, or other pack capable of holding all the
> things he's err.. borrowed.  Of course, this is an idea the Well-Dressed
> Adventurer got from a certain lean and hungry gentleman.  The
> Well-Dressed Adventurer likes to carry everything around with him at
> all times, for he never knows when he might need it.

   Unless, of course, the adventurer has found the object's 'true home', the
idyllic location or situation which adventurers know every inanimate object
tries to reach, the one that truly fits best--  and so adventurers continue
their crusade to put such objects in their rightful place...
                           ________________________________________________
 ______________ _/> ____  | George Caswell, WPI CS 1999. Member L+L and    |
<___ _________// _/<_  /  | SOMA. Sometimes artist, writer, builder. Admin |
   // <> ___  <  > / _/   | of ADAMANT, a Linux box for the creative and   |
  // /> /  / _/ / / <____ | productive members of the computer world. For  |
 // </ <<</ < _/ <______/ |_more info see http://www.wpi.edu/~timbuktu.____|
</          </             



From graham@gnelson.demon.co.uk Thu Nov 21 12:39:27 MET 1996
Article: 19655 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news01.sunet.se!sunic!02-newsfeed.univie.ac.at!newsfeed.uk.ibm.net!news.stealth.net!news.idt.net!feed1.news.erols.com!howland.erols.net!EU.net!usenet2.news.uk.psi.net!uknet!usenet1.news.uk.psi.net!uknet!dispatch.news.demon.net!demon!graham
From: Graham Nelson <graham@gnelson.demon.co.uk>
Newsgroups: rec.arts.int-fiction
Subject: Re: Inform on the Mac(Progress at last)
Date: Wed, 20 Nov 1996 20:10:37 +0000 (GMT)
Organization: none
Lines: 64
Message-ID: <ant20203772bM+4%@gnelson.demon.co.uk>
References: <329226FD.2265@fred.aurora.edu> 
NNTP-Posting-Host: gnelson.demon.co.uk
X-NNTP-Posting-Host: gnelson.demon.co.uk
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; CHARSET=ISO-8859-1
X-Newsreader: ANT RISCOS Marcel [ver 1.09]

In article <329226FD.2265@fred.aurora.edu>,
<URL:mailto:chidder@fred.aurora.edu> wrote:
> 
> From trying to compile paperchase.inf to paperchase.z5
> 
> Macintosh Inform 6.03 (May 11th 1996)
> [Running ICL file 'untitled:Inf6.03Mac3.00.exe Folder:paperchase.icl']
> [Compiling <paperchase.inf> to <paperchase.z5>]
> line 20: Warning: Obsolete usage: more modern to use 'Array', not 
> 'Global'
> > Global task_scores initial

This and other warnings say that you're using old Inform 5
ways to do something which can now be done much better.
(In some cases, pre-Inform 5, actually!)  You can always
turn off warnings by compiling -w, if you don't want to read
them.

> line 20: Warning: Obsolete usage: use '->' instead of 'initial'
> > Global task_scores initial 6

> "linklpa.h", line 18: Error: 'Ifnot' without matching 'If...'
> > Endif
> "linklpa.h", line 55: Error: 'Ifnot' without matching 'If...'
> > Endif

These two are caused by a bug in v6.03, for which I
apologise.  It's fixed in v6.04 (23rd September this year)
and subsequent.  Alternatively, simply edit out the #if...
constructs in "linklpa.h" which are causing the problem.
(They're only to provide warning messages in a particular
case.)

> line 905: Error: Evaluating this has no effect: "word array operator 
> '-->'"
> >                 print_addr (self.&name)-->0;
> Compiled with 3 errors and 2 warnings (no output)

"print_addr" is no longer legal (it was frowned upon
even in Inform 5).  Instead,

   print (address) ...

and similarly instead of

   print char ...
   print_char ...

please write

   print (char) ...

You must be feeling pretty annoyed with this, but it was
an important area of the language to clear up (Inform was
recognising too many out-dated syntaxes).

It is easy to upgrade to Inform 6.  No, really.
Iron explodes in the dark.  Lemonade is triangular.
The Eiffel Tower revolves on its axis once every
eight and a half hours.

-- 
Graham Nelson | graham@gnelson.demon.co.uk | Oxford, United Kingdom



From echerry@warren-wilson.edu Mon Nov 25 11:26:35 MET 1996
Article: 19792 of rec.arts.int-fiction
Path: news.lth.se!solace!mn6.swip.net!newsfeed.sunet.se!news01.sunet.se!sunic!02-newsfeed.univie.ac.at!newsfeed.uk.ibm.net!news.stealth.net!news.idt.net!feed1.news.erols.com!phase2.worldnet.att.net!uunet!in1.uu.net!newsfeed.pitt.edu!news.duq.edu!newsgate.duke.edu!news-server.ncren.net!echerry
From: echerry@warren-wilson.edu (Erskin Cherry)
Newsgroups: rec.arts.int-fiction
Subject: Surprise in IceBreaker
Date: 25 Nov 1996 01:02:13 GMT
Organization: Warren Wilson College
Lines: 28
Message-ID: <57ar6l$prg@inxs.ncren.net>
NNTP-Posting-Host: owl.warren-wilson.edu
X-Newsreader: TIN [version 1.2 PL2]

I know, I know, IceBreaker is an arcade game for the PC line of computers
that comes on CD-ROm and this is not the place for chit chat about arcade
games.

So why am I posting this? Well, for those of you with the CD, check out the
IceMaker directory and look inside the PTRO folder.

Hmm.. what's this ICE.Z5 thingy?
Looks like an Inform data file.
Why not try Frotz on it? Or just use the PTRO executable that is sitting
nearby?

Yes, it's there, all in plain text, "ICEBREAKER: An Interactive Thingie" the
Inform compiled text adventure version of the arcade game by the same name.

I hope you have as much fun in toying with it as I did when I found it.

--
Erskin -=- echerry@warren-wilson.edu 
http://www.warren-wilson.edu/~echerry

Microsoft Network is EXPLICITLY forbidden to redistribute this message.
-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GCS/M/MU/PA/P d-@ s++:- a-- C++(++++) UL+++ P L+(++) E- W++ N+(++) >o+ K-
w+/--- >O M V-- PS+(++) PE Y+(++) PGP t+ 5++>+++ X(+) R+@ !tv> b+ DI+++@ D+
G+(++) e>++ h-(*) r-- y+
------END GEEK CODE BLOCK------


From erkyrath@netcom.com Fri Nov 29 09:11:52 CET 1996
Article: 19914 of rec.arts.int-fiction
Newsgroups: rec.arts.int-fiction
Path: news.lth.se!solace!news.ecn.uoknor.edu!feed1.news.erols.com!howland.erols.net!netcom.com!erkyrath
From: erkyrath@netcom.com (Andrew Plotkin)
Subject: Re: [Inform] found_in bug?
Message-ID: <erkyrathE1M6J5.BG1@netcom.com>
Organization: NETCOM On-line Communication Services (408 261-4700 guest)
X-Newsreader: TIN [version 1.2 PL1]
References: <32990308@beachyhd.demon.co.uk> <erkyrathE1ErAr.MGA@netcom.com> <E1MLrD.6Jw%h729ihqu@sun1.cip.fak14.uni-muenchen.de>
Date: Fri, 29 Nov 1996 04:16:17 GMT
Lines: 64
Sender: erkyrath@netcom5.netcom.com

Florian Beck (fb%h729ihqu@sun1.cip.fak14.uni-muenchen.de) wrote:
> : No floating lights in Inform. :-(

> : If you want to make this work, you could try to fix the library. This 
> : prospect frightens me. Movement is an old and convoluted part of the 
> : library; ditto for floating objects.

> Hm, I thought "Hey, just replace one function, that's all!"

> Well, it's not so easy :-)

> What I found is this (in GoSub):

>   if (movewith==0) move player to j; else move movewith to j;
>   (*)
>   df=OffersLight(j);
>   if (df~=0) { location=j; lightflag=1; }
>   else
>   {   if (location==thedark) DarkToDark();
>       real_location=j;
>       location=thedark; lightflag=0;
>   }

> At first I tried to put in "MoveFloatingObjects();" in (*).
> Of course, this doesn't work.

> The floating objects are moved to "location". That's after (*).
> And if the destination has no light then "location" is the 
> "DarkRoom". No point moving floating objects there.

> OTOH, that's probably only part of the problem as the player can end
> up in a room in numerous ways.

> But am I on the right track at all?                                

I *told* you that I was frightened by library-hacking at this level.

I don't think this is going to work. The library always checks 
OffersLight() before it changes the location variable (because if there 
is no light, location will be thedark.) And MoveFloatingObjects() can 
only be called *after* location is set, because it compares the found_in 
properties of objects against location. So floating objects will never 
float in in time to light up a room. QED. :-)

Now, there are a few approaches to getting around this "proof". You could 
change MoveFloatingObjects(), and have it check the player's actual 
location (parent(player)) instead of the location variable. Or you could 
delay the OfferLight() check; *always* set location to the actual 
location, even if it's dark, call MoveFloatingObjects(), and then set 
location to thedark if OffersLight() comes up false.

Both of these are likely to have bad consequences elsewhere in the 
library. You'll have to make some other change elsewhere, which will 
require another change, and pretty soon the whole thing will be in little 
greasy piles around your garage, and when you try to put it together 
again you'll find several lag-bolts and a llama that you can't fit back 
into place.

--Z

-- 

"And Aholibamah bare Jeush, and Jaalam, and Korah: these were the
borogoves..."


From erkyrath@netcom.com Fri Nov 29 10:03:14 CET 1996
Article: 19905 of rec.arts.int-fiction
Newsgroups: rec.arts.int-fiction
Path: news.lth.se!solace!news.stealth.net!news.idt.net!news.bbnplanet.com!cam-news-hub1.bbnplanet.com!howland.erols.net!news-peer.gsl.net!news.gsl.net!ix.netcom.com!netcom.com!erkyrath
From: erkyrath@netcom.com (Andrew Plotkin)
Subject: Re: [tech pondering] Tck/Tk = portability in GUI?
Message-ID: <erkyrathE1LI67.6nJ@netcom.com>
Organization: NETCOM On-line Communication Services (408 261-4700 guest)
X-Newsreader: TIN [version 1.2 PL1]
References: <wwad8xbiofq.fsf@bommel.math.ruu.nl> <wwag21uh6bh.fsf@bommel.math.ruu.nl>
Date: Thu, 28 Nov 1996 19:30:06 GMT
Lines: 26
Sender: erkyrath@netcom19.netcom.com

Bruce Stephens (stephens@math.ruu.nl) wrote:
> Obviously, Tcl/Tk is irrelevant to the Psion and Newton.  A cleanly
> written interpreter (whatever cleanly written means) which clearly
> strips out everything to do with the interface, surely would be
> helpful.  When I last looked at JZip, I think, it had bits of word
> wrapping which weren't in the interface bit, for example, so producing
> an interface which used proportional fonts would be non-trivial. 

The ZIP source code is really very good. The word-wrapping bit you 
mentioned is really about the *only* snag in the engine-interface 
separation.

The MaxZip/xzip ports required almost no changes to the ZIP engine aside 
from turning off word-wrapping. (And that change was only a couple of 
lines.)

Maybe a little modulation of the character-mapping code, since I didn't 
like the way it handled control characters in the output, but that was 
also only a couple of lines in the engine.

--Z

-- 

"And Aholibamah bare Jeush, and Jaalam, and Korah: these were the
borogoves..."


From whizzard@uclink.berkeley.edu Sat Nov 30 18:39:30 CET 1996
Article: 19865 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news00.sunet.se!sunic!nntp.coast.net!newsfeed.dacom.co.kr!usenet.kornet.nm.kr!agate!uclink.berkeley.edu!whizzard
From: whizzard@uclink.berkeley.edu (Gerry Kevin Wilson)
Newsgroups: rec.arts.int-fiction
Subject: [Contest] On vacation 'til Monday.
Date: 27 Nov 1996 03:07:04 GMT
Organization: University of California at Berkeley
Lines: 9
Message-ID: <57gb8o$jp2@agate.berkeley.edu>
NNTP-Posting-Host: uclink.berkeley.edu


I'll be gone until Monday, so don't look for the contest results before
then.  Expect the SPAG contest issue about 5-8 days after the posting of
the results.

Happy Turkey Day, those of you who celebrate it.
Happy Thursday, those who don't.
-- 
	"Shh...<looks around worriedly> The wires have ears, you know..."


From dmb@ai.mit.edu Sun Dec  1 13:52:44 CET 1996
Article: 19938 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news01.sunet.se!sunic!02-newsfeed.univie.ac.at!01-newsfeed.univie.ac.at!voskovec.radio.cz!www.nntp.primenet.com!nntp.primenet.com!hunter.premier.net!feed1.news.erols.com!howland.erols.net!bloom-beacon.mit.edu!ai-lab!rice-chex!dmb
From: dmb@rice-chex.ai.mit.edu (David Baggett)
Newsgroups: rec.arts.int-fiction
Subject: Re: Can Literature be 3D?  (mild spoilers)
Date: 1 Dec 1996 04:30:18 GMT
Organization: MIT Artificial Intelligence Lab
Lines: 36
Message-ID: <57r1kq$jdp@life.ai.mit.edu>
References: <328E2C9B.5FC8@romulus.sun.csd.unb.ca> <577a2o$kfj@news.dx.net> <wwahgmela8o.fsf@bommel.math.ruu.nl> <57cdgm$sjf@cnn.Princeton.EDU>
Reply-To: dmb@ai.mit.edu
NNTP-Posting-Host: rice-chex.ai.mit.edu

In article <57cdgm$sjf@cnn.Princeton.EDU>,
Adam J. Thornton <adam@yuma.Princeton.EDU> wrote:

>Has anyone else noticed that Crash Bandicoot is largely written by our very
>own Dave Baggett?  

Well that's a bit of an exaggeration, but it's true that I wrote lots of
code for it.  Actually, there were two of us who wrote code for the
duration of the project, and a third who came in half way through.  There
were 10 of us on the team, with lots of help from outside sources for
music, character design, etc.

>And that for a game that's basically _Pitfall_ it really kicks serious
>ass?

Aside from the compliment (thanks), you raise an interesting point here.
We've asked ourselves this question: is Pitfall the first game in this
genre?  We couldn't come up with any predecessors...  Donkey Kong, Pac-Land
and Lode Runner are other early games that trace their lineage back to
Pitfall.

As for 3D literature, I would advise any would-be author stick to plain
text unless he's got a staff of two dozen maniacally dedicated and creative
collaborators...  It's a lot more work than it looks, just like movies.

One of the best things about fiction (IF included) is that a single person
can complete a full-sized work in a reasonable amount of time.  That's just
not true of graphical adventures and movies any more.  (I think one of the
Implementors commented on this as well, in a transcript I read several
years ago.)

Dave Baggett
__
dmb@ai.mit.edu
"Mr. Price: Please don't try to make things nice! The wrong notes are *right*."
--- Charles Ives (note to copyist on the autograph score of The Fourth of July)


From erkyrath@netcom.com Tue Dec  3 09:29:35 MET 1996
Article: 19972 of rec.arts.int-fiction
Newsgroups: rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news01.sunet.se!sunic!02-newsfeed.univie.ac.at!01-newsfeed.univie.ac.at!swidir.switch.ch!news.grnet.gr!btnet-feed2!btnet!netcom.net.uk!netcom.com!erkyrath
From: erkyrath@netcom.com (Andrew Plotkin)
Subject: Re: First person, past tense
Message-ID: <erkyrathE1so71.JAq@netcom.com>
Organization: NETCOM On-line Communication Services (408 261-4700 guest)
X-Newsreader: TIN [version 1.2 PL1]
References: <E1rGyL.8Jp@raisin.bagel.org>
Date: Mon, 2 Dec 1996 16:23:24 GMT
Lines: 39
Sender: erkyrath@netcom.netcom.com

Erik Hetzner (egh@raisin.bagel.org) wrote:
>  At the moment, my next (first, hopefully not final :) piece of
> interactive fiction is to be written in the first person, past
> tense. I've modified about half of the library message & am working on
> trying to make sure all the copy is in past tense and first person
> (hard to do when I'm so used to `You take the gun' instead of `I took
> the gun.').
>  
> Anyways, I seem to recall some piece that used this technique. 

"pastense.zip", in the TADS directory. (Past tense, second person.)

> What do
> people think of it, in theory or in practice? I sort of like the idea,
> kind of closes the gap between player and character. Also makes for
> more of a traditional story.

I find that it actually widens the gap between player and character. 
Sorry :-)

Past Tense lets you switch between past and present. I tried both, left 
it in present.

Note that "Piece of Mind" in the competition is first person and fools 
around with tense, but it has a specific purpose for it: the player is 
*supposed* to be different from the game character.

> Unless I get terrible response, and I mean it would have to be
> TERRIBLE :), I'm going to ahead & write it like this, let people
> decide by playing

Oh, definitely.

--Z

-- 

"And Aholibamah bare Jeush, and Jaalam, and Korah: these were the
borogoves..."


From graham@gnelson.demon.co.uk Tue Dec  3 20:31:40 CET 1996
Article: 19986 of rec.arts.int-fiction
Path: news.lth.se!solace!eru.mt.luth.se!news-stkh.gsl.net!news.gsl.net!news-peer.gsl.net!news.gsl.net!EU.net!usenet2.news.uk.psi.net!uknet!usenet1.news.uk.psi.net!uknet!dispatch.news.demon.net!demon!graham
From: Graham Nelson <graham@gnelson.demon.co.uk>
Newsgroups: rec.arts.int-fiction,rec.games.int-fiction
Subject: From Angela M. Horns
Date: Tue, 03 Dec 1996 10:48:39 +0000 (GMT)
Organization: none
Lines: 40
Message-ID: <ant0310390b0M+4%@gnelson.demon.co.uk>
NNTP-Posting-Host: gnelson.demon.co.uk
X-NNTP-Posting-Host: gnelson.demon.co.uk
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; CHARSET=ISO-8859-1
X-Newsreader: ANT RISCOS Marcel [ver 1.09]
Xref: news.lth.se rec.arts.int-fiction:19986 rec.games.int-fiction:19264

[Angela M. Horns, who lives in a remote wool-carder's
croft on the isle of Eigg, has no Internet access of her
own, and indeed only has electricity between the months
of May to September, in the high peat season.  I have
therefore agreed to take email for her and make postings
on her behalf. -- GN]


Hearty thanks to all those who supported

  "The Meteor, the Stone and a Long Glass of Sherbet"

in the 1996 Interactive Fiction contest.  Owing to the
convoluted history of this game (a tale for which the
world is not yet ready), I'm much afraid it was never
playtested.

So I'd be charmed and delighted to receive bug reports
or suggestions for tidying-up, by email to young Mr
Nelson if possible, and then I can compile a version in
a proper state to leave in the archives.

May I also warmly congratulate the other entrants!


[If I may add something to this, I'd like to
congratulate Andrew on "Lists", perhaps the most
magnificently absurd use of the Z-Machine in history --
but probably the most portable LISP implementation
in history, too.

I first suspected something was afoot when he reported
a bug in Inform 5.5 to do with detecting the ')'
close bracket character which, he said, he might need
to do rather a lot of...]


-- 
Graham Nelson | graham@gnelson.demon.co.uk | Oxford, United Kingdom



From skinner@news.ohioonline.net Tue Dec  3 21:55:35 CET 1996
Article: 19988 of rec.arts.int-fiction
Path: news.lth.se!solace!mn6.swip.net!news00.sunet.se!sunic!news.sprintlink.net!news-peer.sprintlink.net!newsfeed.internetmci.com!news.ohioonline.net!news.ohioonline.net!not-for-mail
From: skinner@news.ohioonline.net (Suzanne Skinner)
Newsgroups: rec.games.int-fiction,rec.arts.int-fiction
Subject: Competition thoughts
Date: 3 Dec 1996 14:26:12 -0500
Organization: OhioOnline, Inc.
Lines: 181
Distribution: world
Message-ID: <581usk$q6p@mail.ohioonline.net>
NNTP-Posting-Host: mail.ohioonline.net
X-Newsreader: TIN [version 1.2 PL2]
Xref: news.lth.se rec.games.int-fiction:19267 rec.arts.int-fiction:19988

Greets, all...

Since numerous people are posting their opinions on the competition
entries, I thought I'd pop briefly out of the shadows to give my
own. I've only given detailed descriptions of my favorites; I don't
really have the time or motivation to further analyze the rest.
Since this has actually been taken from my web pages, it is targeted
towards those who may or may not have played the games yet themselves,
so the flavor is a little different from other such reviews posted here.

I've been posting some peoples' comments off my IF pages, edited slightly
for spelling and such; if this bothers anyone just let me know and
I'll take yours down.

The competition this year exceeded my wildest expectations, and proved
that this medium isn't quite as dead as multimedia junkies would have
us believe. Heck, it's *obviously* something I'm feeling enthused
about--this is the first time I've posted anything substantial to
Usenet in, oh...quite a while now.

Susan, ducking back into comfortable anonymity

******

[*] Delusions, by (?)
   (note: this was listed in the results posting as being authored by
    C.E. Forman, who commented on the game himself. Is this a mistake?)
    
     This is a game about cyberspace on the surface, about illusion and
     self-discovery on a deeper level. Despite the bugginess of the
     competition release, I ended up giving this entry the highest possible
     rating, as its depth, atmosphere, and originality were enough to
     overwhelm my normal pickiness about cosmetic details. There are also a
     few wonderfully done puzzles, but it was the story itself that absorbed
     me the most. The self discovery theme actually inspired a few ideas for
     the IF game(s) I might write one day, when I have more time on my
     hands.

[*] Tapestry, by Dan Ravipinto
     This one is another instance in which theme and depth were more
     important to the rating than puzzle cleverness....infact, the few
     actually puzzles in this game were easy ones (though well-implemented).
     My tastes and focus have changed greatly since my earlier days of text
     adventuring (for instance, since the time during which I played
     Unnkulian 1&2, which would probably not make it to my favorites list if
     I played them now for the first time), so that where I once was fully
     impressed by clever obstacles and disappointed when none appeared, I
     now place first priority on how much lasting significance a game has
     for me--how much it makes me THINK, in a way deeper than trying to
     figure out how to get past the troll at the bridge. Close second
     priorities go to things like atmosphere, theme, writing quality, and
     characterization, with the problem solving aspects of the gaming coming
     somewhere after all that. In short, I find myself judging IF more and
     more similarly to how I would judge a traditional novel.

     By these standards, Tapestry shone...of all the games in the
     competition, I got probably the most thought out of this one, and it
     also had some of the most evocative writing. The game takes place after
     your death, as you are given the option of going back and changing some
     of the decisions that may have hurt others and resulted in your own
     unhappiness. There are three mutually exclusive paths through the game,
     depending on choices made early on....not just alternative puzzle
     solutions, but actual plot branches, which are rather rare in IF. The
     only reason I didn't rate this game right next to Delusions is that I
     feel it fails in some ways to be truly interactive, or as interactive
     as it might have been, at least. Once the player has made the initial
     decision that branches the plot, there is a feeling of being led by the
     hand towards the endgame, with little opportunity to resist the flow of
     events. Arguably, this goes along with the game's ultimate message, but
     at times I would have preferred that the game world be less of a moving
     tapestry and more of a reality.

[*] Fear, by Chuan-Tze Teo
     Each game on this list had one area in which it shone the most....for
     this one, it was atmosphere. It lived up to its name. It's not often a
     game, especially a pure-text one, actually manages to quicken my pulse
     and panic me a bit, but towards the end, this one *did*. As the game
     begins, you have amnesia, combined with a nasty set of phobias, and
     must overcome some of the latter before you can recover your memory.
     All fine and good......until your time starts running out. As in
     Delusions, there were a few really neat puzzles in here too, though two
     of them, I think, bordered on overly difficult and could have been
     clued a little better.

[*] The Meteor, the Stone, and a Long Glass of Sherbet, by Angela M. Horns
     Of all my favorites of the competition, this is the only one that
     approaches the "traditional" text adventure--it was, infact, in some
     aspects enough of a take-off on the old Infocom spellcasting/Zork games
     that I had to consider whether I should give it as high a rating as my
     first impulse told me to. I ended up rating it right next to Tapestry
     and Fear, for even though there was nothing in here that particularly
     inspired or moved me, the game world was one of the most detailed,
     thought out, and seamless I encountered, there were alot of twists on
     the old GUE (Great Underground Empire) theme, the plot flow was
     perfectly executed, the puzzles gave my brain a workout, and well.....
     I just had rather alot of fun playing it.

     Now that the results of the competition have come out, I've learned
     that the "Angela M. Horns" who wrote this game is, infact, Graham
     Nelson (the old anagram trick). Figures!

[*] Small World, by Andrew D. Pontious
     I have a big fuzzy soft spot in my heart for whimsy, which helps
     account for this game's presence in the list. It's the most fun I've
     had with IF for a LONG time (which, considering I normally have lots of
     fun with it, says alot). As you travel across a miniature world trying
     to return its spin, you'll come up against miniature nuclear missiles
     (they feel like tiny pinpricks hitting your ankles), miniature green
     men reminiscent of Lilliputians, a miniature Adam and Eve, a miniature
     heaven with teensy little pearly gates, and even a miniature Devil, who
     trails along behind you making comments and making a general nuisance
     of himself (and who is a close second to the Zork Zero Jester as my
     all-time favorite NPC). The author packed huge amounts of detail into
     this little world.

[*] Aayela, by Magnus Olsson
     This game was on the short and sweet side, and received high marks
     mainly for its innovation (almost all of if takes place in complete
     darkness), its writing quality (downright poetic), and for the
     emotional reactions it managed to elicit from me in several places. It
     starts, like Wearing the Claw, on a traditional-bordering-on-hackneyed
     quest premise, but don't be fooled--like Wearing the Claw, it diverges
     from the stereotype.

Honorable Mentions go to Wearing the Claw (containing the best-executed plot
twist I've seen in a while, and some good writing towards the latter half),
Kissing the Buddha's Feet (a college-life-based adventure in which the
protagonist reminds me embarrassingly of myself!) and The Maiden of the
Moonlight (kind of hackneyed, but very well done for its genre).

Oh....one more really deserves mention from a die-hard hacker like me, even
though I didn't rate it up in the 7-10 range with those above (I may well
have done so if the author had gone just a little further to liven it up and
provide comic relief). "Lists and Lists" by Andrew Plotkin is an interactive
tutorial for the Scheme language (a cleaned-up version of Lisp, or "Lotsa
Stupid Parentheses", as it has been known by some...), written in Inform. I
enjoyed it considerably, as it refreshed my memory on alot of the details of
Lisp that I only half-learned the first time around in my AI course, and
Lisp is, all things considered, a rather neat language.



                              My Score List...

        Rating    Title
	------  ---------
         10     Delusions
          9     Tapestry
          9     The Meteor, The Stone, and a Long Glass of Sherbet
          9     Fear
          8     Aayela
          8     Small World
          7     Kissing the Buddha's Feet
          7     Wearing the Claw
          7     Maiden of the Moonlight
          6     Lists and Lists
          6     Alien Abduction?
          6     Reverberations
          5     Ralph
          5     Piece of Mind
          5     Beyond the Picket Fence
          5     The Curse of Eldor
          4     In The End
          4     Phlegm
          4     Of Forms Unknown
          4     Stargazer
          3     Don't Be Late
          3     Sir Ramic Hobbs and the Oriental Wok
          3     Rippled Flesh
          3     Punkirita Quest One: Liquid
          2     The House of the Stalker
          1     My First Stupid Game

--
suskinne@grail.csuohio.edu      Homepage: http://grail.csuohio.edu/~suskinne/
-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
C:\> del *.*
I can't let you do that, Dave.
C:\>
-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-



From obrian@ucsu.Colorado.EDU Wed Dec  4 10:04:11 CET 1996
Article: 20003 of rec.arts.int-fiction
Path: news.lth.se!solace!mn6.swip.net!news00.sunet.se!sunic!news.sprintlink.net!news-peer.sprintlink.net!su-news-hub1.bbnplanet.com!news.bbnplanet.com!cpk-news-hub1.bbnplanet.com!news.mindspring.com!mindspring!uunet!in3.uu.net!128.138.240.25!boulder!ucsu.Colorado.EDU!obrian
From: Paul O'Brian <obrian@ucsu.Colorado.EDU>
Newsgroups: rec.arts.int-fiction,rec.games.int-fiction
Subject: [CONTEST] My reviews, Part 3 (very long)
Date: Tue, 3 Dec 1996 22:16:01 -0700
Organization: University of Colorado at Boulder
Lines: 399
Message-ID: <Pine.GSO.3.95.961203220116.10773C-100000@ucsu.Colorado.EDU>
NNTP-Posting-Host: ucsu.colorado.edu
Mime-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
NNTP-Posting-User: obrian
Xref: news.lth.se rec.arts.int-fiction:20003 rec.games.int-fiction:19279

Continued from Part 2:

REVERBERATIONS -- by Russell Glasser
This game was strong on good intentions, but rather weak on execution. The
plot of the pizza delivery boy who foils the giant conspiracy was clever
and lots of fun to play through, but the enjoyment was dampened by several
technical problems in the game's interface. Witty remarks abounded, and
some unlikely actions were anticipated quite hilariously, but the positive
effect of these features was counterbalanced by some logical errors in the
game's construction. It was a fun game, and with some polishing could be
a real gem of IF, but in the state it was in for the competition, its
great ideas were bogged down by flawed coding and language.
Prose -- In some areas the prose was outstanding -- economical
   descriptions which brought off the flavor of an object or area without
   getting mired in detail. In other areas the prose failed to note rather
   important aspects of a scene (the most grievous offense occurring at
   the very first room of the game.) Finding the clever responses was the
   greatest pleasure in the game, though sometimes the "SoCal" references
   felt quite self-conscious; overall the game's prose was like the game
   itself: strong ideas weakened by problems in key areas.
Difficulty -- I never found myself resorting to the hints, but I was
   occasionally forced to solve problems in the game by exploiting the
   logical errors in its structure. For example, the beginning sequence
   gives no indication that a pizza needs to be delivered -- I didn't find
   out until I tried to leave town and the game told me "You aren't
   leaving town until you deliver that pizza." What pizza? Why, the one
   never mentioned in the initial room description! Consequently, the game
   was somewhat difficult, but for the wrong reasons.
Technical -- coding -- The game suffered from several coding problems,
   including not only the one mentioned above, but a disappearing door
   (to the mayor's office), a store manager who only notices stealing
   when it conflicts with the plot, a pizza box and note which drift from
   room to room, and several rooms which do not contain text for items
   mentioned in their description. On the other hand, there are some
   shining moments in the coding as well, such as tailored responses to
   YES and NO.
         -- writing -- The writing's occasional proofing errors provide a
   bit of unintentional humor, such as when the game describes the
   district attorney as being "only... uh, ten years old than you!"
Plot -- The plot of the game was great! The fun and zaniness of foiling
   the conspiracy made the game's technical errors much more
   forgivable. Several moments in the plot were even quite inspired, and
   felt intuitively right in the unfolding story. Examples include
   kicking the window while hanging on the ledge and throwing the bomb
   in the sewer.
Puzzles -- Some of the puzzles (such as getting past the security guard
   and getting rid of the bomb) were quite good and managed to achieve the
   subtle balance between the problem logically blocking the narrative
   and the solution advancing it. The puzzles that presented real problems
   were based on coding flaws rather than conceptual ones, such as the
   initial pizza problem and the final rope problem, which defeats so many
   attempted verbs that one *feels* like jumping off the building.
OVERALL -- A 7.9

RIPPLED FLESH -- by Ryebread Celsius
Having already played the author's other competition entry, I sincerely 
dreaded playing this one. Probably my low expectations contributed to my 
feeling that this game was actually slightly better than PUNKIRITA QUEST.
Sure, the writing is still riddled with errors, and sure, the plot and 
premise still make absolutely no sense, and yes, the coding is very poor
and the design even more so, but at least this time I had some faint grasp of 
what was *supposed* to be happening. Perhaps this derives from the fact
that FLESH takes a more realistic setting and thus less needs to be
explained by the author's inadequate verbal skills. Of course, that
doesn't mean I liked it -- just that it was less painful than the other
game. Progress? Perhaps -- I'll just try to judge the game on an objective
basis rather than on its dubious achievement of being a better piece of
work than PUNKIRITA.
Prose -- The descriptions were weak, and the overall feel of the game 
   evoked walking through the brain of a mental patient -- a series
   of non sequiturs, loosely tied together by an irrational framework. 
   The writing suffered under so many errors that they seriously occluded 
   the author's ability to communicate, and this problem was compounded 
   by the fact that many (most, actually) of the objects and rooms in the 
   game seemed to have no real purpose or function.
Difficulty -- I found it possible to move through the game without much 
   trouble, which is a good sign; at least the language problems didn't
   render the game so opaque that it was simply impossible to complete 
   without a walkthrough. Mainly the point of the game simply seemed to 
   be finding one's way through a maze of rooms -- the one real puzzle
   (the wardrobes) had its effect spoiled by the fact that one didn't 
   really gain much of anything by solving it.
Technical -- coding -- Coding problems abounded. Nothing fatal, but 
   certainly plenty of the nonsensical and downright baffling. For
   example, how about those lights that get turned on so brightly that
   they blind the character, yet in the next turn the room is still dark?
         -- writing -- Really quite terrible. My only hypothesis is that 
   the author is a student (rather than a speaker) of English, and a
   rather poor one at that. A dictionary and a spell-checker would improve
   things immensely -- then the proofreading can begin.
Plot -- No, there wasn't one. A bunch of random events tied together by 
   a whacked-out ending does not a plot make.
Puzzles -- I mentioned the game's only real puzzle above. Other than that, 
   the game's "puzzle" was just walking through the exit in each room 
   until finally arriving at the "win game" room. Nothing much made sense,
   and so the whole experience ended up being unsatisfying. The real
   brain-twister is why the author chose to enter this piece into the 
   competition in the first place.
OVERALL -- A 2.0

THE METEOR, THE STONE, AND A LONG GLASS OF SHERBET -- by Angela M. Horns
I was very impressed with "Sherbet", a highly inventive adventure which
puts yet another imaginative spin on the Zork mythos. The game's prose is
at a very high level of quality, its world is very well-designed, and
several aspects of the documentation (the context-sensitive hints and the
diplomatic "briefing") were very well done indeed. I didn't get through
the entire game in the two hours allotted, and I found myself resorting to
the hints quite a lot. Often, this was because a logical puzzle had me
stumped, but the first two times were due to puzzles which didn't offer
enough alternative syntax. Unfortunately, these two situations inured me
to looking at the hints, thinking perhaps that my other obstacles were
due to syntax problems as well. Apart from this one flaw, "Sherbet" was
a truly excellent piece of work -- well-plotted with clever puzzles,
a strong sense of unfolding narrative, and rife with the pleasures of
revisiting an old friend in a new context.
Prose -- The game's writing consistently maintains an exceptional level of
   quality. The vacuous' Amilia's ramblings serve exquisitely to define
   her character, and the "briefings" concisely draw the player's
   diplomatic situation while quietly evoking Zorkian echoes. I found
   myself just a little confused by some of the cave descriptions, but
   this was mainly due to the sense of scope which the author unerringly
   conveys.
Difficulty -- As I mentioned, the game was too difficult (and large) for
   me to complete in the two hours allotted for judging time, and part of
   this difficulty arose from problems with the first two puzzles. After
   finally summoning the bird of paradise, I spent a good fifteen minutes
   trying to pour, put, rub, insert, or otherwise attach the sherbet to
   the elephant before finally resorting to the hints only to discover
   that the game demanded I "throw" the sherbet glass. However, in other
   spots the difficulty of the game was quite legitimate and logical, as
   in the instance of the ladder problem, which was another solution I
   found in the hints rather than finding it myself.
Technical -- coding -- On the whole, the game was very well coded, and I
   never found the kind of irrational flaws which can snap the suspension
   of disbelief in interactive fiction. There were a few spots where the
   game suffered from a lack of synonyms, especially the elephant (as
   described above) and the hook (one must again "throw rope over hook"
   but cannot stand on the table or hamper, lasso the hook, simply "throw
   rope", "put rope on hook", or even "throw rope onto hook".) When these
   problems are eliminated , the game will be very strong indeed.
          -- writing -- "Sherbet" is a well-written and well-proofed piece
   of work in which I don't recall noticing any technical mistakes.
Plot -- It was a great pleasure to get embroiled in the plot, and the
   premise of the main character as a diplomat rather than an adventurer
   provided a break from cliche married with a plausible reason for the
   snooping called for by the game's structure. I'm looking forward to the
   endgame, which I hope will offer a tie between the game's diplomatic
   beginnings and its Zorklike middle.
Puzzles -- Mostly discussed above in "Technical -- coding" and
   "Difficulty." Many of the puzzles were real pleasures (panning and the
   ladder come to mind) and the twist on treasure collecting (giving all
   the treasures to the Zork adventurer) was brilliant. Once the puzzles
   are better coded the game will be really first-rate.
OVERALL -- A 9.3

SMALL WORLD -- by Andrew Pontious
I really enjoyed this game a great deal, and it definitely gets points for
originality. The literalized version of the game's title made for a
charming premise, and because the premise was so heavily based on setting,
the brand of fantasy which resulted was perfect for interactive fiction.
Wandering through the miniaturized world was really a treat, although
sometimes I found it difficult to retain my suspension of disbelief,
especially since some of the obstacles to my progress seemed just a little
*too* arbitrary. For example, the inventory management problem caused by
the lack of gravity in the majority of the game's locations was a major
pain in the neck. I didn't feel that I was doing anything clever or
solving an intellectual challenge when I had to trudge back to Dawn
anytime I wanted to get something from the backpack. Puzzles like this,
which tended toward the arbitrary, were the game's weakness. From the weak
gravity problem to the "loose ring" to the capricious magic rod, the game
took advantage of its whimsical setting to create puzzles which were
irrational and divorced from reality, and failed to provide enough hints
and description to make them reasonably solvable. On the other hand,
some puzzles (such as the satellite/snow puzzle and the lagoon) did a
very nice job of exploiting the game's scenario to witty ends.
On the whole, "Small World" was a delightfully well-written game which has
a few flaws, but is nevertheless lots of fun.
Prose -- The prose which describes the world is very well done indeed, and
   much of the time I really felt a part of the situation because of how
   well the worlds Lilliputian proportions were described. The game
   obviously draws heavily on "Gulliver's Travels", especially in its
   description of the player staked to the ground by tiny people, and
   though it shares none of Swift's social commentary, it does convey a
   distinct sense of his imaginative milieu. The main weakness in the
   prose related to the puzzles. In puzzles such as the loose ring and the
   rod, I didn't feel that enough description was provided to allow me to
   reasonably predict the outcomes of my actions, and consequently I ended
   up solving some puzzles by force. (e.g. how would I know that something
   made of silver would buoy me?)
Difficulty -- I found the game rather difficult, and ended up referring to
   the "cheat" hints a number of times (13, or so I'm told by the game).
   Unfortunately, much of this reliance was due to the lack of
   information described above or, in one case, to a lack of synonyms.
   When these features are improved, the game's difficulty will be well
   pitched.
Technical -- coding -- There's little to complain about in the coding of
   "Small World," so I hope my quibble doesn't receive undue focus. On the
   whole the game was very smoothly implemented, and I never found myself
   searching for the right word, except for once. Of particular note were
   the game's warnings before moving to an unsolvable state, and its
   ingenious hinting system. The one area in which I had trouble was in
   receiving the "that verb isn't implemented" response to "CLEAN SOCKS."
   When that verb wasn't available, I presumed I was on the wrong track
   altogether, not that I simply needed to "WASH" the socks instead. It
   took a "cheat" to get me out of that one.
          -- writing -- The game's writing was technically proficient.
   Mr. Pontious does a nice job of eliminating errors in grammar and
   spelling.
Plot -- The plot of the game was really quite sweetly designed, creating 
   a childhood fantasyland which was evocative not only of Jonathan Swift,
   but also C.S. Lewis' Narnia works, Lewis Carroll, and Bill Watterson.
   The battles between Heaven and Hell were a very nice touch, and
   I smiled at the gentle ending, which packs the character off to the
   hiking trip with a refreshed perspective.
Puzzles -- This is my main difficulty with the game. As I mentioned above,
   some of the puzzles were really delightful and smart, while others
   felt a bit lazy. I think, though, that with the addition of richer
   descriptions for crucial objects such as the ring and the pipe (whose
   mechanism is mysterious to me even now), and with a closer attention
   to synonyms, these wrinkles will be well-ironed.
OVERALL -- An 8.8

THE HOUSE OF THE STALKER -- by Jason Clayton White
A promising beginning turns into an excruciating series of coding and 
design errors and irritating writing. It's hard to know where to
begin with the criticisms. The tone of many of the responses was a kind of
smarmy, smart-alecky wit which undercut any dramatic buildup or fear
created by the tense premise. The underlying idea is good, but its
execution was rife with logic errors. I can think of at least a dozen
plausible solutions that were not implemented. For example, if I squirt
the killer with Drano then try to go to the porch for help, I'm told "You
can't go that way." (Oh no, he's so dangerous he can make my door
disappear!). Another example: I can wander through my entire house without
meeting the killer, so why don't I just call the police? Well, not one
single room in the house has a phone. Add to this some fundamental coding
errors, unconvincing writing, and "read the author's mind" puzzles, and
the result is a distinctly unenjoyable game. 
Prose -- The opening sequence of the game got me quite interested, but
   most of the other prose served to undo tension rather than create it.
   For example, the author tries to create emotional depth to the
   character by describing a recent divorce. After about a paragraph of
   this, the game says "Now that you've had a good cry, maybe you'd like
   to try preserving your life some, hmm?" The condescension and flippancy
   in this narrative tone completely destroy any gradually building sense
   of empathy or emotional urgency. Also, object descriptions give no
   thought to the interactivity of the game. For example, every time you
   look at the TV, an announcer breaks into a show and says the exact same
   thing. The hair dryer is described as having its cord hanging off the
   sink... no matter where you take it. This is lazy writing, and it
   obliterates suspension of disbelief.
Difficulty -- I used the hints to get through the entire game once I
   realized that there was only one way to solve it and that was by
   doing exactly what the author had in mind, since no reasonable
   alternatives are provided. This kind of difficulty tests one's
   patience, not one's intelligence.
Technical -- coding -- Coding errors were everywhere. For example:
   The player must remove a scarf from a doll, but this can only be done
   in the room where the doll is originally located. Trying "YANK SCARF"
   anywhere else gets a response of "You can't see any such thing."
   Another example: "PUSH CHAIR" gets the response "You push the chair
   over to the bookcase." "PUSH CHAIR TO BOOKCASE" gets the response
   "You can't see any such thing." The only other character in the
   program, the killer, wasn't even implemented as animate. ("SHOW
   PICTURE TO KILLER." gets "You can only do that to something animate.")
   Like the writing, the coding was lazy and ineffective.
          -- writing -- There were very few technical errors in the
   writing. It's frustrating -- a good idea with technically sufficient
   writing ought to have been a much better game.
Plot -- The premise had the promise of being extremely gripping and
   intense. The idea that danger lurks around every corner of a familiar
   setting has the potential to be great interactive fiction. However, by
   the end of the game, the idea of plot degenerated into a series of
   arbitrary but extremely specific actions performed on the killer's
   body.
Puzzles -- The puzzles were very difficult because of their arbitrary
   nature. One has to do a very specific and exact sequence of actions
   to the killer's body before the game won't respond to "KILL STALKER"
   with "Violence isn't the answer to this one."
OVERALL -- A 2.5

STARGAZER: AN ADVENTURE IN OUTFITTING -- by Jonathan Fry
Stargazer worked quite well as a prologue, but I'm not sure I cared for it
much as a stand-alone game. Just about the time I thought the action was
about to start, the entire game ended. This made for a rather
anticlimactic experience, especially since I worked through the game in
well under the two hours allotted. Also, the game's brevity worked at
cross purposes to its genre; confusing references and unfamiliar objects
can usually be let slide in fantasy since they are sure to be explained
later. Not so in "Stargazer." Aside from these problems, however, the
piece was fairly enjoyable. There were a few technical problems, but
nothing too great, and the author created a world I wanted to learn more
about, which is certainly a step in the right direction. Stargazer worked
well as a prologue -- I look forward to the game.
Prose -- Aside from the sometimes awkward or convoluted sentence structure
   ("One reason for this is that this is also...", "...any other senses
   you may have."), the prose worked fairly well. I got a nice sense of
   the turbulence of the river, and I thought the dialogue worked fairly
   well. Nothing was wonderfully well-crafted, but most was certainly
   serviceable.
Difficulty -- I found the game quite easy -- I finished it in about 40
   minutes. Unfortunately, this ease aided the sense of anticlimax
   triggered by the game's abrupt ending.
Technical -- coding -- Overall the coding was strong, though there were
   a few weak points. These points included: two separate moss/lichen
   objects which shared names, so that in one location "X MOSS" yielded
   "Which do you mean, the moss or the lichen?" over and over again;
   an object which is on a rock across a rushing river, yet which can
   still be touched or moved, a god who demands a sacrifice when the verb
   "sacrifice" isn't in the game's vocabulary, and a dusty lens which
   responded to "X DUST" with "You can't see any such thing."
          -- writing -- The writing was sometimes rather awkward, but
   it was generally correct in spelling and grammar.
Plot -- Well, Stargazer didn't contain much plot, though it did have
   the beginnings of one, and probably contained a lot of foreshadowing
   (though it's difficult to tell without seeing the story ahead).
   What was there was an intriguing beginning, but not much more.
Puzzles -- While quite easy, the puzzles moved the story along well, and
   were very well integrated with the storyline. I'll be interested to
   see what challenges the author has in store in the actual game.
OVERALL -- A 6.6

TAPESTRY -- by Daniel Ravipinto
I thought this was really an impressive piece of work. Yes, it was a bit 
heavy-handed at times, and probably a little too derivative of Neil 
Gaiman's visions of Fate and Evil in his Sandman cycle. But nonetheless, I
found the situations compelling, the dilemmas convincing, and if a work 
is going to be derivative of someone, you could do a hell of a lot worse
than Gaiman. I sometimes resented having my emotions so blatantly 
manipulated (somewhat akin to my feelings in a few Spielberg films) by 
the Dickensian drama of the mother and wife with wasting illnesses, the 
struggling family business on the edge of ruin, and the innocent "victims
of inexorable fate" in the form of an onrushing car. Still, the fact is
that the work succeeded in pushing my emotional buttons, and I was moved by the 
story. Tapestry is an ambitious piece, and both its successes and its 
failures are due to its exploration of the possibilities of interactive 
fiction. For example, the feeling of not being able to control the car 
despite what you order the character to do is an extremely chilling one,
and it is an effect that would not pack the same potency were it attempted in 
static fiction. By the same token, though, exchanges with the wraith
seemed a bit forced due to the limits of the medium -- often complex points were 
reduced to the level of trying different versions of "tell wraith about
x". I have to admit, even though I'm educated enough to recognize
"Morningstar" as Lucifer (the author even whispered in my ear to tell me
so), I still chose his path my first try through the game. At the
endgame, I was forced to think about my choices, and to recognize that I
had been (and therefore could be) manipulated into making a choice that
was wrong for the character, even if it wasn't morally wrong, even if it
is the choice I myself would have made under the circumstances. It wasn't
a nice feeling.
Prose -- The prose tended toward the histrionic at times, and
   unfortunately this actually occasionally diluted the emotional impact
   of the situations. However, my experience of those moments was that
   they stuck out from the general trend of the writing, which was quite
   craftily done, and in fact sported some moments of real intensity and
   poignancy despite the occasional clich.
Difficulty -- I didn't find the game too difficult to get through, but
   then again it wasn't particularly puzzle-oriented. In fact, the path of 
   Morningstar required a great deal more puzzle-solving than the path of 
   Clotho (which is the other one I tried). Is there a message here?
Technical -- coding -- On the whole the coding was quite proficient. I 
   was a little unhappy with what I perceived as some shortcuts (for
   example, a medicine bottle not implemented as a container), and the
   author's realistic setting caused a few problems with Inform's standard
   responses. (Examples: entering "DIAL 911" and being told "You don't
   know that phone number.", and being told that I really should clean the soot
   that's collected on my carpet, yet "CLEAN SOOT" receives a reply of "You 
   achieve nothing by this.") Apart from these details, the coding was 
   accomplished quite handily.
          -- writing -- Grammatical and/or spelling problems and typos
   were not entirely absent, (I remember noticing an "a" used in place of an
   "at" or some such) but they were very few and far between. 
Plot -- I found the plot quite compelling. The prologue worked quite well 
   for me, (though I did appreciate the "begin" command after my first
   time through) and the mutually exclusive endings were well planned. 
   Ultimately, the game's plot boils down to the idea that moral dilemmas 
   can be extremely powerful in the medium of interactive fiction. I think 
   this is a very, very good idea indeed.
Puzzles -- As mentioned above, this work wasn't really very
   puzzle-oriented. The puzzles that were included were integrated well
   with the game -- no gratuitous grafted-on "crossword" elements -- and
   this was both a strength and a weakness. The strength: nothing
   interrupted the suspension of disbelief created by the game's dramatic
   scenarios. The weakness: character-driven puzzles (which most of these
   were) all too often boiled down to how to fill in the blanks on "tell
   ____ about ____."
OVERALL -- A 9.4

Whew! Once again, my hearty congratulations to all the authors, and thanks
to those of you who gave me feedback on my game. Hmmm. I also just
realized that apparently my spell-checker put accented "e"s (which my
news posting program can't handle) for every time I wrote the word
"cliche", making it come out "clich". Oops. Well, so much for perfection.
On to next year!

Paul O'Brian                                     obrian@ucsu.colorado.edu
"It makes no difference which one of us you vote for! Your planet is
doomed! DOOMED!"
							-- Kodos



From graham@gnelson.demon.co.uk Wed Dec  4 10:16:37 MET 1996
Article: 420 of rec.arts.int-fiction
Path: df.lth.se!news.lth.se!solace!eru.mt.luth.se!news-stkh.gsl.net!news.gsl.net!news-peer.gsl.net!news.gsl.net!EU.net!usenet2.news.uk.psi.net!uknet!usenet1.news.uk.psi.net!uknet!dispatch.news.demon.net!demon!graham
From: Graham Nelson <graham@gnelson.demon.co.uk>
Newsgroups: rec.arts.int-fiction,rec.games.int-fiction
Subject: From Angela M. Horns
Date: Tue, 03 Dec 1996 10:48:39 +0000 (GMT)
Organization: none
Lines: 40
Message-ID: <ant0310390b0M+4%@gnelson.demon.co.uk>
NNTP-Posting-Host: gnelson.demon.co.uk
X-NNTP-Posting-Host: gnelson.demon.co.uk
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; CHARSET=ISO-8859-1
X-Newsreader: ANT RISCOS Marcel [ver 1.09]
Xref: df.lth.se rec.arts.int-fiction:420 rec.games.int-fiction:294

[Angela M. Horns, who lives in a remote wool-carder's
croft on the isle of Eigg, has no Internet access of her
own, and indeed only has electricity between the months
of May to September, in the high peat season.  I have
therefore agreed to take email for her and make postings
on her behalf. -- GN]


Hearty thanks to all those who supported

  "The Meteor, the Stone and a Long Glass of Sherbet"

in the 1996 Interactive Fiction contest.  Owing to the
convoluted history of this game (a tale for which the
world is not yet ready), I'm much afraid it was never
playtested.

So I'd be charmed and delighted to receive bug reports
or suggestions for tidying-up, by email to young Mr
Nelson if possible, and then I can compile a version in
a proper state to leave in the archives.

May I also warmly congratulate the other entrants!


[If I may add something to this, I'd like to
congratulate Andrew on "Lists", perhaps the most
magnificently absurd use of the Z-Machine in history --
but probably the most portable LISP implementation
in history, too.

I first suspected something was afoot when he reported
a bug in Inform 5.5 to do with detecting the ')'
close bracket character which, he said, he might need
to do rather a lot of...]


-- 
Graham Nelson | graham@gnelson.demon.co.uk | Oxford, United Kingdom



From ctt20@hermes.cam.ac.uk Wed Dec  4 10:17:40 MET 1996
Article: 428 of rec.arts.int-fiction
Path: df.lth.se!news.lth.se!solace!news.stealth.net!www.nntp.primenet.com!nntp.primenet.com!su-news-hub1.bbnplanet.com!news.bbnplanet.com!cpk-news-hub1.bbnplanet.com!EU.net!usenet2.news.uk.psi.net!uknet!usenet1.news.uk.psi.net!uknet!uknet!lyra.csx.cam.ac.uk!news
From: Chuan-Tze Teo <ctt20@hermes.cam.ac.uk>
Newsgroups: rec.games.int-fiction,rec.arts.int-fiction
Subject: Competition mini-reviews
Date: Wed, 04 Dec 1996 02:16:24 -0800
Organization: University of Cambridge
Lines: 79
Message-ID: <32A54F78.37D4@hermes.cam.ac.uk>
NNTP-Posting-Host: sobek.trin.cam.ac.uk
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
X-Mailer: Mozilla 2.0 (Win16; I)
Xref: df.lth.se rec.games.int-fiction:302 rec.arts.int-fiction:428

Well, now that the voting is finally over, I feel justified in posting my 
opinions on some of the games. If your entry doesn't appear on this list, 
don't feel offended; I am fairly short of time at the moment.

Before I start, I should like to say that, despite any criticisms I may 
make, the general standard of this year's entries was extremely high, and 
my congratulations go to the winners and thanks to Whizzard for 
organizing the competition. 


DELUSIONS

One of my favourite games of the contest, brimming with creative ideas; 
debugging the fish VR, the lab simulating itself, the TV gameshow 
parody, coupled with an ambitious plot. The self-discovery scene 
disturbed me more than any of the horror-genre games managed to. 
Locations are well written and well fleshed out, NPCs convincingly 
characterised.

Core puzzles were difficult but in general had satisfying solutions. This 
being said, much of the repetition became annoying. Examples of this are 
having to search the storeroom multiple times, wandering around looking 
for the next object you're supposed to examine, long scenes after failure 
in the fish VR or lab sim worlds. Frustrating bug in the endgame.

(Musician's nitpick: As a violinist myself, I take issue with the choice 
of repertoire- much of which is very fine music indeed, but not really 
suitable for the particular instrument...)

However, I thoroughly enjoyed the game. Nice work.


PIECE OF MIND

I liked the use of the first person point of view. Like interacting with 
a character in a story; only the character himself proceeds to enter a 
different story again. The switch from past tense in the dream scene to 
present tense ingeniously conveys a degree of immediacy/waking up from a 
dream. I almost hear the text, rather than reading it, as if the 
protagonist is telling a blind advisor what happens as he walks around. 
Nice touch. However, the writing is overdone in parts; many long words 
are used where shorter ones would have sufficed. These tend to break the 
flow of the conversation; worse still, many are misspelt, which is very 
irritating to the eye.

The pulp-SF parody scene was well written, but could have been fleshed 
out more. If this is a million-mile spaceship, there ought to be a reason 
why I can't explore more than just two locations, and there ought to be 
more interactive background objects.

An offbeat plot flows smoothly to the end. It's a shame that this game 
hadn't had a little more polishing before its release.


THE METEOR, THE STONE AND A LONG GLASS OF SHERBET

Another very atmospheric opening. Short works of IF really need strong 
openings to draw the player in; those that have, in this competition, 
have made a much better impression on me that those that haven't. 
Unfortunately, the game tends to suffer from a lack of synonyms, and I 
had to refer to the hints on occasion to find out the right words.

After the introduction, the player ends up in a house reminiscent of Zork 
I, whereupon the game suddenly turns into a traditional but brilliantly 
executed cave crawl, with magical twists and clever puzzles. The plot is 
well thought out and well explained in the end. Unfortunately, I wasn't 
really aware of this during the midgame, which made it feel somewhat 
disjointed. Perhaps the secret mission should have been made slightly 
more explicit, to convey the impression that there was a point to all 
this exploration and the protagonist wasn't just wandering around out of 
boredom.

Despite the above minor complaints, this excellent adventure proves that 
no genre is ever truly exhausted.


Further reviews to follow.

- Chuan


From ceforman@postoffice.worldnet.att.net Wed Dec  4 11:03:35 CET 1996
Article: 20007 of rec.arts.int-fiction
Path: news.lth.se!solace!mn6.swip.net!news00.sunet.se!sunic!nntp.coast.net!phase2.worldnet.att.net!newsadm
From: "C.E. Forman" <ceforman@postoffice.worldnet.att.net>
Newsgroups: rec.arts.int-fiction,rec.games.int-fiction
Subject: Re: [Contest] ANNOUNCING THE RESULTS!
Date: 4 Dec 1996 02:42:55 GMT
Organization: Ye Olde Infocomme Shoppe
Lines: 25
Message-ID: <582off$q1u@mtinsc01-mgt.ops.worldnet.att.net>
References: <57vh97$otc@agate.berkeley.edu> <580lia$q95@dfw-ixnews2.ix.netcom.com>
NNTP-Posting-Host: 207.146.132.17
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
X-Mailer: Mozilla 1.22ATT (Windows; U; 16bit)
Xref: news.lth.se rec.arts.int-fiction:20007 rec.games.int-fiction:19282

>    Very amusing, Forman, writing a review for your own game and
>calling it "easily the most genuinely frightening game since 'A Mind
>Forever Voyaging'." Delusions was actually my choice for first place,
>so I can't complain too much... but HONESTLY, didn't you ever hear of
>modesty?  <g>  At least next year you'll be disqualified for that
>stunt.  (Just kidding.  Really.)

I meant every word I said.  Besides, I had to consider my need for
public opinion.  (It's quite life-threatening, you know.)

>    Okay, I'll bite: are there only 49 points available in the game, or
>are you just making a smug challenge for us to find your last lousy
>point?

There really are 50.  I might announce where the last comes from.  I
haven't decided yet.

--
C.E. Forman                                    ceforman@worldnet.att.net
Read XYZZYnews at http://www.interport.net/~eileen/design/xyzzynews.html
Vote I-F in 1996!  Visit http://www.xs4all.nl/~jojo/index.html for info!
"Circle of Armageddon", Vol. 2 of "The Windhall Chronicles" -- ?????????
Classic I-F FS/T in Ye Olde Infocomme Shoppe!  (Mail for current stock.)




From skinner@news.ohioonline.net Wed Dec  4 11:38:36 CET 1996
Article: 19988 of rec.arts.int-fiction
Path: news.lth.se!solace!mn6.swip.net!news00.sunet.se!sunic!news.sprintlink.net!news-peer.sprintlink.net!newsfeed.internetmci.com!news.ohioonline.net!news.ohioonline.net!not-for-mail
From: skinner@news.ohioonline.net (Suzanne Skinner)
Newsgroups: rec.games.int-fiction,rec.arts.int-fiction
Subject: Competition thoughts
Date: 3 Dec 1996 14:26:12 -0500
Organization: OhioOnline, Inc.
Lines: 181
Distribution: world
Message-ID: <581usk$q6p@mail.ohioonline.net>
NNTP-Posting-Host: mail.ohioonline.net
X-Newsreader: TIN [version 1.2 PL2]
Xref: news.lth.se rec.games.int-fiction:19267 rec.arts.int-fiction:19988

Greets, all...

Since numerous people are posting their opinions on the competition
entries, I thought I'd pop briefly out of the shadows to give my
own. I've only given detailed descriptions of my favorites; I don't
really have the time or motivation to further analyze the rest.
Since this has actually been taken from my web pages, it is targeted
towards those who may or may not have played the games yet themselves,
so the flavor is a little different from other such reviews posted here.

I've been posting some peoples' comments off my IF pages, edited slightly
for spelling and such; if this bothers anyone just let me know and
I'll take yours down.

The competition this year exceeded my wildest expectations, and proved
that this medium isn't quite as dead as multimedia junkies would have
us believe. Heck, it's *obviously* something I'm feeling enthused
about--this is the first time I've posted anything substantial to
Usenet in, oh...quite a while now.

Susan, ducking back into comfortable anonymity

******

[*] Delusions, by (?)
   (note: this was listed in the results posting as being authored by
    C.E. Forman, who commented on the game himself. Is this a mistake?)
    
     This is a game about cyberspace on the surface, about illusion and
     self-discovery on a deeper level. Despite the bugginess of the
     competition release, I ended up giving this entry the highest possible
     rating, as its depth, atmosphere, and originality were enough to
     overwhelm my normal pickiness about cosmetic details. There are also a
     few wonderfully done puzzles, but it was the story itself that absorbed
     me the most. The self discovery theme actually inspired a few ideas for
     the IF game(s) I might write one day, when I have more time on my
     hands.

[*] Tapestry, by Dan Ravipinto
     This one is another instance in which theme and depth were more
     important to the rating than puzzle cleverness....infact, the few
     actually puzzles in this game were easy ones (though well-implemented).
     My tastes and focus have changed greatly since my earlier days of text
     adventuring (for instance, since the time during which I played
     Unnkulian 1&2, which would probably not make it to my favorites list if
     I played them now for the first time), so that where I once was fully
     impressed by clever obstacles and disappointed when none appeared, I
     now place first priority on how much lasting significance a game has
     for me--how much it makes me THINK, in a way deeper than trying to
     figure out how to get past the troll at the bridge. Close second
     priorities go to things like atmosphere, theme, writing quality, and
     characterization, with the problem solving aspects of the gaming coming
     somewhere after all that. In short, I find myself judging IF more and
     more similarly to how I would judge a traditional novel.

     By these standards, Tapestry shone...of all the games in the
     competition, I got probably the most thought out of this one, and it
     also had some of the most evocative writing. The game takes place after
     your death, as you are given the option of going back and changing some
     of the decisions that may have hurt others and resulted in your own
     unhappiness. There are three mutually exclusive paths through the game,
     depending on choices made early on....not just alternative puzzle
     solutions, but actual plot branches, which are rather rare in IF. The
     only reason I didn't rate this game right next to Delusions is that I
     feel it fails in some ways to be truly interactive, or as interactive
     as it might have been, at least. Once the player has made the initial
     decision that branches the plot, there is a feeling of being led by the
     hand towards the endgame, with little opportunity to resist the flow of
     events. Arguably, this goes along with the game's ultimate message, but
     at times I would have preferred that the game world be less of a moving
     tapestry and more of a reality.

[*] Fear, by Chuan-Tze Teo
     Each game on this list had one area in which it shone the most....for
     this one, it was atmosphere. It lived up to its name. It's not often a
     game, especially a pure-text one, actually manages to quicken my pulse
     and panic me a bit, but towards the end, this one *did*. As the game
     begins, you have amnesia, combined with a nasty set of phobias, and
     must overcome some of the latter before you can recover your memory.
     All fine and good......until your time starts running out. As in
     Delusions, there were a few really neat puzzles in here too, though two
     of them, I think, bordered on overly difficult and could have been
     clued a little better.

[*] The Meteor, the Stone, and a Long Glass of Sherbet, by Angela M. Horns
     Of all my favorites of the competition, this is the only one that
     approaches the "traditional" text adventure--it was, infact, in some
     aspects enough of a take-off on the old Infocom spellcasting/Zork games
     that I had to consider whether I should give it as high a rating as my
     first impulse told me to. I ended up rating it right next to Tapestry
     and Fear, for even though there was nothing in here that particularly
     inspired or moved me, the game world was one of the most detailed,
     thought out, and seamless I encountered, there were alot of twists on
     the old GUE (Great Underground Empire) theme, the plot flow was
     perfectly executed, the puzzles gave my brain a workout, and well.....
     I just had rather alot of fun playing it.

     Now that the results of the competition have come out, I've learned
     that the "Angela M. Horns" who wrote this game is, infact, Graham
     Nelson (the old anagram trick). Figures!

[*] Small World, by Andrew D. Pontious
     I have a big fuzzy soft spot in my heart for whimsy, which helps
     account for this game's presence in the list. It's the most fun I've
     had with IF for a LONG time (which, considering I normally have lots of
     fun with it, says alot). As you travel across a miniature world trying
     to return its spin, you'll come up against miniature nuclear missiles
     (they feel like tiny pinpricks hitting your ankles), miniature green
     men reminiscent of Lilliputians, a miniature Adam and Eve, a miniature
     heaven with teensy little pearly gates, and even a miniature Devil, who
     trails along behind you making comments and making a general nuisance
     of himself (and who is a close second to the Zork Zero Jester as my
     all-time favorite NPC). The author packed huge amounts of detail into
     this little world.

[*] Aayela, by Magnus Olsson
     This game was on the short and sweet side, and received high marks
     mainly for its innovation (almost all of if takes place in complete
     darkness), its writing quality (downright poetic), and for the
     emotional reactions it managed to elicit from me in several places. It
     starts, like Wearing the Claw, on a traditional-bordering-on-hackneyed
     quest premise, but don't be fooled--like Wearing the Claw, it diverges
     from the stereotype.

Honorable Mentions go to Wearing the Claw (containing the best-executed plot
twist I've seen in a while, and some good writing towards the latter half),
Kissing the Buddha's Feet (a college-life-based adventure in which the
protagonist reminds me embarrassingly of myself!) and The Maiden of the
Moonlight (kind of hackneyed, but very well done for its genre).

Oh....one more really deserves mention from a die-hard hacker like me, even
though I didn't rate it up in the 7-10 range with those above (I may well
have done so if the author had gone just a little further to liven it up and
provide comic relief). "Lists and Lists" by Andrew Plotkin is an interactive
tutorial for the Scheme language (a cleaned-up version of Lisp, or "Lotsa
Stupid Parentheses", as it has been known by some...), written in Inform. I
enjoyed it considerably, as it refreshed my memory on alot of the details of
Lisp that I only half-learned the first time around in my AI course, and
Lisp is, all things considered, a rather neat language.



                              My Score List...

        Rating    Title
	------  ---------
         10     Delusions
          9     Tapestry
          9     The Meteor, The Stone, and a Long Glass of Sherbet
          9     Fear
          8     Aayela
          8     Small World
          7     Kissing the Buddha's Feet
          7     Wearing the Claw
          7     Maiden of the Moonlight
          6     Lists and Lists
          6     Alien Abduction?
          6     Reverberations
          5     Ralph
          5     Piece of Mind
          5     Beyond the Picket Fence
          5     The Curse of Eldor
          4     In The End
          4     Phlegm
          4     Of Forms Unknown
          4     Stargazer
          3     Don't Be Late
          3     Sir Ramic Hobbs and the Oriental Wok
          3     Rippled Flesh
          3     Punkirita Quest One: Liquid
          2     The House of the Stalker
          1     My First Stupid Game

--
suskinne@grail.csuohio.edu      Homepage: http://grail.csuohio.edu/~suskinne/
-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
C:\> del *.*
I can't let you do that, Dave.
C:\>
-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-



From byzantium@tuna.net Wed Dec  4 11:39:45 CET 1996
Article: 19992 of rec.arts.int-fiction
Path: news.lth.se!solace!nntp.uio.no!www.nntp.primenet.com!nntp.primenet.com!feed1.news.erols.com!howland.erols.net!newsfeed.internetmci.com!news.thorn.net!user79.infohouse.com!byzantium
From: Andrew D. Pontious <byzantium@tuna.net>
Newsgroups: rec.arts.int-fiction
Subject: Capsule Reviews of Contest Games
Date: 3 Dec 1996 21:38:07 GMT
Organization: Small World Preservation Society
Lines: 282
Distribution: world
Message-ID: <5826jv$1h8@news.thorn.net>
NNTP-Posting-Host: user79.infohouse.com
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
X-Newsreader: Nuntius 2.0.4_PPC
X-XXMessage-ID: <AECA08D42901514F@user79.infohouse.com>
X-XXDate: Tue, 3 Dec 1996 21:41:56 GMT

Let me just preface this by saying I would be very happy to amplify my
comments for any author who's looking for feedback. Some of these reviews
are short and possibly a little flippant, and as an author myself, I know
it's hard to have your ten month's work be cut down in two sentences.
While I don't think such sentiments should prevent reviewers from giving
an objective response (in the case of own game, too), in a more private,
focused forum, I'd be more than happy to say more, just as I'm sure to
e-mail the people who reviewed my game and see if they can help me more
for the next version, or other games I might write.

AAYELA
My score: 4
The whole intro with King Dargon and Queen Dahra and "old Grodrig, the
court magician," was a turnoff for me. Is anyone still thrilled by this
sort of generic fantasy intro? But the central idea of this rather small
game, that you're wandering around completely in the dark, was fun. I
quickly realized I would have to feel my way around the whole place
(i.e., it wasn't a find-the-light-source puzzle), and that brought me
into the world a little more because I had to imagine it more than if you
had generic room descriptions.

And the ending was a small challenge--each of the possibilities was
well-scripted, and it took me a while to figure out the right one.

The description of the spark coming to life was the best. Doing poetic
prose, prose that is "magical" without seeming syrupy or sentimental, is
hard, and the intro especially could have used more extraordinary prose
to make this a *great* small game instead of 'merely' a *solid* small
game.

ALIEN ABDUCTION
My score: 4
This game frustrated me quite a bit. Once I realize, through the use of
the hints, that the puzzles were hoops the aliens were putting me
through, I immediately became hostile. Isn't it enough the game designers
makes us go through hoops in the first place? Must there be *no* plot,
just tests? I just lost interest right away. On the other hand, the
writing up till that point was good, solid stuff, X-Files style material
(that's more or less a compliment).

WEARING THE CLAW
My score: 4
This game reminded me a lot of "Aayela." Both were small, benign,
non-revolutionary fantasy games. I wouldn't have spent a lot of time, but
they didn't actively aggravate me. As with Aayela, it could have used
fantasy ideas completely outside the usual variations on magical quests,
fortresses, etc. As I said above, I'd be more than happy to talk
specifics with the author.

DON'T BE LATE!
My score: 2
Cute. Short. Humorous. Even more unoriginal than the fantasy games. Not
exactly a gleaming advertisement for the glowing future of Alan, but if
the author is planning to upgrade to a more ambitious IF language, this
is a good small first step.

DELUSIONS
My score: 6
Certainly this was a more original game, but it was also very preachy,
had many self-serving comments directly from the author, and had far too
few clues on what actually had to be done. I liked Morrodox, and I liked
his name for you (QueensRook), and I liked the whole main challenge of
the game in the "lab sim" (there was especially a good sense of menace;
Morrodox was quite cinematic) but the preachiness made me hostile towards
the whole game. Another good touch--the IF trivia game on the TV.

FEAR
My score: 7
Fear was one of the few games, including Sherbet and Delusions (can I
pick winners or what?), that I played up until the two-hour limit without
using the hints to skip through or actually finishing without hints. Its
way of transporting you to another place was a bit too reminiscent of
Curses, but I loved the atmosphere, the little touches of how you're
incredibly edgy. I liked the bird-god puzzle (though I didn't finish it)
and the atmospherics of the house and the door-breaking scene. It wasn't
exactly enjoyable as a virtual world--after all, it's grimy, sordid,
fearful, etc.--but it certainly drew me in.

OF FORMS UNKNOWN
My score: 5
Here's another game I didn't finish. The score is lower than some of the
others I played that far, though, because the descriptions didn't grab me
and much of it seemed too indebted to So Far, especially the mirror and
the transportation descriptions. I was getting bored with it in the end.

IN THE END
My score: 3
It's interesting that the authors who are trying to do the most "unusual"
things are often the ones who come across as the most pompous *and* the
most concerned about their games winning. I can imagine being scornful of
the huddled masses who just want good, solid puzzles and writings, but
then if you're so elitist, why care if you win?

Much of "In the End"'s writing is good, and it has a "realistic" feel to
it that most games lack. But I was quite stymied by what I "should" do,
and the author's grudging inclusion of a walk-through with the injunction
never to use it didn't endear me to him. This game was very close to
"Delusions" in that the author was incredibly fixating on this new idea
the game was supposed to embody, yet the player, supposedly the
beneficiary of the idea, was given little help in finding it. Oh well.

Well, having just finished the game, now I know why the idea wasn't
obvious; in fact, there doesn't seem to be much point to it at all. I've
seen some criticism that this game was too much like a static story, but
I disagree--no good static story would have such little conflict, such a
preachy ending, indeed nothing to draw the reader in. I'm very
disappointed.

KISSING THE BUDDHA'S FEET
My score: 6
I'll admit it; I used the hints almost throughout for this one. The game
mechanics, with so many characters going through rote lines that sounded
very little like organic dialogue, didn't draw me in. What was nice,
though, was how the descriptions of the rooms painted your character
without just some generic opening paragraph (though it had that, too).
They were the best part. But the whole college-cramming milieu was also
uninteresting for me. Lastly, as a TADS programmer, I was gratified that
the author used a number of the more advanced features. They didn't add
much, but it showed that someone out there has looked through all the
TADS documentation and knows how to use it. And the title was superb.

PUNKIRITA QUEST ONE: LIQUID
My score: 3
This joins "Aayela" and "Wearing the Claw" on the list of undistinguished
fantasy games in the 96 Competition. The constant typos were *really*
distracting, and the generic fantasy descriptions and the plot didn't
grab me at *all*. Fantasy has been so overdone in novels and stories, you
just can't keep doing the same old thing. There were no other characters,
the evil villain had very little to do, there were few objects or locales
that had interesting descriptions or features.

LISTS AND LISTS
My score: 6
Andy Plotkin does it again! Once I heard from a friend that it was simply
a tutorial, I was sure I would have to pan this one, but as a would-be
C++ programmer I found it all fascinating. The only reason I didn't give
it a higher score was because, c'mon, Andy, it's a tutorial! I found
there to be far too few examples and explanation, especially for the
harder questions. My head was spinning! And while it wasn't quite as
savage to the player as his earlier games (the genie was actually polite
when you screwed up), he was still plenty grudging (in a funny way) about
giving hints at all. Lighten up, Andy! It's a tutorial! You're *supposed*
to be giving us information!

MAIDEN OF THE MOONLIGHT
My score: 5
Yet another generic genre game. It reminded me quite a bit of the rote
fantasy games, "Aayela" and "Wearing the Claw" and "Punkirita." But it
kept me more engrossed. Maybe the "haunted house" scenario was more
intense, maybe the Victorian-era (?) gothic milieu was just different
enough from the overdone fantasy milieu. In any case, the puzzles were
not particularly refreshing, but they did keep me going. This was one of
those frustrating games where they're hard enough that you need to
seriously think about them, but the game isn't original enough for you to
spend the time doing so. Such games I used the hints for, and here was
the same story.

PIECE OF MIND
My score: 7
I'll admit to incredible favoritism in this game. Despite occasional
typos, criminal lack of description of key objects not just once, but
several times, necessitating repeated use of the walkthrough, one
situation that always produced a machine crash, and an ending that didn't
work even when I followed the walkthrough explicitly, I still loved this
game. Why? The prose. No, it wasn't poetryin fact, I've found the more
lyrical an IF writers tries to be, the more often s/he falls into
hopeless sentimentality. You have to be *good* to write poetry. But you
also have to have a kind of talent to do what this author did: write
casual, hip, flowing prose that often had me in stitches. Jeff Steele's
lines alone were worth the price of admission. But it had coolly
rethought, or retouched, the descriptions throughout the game and just
made it thoroughly enjoyable. This is the kind of writing Planetfall and
the other classic Infocom games were supposed to have. And this is the
only game where I've found it since. I've seen weird games, genial games,
and just plain bad games, but not games that were consistently funny.
Okay, I'll stop. If it hadn't been for all the sloppy programming errors
(which can be fixed for the next release), this would've gotten a ten in
my book.

REVERBERATIONS
My score: 3
This game, though for the most part competently written, didn't have any
sort of special draw for me. The puzzles were mundane, the plot was like
a B-grade movie, and the descriptions, though adequate, didn't have,
well, sparkle to them. The author mentioned that the game had a "Southern
California flavor," but I saw little of that in the generic office
building, courthouse, and department store descriptions. If SoCal is so
special, show me! And personally I'm not so into "starving student" plots
anymore, either: that sort of setting for "Kissing the Buddha's Feet" was
the least interesting aspect of it. And the plot itself could have used
more pointers to what you were supposed to do next. My advice: think
about how a *player* would look at things, what s/he might do next, and
work on originality, adding something to the game that shows something
interesting and original *you know*.

RIPPLED FLESH
My score: 4
Why did I give this game a 4? Why not a 5? Or just a 1? The author
himself says his game "sucks," and there are a lot of typos and little or
no plot direction. It won't win anything. But anyone who will write a
so-so game and then *admit* it is one deserves some credit, and he's got
the determination to write better ones in the future. Any attempt to help
him write better games (as he asks) would involve a thorough review,
point by point, of this one with him, and these general reviews aren't
the forum for it.

THE METEOR, THE STONE AND A LONG GLASS OF SHERBET
My score: 7
I started playing this for the wonderful title, and for the most part I
wasn't disappointed. I'm a little miffed that a game so heavily indebted
to the Zork history was let into the contest at all, after the rules
specifically stated your game had to be *wholy original,* but the
information was used well and enjoyably. Part of the trouble was the
author's writing was ahead of her programming skills (I realize the irony
of this after the author's true name has been revealed, but it's still
the case in this game's execution)--synonyms that should have worked
didn't, decreasing the enjoyment of the game when I had to look at the
hints. And I was getting a little bored at the end of the two hours. But
much of the description was inventive, and even better, the locales were
just a bit more than the standard adventure backgrounds. Just a
bit--especially the upside-down tree!

HOUSE OF THE STALKER
My score: 6
I had a decent amount of fun with this game. Fairly simple, but at least
the puzzles weren't too frustrating and there was some attempt to make a
mark on the standard responses. The sole reason it doesn't get a higher
score is because what the hints expressedly tell you to do doesn't work.
Now, I remember very early comments on the newsgroup mentioning a bug in
Stalker, but I didn't read them then because I hadn't gotten around to
the game yet. Well, now I have, and the message no longer exist. The only
other place to go is ftp site, but that hasn't been updated with a new
version. Shit outta luck. In the one minor problem I encountered with my
game, I posted about it on the newsgroups but I also put something in the
more permanent ftp download site. If you're not going to do that for the
latecomers, you lose points. But up till that it had enough to really
interest me as a middle-length game. I probably wouldn't have given it
above a seven--it wasn't that atmospheric or original--but it was solid
and enjoyable. The bits about a divorce sounded *real*, not like all the
generic fantasy stuff I've seen, and if amplified could really have made
this original. Instead, the stalker (in the few turns I saw him) seemed
cartoonish. But again, I don't know, because--to be specific--I couldn't
turn up the volume on the radio near the stalker because the game kept
insisting it was off.

STARGAZER
My score: 4
This game ranks with all the other mundane fantasy games. I liked this
one a bit better, maybe for being underground, but it really didn't
differentiate itself substantially: still the "save the world" quest,
still the doughty commoner, still the simple, cliched characters. Then
again, I don't think this author expected much from his own game; it's an
introduction, not a full game. But I doubt the full game--filled
presumably with much the same elements, just larger--would suit me any
better. It wasn't bad, it just wasn't anything that really caught my
fancy.

TAPESTRY
My score: 5
Reminds me a lot in style of "Lethe Flow Phoenix," a game with a similar
earnest fantasy plot which frankly bored me with its fairly unimaginative
preachiness. If you're going to make a world that couldn't exist in the
real world, why use such cliched words as "Morningstar." It reminds me of
"Lethe" and "Jigsaw" (though Jigsaw was more inventive) in its use of the
the mult-turn, unalterable sermon you get from an NPC about your
"mission." I'd much rather be *shown* what to do than *preached* at. It
reminds me of "In the End" in how the author assumes you should feel the
guilt or sorrow on the part of your character and therefore join the game
in that roleinstead, I feel manipulated and resent it. Still, once I got
into the spirit of the game, and started using the hints to find out what
I should do, it became a more interesting experience. The writing
definitely counterbalances the unintuitive puzzles and the preachy
beginning, to make it an average game IMHO. Its simple IF-style puzzles
to figure out *how* to execute the different moral decisions seem, in
reflection, out of place. In a game interested in the results of actions,
fiddling with the paper and the address book aren't important, an
annoyance, a distraction. The emphasis of the game should have been
making the results of the actions palpable, interactive, graphic,
powerful. They are good, but too many times after doing a number of
middling actions, you're given a script of the result--like the QuickTime
movies in all those graphic games. Non-interactive, and we all know what
the I in IF stands for.


From cleofax@javanet.com Wed Dec  4 11:40:30 CET 1996
Article: 20005 of rec.arts.int-fiction
Path: news.lth.se!solace!demos!news.stealth.net!www.nntp.primenet.com!nntp.primenet.com!dciteleport.com!newsfeed.internetmci.com!news.javanet.com!noho-us252.javanet.com!user
From: cleofax@javanet.com (Russ Bryan)
Newsgroups: rec.arts.int-fiction
Subject: Review of Andrew Pontious's Capsule Reviews of Contest Games
Date: 4 Dec 1996 00:19:38 GMT
Organization: Cleo of AX
Lines: 82
Distribution: world
Message-ID: <cleofax-0412960720040001@noho-us252.javanet.com>
References: <5826jv$1h8@news.thorn.net>
NNTP-Posting-Host: noho-us252.javanet.com

In article <5826jv$1h8@news.thorn.net>, Andrew D. Pontious
<byzantium@tuna.net> wrote:


> IN THE END
> My score: 3
> It's interesting that the authors who are trying to do the most "unusual"
> things are often the ones who come across as the most pompous *and* the
> most concerned about their games winning. I can imagine being scornful of
> the huddled masses who just want good, solid puzzles and writings, but
> then if you're so elitist, why care if you win?
> 
> Much of "In the End"'s writing is good, and it has a "realistic" feel to
> it that most games lack. But I was quite stymied by what I "should" do,
> and the author's grudging inclusion of a walk-through with the injunction
> never to use it didn't endear me to him. This game was very close to
> "Delusions" in that the author was incredibly fixating on this new idea
> the game was supposed to embody, yet the player, supposedly the
> beneficiary of the idea, was given little help in finding it. Oh well.
> 
> Well, having just finished the game, now I know why the idea wasn't
> obvious; in fact, there doesn't seem to be much point to it at all. I've
> seen some criticism that this game was too much like a static story, but
> I disagree--no good static story would have such little conflict, such a
> preachy ending, indeed nothing to draw the reader in. I'm very
> disappointed.

> RIPPLED FLESH
> My score: 4
> Why did I give this game a 4? Why not a 5? Or just a 1? The author
> himself says his game "sucks," and there are a lot of typos and little or
> no plot direction. It won't win anything. But anyone who will write a
> so-so game and then *admit* it is one deserves some credit, and he's got
> the determination to write better ones in the future. Any attempt to help
> him write better games (as he asks) would involve a thorough review,
> point by point, of this one with him, and these general reviews aren't
> the forum for it.

ANDREW PONTONIOUS'S CAPSULE REVIEWS OF CONTEST GAMES
My Score: 1

It's interesting that the reviewers who are trying to be the most
"objective" are often the ones who come across as the most pompous *and*
the most concerned about what DOESN'T work.  I can imagine being scornful
of the elite few who want more than good, solid puzzles and writings, but
then if you're so happy with the status quo, why should anyone care if you
liked it?

Much of Andrew Pontonius's writing is good, and it has a "critical" feel
to it that most reviews lack.  But I was quite stymied by what the
reviewer "seemed" to enjoy, and the reviewer's grudging inclusion of
writing ability in his scores didn't endear me to him.  The review was
very close to unintelligible in that the reviewer was incredibly fixated
on the authors' motivations, yet the reader, supposedly the beneficiary of
the review, was given little help in understanding what the games were
about.  Oh well.

Well, having just finished the review, now I know why the reviewer wasn't
fair; in fact, there doesn't seem to be much fair judgement to it at all. 
I've seen some criticisms that I haven't agreed with ...

... but I have a lot of trouble understanding how a game whose author
admits that it "sucks" (and, we can assume, was somewhat thrown together)
can receive a higher score than a game which was clearly polished and
carefully written.  Other games which received comments such as "generic"
and "genre" get fives, even though the reviewer has nothing good to say
about them.  Better poorly- written status quo than new ideas, I suppose. 
Particularly baffling was the author's reaction to DON'T BE LATE: "Cute. 
Short.  Humerous."  And a 2, because it wasn't written in the more
"ambitious" TADS or Inform (shall we chat about pomposity now?).  There is
no consistency to the reviewer's scores, and it leaves me wondering about
the reviewer's motivations.  Are there definite qualities which the
reviewer consistently looks for, or did he judge these games depending on
how the day went when he played them?  Does the reviewer realize that he
tells the reader all of his personal opinions and NOTHING about the
games?  Why does he think people read reviews?  In short ...

... I'm very disappointed.

-- Russ




From darin@connectnet1.connectnet.com Wed Dec  4 11:47:28 CET 1996
Article: 20000 of rec.arts.int-fiction
Path: news.lth.se!solace!dataphone!super.zippo.com!zdc-e!feed1.news.erols.com!howland.erols.net!newsfeed.internetmci.com!in2.uu.net!192.48.96.24!darin
From: darin@connectnet1.connectnet.com (Darin Johnson)
Newsgroups: rec.games.int-fiction,comp.sys.ibm.pc.games.adventure,rec.arts.int-fiction,comp.sys.ibm.pc.games.rpg,alt.games.video.classic
Subject: Re: Dungeon, the original Zork:I neeed Help!
Date: 4 Dec 1996 02:17:11 GMT
Lines: 67
Message-ID: <slrn5a9np5.kj4.darin@connectnet1.connectnet.com>
References: <849637929.28107@dejanews.com>
NNTP-Posting-Host: connectnet1.connectnet.com
X-Newsreader: slrn (0.8.8 UNIX)
Xref: news.lth.se rec.games.int-fiction:19277 comp.sys.ibm.pc.games.adventure:144391 rec.arts.int-fiction:20000 comp.sys.ibm.pc.games.rpg:136160 alt.games.video.classic:13004

>I have been playing Dungeon the oringal Zork for a while and now 
>I am stuck.  I completed Zork I, and II, and most of III, but 
>this does not seem to help.  For those who do not have this I do 
>not know completely know where to find it, but start at 
>"http://www.csd.uwo.ca/Infocom/"

Better still, ftp.gmd.de has the "official" Interactive Fiction
archive, with tons of games, interpreters, etc.  Including
several versions of Dungeon (including mine for Tads).

As for hints, see below.  Email for further details if you like,
I dislike giving (or especially getting) outright spoilers.


>1) What do I do when I get in Hell?  In Zork I there was just a 
>crystal skull I took.

You need to pass the spirits, after which you can visit the Tomb
of the Unknown Implementer, find a very very subtle clue.  But you
only get points for visiting, I don't think there's a treasure.
But the area shows up again later in the game.

To pass the spirits, you need to excorcise them.

>2) I opened the gold coffin, and did not find the sceptre I need 
>to make the rainbow?  What do I do?

It's not a sceptre :-)  You must remember that Zork I, II, and III
were simplified versions of the game, and forced to fit in small
memory.  A lot of puzzles were removed, and items from Zork II couldn't
be used in Zork I, etc.  Some treasures were stuck in odd places
just for the heck of it - like the sceptre in the coffin.

For the rainbow, there's something else you need to wave, it's
not a sceptre.  There is no sceptre in Dungeon.

>3) I am confused about the placement of the Ice Room, and the 
>Volcano.  In Zork II I needed the dragon to melt the ice, and 
>then I could go in the volcano.  What do I do in Dungeon?

You need something else hot.  However, I tend to save this till later
in the game as it will permanently change an item that is generally useful.
Just make an inventory of the things you have that are hot - if none work,
you may not have found it yet.

>
>4) I have two spheres, but I have not found the wizards workshop 
>yet.  In Zork II the third sphere was in the aquarium in the 
>workshop.  Where is the workshop?

Looking in spheres will show you the description of a room that
another sphere is in.

The blue sphere is past the large dome room with the wooden railing.
It's got a puzzle that wasn't in Zork I (or even early versions of
Dungeon).

The white sphere is past the cakes (with the Eat-Me icing).

The red sphere is near the coal rooms.  It's not easy to find, but
there are subtle hints if you use the other spheres to view its
location.  This one is hard.

-- 
Darin Johnson
darin@connectnet.com



From ctt20@hermes.cam.ac.uk Wed Dec  4 11:48:17 CET 1996
Article: 19994 of rec.arts.int-fiction
Path: news.lth.se!solace!news.stealth.net!www.nntp.primenet.com!nntp.primenet.com!su-news-hub1.bbnplanet.com!news.bbnplanet.com!cpk-news-hub1.bbnplanet.com!EU.net!usenet2.news.uk.psi.net!uknet!usenet1.news.uk.psi.net!uknet!uknet!lyra.csx.cam.ac.uk!news
From: Chuan-Tze Teo <ctt20@hermes.cam.ac.uk>
Newsgroups: rec.games.int-fiction,rec.arts.int-fiction
Subject: Competition mini-reviews
Date: Wed, 04 Dec 1996 02:16:24 -0800
Organization: University of Cambridge
Lines: 79
Message-ID: <32A54F78.37D4@hermes.cam.ac.uk>
NNTP-Posting-Host: sobek.trin.cam.ac.uk
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
X-Mailer: Mozilla 2.0 (Win16; I)
Xref: news.lth.se rec.games.int-fiction:19272 rec.arts.int-fiction:19994

Well, now that the voting is finally over, I feel justified in posting my 
opinions on some of the games. If your entry doesn't appear on this list, 
don't feel offended; I am fairly short of time at the moment.

Before I start, I should like to say that, despite any criticisms I may 
make, the general standard of this year's entries was extremely high, and 
my congratulations go to the winners and thanks to Whizzard for 
organizing the competition. 


DELUSIONS

One of my favourite games of the contest, brimming with creative ideas; 
debugging the fish VR, the lab simulating itself, the TV gameshow 
parody, coupled with an ambitious plot. The self-discovery scene 
disturbed me more than any of the horror-genre games managed to. 
Locations are well written and well fleshed out, NPCs convincingly 
characterised.

Core puzzles were difficult but in general had satisfying solutions. This 
being said, much of the repetition became annoying. Examples of this are 
having to search the storeroom multiple times, wandering around looking 
for the next object you're supposed to examine, long scenes after failure 
in the fish VR or lab sim worlds. Frustrating bug in the endgame.

(Musician's nitpick: As a violinist myself, I take issue with the choice 
of repertoire- much of which is very fine music indeed, but not really 
suitable for the particular instrument...)

However, I thoroughly enjoyed the game. Nice work.


PIECE OF MIND

I liked the use of the first person point of view. Like interacting with 
a character in a story; only the character himself proceeds to enter a 
different story again. The switch from past tense in the dream scene to 
present tense ingeniously conveys a degree of immediacy/waking up from a 
dream. I almost hear the text, rather than reading it, as if the 
protagonist is telling a blind advisor what happens as he walks around. 
Nice touch. However, the writing is overdone in parts; many long words 
are used where shorter ones would have sufficed. These tend to break the 
flow of the conversation; worse still, many are misspelt, which is very 
irritating to the eye.

The pulp-SF parody scene was well written, but could have been fleshed 
out more. If this is a million-mile spaceship, there ought to be a reason 
why I can't explore more than just two locations, and there ought to be 
more interactive background objects.

An offbeat plot flows smoothly to the end. It's a shame that this game 
hadn't had a little more polishing before its release.


THE METEOR, THE STONE AND A LONG GLASS OF SHERBET

Another very atmospheric opening. Short works of IF really need strong 
openings to draw the player in; those that have, in this competition, 
have made a much better impression on me that those that haven't. 
Unfortunately, the game tends to suffer from a lack of synonyms, and I 
had to refer to the hints on occasion to find out the right words.

After the introduction, the player ends up in a house reminiscent of Zork 
I, whereupon the game suddenly turns into a traditional but brilliantly 
executed cave crawl, with magical twists and clever puzzles. The plot is 
well thought out and well explained in the end. Unfortunately, I wasn't 
really aware of this during the midgame, which made it feel somewhat 
disjointed. Perhaps the secret mission should have been made slightly 
more explicit, to convey the impression that there was a point to all 
this exploration and the protagonist wasn't just wandering around out of 
boredom.

Despite the above minor complaints, this excellent adventure proves that 
no genre is ever truly exhausted.


Further reviews to follow.

- Chuan


From adam@yuma.Princeton.EDU Wed Dec  4 21:34:55 MET 1996
Article: 20024 of rec.arts.int-fiction
Path: news.lth.se!solace!eru.mt.luth.se!news-stkh.gsl.net!news.gsl.net!news-peer.gsl.net!news.gsl.net!howland.erols.net!news.sgi.com!enews.sgi.com!lll-winken.llnl.gov!fnnews.fnal.gov!cbgw1.lucent.com!cnn.Princeton.EDU!yuma.Princeton.EDU!adam
From: adam@yuma.Princeton.EDU (Adam J. Thornton)
Newsgroups: rec.arts.int-fiction
Subject: Re: List of Lists
Date: 4 Dec 1996 18:20:39 GMT
Organization: Princeton University
Lines: 27
Message-ID: <584fdn$6b9@cnn.Princeton.EDU>
References: <329ded88@beachyhd.demon.co.uk> <erkyrathE1nor1.Cpv@netcom.com> <kjfair-ya023280000412960159380001@uchinews.uchicago.edu>
NNTP-Posting-Host: yuma-subnet124.princeton.edu

In article <kjfair-ya023280000412960159380001@uchinews.uchicago.edu>,
Kenneth Fair <kjfair@midway.uchicago.edu> wrote:
>I just got List of Lists from the archive and have been playing around
>with it.  Let me just say that you've brought a tear to my eye, remembering
>the old days of Chez Scheme with Bruce Duba in COMP 210 back at Rice.
>(In 1991, no less!)  I just wanted to tell you that you've created
>perhaps the most astoundingly useless piece of computer software I've
>ever seen.  Congratulations; it's an achievement you should take pride in.

In fact--as I wrote to Zarf in e-mail--I flashed back to The Little Lisper.

Now, admittedly, I took Comp 210 with Uncle Bruce back in 1990.  But damn,
this was a fine piece of escapist fiction, yanking me back to the days when
I was 18 and 19, with a new, enthusiastic, and energetic girlfriend helping
me lose purity points every day, and running around naked on the 13th of
every month.  Back in the old days, back when *I* was a freshman, back when
Wiess was *cool*.

Yes, indeed, as works of fiction designed to transport you to happier
places go, "List of Lists" is one of the greatest.

Adam
-- 
"I'd buy me a used car lot, and | adam@princeton.edu | As B/4 | Save the choad!
I'd never sell any of 'em, just | "Skippy, you little fool, you are off on an-
drive me a different car every day | other of your senseless and retrograde
depending on how I feel.":Tom Waits| little journeys.": Thomas Pynchon | 64,928


From obrian@ucsu.Colorado.EDU Thu Dec  5 12:38:43 CET 1996
Article: 20030 of rec.arts.int-fiction
Path: news.lth.se!solace!mn6.swip.net!newsfeed.sunet.se!news01.sunet.se!sunic!02-newsfeed.univie.ac.at!newsfeed.de.ibm.net!newsfeed.uk.ibm.net!news.stealth.net!www.nntp.primenet.com!nntp.primenet.com!feed1.news.erols.com!phase2.worldnet.att.net!uunet!in1.uu.net!128.138.240.25!boulder!ucsu.Colorado.EDU!obrian
From: Paul O'Brian <obrian@ucsu.Colorado.EDU>
Newsgroups: rec.arts.int-fiction,rec.games.int-fiction
Subject: [CONTEST] My reviews, Part 1 (very long)
Date: Tue, 3 Dec 1996 21:49:37 -0700
Organization: University of Colorado at Boulder
Lines: 441
Message-ID: <Pine.GSO.3.95.961203212420.10773A-100000@ucsu.Colorado.EDU>
NNTP-Posting-Host: ucsu.colorado.edu
Mime-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
NNTP-Posting-User: obrian
Xref: news.lth.se rec.arts.int-fiction:20030 rec.games.int-fiction:19291

As I post this, I have not yet received the message announcing the
contest results, though I have received several posts in reply to that
message, and let me assure you the suspense is driving me bonkers. Ah,
USENET!

But since I know the results *have* been posted, I feel comfortable in
posting my own reviews of the outstanding crop of IF from this year's
competition. A few words about these reviews: I developed the format
rather offhandedly from my need to remember the salient points of each
game. Any resemblance to the SPAG format, living or dead, is purely
coincidental. My rating numbers extend to one decimal point -- I just
found it easier to assign a rating when a greater degree of precision was
available to me. For my Miss Congeniality votes, I rounded each score to
the nearest integer, rounding .5s up to the next whole number. 

Also: These reviews were generally written upon finishing the game, and
they are not intended to be taken overly to heart. I firmly believe in
constructive criticism (of which I have received a great deal myself, and
am always hoping for more), and if the tone of any of these reviews comes
across as less than helpful, I apologize. I was greatly impressed by the
entries in this year's competition, and I hope to see more output from
each of the authors who entered. Also, please note that since I have not
received the results message, pseudonyms and anonymous entries remain
marked as such (although from the replies I've learned a few of those
secrets.) If any author (or player, for that matter) would like to discuss
the content of these reviews (or, even better, of "Wearing the Claw") in
further depth, I invite a private email response. Finally, I wrote these
reviews on the MS-DOS editor, and I'm realizing as I post them that my
margins were just a bit different there than on my mail editor. I
apologize for the resultant ugly formatting.

Such caveats out of the way, on with the reviews! These are in the order I
played them, which was generally the order they appeared in gmd's
competition96 directory. If a game is excluded, it's because I couldn't
get it to run on my machine. So:

AAYELA -- by Magnus Olsson
This review was written more as a series of notes than an actual review.
It wasn't until later in the process of playing the competition entries 
that I arrived at the style of reviewing each game in detail. My apologies
to Magnus for providing such an incomplete evaluation. My main memory of 
Aayela was that crawling in dark is an interesting device which could 
make for an intense episode in a longer game (and, in fact, already 
has in the case of "So Far.") As the bulk of this game, it made for an 
interesting experiment.
Prose -- often good, sometimes a bit over the top. Crawling in the dark
   hearing ethereal chords is unfortunately a bit reminiscent of "So Far".
   Especially unfortunate if the design of Aayela preceded so far.
Difficulty -- quite easy actually. An enjoyable vignette.
Technical -- parser -- enjoyed being able to feel and smell. Most commands
   were anticipated quite well. One or two TADS error instances
          -- writing -- One or two rather glaring mistakes ("an insisten
   breeze"). On the whole quite proficient.
Plot -- very simple, but serves its purpose
Puzzles -- again quite simple, but vividly rendered.
OVERALL -- a 7.5

ALIEN ABDUCTION? -- by Charles Gerlach
Really provocative premise. LOVED the "twilight zone" feel of things, and 
finding out more about character's (and character's father's) past worked 
quite effectively. On the downside, some fairly significant omissions 
(including an axe but not implementing "chop" or "cut", making a puzzle
where a significant portion keeps responding "that's not important" [this 
is the spring arm on the contraption & the axe], having the laughable 
response "It's not effective to attack with the axe.")                     
Prose -- generally effective, and sometimes quite chilling. A bit of 
     awkwardness shows through at times, but never enough to jar. 
Difficulty -- Except for one *major* "guess the verb" puzzle (the
     springarm), this was pretty straightforward. The most difficult part
     for me (aside from the springarm) was figuring out to get a "real" axe 
     first.
Technical -- parser -- Some errors including no response to putting things 
     in cylinder, TADS errors on taking shapes. Much was anticipated, but 
     some significant things were not. Could use another round of beta 
     testing.
          -- writing -- Virtually no spelling or grammar errors jumped 
     out. Well-proofed work.
Plot -- Outstanding. With the exception of a somewhat disappointing ending
     (though justifiable -- I just crave closure), AA gave a hint of how 
     truly chilling suspense-oriented IF can be. The premise, the way 
     information was slowly released, the drama & emotional intensity 
     were really all quite strong. This was definitely the most enjoyable 
     aspect of the game.
Puzzles -- One or two quite clever (the duck), most well-oriented to
     moving the plot along. The "aliens testing your mental capacity" was
     an excellent pretense for puzzles. Hints were generally quite well-done, 
     and with the exception of the springarm thing, puzzles were overall
     pretty good.
OVERALL -- a 7.8

DON'T BE LATE -- by Greg Ewing
Very simple game -- the first I've ever played in ALAN, so I'm not sure 
how much technical stuff to attribute to the language and how much to the 
author. Consequently, I'll attribute all of it to the author. Starting in 
"your house" with "your computer" on the table strongly reminiscent of 
"Bureaucracy", but not as interesting. Some really grievous parser 
omissions (I don't know the word "get"?) Circular structure a fun gimmick, 
but only for a few minutes. No real puzzles to speak of, nor much of an
atmosphere. In fact, there's really not too much to do besides wrestle
with the parser. 
Prose -- Serviceable, but nothing more. There was so little of it, it's
     really hard to judge. Very little description, very few objects. A
     pretty sparse world. The prose that was there did its job, but 
     nothing more.
Difficulty -- Apart from parser struggles, extremely easy. The only thing
     resembling a "puzzle" would be incredibly easy if it wasn't for 
     trying to figure out the correct syntax.
Technical -- parser -- as mentioned, the parser was quite weak. Some 
     *extremely* standard IF words not implemented. I just about quit
     when I realized it didn't know the word "get."
          -- writing -- What little prose there was showed no significant 
     grammar or spelling errors.
Plot -- This was probably the most interesting feature of the game, and 
     it wasn't really all that interesting. It involves an Escherian 
     reflection -- the object of the game is to play the game, and you 
     can apparently play the "game-within-a-game" until you get really 
     tired of it. This will probably happen pretty quickly.
Puzzles -- None to speak of. With a quality parser, this game would
     probably have taken a good 10 minutes to solve. 
OVERALL -- a 4.8

DELUSIONS -- by Anonymous
Incredible game. Basically excellent in every respect -- brilliant idea, 
(almost) flawlessly executed, great plot, well-thought-out puzzles. Just
a gem in every respect. The only drawback (and I admit this is a quibble)
is that the author's notes tend to get a little irritating. The overall 
level of quality is stunningly high (though a bit depressing -- after 
playing "Delusions", I became certain that my entry was *not* going to 
win the competition.) The game was so good that it almost made me wonder 
if the anonymous author was a former Infocom implementor in disguise. I'm 
looking forward with great eagerness to completing the game (which I
wasn't able to get through in two hours)!
Prose -- Infocom-level prose -- not at classic literature level but 
   more than sufficient to get one's heart racing and chills mounting.
   The descriptions of virtual reality entrances and exits skirted the 
   edge of histrionics but always came down on the right side. And the 
   level of detail was a terrific kick -- I especially loved the
   futuristic game of "Jeopardy!".
Difficulty -- I didn't find the game terribly difficult, but found myself
   checking the hints quite a bit simply because I wanted to see as much 
   of the game as I could in the two hours allotted. The excitement of 
   seeing the second act unravel left me with little patience for 
   struggling with puzzles. If I had not been in a time limit situation, 
   I'm sure this would not have been true.
Technical -- coding -- One of the best coding jobs I've ever seen. The 
   shifting responses to "examine" and the number of objects and possible 
   combinations of those objects gave the world a stunningly rich level
   of verisimilitude.
          -- writing -- Basically flawless. I didn't find one single 
   grammar or spelling error. 
Plot -- First-rate. Extremely clever ideas masterfully revealed. The 
   idea of Satan as a virus, the world as a VR construct, and God as a 
   blind, black, bitter woman may be a little skewed theologically, but 
   it made for totally engrossing IF. I look forward to the endgame with 
   great anticipation.
Puzzles -- I found "Delusions" to have exactly the right kind of puzzles 
   for my taste in IF. Nothing arbitrary, nothing typical, and absolutely 
   consistent with the described world and the advancing plot. The game 
   proves that story-oriented IF does not have to be a cakewalk.
OVERALL -- A 9.8

FEAR -- by Chuan-Tze Teo
Another very strong Inform game. The concept here gave a new spin to the 
"locked-door" genre of puzzles, and it was a delicious irony that the 
purpose of the game was to get through metaphorical "locked doors" of 
emotion and reach a final climax of unlocking a physical door to get *out*
of a house rather than into one. However, this key feature of the endgame 
also provided one of the game's logical flaws -- how many houses lock from 
the outside? The game didn't seem to take into account the notion that 
someone inside a house should be able to unlock the front door *without* a 
key. NOTE -- in the two hours allotted I did not reach the endgame.
However, I had figured out from the first time the sirens approached that the 
key to dealing with the police was to unlock the door before they broke it 
down.
Prose -- quite good. Describing different kinds of fear is not an easy 
   task, and the author acquitted himself well. The opening was gripping, 
   and the descriptions of the objects of terror (especially the spider) 
   were very evocative.
Difficulty -- I found the game quite difficult, and rather jarring in its 
   swings from totally plot-based puzzles (overcoming fears to pass 
   obstacles) to extremely mechanical puzzles (the Egyptian statues, the 
   duck.) Again the time limit and my immersion in the plot led me to the 
   hints much more often than I would have used them in a non-competition
   situation. However, I can't say I wouldn't have used them anyway, 
   especially with the statue puzzle.
Technical -- coding -- fairly smoothly coded work. Can't recall ever
   running into any coding jams, and many situations were
   well-anticipated.
However,
   several were not. I mentioned my strong beef against the locked front 
   door, which should have been coded beyond a standard response. Another 
   example is the jammed drawer, which could not be pried with the plate 
   but did respond to a kick (this illogic creates a bit of a "guess-the-
   verb" puzzle) and falls to the ground still described as "closed."
          -- writing -- Errors were few and far between. In fact, the only 
   error that stands out in my mind is a reference to a light hooked to 
   "the mains power supply", and even that may be attributable to my 
   ignorance of electrical terminology.
Plot -- The plot of "Fear" was basically a clever way of stringing
   together a number of mechanical puzzles, but it worked charmingly. Again, 
   this review is written without knowledge of the endgame, but I
   anticipate a clearing of the amnesia, an alleviation of the oppressive
   emotional weight, and a general tying together of loose ends. 
Puzzles -- The puzzles were quite good, though quite difficult for me.
   Then again, I'm not a great puzzle solver. For me the primary appeal 
   of interactive fiction is the emotional pleasure of experiencing a
   world and moving through a gripping plot rather than the more cerebral aspect
   of puzzle-solving. For my taste, "Fear" came down just a bit too heavy 
   on the puzzles, making it a little too hard for me to move through the 
   story.
OVERALL -- An 8.8

MY FIRST STUPID GAME -- by Dan McPherson
Let's see: boring, juvenile, bad coding, irritating descriptions, dumb 
goals. That pretty much covers it. Basically everything about the game 
was at a pre-adolescent level, from the obsession with Barney the 
dinosaur to the fact that urinating was the game's primary objective. It's 
games like this that give AGT such a rotten reputation.
Prose -- The author wisely didn't write very much, so there isn't that 
   much to slam. The middle-school level of diction ("piss", "eyeballs 
   oozing gore," etc.) was extremely annoying.
Difficulty -- Thankfully little. The less time spent in this game the 
   better.
Technical -- coding -- How about a turkey sandwich you can't call
   "turkey"? How about a wooden door you can't call "wooden"? How about a
   snide rejection to "get all"?
          -- writing -- Remarkably, I noticed no errors. Perhaps when this 
   writer has something to say he'll be able to do a creditable job of it.
Plot -- I can't see any such thing.
Puzzles -- The main puzzle is "Why did he enter this in the competition?"
   That one is pretty hard to solve. The rest were complete clichs (feed 
   a hungry monster. unlock a door. overcome the time limit with which 
   the game started.) I can't decide which is worse.
OVERALL -- A 1.6

OF FORMS UNKNOWN -- by Chris Markwyn
Potential for an interesting game totally ruined by buggy coding. The game 
was put together in 3 weeks, and I'm afraid it shows. The author wisely 
admits that the game is highly derivative of So Far -- this would be fine 
if not for the fact that So Far actually worked, and Of Forms Unknown does 
not. I quit after wrestling extensively with the illogic built into the 
game's coding structure and finally going to the hints, following the 
explicit instructions for solving a puzzle (the frame, rope, and light
bar), and finding that even after following the instructions, the puzzle
remained unsolved.
Prose -- Struggling to reach Plotkin level. The pieces of prose which are 
   the most successful are the ones most imitative of Plotkin. The rest is 
   utilitarian, with the exception of the prose which makes no sense at 
   all.
Difficulty -- Impossible. The game's buggy coding made progress impossible 
   for me well before I got to the bug the author discussed on rec.arts.
   int-fiction. Of course, this means that the point at which I quit 
   actually *was* a passable point, but to my mind if the walkthrough 
   doesn't get you where you need to be, the game is impossible.
Technical -- coding -- Extremely poor. From small points like the lack of 
   a new_line after some inventory calls to rather glaring problems such 
   as the broken frame puzzle (try tying a rope to the frame, then tying 
   something to the rope, then walking away holding the tied object --
   works mighty easily!) and the fact that dropped objects all seem to become 
   concealed somehow.
          -- writing -- No errors that leaped out at me. However, to be
   fair, I didn't see the whole game.
Plot -- In So Far, the lack of a coherent plot was a bit frustrating to
   me, but I could hold my frustration in abeyance because of the game's many
   fine features. This game offers no such redemption, and suffers greatly 
   from being an imitation springing from a clich (the college dorm room
   as starting point).
Puzzles -- ranging from highly illogical to basically logical but
   impossible to complete. For example, lighting a dark room (whose 
   description reads "You can't see a thing") by saying "turn on light" not 
   only goes against the logic of the description (isn't the light switch one 
   of the things you can't see?), but also against one of the most
   standard conventions of interactive fiction, which suggests that even
   a light switch in a dark room is inaccessible without a faint light by
   which to discern it. "Delusions" had the answer to this -- "Forms" does
   not. Another example is the dials in the shaft -- what is the logic
   behind setting them all to 0? Only the arbitrary logic of the game,
   such as the decision that for some reason bringing a light source into
   a cave through the door extinguishes that source for no good reason.
OVERALL -- A 1.5

IN THE END -- by Joe Mason
Hmmm. The first character I've been totally unable to identify with -- the 
author shows us an interesting world with friendship, intellectual
interest, potential for love, and incredible technological comfort, and
wants us to believe that the foremost desire one could have in this world
is for suicide. I just can't buy into the idea of convenience creating a lethal 
level of ennui, if indeed this is the reason for the main character's 
suicidal urges. I'm reaching, because no good reason is given. In fact, 
nobody in the story even seems particularly (or at least specifically) 
unhappy, and several characters (the shopkeeper and bartender come to
mind) seem genuinely to enjoy their lives and feel fulfilled. So what is
this character's problem? I suggest that his problem is the story's problem -- 
an overdeveloped sense of the dramatic without any of the logic or
backstory that give real drama its tension and emotional weight.
Prose -- Often rough, but often rather touching. The world whose picture 
   the author paints has some very charming aspects, and the prose brings 
   this across nicely. Unfortunately, the skill with which this is 
   accomplished serves only to further undercut the notion that your goal 
   in this world should be to leave it.
Difficulty -- Well, a goal-oriented word like "difficulty" is a bit of a 
   mismatch for a game like this which has no way to win. How difficult 
   is it to finish the story? Why, not at all. One only has to wait 7 
   turns, step outside, and type "kill me" and that's all, folks. The 
   concept of "difficulty" doesn't really seem to apply to this story 
   though -- what's really difficult is figuring out why the goal is what 
   it is...
Technical -- coding -- This is where "In the End" really shines. Its 
   interface (with its lack of compass directions) worked quite 
   spectacularly (for me, anyway), giving the world a wonderful real-life
   feel. I never realized how much compass directions undercut the 
   simulation aspect of IF until they were removed -- after all, who goes 
   around thinking about which direction they're bearing? (Except,
   perhaps, for spelunkers :)) I was also impressed with many of the
   responses that had been anticipated for NPCs (WOMAN, TELL ME YOUR NAME
   was especially appreciated), though some could still have used some
   polishing (SHOPKEEPER, TELL ME ABOUT HOPSON elicited no response, but
   SHOPKEEPER, TELL ME ABOUT MR brought about the correct reaction). And
   I apologize for continuing to harp on this point, but when the
   interface is exciting and the world seems to offer so many
   possibilities, the dead *last* (no pun intended) thing I wanted to do
   was commit suicide.
          -- writing -- The initial box quote jarred me, because I'm used 
   to seeing "whimper" spelled with an "h". However, I'm not near my copy of 
   Eliot right now to see if it's simply a transcription of one of the 
   poet's intentional alterations, so I'll call that one neutral. Other
   than that, the writing seemed quite technically proficient.
Plot -- A frustrating one, and although it's true that such a device is
   new to interactive fiction, it felt gimmicky and hollow, so its absence up 
   until now is quite justified, to my way of thinking. And beyond the
   final goal of the game, there really is no plot. I even checked the
   walkthrough just to make sure I wasn't actually doing something stupid and
   overlooking or short-circuiting a plot that was waiting to be
   discovered. No such luck. I just keep thinking, what a pity.
Puzzles: Well, this was "puzzle-less IF" alright. But then again, it also 
   had no plot. So its lack of puzzles was logical, but did nothing to 
   improve the work.
OVERALL -- A 7.4

KISSING THE BUDDHA'S FEET -- by Anonymous
When I first started this game I had that familiar "Oh no, not another one 
of *these*" feeling. But the more I played BUDDHA, the better I liked it.
Nine times out of ten, college humor comes off as sophomoric in-jokes 
liberally mixed with gross-outs -- this time was the tenth. Several
moments in the game almost made me laugh out loud, and I related very well
(perhaps a bit *too* well) to the game's main character. This game also makes 
hilarious use of TADS' capability for dynamic object creation, as the 
cellophane, snack food wrappers, and crumpled up notepapers continue to 
pile around the hero's ears. The characters were stereotypes, but they 
were written so well that they evoked the reality behind the
generalization  rather than the typical flatness of a stock type. Finally,
a good word for the puzzles -- not only were they clever, interlaced, and
often the type to give one the "aha!" feeling as the pieces suddenly fall
perfectly into place, they were also very well integrated into the story,
and cleverly supported by the premise. The genre of KISSING THE BUDDHA'S
FEET may be cliched, but it's the kind of game that reminds one why
people attempt the college genre in the first place.
Prose -- Only once in a while did the use of ridiculous levels of 
   exaggeration slip into the annoying; much more often it was pitched
   just at that level where one can enjoy the joke without endangering the 
   suspension of disbelief. The writing is lively and its level of detail 
   greatly increases the game's immersiveness.
Difficulty -- The game's difficulty was just right for me -- I never felt 
   so stuck that the pleasure of working on the puzzles ceased to become 
   fun -- but it was always a little work to figure those puzzles out. 
   I also enjoyed the feeling of never quite knowing when a puzzle would 
   be solved, and the fact that as soon as you took care of one problem 
   another one, gopherlike, would pop up somewhere else. 
Technical -- coding -- Some really masterful strokes, such as all the 
   wrappers and papers that pile up around the house. Most commands well
   anticipated, and in fact I look forward to returning to the game after 
   the competition has ended and trying all of the "amusing" pieces. Only 
   once in a great while was a logical action not anticipated in the 
   coding (examples are putting the towel back on its rack and trying to 
   unplug the TV while wearing the catcher's mitt.)
          -- writing -- Grammar and spelling were both well in hand. The 
   anonymous author is obviously a skilled writer, and I look forward 
   eagerly to his or her next game.
Plot -- Well, there wasn't really much of a story to go through, but I
   never felt the lack of it. In short, the premise was clever and substantial 
   enough to make me feel as though I really was living through a
   hilarious night of hell, even though I was really just solving puzzles
   one after another.
Puzzles -- Though it's hard to pick a favorite, I think this was the best
   aspect of BUDDHA. As I mentioned earlier, the puzzles were clever, 
   pitched at just the right level of difficulty, and very well integrated 
   into the overall plot. Some favorites are how to put Bob out of
   commission and then neutralize his snoring, as well as the problem of
   Alice and her radio.
OVERALL -- a 9.4

PUNKIRITA QUEST ONE: LIQUID -- by Ryebread Celsius
Well, this is without question the worst writing I've ever seen in a piece 
of interactive fiction. The only thing I can think is that the author is 
1) not a native English speaker and 2) incapable of or unwilling to find 
a fluent speaker to proof his work. The result is a piece of work which 
is only barely understandable. The piece also had a number of other 
weaknesses including incomprehensible in-jokes, a confusing magic system
which drives the game's sole puzzle, and the fact that the majority of the
world's features are unexplained except in the solution file.
Prose -- The mangled grammar and spelling in the writing are so severe in 
   this game that they are nearly inseparable from the content. The
   author's inability to write clearly in English obscures whatever good
   ideas he may have. This is a work that could only have been published on the 
   Internet -- any medium in which editors keep the gate for published 
   work would have sent this prose back for major revision -- even a 
   spell-check would have done a world of good.
Difficulty -- The most difficult thing was discerning meaning from the 
   tortured writing. After that, the greatest difficulty arose from 
   deciphering the logic behind the game's baffling magic system and
   world rules. I went for the hint file right away, but I confess I 
   didn't try very hard on the puzzle before doing so; at that point I 
   felt quite sure that the writing was bad enough that it would block
   my ability to figure things out on my own.
Technical -- coding -- The game was small enough that not much coding 
   would have been required. There were very few objects to interact with 
   each other. In the portions I played, the coding was creditable. (one 
   exception was the fact that the game referred to footnotes without 
   providing them -- there should have been a response to the verb 
   "footnote" or "note" which explains that the notes are to be found in 
   the solution file.)
          -- writing -- As I said earlier, the only word is atrocious. 
   Unbelievably poor spelling and grammar -- so bad that it made the 
   work almost totally incomprehensible. Apparently the author either 
   didn't have a spell checker or an English dictionary available, or
   had them available but didn't care to use them.
Plot -- From what I could make out, the plot was fairly minimal. However, 
   there may have been more than I could figure out from the writing.
Puzzles -- The only real puzzle didn't make any sense to me, but then 
   again that could also have been the writing. The solution requires a 
   knowledge of the "glow" power of the hero (which apparently generates 
   not only light but heat as well) which may have been conveyed by the 
   text in a part I skipped over as unreadable.
OVERALL -- A 1.7

[continued in part 2]
Paul O'Brian                                     obrian@ucsu.colorado.edu
"It makes no difference which one of us you vote for! Your planet is
doomed! DOOMED!"
							-- Kodos



From obrian@ucsu.Colorado.EDU Thu Dec  5 12:41:37 CET 1996
Article: 20031 of rec.arts.int-fiction
Path: news.lth.se!solace!mn6.swip.net!newsfeed.sunet.se!news01.sunet.se!sunic!02-newsfeed.univie.ac.at!newsfeed.de.ibm.net!newsfeed.uk.ibm.net!news.stealth.net!www.nntp.primenet.com!nntp.primenet.com!feed1.news.erols.com!phase2.worldnet.att.net!uunet!in2.uu.net!128.138.240.25!boulder!ucsu.Colorado.EDU!obrian
From: Paul O'Brian <obrian@ucsu.Colorado.EDU>
Newsgroups: rec.arts.int-fiction,rec.games.int-fiction
Subject: [CONTEST] My reviews, Part 2 (very long)
Date: Tue, 3 Dec 1996 22:00:51 -0700
Organization: University of Colorado at Boulder
Lines: 341
Message-ID: <Pine.GSO.3.95.961203214954.10773B-100000@ucsu.Colorado.EDU>
NNTP-Posting-Host: ucsu.colorado.edu
Mime-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
NNTP-Posting-User: obrian
Xref: news.lth.se rec.arts.int-fiction:20031 rec.games.int-fiction:19292

Continued from previous message:

LISTS AND LISTS -- by Andrew Plotkin
Well, Andrew Plotkin is nothing if not inventive. The implementor of 
Z-Machine Tetris brings us another novelty -- a programming language 
and interpreter set up entirely within the z-machine run-time. Andrew's
Scheme implementation is interesting and even, to a point, fun. I 
definitely look forward to sitting down with it for a longer period of 
time and working at learning what it has to teach. (I never thought a 
text adventure could help me build my resume!) However, after a certain 
point the problems stopped being fun and started being work -- I'm already 
working at learning two languages; learning a third is definitely 
worthwhile, but not my idea of leisure time. And thus I discover a
criteria I didn't even know I had for the competition entries -- I want
them to be an escape from work, rather than (pun intended) "Return to Work"
Prose -- Very little of it, but of course it conforms to the high Plotkin 
   standard of quality.
Difficulty -- I found LISTS to be quite difficult going, but then I'm 
   just working on learning C++ and Inform now, so Scheme was a bit of a 
   leap in abstraction for me. The feeling was reminiscent of just
   beginning to learn UNIX after years of working on DOS (and, to a lesser
   extent, Macs and Windows).
Technical -- coding -- Andrew is the god of Inform coding. All hail
   Andrew.
          -- writing -- Well, of course the main place this came up was in 
   the online manual for the language, which naturally had no errors in 
   spelling or grammar, and in fact was written in a fun jocular style.
Plot -- No. No, not really at all.
Puzzles -- Well the problems were definitely puzzling, and certainly not 
   your standard Interactive Fiction type of puzzle, either. LISTS
   certainly gives a mental workout, but then again so does Calculus I.
OVERALL -- An 8.0

THE CURSE OF ELDOR -- by Stuart Allen
Well, this is a case of what could have been. What could have made for a 
fun, enjoyable game was brought down by a few fatal flaws: buggy coding, 
poor writing, and some clinched settings and puzzles. I gave up on the 
game after about an hour, looked for the walkthrough and couldn't find it.
(I'm assuming there was one and I'm just too blind to figure out where it 
was. However, I didn't appreciate the fact that the help info said to 
type "HELP" and then the topic I needed help with, but didn't ever seem 
to respond to that command structure) Looking at the source code, I see 
there was a councillor who gives me the details of my mission -- 
unfortunately, this councillor never showed up when I ran the game. 
Also, while I commend the author for writing an engine that comes as close
as it does to emulating Infocom, it was missing some key features, such as 
"verbose". Fix up the code, proof the writing, and you could have yourself 
a playable game. Unfortunately, the version that was entered in the 
competition is no such animal.
Prose -- Once in a while the prose would reach a level where I enjoyed 
   reading it. All too often, though, it was simply one trite clich after 
   another (A dragon regards you sleepily, the men are gathered around the 
   roaring fire, etc.) The other problem with the prose was its uneven 
   level of detail -- some things in room descriptions were described at 
   length -- some other obvious features (a twelve foot pit, for example) 
   were not described at all. Also, some simple errors (a room description 
   which tells of an exit leading east when the exit really leads west) 
   lead me to believe that the game was not well beta-tested.
Difficulty -- Well, considering that from the outset something I needed to 
   complete the game was hidden by buggy coding, I'd rate the difficulty 
   right at "impossible."
Technical -- coding -- As I've said, quite spotty. Not to take away from
   the author's accomplishment of creating a free-standing text adventure 
   engine -- this is obviously quite respectable. However, it's not all
   that respectable if it doesn't work. Example bugs are (of course) the 
   councillor, the "help" command that doesn't help, and the fact that 
   basic commands like "verbose" and "again" are unavailable.
          -- writing -- Unfortunately, the writing was littered with quite 
   a few errors, especially spelling errors and simple grammar errors. 
   For example, lots of it's/its errors, which is a pet peeve of mine. 
   Clearly this work was not proofread (at least, I hope it wasn't 
   proofread!).
Plot -- I found it too difficult to get past the bugs to find the 
   development of anything I could reasonably call a plot.
Puzzles -- Once again, the real puzzle was figuring out where the bugs are 
   in the game's code. From looking at the source code, the puzzles I 
   looked at were fairly well-worn (picking a lock with a wire, making 
   an animal sneeze). However, to be fair I didn't come across all that 
   many puzzles on my own, so there may be some better ones that I missed.
   I was unable to find a walkthrough or hints, which would have
   helped a lot.
OVERALL -- A 2.2

MAIDEN OF THE MOONLIGHT -- by Brian P. Dean
This is a game that has a great deal going for it, but unfortunately has 
a few downfalls as well. First, the positives: the accompanying text file 
does an excellent job of setting the scene, and the prose is atmospheric 
and shadowy enough to produce some genuine chills from the experience of 
exploring the haunted manor. I enjoyed piecing the story together from the 
text fragments found in various places in the manse, and felt a genuine 
interest in how the story was going to turn out. Unfortunately, I wasn't
able to find out in the two hours allotted, and therein lie some of the 
problems. Some of the puzzles are quite unfair, the most grievous offender 
being a room which delivers the equivalent of instant death -- destruction 
without warning of the player's light source, and no mechanism provided 
for stumbling about in the dark. That same light source must be used with 
painstaking care, or it sputters out frustratingly early, and the author 
provides no alternative (or at least, none that I could find.) This was 
especially maddening so soon after seeing how well "Aayela" manipulated
the same trope. Maiden is both exciting and irritating -- it promises drama
and intrigue, but many of the obstacles to be overcome along the way are
simply brute force barriers, with none of the subtlety of the best interactive 
fiction.
Prose -- The author's prose does a very nice job of conveying the
   desolate, decrepit mansion. Descriptions of rooms, objects, and the
   moonlight peeking into various locations were all quite literate and strong.
   Also, the Baron's notes gave his voice a credible Victorian timbre -- of
   course, the Baron was supposed to have lived in the 17th century, so
   maybe that isn't such a good thing.
Difficulty -- Well, some parts of the work were quite easy to get through,
   and the pace flowed through them quite smoothly. However, they were 
   stopped dead by the light source puzzles, which made a first-run 
   solution of the game basically impossible. 
Technical -- coding -- Everything was quite smoothly coded. I can't think 
   of any problems I encountered.
          -- writing -- I'm writing this review a few days after last 
   having played the game, so my memory may be faulty on this count, but 
   I don't recall any faulty grammar or spelling.
Plot -- As I mentioned above, I found Maiden's unraveling plot quite 
   engrossing, which made it all the more frustrating to have to be 
   continually restarting the game after my lamp sputtered out. Still, I'm 
   looking forward to returning to the game after the judging period ends
   in order to find out how I can break the Baron's curse over his
   daughter and her paramour.
Puzzles -- Addressed in "difficulty"; some were very straightforward, and 
   others were quite impossible. One which I found particularly thorny was 
   the problem of the spikes atop the iron fence. The way I had envisioned 
   the fence was with tall, sharp spikes, while the solution to the puzzle 
   was more suited to something along the lines of barbed wire. Perhaps 
   a more vivid description here would alleviate the problem.
OVERALL -- An 8.3

PHLEGM -- by Adjacent Drooler
A thoroughly whacked-out romp through realms of surrealism only barely 
touched on by "Nord and Bert," "Phlegm" is pretty low on logic, but quite 
high on goofy gags. Perhaps its funniest moment comes in its opening
screen, where it bills itself as "An Interactive Interactive"; it's the
kind of joke that's only funny the first time, but since it *is* the
first time, it worked for me. Also, in spite of the author's assurance that 
it is impossible to make a mistake that renders the game unwinnable, I 
managed to do it, and I wasn't even trying! (For the record, it's because 
I put the toy elephant in the cart and then torched it with the 
flame-thrower.) Phlegm wasn't really hilarious, but it provided a number
of smiles, and even its puzzles were logical in an illogical kind of way. In 
many ways, the game is like its opening joke -- lots of fun at the moment, 
but not anything you'd ever want to repeat.
Prose -- Lots of cleverly funny little touches, from Leo the lemming 
   whispering "Rosebud..." to the "Lil' Terrorist brand Flame-thrower." 
   The prose was generally lots of fun to read, even if at times the 
   silliness became a wee bit more irritating than amusing. 
Difficulty -- Well, I found myself looking at the hints quite a lot, but
   I'm not sure whether that's because the puzzles were simply difficult, or 
   difficult to take seriously. For some reason, I found myself unwilling 
   to agonize about how to handle the guitar-playing lunatic, and wanted 
   to look at the hints in order to see more of the jokes, since a game 
   like Phlegm suffers quite drastically from a reduction in pace. So I 
   suppose you could say it was a difficult game, but then again I'm glad
   I approached it the way I did -- a plotless work like this one begs 
   to be finished rather than battered.
Technical -- coding -- The coding was on the whole quite strong. I only 
   found one weak spot, which was the fact that I discovered that I could
   carry the powder as long as I was holding the grail -- it didn't need 
   to actually be inside the grail. Somehow I don't think this is what the 
   author intended.
         -- writing -- The writing was pleasantly error-free, which made 
   the humor much more accessible and easy to digest.
Plot -- Well, I couldn't really say there was much of a plot, but on the 
   plus side I don't think much of an attempt was made at one either. So 
   the game was plotless (aside from the very most basic
   "get-the-treasure" motivation), but it didn't suffer all that much from
   being so.
Puzzles -- Some of the puzzles were quite funny, and extremely reminiscent 
   of "Nord and Bert", especially those involving the needle. Then again, 
   some others (the flame-thrower, for example), failed to be a lot of fun 
   in their irrationality. In general, though, I'd call the puzzles 
   successful in what I deduce to be their aim -- parodying typical IF
   problem (the references to "Balances" were especially funny) and 
   providing nutty goals in an off-kilter universe.
OVERALL -- 8.5

THE LAND BEYOND THE PICKET FENCE -- by Martin Oehm
"Picket" is a gently whimsical fantasy without much of a plot, whose main 
interesting feature is its interface. I haven't played much DOS executable 
IF before (Inform, TADS, and Infocom games seem to monopolize my time),
and it was an interesting experience to play a piece of IF in different colors 
from my normal white letters on blue background. The different colors of 
background and text lent a distinctive mood to the piece, and the
effectiveness of this technique makes me realize some of the special
effects we sacrifice in the name of platform independence. A small
sacrifice, perhaps, but a pity nonetheless. As to the content of the game, it was 
basically average -- nothing too irritating or pointless, but nothing 
astounding or groundbreaking either. It provided a pleasant hour's
entertainment, with a few jarring moments where the prose deviated from 
standard English. All in all, an enjoyable if unspectacular game.
Prose -- There were a few moments in the prose where it was clear that 
   the writer did not speak English as a first language, but the fact that 
   those moments were noticeable as exceptions to the general trend means 
   that overall the writer did a fine job of writing in an unfamiliar 
   language. The descriptions were sometimes a little thin, especially 
   with the game's two NPCs, but in general the fairytale fantasy mood was 
   well-evoked by the writing.
Difficulty -- I found this game's difficulty to be pitched a bit below 
   average. I never needed to look at the hints, and felt that I
   progressed through the narrative at a satisfactory pace. I finished the
   game in a little under an hour, which may mean that it was a little too easy
   if a two-hour playing time was intended (I'm certainly not the quickest 
   IF player, as earlier reviews may indicate). However, I never felt 
   disappointed with anything being "too easy" -- easier than usual,
   perhaps, but never to an annoying degree.
Technical -- coding -- There were a few coding problems, and in fact one 
   fatal bug which first made some of my possessions disappear after a 
   restore and then kicked me out of the game altogether. Also, some
   fairly common verbs ("throw", and the "character, command" mode of
   interaction) were not implemented, which was a little disappointing.
   Aside from these problems, the coding was smooth and relatively bug-free.
          -- writing -- As I mentioned above, there were a few instances 
   of awkward grammar which indicated that the writer was not quite 
   comfortable enough with English to sound like a native writer. The 
   problems were relatively infrequent, and had less to do with spelling 
   or grammar errors than with awkward or unusual constructions.
Plot -- Well, the only plot here was a basic "find the object" quest,
   though cast in much less epic/heroic terms than usual, which was refreshing.
   There wasn't much of a sense of unfolding narrative, and many objects 
   were either totally unexplained (the key to the gnome's treasure room
   tied around a swan's neck with a red ribbon? How did that happen?) or 
   so convenient as to be ridiculous (how handy that the scientist just 
   happens to have a powerful fungicide that can kill the problematic 
   mushrooms!), causing the game to feel less like a plotted story than 
   an excuse for stringing puzzles together.
Puzzles -- The puzzles were rather average pieces, some quite derivative 
   (the "key tied around an inaccessible animal's neck" is of course a 
   direct crib from Zork II.) The ordinariness of the puzzles contributed 
   to the game's low level of difficulty -- they weren't too difficult to 
   solve, because they seemed quite familiar, and those that weren't 
   derivative were of the "just-happen-to-have-the-perfect-item" type. 
OVERALL -- A 6.7

PIECE OF MIND -- by Giles Boutel
This story seemed to struggle to find its voice, vacillating between the
chilling (the voice in the boxes), the satirical (the copyright man), and
the bubblegum epic (participating in the adventures of Jeff Steele,
Galactic Hero, and battling the Chromium Knight). The writing never seemed
to settle into one style, and as a result the entire work felt disjointed,
as if it was not the result of a unified vision, but rather a collection
of "wouldn't this be neat?" concepts, halfheartedly strung together. The
other lasting impression left by the game is one of frustration, since a
bug prevents players from winning. Consequently, although Piece has some
interesting moments, it fails as a whole.
Prose -- Lots of the writing was really quite winning, and provided
   several nice moments of humor (the improvised songs) and drama (the
   opening sequence). I just wish the story could decide what it wanted to
   be, because the amalgam lacked an overarching purpose. One final note
   about the prose: I found several of the puzzles quite difficult because
   the room description seemed to belie the character's willingness to
   do the action necessary to solve the puzzle. Examples are smashing the
   television and touching the computer screen. I think that room
   descriptions play a very complicated role in defining the character's
   traits, and while the contradicting room descriptions were an
   interesting experiment, they didn't work for me in this case. Perhaps
   if I'd gotten more sense of desperation, or if the character-defining
   traits ("I've managed to avoid smashing it so far.") were described in
   less of an offhand way, I'd be more inclined to lead the character to
   do things that it is described as wanting to resist.
Difficulty -- Due to the phenomenon described above, I found myself
   consulting the walkthrough quite often. Of course, then there's the
   separate issue of the game's unsolvability. Frustratingly, this bug
   sets the difficulty at "impossible."
Technical -- coding -- Having a game-killing bug prevents Piece from
   getting a high score on coding. Apart from the fact that the game is
   unwinnable, I found the coding to be pretty smooth, although I think
   Inform is capable of handling things more smoothly. For example, when
   walking into the copyright office without clothes, the game should
   prevent the player from entering rather than allowing entrance only to
   revoke it.
          -- writing -- The writing was relatively free of typos (though I
   think I noticed one in one of the box quotations, unless the author is
   playing subtly on the meaning of the = sign.) and grammatically
   correct.
Plot -- Well, I'm not sure I ever really understood the plot, since I
   never got to see the endgame. The concept of a character who is aware
   it is being controlled is an interesting one, and I think one with
   great potential. Unfortunately, that potential is not realized here,
   due to the game's schizophrenic approach.
Puzzles -- As mentioned above, the structure of the room descriptions made
   some of the puzzles quite difficult. Others, though, had their share
   of wit and pizzazz. I especially enjoyed the copyright man.
OVERALL -- A 5.4

RALPH -- by Miron Schmidt/Calyx Software
The concept of Ralph is great fun -- the idea of nosing around as a dog
gives the author the ability to take advantage of some of the most fun
aspects of the text-based interface, putting the player into the canine
mindset with dog's-eye-view room and object descriptions and action
responses. Consequently, Ralph gives a hilarious rendition of the canine
experience, and the little moments this provides (for example, the
reactions to "examine me", "bite blamant", and "dig hole") are the
best parts of the game. On the negative side, however, the game's puzzles
are fairly illogical (perhaps I would understand them better if I were
a dog, but I don't think so), and one particular problem was poorly coded
enough to give it a real "guess-the-verb" feeling. Ralph was fun for the
first hour I played it, but I was frustrated with having to turn to the
walkthrough and find that I had already thought of the solution to the
problem that was stumping me, but hadn't phrased it in exactly the way the
author demanded.
Prose -- The prose in Ralph is unquestionably its best feature. Lots of
   really clever, funny touches make the game a real joy to read, and I
   found myself trying all kinds of things because I knew that I would
   more often than not get a chuckle out of the answer. Of particular
   note are the reactions to "dog-specific" verbs like "scratch", "bark",
   and "wag", which give great context-specific responses.
Difficulty -- Unfortunately, I found it impossible to progress beyond 0
   points without the help of the walkthrough. Even more unfortunately,
   this was because I had chosen the syntax "put sheet in hole" rather
   than "block hole with sheet" -- this is the type of difficulty I don't
   enjoy.
Technical -- coding -- Apart from the above-mentioned problem, I found the
   coding quite competent. Especially noteworthy was the simulated dynamic
   creation of objects (when holes are dug). The author smoothly created
   the impression of being able to dig an infinite number of holes by
   a combination of smart coding and a cleverly worded cap on the
   number of holes dug.
          -- writing -- The prose was technically very strong. I found
   no errors in grammar or spelling.
Plot -- While the plot was quite simple, I didn't find this to be a
   problem, since the viewpoint character was a very simple creature
   himself. The experience of commanding a dog to do random things
   provided a very funny perspective on animal behavior.
Puzzles -- This was the weakest part of Ralph. I found the puzzles quite
   baffling, especially the "guess-the-verb" one but the others as well.
   For example, why would a human scrabbling in the ground for ten
   seconds be able to find a bone which had already eluded a more
   efficient canine nose?
OVERALL -- An 8.4

[Continued in part 3]

Paul O'Brian                                     obrian@ucsu.colorado.edu
"It makes no difference which one of us you vote for! Your planet is
doomed! DOOMED!"
							-- Kodos



From obrian@ucsu.Colorado.EDU Thu Dec  5 12:41:44 CET 1996
Article: 20003 of rec.arts.int-fiction
Path: news.lth.se!solace!mn6.swip.net!news00.sunet.se!sunic!news.sprintlink.net!news-peer.sprintlink.net!su-news-hub1.bbnplanet.com!news.bbnplanet.com!cpk-news-hub1.bbnplanet.com!news.mindspring.com!mindspring!uunet!in3.uu.net!128.138.240.25!boulder!ucsu.Colorado.EDU!obrian
From: Paul O'Brian <obrian@ucsu.Colorado.EDU>
Newsgroups: rec.arts.int-fiction,rec.games.int-fiction
Subject: [CONTEST] My reviews, Part 3 (very long)
Date: Tue, 3 Dec 1996 22:16:01 -0700
Organization: University of Colorado at Boulder
Lines: 399
Message-ID: <Pine.GSO.3.95.961203220116.10773C-100000@ucsu.Colorado.EDU>
NNTP-Posting-Host: ucsu.colorado.edu
Mime-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
NNTP-Posting-User: obrian
Xref: news.lth.se rec.arts.int-fiction:20003 rec.games.int-fiction:19279

Continued from Part 2:

REVERBERATIONS -- by Russell Glasser
This game was strong on good intentions, but rather weak on execution. The
plot of the pizza delivery boy who foils the giant conspiracy was clever
and lots of fun to play through, but the enjoyment was dampened by several
technical problems in the game's interface. Witty remarks abounded, and
some unlikely actions were anticipated quite hilariously, but the positive
effect of these features was counterbalanced by some logical errors in the
game's construction. It was a fun game, and with some polishing could be
a real gem of IF, but in the state it was in for the competition, its
great ideas were bogged down by flawed coding and language.
Prose -- In some areas the prose was outstanding -- economical
   descriptions which brought off the flavor of an object or area without
   getting mired in detail. In other areas the prose failed to note rather
   important aspects of a scene (the most grievous offense occurring at
   the very first room of the game.) Finding the clever responses was the
   greatest pleasure in the game, though sometimes the "SoCal" references
   felt quite self-conscious; overall the game's prose was like the game
   itself: strong ideas weakened by problems in key areas.
Difficulty -- I never found myself resorting to the hints, but I was
   occasionally forced to solve problems in the game by exploiting the
   logical errors in its structure. For example, the beginning sequence
   gives no indication that a pizza needs to be delivered -- I didn't find
   out until I tried to leave town and the game told me "You aren't
   leaving town until you deliver that pizza." What pizza? Why, the one
   never mentioned in the initial room description! Consequently, the game
   was somewhat difficult, but for the wrong reasons.
Technical -- coding -- The game suffered from several coding problems,
   including not only the one mentioned above, but a disappearing door
   (to the mayor's office), a store manager who only notices stealing
   when it conflicts with the plot, a pizza box and note which drift from
   room to room, and several rooms which do not contain text for items
   mentioned in their description. On the other hand, there are some
   shining moments in the coding as well, such as tailored responses to
   YES and NO.
         -- writing -- The writing's occasional proofing errors provide a
   bit of unintentional humor, such as when the game describes the
   district attorney as being "only... uh, ten years old than you!"
Plot -- The plot of the game was great! The fun and zaniness of foiling
   the conspiracy made the game's technical errors much more
   forgivable. Several moments in the plot were even quite inspired, and
   felt intuitively right in the unfolding story. Examples include
   kicking the window while hanging on the ledge and throwing the bomb
   in the sewer.
Puzzles -- Some of the puzzles (such as getting past the security guard
   and getting rid of the bomb) were quite good and managed to achieve the
   subtle balance between the problem logically blocking the narrative
   and the solution advancing it. The puzzles that presented real problems
   were based on coding flaws rather than conceptual ones, such as the
   initial pizza problem and the final rope problem, which defeats so many
   attempted verbs that one *feels* like jumping off the building.
OVERALL -- A 7.9

RIPPLED FLESH -- by Ryebread Celsius
Having already played the author's other competition entry, I sincerely 
dreaded playing this one. Probably my low expectations contributed to my 
feeling that this game was actually slightly better than PUNKIRITA QUEST.
Sure, the writing is still riddled with errors, and sure, the plot and 
premise still make absolutely no sense, and yes, the coding is very poor
and the design even more so, but at least this time I had some faint grasp of 
what was *supposed* to be happening. Perhaps this derives from the fact
that FLESH takes a more realistic setting and thus less needs to be
explained by the author's inadequate verbal skills. Of course, that
doesn't mean I liked it -- just that it was less painful than the other
game. Progress? Perhaps -- I'll just try to judge the game on an objective
basis rather than on its dubious achievement of being a better piece of
work than PUNKIRITA.
Prose -- The descriptions were weak, and the overall feel of the game 
   evoked walking through the brain of a mental patient -- a series
   of non sequiturs, loosely tied together by an irrational framework. 
   The writing suffered under so many errors that they seriously occluded 
   the author's ability to communicate, and this problem was compounded 
   by the fact that many (most, actually) of the objects and rooms in the 
   game seemed to have no real purpose or function.
Difficulty -- I found it possible to move through the game without much 
   trouble, which is a good sign; at least the language problems didn't
   render the game so opaque that it was simply impossible to complete 
   without a walkthrough. Mainly the point of the game simply seemed to 
   be finding one's way through a maze of rooms -- the one real puzzle
   (the wardrobes) had its effect spoiled by the fact that one didn't 
   really gain much of anything by solving it.
Technical -- coding -- Coding problems abounded. Nothing fatal, but 
   certainly plenty of the nonsensical and downright baffling. For
   example, how about those lights that get turned on so brightly that
   they blind the character, yet in the next turn the room is still dark?
         -- writing -- Really quite terrible. My only hypothesis is that 
   the author is a student (rather than a speaker) of English, and a
   rather poor one at that. A dictionary and a spell-checker would improve
   things immensely -- then the proofreading can begin.
Plot -- No, there wasn't one. A bunch of random events tied together by 
   a whacked-out ending does not a plot make.
Puzzles -- I mentioned the game's only real puzzle above. Other than that, 
   the game's "puzzle" was just walking through the exit in each room 
   until finally arriving at the "win game" room. Nothing much made sense,
   and so the whole experience ended up being unsatisfying. The real
   brain-twister is why the author chose to enter this piece into the 
   competition in the first place.
OVERALL -- A 2.0

THE METEOR, THE STONE, AND A LONG GLASS OF SHERBET -- by Angela M. Horns
I was very impressed with "Sherbet", a highly inventive adventure which
puts yet another imaginative spin on the Zork mythos. The game's prose is
at a very high level of quality, its world is very well-designed, and
several aspects of the documentation (the context-sensitive hints and the
diplomatic "briefing") were very well done indeed. I didn't get through
the entire game in the two hours allotted, and I found myself resorting to
the hints quite a lot. Often, this was because a logical puzzle had me
stumped, but the first two times were due to puzzles which didn't offer
enough alternative syntax. Unfortunately, these two situations inured me
to looking at the hints, thinking perhaps that my other obstacles were
due to syntax problems as well. Apart from this one flaw, "Sherbet" was
a truly excellent piece of work -- well-plotted with clever puzzles,
a strong sense of unfolding narrative, and rife with the pleasures of
revisiting an old friend in a new context.
Prose -- The game's writing consistently maintains an exceptional level of
   quality. The vacuous' Amilia's ramblings serve exquisitely to define
   her character, and the "briefings" concisely draw the player's
   diplomatic situation while quietly evoking Zorkian echoes. I found
   myself just a little confused by some of the cave descriptions, but
   this was mainly due to the sense of scope which the author unerringly
   conveys.
Difficulty -- As I mentioned, the game was too difficult (and large) for
   me to complete in the two hours allotted for judging time, and part of
   this difficulty arose from problems with the first two puzzles. After
   finally summoning the bird of paradise, I spent a good fifteen minutes
   trying to pour, put, rub, insert, or otherwise attach the sherbet to
   the elephant before finally resorting to the hints only to discover
   that the game demanded I "throw" the sherbet glass. However, in other
   spots the difficulty of the game was quite legitimate and logical, as
   in the instance of the ladder problem, which was another solution I
   found in the hints rather than finding it myself.
Technical -- coding -- On the whole, the game was very well coded, and I
   never found the kind of irrational flaws which can snap the suspension
   of disbelief in interactive fiction. There were a few spots where the
   game suffered from a lack of synonyms, especially the elephant (as
   described above) and the hook (one must again "throw rope over hook"
   but cannot stand on the table or hamper, lasso the hook, simply "throw
   rope", "put rope on hook", or even "throw rope onto hook".) When these
   problems are eliminated , the game will be very strong indeed.
          -- writing -- "Sherbet" is a well-written and well-proofed piece
   of work in which I don't recall noticing any technical mistakes.
Plot -- It was a great pleasure to get embroiled in the plot, and the
   premise of the main character as a diplomat rather than an adventurer
   provided a break from cliche married with a plausible reason for the
   snooping called for by the game's structure. I'm looking forward to the
   endgame, which I hope will offer a tie between the game's diplomatic
   beginnings and its Zorklike middle.
Puzzles -- Mostly discussed above in "Technical -- coding" and
   "Difficulty." Many of the puzzles were real pleasures (panning and the
   ladder come to mind) and the twist on treasure collecting (giving all
   the treasures to the Zork adventurer) was brilliant. Once the puzzles
   are better coded the game will be really first-rate.
OVERALL -- A 9.3

SMALL WORLD -- by Andrew Pontious
I really enjoyed this game a great deal, and it definitely gets points for
originality. The literalized version of the game's title made for a
charming premise, and because the premise was so heavily based on setting,
the brand of fantasy which resulted was perfect for interactive fiction.
Wandering through the miniaturized world was really a treat, although
sometimes I found it difficult to retain my suspension of disbelief,
especially since some of the obstacles to my progress seemed just a little
*too* arbitrary. For example, the inventory management problem caused by
the lack of gravity in the majority of the game's locations was a major
pain in the neck. I didn't feel that I was doing anything clever or
solving an intellectual challenge when I had to trudge back to Dawn
anytime I wanted to get something from the backpack. Puzzles like this,
which tended toward the arbitrary, were the game's weakness. From the weak
gravity problem to the "loose ring" to the capricious magic rod, the game
took advantage of its whimsical setting to create puzzles which were
irrational and divorced from reality, and failed to provide enough hints
and description to make them reasonably solvable. On the other hand,
some puzzles (such as the satellite/snow puzzle and the lagoon) did a
very nice job of exploiting the game's scenario to witty ends.
On the whole, "Small World" was a delightfully well-written game which has
a few flaws, but is nevertheless lots of fun.
Prose -- The prose which describes the world is very well done indeed, and
   much of the time I really felt a part of the situation because of how
   well the worlds Lilliputian proportions were described. The game
   obviously draws heavily on "Gulliver's Travels", especially in its
   description of the player staked to the ground by tiny people, and
   though it shares none of Swift's social commentary, it does convey a
   distinct sense of his imaginative milieu. The main weakness in the
   prose related to the puzzles. In puzzles such as the loose ring and the
   rod, I didn't feel that enough description was provided to allow me to
   reasonably predict the outcomes of my actions, and consequently I ended
   up solving some puzzles by force. (e.g. how would I know that something
   made of silver would buoy me?)
Difficulty -- I found the game rather difficult, and ended up referring to
   the "cheat" hints a number of times (13, or so I'm told by the game).
   Unfortunately, much of this reliance was due to the lack of
   information described above or, in one case, to a lack of synonyms.
   When these features are improved, the game's difficulty will be well
   pitched.
Technical -- coding -- There's little to complain about in the coding of
   "Small World," so I hope my quibble doesn't receive undue focus. On the
   whole the game was very smoothly implemented, and I never found myself
   searching for the right word, except for once. Of particular note were
   the game's warnings before moving to an unsolvable state, and its
   ingenious hinting system. The one area in which I had trouble was in
   receiving the "that verb isn't implemented" response to "CLEAN SOCKS."
   When that verb wasn't available, I presumed I was on the wrong track
   altogether, not that I simply needed to "WASH" the socks instead. It
   took a "cheat" to get me out of that one.
          -- writing -- The game's writing was technically proficient.
   Mr. Pontious does a nice job of eliminating errors in grammar and
   spelling.
Plot -- The plot of the game was really quite sweetly designed, creating 
   a childhood fantasyland which was evocative not only of Jonathan Swift,
   but also C.S. Lewis' Narnia works, Lewis Carroll, and Bill Watterson.
   The battles between Heaven and Hell were a very nice touch, and
   I smiled at the gentle ending, which packs the character off to the
   hiking trip with a refreshed perspective.
Puzzles -- This is my main difficulty with the game. As I mentioned above,
   some of the puzzles were really delightful and smart, while others
   felt a bit lazy. I think, though, that with the addition of richer
   descriptions for crucial objects such as the ring and the pipe (whose
   mechanism is mysterious to me even now), and with a closer attention
   to synonyms, these wrinkles will be well-ironed.
OVERALL -- An 8.8

THE HOUSE OF THE STALKER -- by Jason Clayton White
A promising beginning turns into an excruciating series of coding and 
design errors and irritating writing. It's hard to know where to
begin with the criticisms. The tone of many of the responses was a kind of
smarmy, smart-alecky wit which undercut any dramatic buildup or fear
created by the tense premise. The underlying idea is good, but its
execution was rife with logic errors. I can think of at least a dozen
plausible solutions that were not implemented. For example, if I squirt
the killer with Drano then try to go to the porch for help, I'm told "You
can't go that way." (Oh no, he's so dangerous he can make my door
disappear!). Another example: I can wander through my entire house without
meeting the killer, so why don't I just call the police? Well, not one
single room in the house has a phone. Add to this some fundamental coding
errors, unconvincing writing, and "read the author's mind" puzzles, and
the result is a distinctly unenjoyable game. 
Prose -- The opening sequence of the game got me quite interested, but
   most of the other prose served to undo tension rather than create it.
   For example, the author tries to create emotional depth to the
   character by describing a recent divorce. After about a paragraph of
   this, the game says "Now that you've had a good cry, maybe you'd like
   to try preserving your life some, hmm?" The condescension and flippancy
   in this narrative tone completely destroy any gradually building sense
   of empathy or emotional urgency. Also, object descriptions give no
   thought to the interactivity of the game. For example, every time you
   look at the TV, an announcer breaks into a show and says the exact same
   thing. The hair dryer is described as having its cord hanging off the
   sink... no matter where you take it. This is lazy writing, and it
   obliterates suspension of disbelief.
Difficulty -- I used the hints to get through the entire game once I
   realized that there was only one way to solve it and that was by
   doing exactly what the author had in mind, since no reasonable
   alternatives are provided. This kind of difficulty tests one's
   patience, not one's intelligence.
Technical -- coding -- Coding errors were everywhere. For example:
   The player must remove a scarf from a doll, but this can only be done
   in the room where the doll is originally located. Trying "YANK SCARF"
   anywhere else gets a response of "You can't see any such thing."
   Another example: "PUSH CHAIR" gets the response "You push the chair
   over to the bookcase." "PUSH CHAIR TO BOOKCASE" gets the response
   "You can't see any such thing." The only other character in the
   program, the killer, wasn't even implemented as animate. ("SHOW
   PICTURE TO KILLER." gets "You can only do that to something animate.")
   Like the writing, the coding was lazy and ineffective.
          -- writing -- There were very few technical errors in the
   writing. It's frustrating -- a good idea with technically sufficient
   writing ought to have been a much better game.
Plot -- The premise had the promise of being extremely gripping and
   intense. The idea that danger lurks around every corner of a familiar
   setting has the potential to be great interactive fiction. However, by
   the end of the game, the idea of plot degenerated into a series of
   arbitrary but extremely specific actions performed on the killer's
   body.
Puzzles -- The puzzles were very difficult because of their arbitrary
   nature. One has to do a very specific and exact sequence of actions
   to the killer's body before the game won't respond to "KILL STALKER"
   with "Violence isn't the answer to this one."
OVERALL -- A 2.5

STARGAZER: AN ADVENTURE IN OUTFITTING -- by Jonathan Fry
Stargazer worked quite well as a prologue, but I'm not sure I cared for it
much as a stand-alone game. Just about the time I thought the action was
about to start, the entire game ended. This made for a rather
anticlimactic experience, especially since I worked through the game in
well under the two hours allotted. Also, the game's brevity worked at
cross purposes to its genre; confusing references and unfamiliar objects
can usually be let slide in fantasy since they are sure to be explained
later. Not so in "Stargazer." Aside from these problems, however, the
piece was fairly enjoyable. There were a few technical problems, but
nothing too great, and the author created a world I wanted to learn more
about, which is certainly a step in the right direction. Stargazer worked
well as a prologue -- I look forward to the game.
Prose -- Aside from the sometimes awkward or convoluted sentence structure
   ("One reason for this is that this is also...", "...any other senses
   you may have."), the prose worked fairly well. I got a nice sense of
   the turbulence of the river, and I thought the dialogue worked fairly
   well. Nothing was wonderfully well-crafted, but most was certainly
   serviceable.
Difficulty -- I found the game quite easy -- I finished it in about 40
   minutes. Unfortunately, this ease aided the sense of anticlimax
   triggered by the game's abrupt ending.
Technical -- coding -- Overall the coding was strong, though there were
   a few weak points. These points included: two separate moss/lichen
   objects which shared names, so that in one location "X MOSS" yielded
   "Which do you mean, the moss or the lichen?" over and over again;
   an object which is on a rock across a rushing river, yet which can
   still be touched or moved, a god who demands a sacrifice when the verb
   "sacrifice" isn't in the game's vocabulary, and a dusty lens which
   responded to "X DUST" with "You can't see any such thing."
          -- writing -- The writing was sometimes rather awkward, but
   it was generally correct in spelling and grammar.
Plot -- Well, Stargazer didn't contain much plot, though it did have
   the beginnings of one, and probably contained a lot of foreshadowing
   (though it's difficult to tell without seeing the story ahead).
   What was there was an intriguing beginning, but not much more.
Puzzles -- While quite easy, the puzzles moved the story along well, and
   were very well integrated with the storyline. I'll be interested to
   see what challenges the author has in store in the actual game.
OVERALL -- A 6.6

TAPESTRY -- by Daniel Ravipinto
I thought this was really an impressive piece of work. Yes, it was a bit 
heavy-handed at times, and probably a little too derivative of Neil 
Gaiman's visions of Fate and Evil in his Sandman cycle. But nonetheless, I
found the situations compelling, the dilemmas convincing, and if a work 
is going to be derivative of someone, you could do a hell of a lot worse
than Gaiman. I sometimes resented having my emotions so blatantly 
manipulated (somewhat akin to my feelings in a few Spielberg films) by 
the Dickensian drama of the mother and wife with wasting illnesses, the 
struggling family business on the edge of ruin, and the innocent "victims
of inexorable fate" in the form of an onrushing car. Still, the fact is
that the work succeeded in pushing my emotional buttons, and I was moved by the 
story. Tapestry is an ambitious piece, and both its successes and its 
failures are due to its exploration of the possibilities of interactive 
fiction. For example, the feeling of not being able to control the car 
despite what you order the character to do is an extremely chilling one,
and it is an effect that would not pack the same potency were it attempted in 
static fiction. By the same token, though, exchanges with the wraith
seemed a bit forced due to the limits of the medium -- often complex points were 
reduced to the level of trying different versions of "tell wraith about
x". I have to admit, even though I'm educated enough to recognize
"Morningstar" as Lucifer (the author even whispered in my ear to tell me
so), I still chose his path my first try through the game. At the
endgame, I was forced to think about my choices, and to recognize that I
had been (and therefore could be) manipulated into making a choice that
was wrong for the character, even if it wasn't morally wrong, even if it
is the choice I myself would have made under the circumstances. It wasn't
a nice feeling.
Prose -- The prose tended toward the histrionic at times, and
   unfortunately this actually occasionally diluted the emotional impact
   of the situations. However, my experience of those moments was that
   they stuck out from the general trend of the writing, which was quite
   craftily done, and in fact sported some moments of real intensity and
   poignancy despite the occasional clich.
Difficulty -- I didn't find the game too difficult to get through, but
   then again it wasn't particularly puzzle-oriented. In fact, the path of 
   Morningstar required a great deal more puzzle-solving than the path of 
   Clotho (which is the other one I tried). Is there a message here?
Technical -- coding -- On the whole the coding was quite proficient. I 
   was a little unhappy with what I perceived as some shortcuts (for
   example, a medicine bottle not implemented as a container), and the
   author's realistic setting caused a few problems with Inform's standard
   responses. (Examples: entering "DIAL 911" and being told "You don't
   know that phone number.", and being told that I really should clean the soot
   that's collected on my carpet, yet "CLEAN SOOT" receives a reply of "You 
   achieve nothing by this.") Apart from these details, the coding was 
   accomplished quite handily.
          -- writing -- Grammatical and/or spelling problems and typos
   were not entirely absent, (I remember noticing an "a" used in place of an
   "at" or some such) but they were very few and far between. 
Plot -- I found the plot quite compelling. The prologue worked quite well 
   for me, (though I did appreciate the "begin" command after my first
   time through) and the mutually exclusive endings were well planned. 
   Ultimately, the game's plot boils down to the idea that moral dilemmas 
   can be extremely powerful in the medium of interactive fiction. I think 
   this is a very, very good idea indeed.
Puzzles -- As mentioned above, this work wasn't really very
   puzzle-oriented. The puzzles that were included were integrated well
   with the game -- no gratuitous grafted-on "crossword" elements -- and
   this was both a strength and a weakness. The strength: nothing
   interrupted the suspension of disbelief created by the game's dramatic
   scenarios. The weakness: character-driven puzzles (which most of these
   were) all too often boiled down to how to fill in the blanks on "tell
   ____ about ____."
OVERALL -- A 9.4

Whew! Once again, my hearty congratulations to all the authors, and thanks
to those of you who gave me feedback on my game. Hmmm. I also just
realized that apparently my spell-checker put accented "e"s (which my
news posting program can't handle) for every time I wrote the word
"cliche", making it come out "clich". Oops. Well, so much for perfection.
On to next year!

Paul O'Brian                                     obrian@ucsu.colorado.edu
"It makes no difference which one of us you vote for! Your planet is
doomed! DOOMED!"
							-- Kodos



From jgoemmer@micron.net Thu Dec  5 17:13:00 CET 1996
Article: 20049 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news00.sunet.se!sunic!news.sprintlink.net!news-peer.sprintlink.net!news.sprintlink.net!news-hub.sprintlink.net!news.sprintlink.net!news-fw-12.sprintlink.net!news.micron.net!news
From: Jay Goemmer <jgoemmer@micron.net>
Newsgroups: rec.games.int-fiction,rec.arts.int-fiction
Subject: AGT v1.83 rears its ugly head [was Re: XYZZYnews?]
Date: 5 Dec 1996 06:13:54 GMT
Organization: Downbelow Station  ( http://netnow.micron.net/~jgoemmer/ )
Lines: 38
Message-ID: <585p72$6mi@is05.micron.net>
References: <5858d6$co7@herald.concentric.net>
NNTP-Posting-Host: ctwf011p03.twf.micron.net
Mime-Version: 1.0
Content-Type: text/plain
Content-Transfer-Encoding: 7bit
X-Mailer: Mozilla 1.2N (Windows; I; 16bit)
To: r-smith@concentric.net
Xref: news.lth.se rec.games.int-fiction:19305 rec.arts.int-fiction:20049

Subject: AGT v1.83 rears its ugly head [was Re: XYZZYnews?]

r-smith@concentric.net wrote:

> Also, on a completely different subject, I have heard about a version 
> of AGT called AGT Version 1.83, but have not been able to find it on 
> the if-archive.  

   <heavy sigh>   Where to begin?  The most recent (legal) version of AGT 
Classic is v1.7.  It's *much* sturdier than v1.83, which is actually an 
unauthorized extension of AGT Classic.  It was formerly found in the 
following directory:
                         if-archive/programming/agt

   I imagine it was removed from the IF archive at the request of Mark 
Welch, one of AGT's co-authors.  

   Robert Masenten, the author of AGiliTy, has plans to write a "Universal"
compiler which would be compatible with both Classic and Master's Edition 
AGT source code, and would also incorporate the options and metacommands
implemented in AGT Classic 1.83.  (I should point out that I am labeling 
v1.83 as "Classic" merely to differentiate it from the Master's Edition, 
and I am *not* implying that v1.83 is identical to or authorized as is, 
say, AGT Classic v1.7.)

   The Master's Edition v1.6 is the most recent update of *that* version, 
and is much more flexible than AGT Classic.  Of course, if you can already
think in AGT Classic nomenclature, it *does* take a little bit to make the
leap to the Master's Edition, but it's worth the effort.

   Additionally, AGT Classic games can be converted to Master's Edition 
format by using a utility program called AGTLABEL (included with v1.56 of 
the Master's Edition).  

   Want to discuss this further?  Please contact me directly.

--Jay Goemmer  (jgoemmer@micron.net)



From DGATEWOO@MUSIC.CC.UGA.EDU Thu Dec  5 17:16:55 CET 1996
Article: 20060 of rec.arts.int-fiction
Path: news.lth.se!solace!demos!news.stealth.net!www.nntp.primenet.com!nntp.primenet.com!mindspring!cssun.mathcs.emory.edu!news.service.emory.edu!hobbes.cc.uga.edu!128.192.253.5
From: Dave Gatewood <DGATEWOO@MUSIC.CC.UGA.EDU>
Newsgroups: rec.games.int-fiction,rec.arts.int-fiction
Subject: Contest - Best Puzzles
Date: 05 DEC 96 10:25:04 EST
Organization: The University of Georgia
Lines: 21
Sender: usenet@MUSIC.CC.UGA.EDU
Message-ID: <05DEC96.11251271.0239@128.192.253.5>
NNTP-Posting-Host: music.cc.uga.edu
Xref: news.lth.se rec.games.int-fiction:19310 rec.arts.int-fiction:20060

I was wondering which of the contest puzzles people found to be the
most entertaining.

My personal favorite is easily the last exercise in "Lists" - the
"pocket" exercise.  Yeah, I know, it's an exercise, not a puzzle, but
it was the most head-scratchingly intriguing problem in the contest,
and by far the most satisfying to solve.  I haven't been so pleased
with myself since opening the chest in Magic Toyshop.

My runner-up is "Leo and the Moose Head."  At least one reviewer here
disliked it, with a comment to the effect of "Who would think of that",
but I think the text gave just the right amount of nudge, and as soon
as I thought of it I knew it was the right solution.  The whole idea
of it is hilarious.  (I was also pleased that I had no trouble
getting the parser to understand this complex command.)

There were plenty of other puzzles I liked that I could mention, but
these two in particular really stick in my mind.

Dave



From dmb@ai.mit.edu Thu Dec  5 17:17:13 CET 1996
Article: 20052 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news01.sunet.se!sunic!02-newsfeed.univie.ac.at!newsfeed.de.ibm.net!newsfeed.uk.ibm.net!news.stealth.net!news.idt.net!news.bbnplanet.com!cam-news-hub1.bbnplanet.com!howland.erols.net!bloom-beacon.mit.edu!ai-lab!rice-chex!dmb
From: dmb@rice-chex.ai.mit.edu (David Baggett)
Newsgroups: rec.arts.int-fiction
Subject: Re: More advertising
Date: 4 Dec 1996 01:48:39 GMT
Organization: MIT Artificial Intelligence Lab
Lines: 27
Message-ID: <582l9n$fk0@life.ai.mit.edu>
References: <57b36h$c3g@linux.cpsc.ucalgary.ca> <57v2nm$fou@prometheus.acsu.buffalo.edu> <58201d$st6@life.ai.mit.edu> <erkyrathE1uzzD.JI0@netcom.com>
Reply-To: dmb@ai.mit.edu
NNTP-Posting-Host: rice-chex.ai.mit.edu

In article <erkyrathE1uzzD.JI0@netcom.com>,
Andrew Plotkin <erkyrath@netcom.com> wrote:

>But I get annoyed when someone inserts his pet subject into arbitrary 
>unrelated threads. 

So do I, but I can also empathize with someone who's done a hell of a lot
of really interesting theoretical and practical work for IF and presented
it, only to have it ignored, or to have it ignored and then subsequently
appear, unattributed, in other people's stuff.  (Examples of mine:
WorldClass, adaptive hint systems, etc.)

I suppose whereas you have a pet peeve about seemingly unrelated posts, I
have one about people not paying attention to good work, or crediting
people for doing it...

Hugo and Alan both deserve more props than they get here too.  The world
does not revolve around Inform, despite how cool the Z-Machine was...  :)

(No, it's not a big deal.  But it's worth a post or two to let Phil know
that his work's not being totally ignored.)

Dave Baggett
__
dmb@ai.mit.edu
"Mr. Price: Please don't try to make things nice! The wrong notes are *right*."
--- Charles Ives (note to copyist on the autograph score of The Fourth of July)


From nkg@vcn.bc.ca Thu Dec  5 19:41:31 MET 1996
Article: 20051 of rec.arts.int-fiction
Path: news.lth.se!solace!news.stealth.net!www.nntp.primenet.com!nntp.primenet.com!feed1.news.erols.com!arclight.uoregon.edu!news.bc.net!unixg.ubc.ca!freenet.vancouver.bc.ca!nkg
From: nkg@vcn.bc.ca (Neil K. Guy)
Newsgroups: rec.arts.int-fiction
Subject: Re: First person, past tense
Date: 5 Dec 1996 10:01:53 GMT
Organization: Vancouver CommunityNet
Lines: 44
Message-ID: <5866ih$mag@milo.vcn.bc.ca>
References: <E1rGyL.8Jp@raisin.bagel.org> <erkyrathE1so71.JAq@netcom.com>
NNTP-Posting-Host: opus.vcn.bc.ca
X-Newsreader: TIN [version 1.2 PL2]

Andrew Plotkin (erkyrath@netcom.com) wrote:

: I find that it actually widens the gap between player and character. 

 Yeah... I tend to agree. Traditional novels are generally written from
the point of view of this omniscient chronicler, dispassionately reporting
events in some unspecified past. Switching to present tense can lend an
interesting immediacy sometimes.

 Here's a little thing I played with the other day. I grabbed the first
book at hand - which happened to be Neuromancer (geek alert) and rewrote
it to present tense second person. I suppose this is a derivative work
based on Mr. Gibson's copyrighted intellectual property, but I kept the
quote down to only a few words so I'll handwave and claim fair use.

 *************

	The sky above the port is the colour of television, tuned to a
dead channel.
	"It's not like I'm using," you hear someone say, as you shoulder
your way through the crowd around the door of the Chat. "It's like my
body's developed this massive drug deficiency." It's a Sprawl voice and a
Sprawl joke. The Chatsubo is a bar for professional expatriates; you can
drink here for a week and never hear two words in Japanese.
	Ratz is tending bar, his prosthetic arm jerking monotonously as he
fills a tray of glasses with draft Kirin. He sees you and smiles, his
teeth a webwork of East European steel and brown decay. You find a place
at the bar, between the unlikely tan on one of Lonny Zone's whores and the
crisp naval uniform of a tall African whose cheekbones are ridged with
precise rows of tribal scars. "Wage was in here early, with two joeboys,"
Ratz says, shoving a draft across the bar with his good hand. "Maybe some
business with you, Case?"
	You shrug. The girl to your right giggles and nudges you.

 ******

 Pretty blah, isn't it? But is that because we're used to the other form?
I dunno...

 - Neil K.

--
        the Vancouver CommunityNet   *   http://www.vcn.bc.ca/
              (formerly the Vancouver Regional FreeNet)


From mol@bartlet.df.lth.se Thu Dec  5 19:41:52 MET 1996
Article: 20068 of rec.arts.int-fiction
Path: news.lth.se!news
From: mol@bartlet.df.lth.se (Magnus Olsson)
Newsgroups: rec.arts.int-fiction
Subject: Scond person, present tense (was: First person, past tense)
Date: 5 Dec 1996 19:40:56 +0100
Organization: The Computer Society at Lund University and Lund Institute of Technology
Lines: 56
Message-ID: <5874vo$iil@bartlet.df.lth.se>
References: <E1rGyL.8Jp@raisin.bagel.org> <erkyrathE1so71.JAq@netcom.com> <5866ih$mag@milo.vcn.bc.ca>
NNTP-Posting-Host: bartlet.df.lth.se
NNTP-Posting-User: mol

In article <5866ih$mag@milo.vcn.bc.ca>, Neil K. Guy <nkg@vcn.bc.ca> wrote:
>Andrew Plotkin (erkyrath@netcom.com) wrote:
>
>: I find that it actually widens the gap between player and character. 
>
> Yeah... I tend to agree. Traditional novels are generally written from
>the point of view of this omniscient chronicler, dispassionately reporting
>events in some unspecified past. 

Well, novels *used* to be written in the POV of an omniscient chronicler, 
but that wa a long time ago. The practice is frowned upon nowadays, and
most writing manuals stress the fact that the writer should, even in
a third-person narrative, use the POV of a single character at a time
(POV can shift to other characters, of course). (But of course you already
know this).

>Switching to present tense can lend an
>interesting immediacy sometimes.

Indeed, and already the ancient Greeks knew that. The "historic
present tense" is used frequently by the ancient writers for that
purpose, and they often switch in mid-sentence. Of course, classical
Greek has a different tense structure than modern languages, so the
parallel isn't exact.

> Here's a little thing I played with the other day. I grabbed the first
>book at hand - which happened to be Neuromancer (geek alert) and rewrote
>it to present tense second person.

(Text snipped)

> Pretty blah, isn't it? But is that because we're used to the other form?
>I dunno...

I think it's because you're making a word-for-word "translation" of
some very finely crafted prose, and then comparing it with the
original. Gibson is a brilliant stylist and any change to his text is
likely to be to the worse. This doesn't mean that there's anything
wrong with second-person-present-tense, just that you can't just
change the person and tense and expect the text to have the same
artistic qualities.

But it's funny that you chose Gibson: I have a feeling that the
cyberpunk genre is somehow suited for second-person narrative, perhaps
because of the intensity and sense of presence that's a hallmark of
the genre. Perhaps the first chapter of Stephenson's _Snow Crash_
would be even more effective if written in the second person?

Finally: I've said it before, I say it again: I think the only reason
second-person narrative isn't common is tradition. First-person
narrative used to be acceptable only in memoirs and novels pretending
to be memoirs (like _Robinson Crusoe_); nowadays, it's acceptable in
all contexts. Perhaps in the future the same will be true of
second-person narrative?
-- 
Magnus Olsson (mol@df.lth.se)


From skinner@news.ohioonline.net Thu Dec  5 21:56:06 MET 1996
Article: 20069 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news99.sunet.se!newsfeed.luth.se!news.luth.se!eru.mt.luth.se!www.nntp.primenet.com!nntp.primenet.com!howland.erols.net!vixen.cso.uiuc.edu!newsfeed.internetmci.com!news.ohioonline.net!news.ohioonline.net!not-for-mail
From: skinner@news.ohioonline.net (Suzanne Skinner)
Newsgroups: rec.arts.int-fiction
Subject: Re: Competition games: memorable scenes
Date: 4 Dec 1996 16:06:36 -0500
Organization: OhioOnline, Inc.
Lines: 42
Distribution: world
Message-ID: <584p4s$493@mail.ohioonline.net>
References: <32A53A69.2E21@hermes.cam.ac.uk>
NNTP-Posting-Host: mail.ohioonline.net
X-Newsreader: TIN [version 1.2 PL2]

Chuan-Tze Teo (ctt20@hermes.cam.ac.uk) wrote:
: To start a completely different thread, which scenes from the competition 
: games stuck in your mind?

Delusions:
  Listening to Cynthia talk about me (a.k.a. that....THING) through
  the locked door. Very surreal, very disturbing.
  Seeing myself in the mirror for the first time.
  
Tapestry:
  The first appearance of the Fates. I don't care if it's derivative of
  someone (as a few have claimed) -- the imagery here fascinated me.
  
Sherbet:
  Hatching the dragon/hornet (straight into the killer flower...)

Fear:
  Fumbling with the keys as the police pound on the door, then finally getting
  it open and stepping out into the sunlight.
  
Aayela:
  The gradual rising intensity of the music until it is continuous and
  everpresent...
  The burst of emotion/sound/light upon breaking the crystal open.
  
Small World:
  The devil jumping up and down trying to look over my shoulder at
  heaven ("is that powderpuff really where you want to go when you
  die??"). The devil on a pogo stick. *ROFL* Infact, pretty much everything
  involving that NPC had me in stitches.
  

Susan

--
suskinne@grail.csuohio.edu      Homepage: http://grail.csuohio.edu/~suskinne/
-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
C:\> del *.*
I can't let you do that, Dave.
C:\>
-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-



From erkyrath@netcom.com Thu Dec  5 23:07:41 MET 1996
Article: 20071 of rec.arts.int-fiction
Newsgroups: rec.arts.int-fiction
Path: news.lth.se!solace!news.ecn.uoknor.edu!news.wildstar.net!news.inetnebr.com!news.mid.net!newsfeeder.gi.net!news.dra.com!feed1.news.erols.com!howland.erols.net!netcom.com!erkyrath
From: erkyrath@netcom.com (Andrew Plotkin)
Subject: Re: Review of Russ Bryan's Review of Andrew Pontious's Capsule Reviews of Contest Games
Message-ID: <erkyrathE1yK66.n0u@netcom.com>
Organization: NETCOM On-line Communication Services (408 261-4700 guest)
X-Newsreader: TIN [version 1.2 PL1]
References: <5826jv$1h8@news.thorn.net> <cleofax-0412960720040001@noho-us252.javanet.com> <kjfair-ya023280000412960050500001@uchinews.uchicago.edu> <5841as$k5h@vixen.cso.uiuc.edu> <Pine.SUN.3.91.961204120437.6292A-100000@nebula.phy.duke.edu> <584il7$6r5@vixen.cso.uiuc.edu>
Date: Thu, 5 Dec 1996 20:42:06 GMT
Lines: 91
Sender: erkyrath@netcom.netcom.com

> What I mean is, to create a common attributes that can be agreed upon 
> for most stories that can be used as a guidelines to ensure that every 
> story gets evaluated at some basic level similarly.  For example, the 
> attributes might include:

> 	plot
> 	writing style
> 	interactivity
> 	confusion
> 	bugs
> 	creativity
> 	...and so on

Nope. I deny this set of criteria, and all sets of criteria. I have a 
criterion, which is "Did I like it?" This is totally vague and subsumes 
everything that is important to me -- but not by computation, because 
that's not the way I rate games.

(I know I said a lot of this early in the voting period, but, well, the
subject has re-arisen. :-)

> that would not be forced on judgements but used as "Hey, make sure to 
> consider all of these things," or judges could rate each game on each by 
> their own choosing.  These criteria I have laid out here are common to 
> all stories with few exceptions and if a story was so original that it 
> did not fit them, well of course the criteria become less useful.

I am most interested in the exceptions, and I strongly disapprove of any 
mandated criteria that does not take them into account. Which means *any* 
fixed set of criteria.

I definitely agree with this reply:

> >Beyond the impossibility of coming up with a set of 
> criteria 
> >acceptable to all (I suspect GKW would be forced to impose one by 
> fiat), 
> >I find it valuable that everyone brings a different viewpoint to the 
> >competition.  Forcing a rigid set of criteria on the competition could 
> >serve to stifle certain types of games.

(Yeah, I've lost all the attributions now, blame TIN.)

> The problem I see is what I notice in the reviews.  With one exception, 
> what is being evaluated changes /per game/ by judge, not to mention 
> across judges.  Given this, ranking all of the entries becomes a joke.  
> Unique perspectives are important, but the authors deserve a common set 
> of basic, minimal criteria.

They *have* a common set of criteria: *What the judges liked*. This year, 
people went to all *sorts* of different places to try to be liked. Some 
worked, some didn't. 

Are you counting me as the exception? It may not seem like it, but I 
*did* have a single criterion, as I said. Not only that, but it's the 
same one I use in the real world. (Modulo some issues about using hints 
and finishing games, which are for another discussion, please. :-) I rate 
games as I would enjoy them if I just ran across them on GMD.DE. I think 
this is a fine basis for a competition. In what other sense are we 
competing?

I think you may be confused because my *reviews* did not comment on the 
same things. But my scores were not based on my reviews. Honest. The 
reviews were more for the benefit of the authors than anyone else, and 
focussed on the interesting (or interestingly failed) aspects of each 
particular game. The scores were separate.

> Right now what is happening is a hodge-podge of scores based on 
> everyone's individual criteria.  While that sounds democratic, it's also 
> a big muddy mess.  While there appears to have been a clear winner, I 
> dismiss any ranked differences between the rest of them as noise.

If you're going to worry about that, you have to worry about the much 
larger skewing effect of normalization -- what counts as a "1" and what 
as a "10"? That has nothing to do with the criteria. I wound up saying 
that my favorite game of the entries that I played was a "10", and my 
least favorite was a "1". But other people might have used a scale where 
"10" was the best game *they'd ever played*, and "1" the worst.

I won't even get into linearity. Those of you who know what a gamma 
factor is (in video displays) can consider its applicability. I tried to 
spread the entries evenly along the 1..10 scale, which meant that "7" was 
not exactly 7/9th of the way from "1" to "10". I said I wouldn't get into 
this. I'll shut up now.

--Z

-- 

"And Aholibamah bare Jeush, and Jaalam, and Korah: these were the
borogoves..."


From erkyrath@netcom.com Fri Dec  6 13:00:16 CET 1996
Article: 20080 of rec.arts.int-fiction
Newsgroups: rec.arts.int-fiction
Path: news.lth.se!solace!news.stealth.net!www.nntp.primenet.com!nntp.primenet.com!news.sgi.com!news.sprintlink.net!news-peer.sprintlink.net!news-peer.gsl.net!news.gsl.net!news-lond.gsl.net!news.gsl.net!netcom.net.uk!netcom.com!erkyrath
From: erkyrath@netcom.com (Andrew Plotkin)
Subject: [Inform] Scheme/"Lists" source
Message-ID: <erkyrathE1yq2J.3yq@netcom.com>
Organization: NETCOM On-line Communication Services (408 261-4700 guest)
X-Newsreader: TIN [version 1.2 PL1]
Date: Thu, 5 Dec 1996 22:49:31 GMT
Lines: 20
Sender: erkyrath@netcom.netcom.com

has been uploaded, under the title "lists.tar.Z". It has source code for 
the Scheme engine itself, plus the game shell which formed my competition 
entry.

In a feeble sop to my hatred of giving away information, I have deleted
the poem that appears when you solve all the problems. You'll still have
to actually play through the game for that. 

I have also uploaded "lists.z5" again (this is the game file, not the 
source.) This is the same release that was in the competition, but the 
one in the competition directory is slightly damaged. (Try "verify".) As 
far as I know, there is *no* difference in how the two versions run; but 
I figured I'd upload an intact version anyway.

--Z

-- 

"And Aholibamah bare Jeush, and Jaalam, and Korah: these were the
borogoves..."


From cleofax@javanet.com Fri Dec  6 13:01:15 CET 1996
Article: 20084 of rec.arts.int-fiction
Path: news.lth.se!solace!news.stealth.net!www.nntp.primenet.com!nntp.primenet.com!su-news-hub1.bbnplanet.com!news.bbnplanet.com!cam-news-hub1.bbnplanet.com!news.idt.net!newsfeed.internetmci.com!news.javanet.com!noho-us113.javanet.com!user
From: cleofax@javanet.com (Russ Bryan)
Newsgroups: rec.games.int-fiction,rec.arts.int-fiction
Subject: Re: Zarf's comments on the contest games (SPOILERS)
Date: 6 Dec 1996 00:30:38 GMT
Organization: Cleo of AX
Lines: 39
Message-ID: <cleofax-0612960731060001@noho-us113.javanet.com>
References: <erkyrathE1sqM4.4IF@netcom.com> <32A4AA2B.41682018@post.rwth-aachen.de>
NNTP-Posting-Host: noho-us113.javanet.com
Xref: news.lth.se rec.games.int-fiction:19320 rec.arts.int-fiction:20084

In article <32A4AA2B.41682018@post.rwth-aachen.de>, Linards Ticmanis
<Linards.Ticmanis@post.rwth-aachen.de> wrote:

> It's okay if a scene is a real hard one, if the game has a lot of clever
> responses to all the crap you might try. A positive example is the first
> scene of Christminster. The first scene in Jigsaw, however, can be
> pretty frustrating as it's not nearly as responsive.

This presents an interesting point (it's amazing how much these things
matter once you become an author).  I find that there are scenes I can't
wait to write and there are scenes which I won't be too excited about
writing.  Let's say my game has this fantastic climax ...

(... it does, you know ...)

... which I can't wait to write.  I would likely spend a lot of time with
it.  On the other hand, I might not spend much time on the hallway which
leads to the room(s) where the climax is found.  I can imagine that Graham
considered the first scene of Jigsaw a bridge to take the player from the
first move to the first meeting with Black.  The first meeting with Black
is filled with detail.

Where the author should be spending the most time, though, is in those
places where the Player is bound to spend the most time.  Gareth certainly
knew that Christminster's first puzzle would be time consuming, so he
clearly spent a lot of time making it real.  Perhaps the opening of Jigsaw
could have been more detailed, but then again I don't think Graham thought
people would have so much trouble with it.  Authors should learn from
this: if there's a chance that the player is going to be hanging out for a
while, make it an interesting place to hang out.

If the game fails to respond to all your desires, though, it is in no way
the fault of any programming system.  I'm using Inform for Sphere, and
have found the library quite responsive.  If there is something you want
to do and my game won't let you do it, you can count on it being my fault.

 Russ




From mol@marvin.df.lth.se Fri Dec  6 16:03:54 CET 1996
Article: 20107 of rec.arts.int-fiction
Path: news.lth.se!mol
From: mol@marvin.df.lth.se (Magnus Olsson)
Newsgroups: rec.arts.int-fiction
Subject: NPC's and their knowledge of their world (was: More advertising)
Date: 6 Dec 1996 15:00:34 GMT
Organization: /etc/organization
Lines: 30
Message-ID: <589cei$81h@news.lth.se>
References: <57b36h$c3g@linux.cpsc.ucalgary.ca> <erkyrathE1po3z.xC@netcom.com> <Pine.LNX.3.95.961201170833.3841C-100000@adamant.res.wpi.edu> <57v2nm$fou@prometheus.acsu.buffalo.edu>
NNTP-Posting-Host: marvin.df.lth.se

In article <57v2nm$fou@prometheus.acsu.buffalo.edu>,
Phil Goetz <goetz@cs.buffalo.edu> wrote:
>When the NPC executes the "achieve" action, it constructs a plan, which
>uses the knowledge embedded in the actual program code.

This has always struck me as somewhat odd. If the NPC's use the actual
program code as their knowledge data base, doesn't that mean that they
know *everything* about their world? I recall that you posted about
problems with NPC's trying to perform UNDO's to achieve their goals :-).

But shouldn't a planning NPC be working from an internal model of
his/her/its knowledge of the world? 

For example, suppose that both you and your cousin (the NPC) are
trying to get a peek at your uncle's will. You both know that the will
is in the safe, and that you uncle keeps the key to the safe in his
desk drawer. When your cousin isn't looking, you take the key and
hide it in a vase. Suppose, further, that there is a secret button
which will open the safe without a key, but which neither you nor your
cousin know about.

Now, if the cousin NPC uses the complete source code + game state as
its knowledge base, then it will know both about the hidden key and
about the secret button, and the plan it generates will probably be
"Press secret button. Take will. Read it.", rather than what you would
expect, viz. "Open desk drawer. Take key. Open safe. Take will and
read it." (a plan that will, of course, fail). 

-- 
Magnus Olsson (mol@df.lth.se)


From ctt20@hermes.cam.ac.uk Fri Dec  6 17:37:45 CET 1996
Article: 20111 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news99.sunet.se!newsfeed.luth.se!news.luth.se!eru.mt.luth.se!news.algonet.se!news.uoregon.edu!arclight.uoregon.edu!news.sprintlink.net!news-peer.sprintlink.net!EU.net!usenet2.news.uk.psi.net!uknet!usenet1.news.uk.psi.net!uknet!uknet!lyra.csx.cam.ac.uk!news
From: Chuan-Tze Teo <ctt20@hermes.cam.ac.uk>
Newsgroups: rec.games.int-fiction,rec.arts.int-fiction
Subject: Competition mini-reviews (part 2)
Date: Thu, 05 Dec 1996 00:37:24 -0800
Organization: University of Cambridge
Lines: 71
Message-ID: <32A689C4.3B5E@hermes.cam.ac.uk>
References: <32A54F78.37D4@hermes.cam.ac.uk>
NNTP-Posting-Host: sobek.trin.cam.ac.uk
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
X-Mailer: Mozilla 2.0 (Win16; I)
Xref: news.lth.se rec.games.int-fiction:19335 rec.arts.int-fiction:20111

TAPESTRY

The first thing that struck me about this game was the sheer amount and 
quality of prose- excellent style, though on a few occasions rather 
heavy-handed. The premise is intriguing and takes good advantage of the 
medium; the story is communicated in this case much more effectively than 
static fiction could by forcing the player to make moral decisions. One 
constraint I found somewhat irritating was having the Fates force me down 
a particular path; I would have preferred being able to make three 
decisions which each affected the course of the game, as opposed to 
effectively one. The multiple endings are well thought out and presented 
though.

I found the puzzles rather tedious, especially after the first time when 
replaying to see the multiple endings, and got little satisfaction out of 
solving them. Had to look up the hints to work out exactly how to deal 
with the medicine. But then, the puzzles aren't the point of this game; 
for what they're worth they fit well within the setting. I suppose the 
background information behind the decisions needs to be presented in some 
way, but perhaps just letting the player wandering around exploring the 
environment and talking to people may work better.

Innovative and convincingly executed. I look forward to playing this 
author's next piece.


IN THE END

Paradoxically, I eventually "solved the game" due to giving up in 
frustration. This, I suspect, is not the author's intent. Not enough 
is provided on the protagonist's drives, history or personality to draw 
the player into roleplaying the character. Because of this, In The End 
fails where Tapestry succeeded.

The writing is evocative and conjures up images of the scenery 
beautifully. Unfortunately, these images are not depressing enough. 
Obviously, one would feel saddened at a friend's death, perhaps 
philosophical, but why suicidal? More impetus definitely required here. I 
went to the bar and fed "ORDER WHISKY. DRINK WHISKY." into Jzip twenty 
times, and was rather disappointed not to get drunk.

The idea behind the game is very original, and I think it had the 
potential to make a deep and moving work if better implemented. 
Unfortunately, this concept by its very nature can only ever work once...


THE LAND BEYOND THE PICKET FENCE

I'm not sure why this game works for me; the prose somehow has a certain 
charm and the simple puzzles somehow fit together intuitively. An 
enjoyable, light-hearted fantasy. Having a native English speaker 
proofread the test would have helped, and some of the syntaxes needed to 
enter commands seemed a little clumsy (TADS and Inform really spoil you 
when it comes to command syntax...) but the tone was just right.


SMALL WORLD

Another charming concept; the world and its environs are prettily 
described and fun to look at. The devil is one of the most memorable NPCs 
in the competition, and had me smiling a lot which is always a good 
thing.

Some of the puzzle solutions are bizarre and boil down to "guess what the 
author is thinking". This game more than any others required extensive 
use of the hint system; even so it is often unclear why certain 
actions solve the puzzle. The gravity implementation is inconsistent, 
ludicrous in its effects(if my stuff flies away, why don't I?) and a real 
pain to work around. However, they have their cute moments, for example 
shaking the little green men off and washing your socks in the sea. These 
more than anything else make the game work.


From graham@gnelson.demon.co.uk Sun Dec  8 20:48:14 MET 1996
Article: 20148 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news01.sunet.se!sunic!02-newsfeed.univie.ac.at!newsfeed.de.ibm.net!newsfeed.uk.ibm.net!news.stealth.net!www.nntp.primenet.com!nntp.primenet.com!su-news-hub1.bbnplanet.com!news.bbnplanet.com!cpk-news-hub1.bbnplanet.com!EU.net!usenet2.news.uk.psi.net!uknet!usenet1.news.uk.psi.net!uknet!dispatch.news.demon.net!demon!graham
From: Graham Nelson <graham@gnelson.demon.co.uk>
Newsgroups: rec.arts.int-fiction
Subject: Re: Review of Russ Bryan's Review of Andrew Pontious's Capsule Reviews of Contest Games
Date: Thu, 05 Dec 1996 22:14:49 +0000 (GMT)
Organization: none
Lines: 24
Message-ID: <ant052249868M+4%@gnelson.demon.co.uk>
References: <5826jv$1h8@news.thorn.net> <cleofax-0412960720040001@noho-us252.javanet.com> <kjfair-ya023280000412960050500001@uchinews.uchicago.edu> <5841as$k5h@vixen.cso.uiuc.edu> <Pine.SUN.3.91.961204120437.6292A-100000@nebula.phy.duke.edu> 
NNTP-Posting-Host: gnelson.demon.co.uk
X-NNTP-Posting-Host: gnelson.demon.co.uk
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; CHARSET=ISO-8859-1
X-Newsreader: ANT RISCOS Marcel [ver 1.09]

In article <Pine.SUN.3.91.961204120437.6292A-100000@nebula.phy.duke.edu>,
Stephen Granade <URL:mailto:sgranade@phy.duke.edu> wrote:
> 
> On 4 Dec 1996, Darrell Rudmann wrote:
> > This makes me think that perhaps a set of criteria and measures could be 
> > created for the evaluation of IF for future competitions, to at least 
> > ensure that all judges are looking for the same things and look for some 
> > set of criteria equivalently for all stories.  Or has this been done?
> 
> I disagree.  Beyond the impossibility of coming up with a set of criteria 
> acceptable to all (I suspect GKW would be forced to impose one by fiat), 
> I find it valuable that everyone brings a different viewpoint to the 
> competition.  Forcing a rigid set of criteria on the competition could 
> serve to stifle certain types of games.

I agree about criteria: aesthetic judgements are not so easily
legislated for.  But we might slightly normalise the scoring
system, perhaps?  Perhaps each voter should have just 100 points
to award, with a maximum of 10 to any one game?  I wonder what
the variation in average scores per game was.

-- 
Graham Nelson | graham@gnelson.demon.co.uk | Oxford, United Kingdom



From blore@ibm.net Sun Dec  8 20:55:27 MET 1996
Article: 20168 of rec.arts.int-fiction
Path: news.lth.se!solace!demos!news.stealth.net!www.nntp.primenet.com!nntp.primenet.com!feed1.news.erols.com!worldnet.att.net!uunet!in3.uu.net!165.87.194.248!news-m01.ny.us.ibm.net!news-s01.ca.us.ibm.net!not-for-mail
From: blore@ibm.net    (Steven Howard)
Newsgroups: rec.arts.int-fiction
Subject: [Contest] Random thoughts . . . (SPOILERS)
Date: 7 Dec 1996 19:02:54 GMT
Lines: 67
Message-ID: <58cf0u$1550$3@news-s01.ca.us.ibm.net>
Reply-To: blore@ibm.net
NNTP-Posting-Host: slip129-37-242-214.ca.us.ibm.net
X-Newsreader: IBM NewsReader/2 v1.2.5


Just a few random thoughts on the competition games:

Pickiest parser:  In "Sir Ramic Hobbes and the Oriental Walk," the 
command "Put x in y" is NOT the same as "Put x into y".  For example:

>PUT HANDLE INTO PRESS

The handle won't fit into the press!

>PUT HANDLE IN PRESS

It clicks into place.  This is where it came from."

Most limited vocabulary:  "Don't Be Late" doesn't understand the
word "GET".

Hardest puzzle:  The crystals in "Fear".

Most ironic response:  "In the End", a game you "win" by committing
suicide, responds to ">QUIT" with "Life doesn't work that way."

Most common oversight (basic):  The Inform games "Rippled Flesh" and
"Reverberations" were released with the debugging commands enabled.

Most common oversight (advanced): The non-scored Inform games "In
the End" and "Of Forms Unknown" fail to override Inform's default
presentation of the score upon winning, so that both games admonish
the player who has won the game as if he had asked for his score.
(Other non-scored games may have done the same thing, but these
are the only two I won.)

Least helpful hint:  Completely stumped in "Small World", I was
advised "You need only move around to make progress."

Best magic system:  In "Sir Ramic Hobbes and the Oriental Walk",
the player transforms the character into various animals by typing 
UNIX commands.

Best title:  "The Meteor, the Stone, and a Long Glass of Sherbet".
Runner-up:  "Kissing the Buddha's Feet."

Weirdest bug: In the endgame, I somehow rendered "Maiden of the 
Moonlight"  almost completely incapable of responding to any 
input. Other than just pressing the <Enter> key, which still got 
the response "I beg your pardon?", nothing I typed produced any 
output.

Most unusual main character:  "Ralph."  (Also best response to
">EXAMINE ME": "Nose wet: check.  Fur clean: check.  Tail up:
check.  Sexy.")

Worst dialect speech:  "Alien Abduction?"'s weak attempt at 
Appalachian accents.

Best NPCs: The entire cast of "Kissing the Buddha's Feet."

Best in-joke:  The "Jeopardy" game in "Delusions."


========
Steven Howard
blore@ibm.net

What's a nice word like "euphemism" doing in a sentence like this?




From giner@xp.psych.nyu.edu Sun Dec  8 21:20:42 MET 1996
Article: 20124 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news00.sunet.se!sunic!news.sprintlink.net!news-peer.sprintlink.net!panix!cmcl2!news.nyu.edu!xp.psych.nyu.edu!giner
From: Roger Giner-Sorolla <giner@xp.psych.nyu.edu>
Newsgroups: rec.arts.int-fiction
Subject: Re: Linearity vs. interactivity (re: Tapestry) (was Re: Competition mini-reviews (part 2))
Date: Fri, 6 Dec 1996 13:07:52 -0500
Organization: New York University
Lines: 24
Message-ID: <Pine.SUN.3.91.961206130150.12301A-100000@xp.psych.nyu.edu>
References: <32A54F78.37D4@hermes.cam.ac.uk> <32A689C4.3B5E@hermes.cam.ac.uk>  <ant0512220b0c4bn@arnod.demon.co.uk> <5872p0$4d6@lana.zippo.com> <5885fr$gl2@mtinsc01-mgt.ops.worldnet.att.net>
NNTP-Posting-Host: xp.psych.nyu.edu
Mime-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
In-Reply-To: <5885fr$gl2@mtinsc01-mgt.ops.worldnet.att.net> 

On 6 Dec 1996, C.E. Forman wrote:

> I too chose Morningstar's path first, simply because I guessed that I
> was "supposed to".  I was pleasantly surprised to realize that there
> were in fact other paths, and even more pleasantly surprised to find
> that none of the three was "best".

I dunno about that.  Seems to me that choosing Morningstar's path leaves
you in an ironic, depressing, "blah" situation; certainly not the heroic
ending you'd expect.  And wimping out to the Wraith leaves you ... well,
the game practically calls you a guilt-ridden wimp.  I think each of the
paths is equally well /developed/, but it seems to me that the author
philosophically favors the path of, um, Clotho (y'know, the Fate that
wants you to stick up to the wraith). 

Roger Giner-Sorolla          University of Virginia, Charlottesville, VA
rsg3x@virginia.edu           Dept. of Psychology (Social)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"Please, your Majesty," said the Knave, "I didn't write it, and they can't
prove I did: there's no name signed at the end."
"If you didn't sign it," said the King, "that only makes the matter worse.
You /must/ have meant some mischief, or else you'd have signed your name
like an honest man."   --  Lewis Carroll, Alice's Adventures in Wonderland



From scythe@u.washington.edu Sun Dec  8 21:21:40 MET 1996
Article: 20145 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news00.sunet.se!sunic!news.sprintlink.net!news-peer.sprintlink.net!su-news-hub1.bbnplanet.com!news.bbnplanet.com!cpk-news-hub1.bbnplanet.com!news.mindspring.com!mindspring!uunet!in3.uu.net!140.142.64.3!news.u.washington.edu!scythe
From: scythe@u.washington.edu (Dan Shiovitz)
Newsgroups: rec.games.int-fiction,rec.arts.int-fiction
Subject: Re: Linearity vs. interactivity (re: Tapestry) (was Re: Competition mini-reviews (part 2))
Date: 7 Dec 1996 07:09:56 GMT
Organization: University of Washington, Seattle
Lines: 48
Message-ID: <58b584$lnp@nntp5.u.washington.edu>
References: <32A54F78.37D4@hermes.cam.ac.uk> <ant0512220b0c4bn@arnod.demon.co.uk> <5878to$804@nntp5.u.washington.edu> <ant0611520b0c4bn@arnod.demon.co.uk>
NNTP-Posting-Host: saul6.u.washington.edu
NNTP-Posting-User: scythe
Xref: news.lth.se rec.games.int-fiction:19352 rec.arts.int-fiction:20145

In article <ant0611520b0c4bn@arnod.demon.co.uk>,
Julian Arnold  <jools@arnod.demon.co.uk> wrote:
>In article <5878to$804@nntp5.u.washington.edu>, Dan Shiovitz
><URL:mailto:scythe@u.washington.edu> wrote:
>> 
>> In article <ant0512220b0c4bn@arnod.demon.co.uk>,
>> Julian Arnold  <jools@arnod.demon.co.uk> wrote:
>> >
>> >"Tapestry" was far and away the best game in the competition.  I'm
>> 
>> *cough* Really?  Weren't you at all bothered by the stereotypical characters
>> and situations, the near-total lack of any sort of subtlety in the moral
>> issues, and the fairly bizarre all-or-nothing attitude it required you
>> to take towards changing the past?
>
>No.
>
>Actually, I don't mean to sound so flippant.  It seems to me though that
>certainly the last two of your comments can be traced back to the
>linearity I mentioned previously.  I might suggest that this linearity
>was a result of the time constraints of the contest, but this would just
>be making excuses-- maybe Dan Ravipinto would like to comment on this?
>
>As for the stereotypical characters and situations.  Well, yes, they
>were.  OTOH, I think this stereotypicality was probably necessary and
>intentional-- Dan R?

I dunno.  I read through what the author posted on the topic and I'm still
not convinced; maybe I just don't get what he was trying to do.  I'm not
sure what everyone was raving about in this game.  Though my comments above 
were overly extreme, I'm not convinced there was any depth or complexity to
the moral issues presented.  I guess this in part the consequence of doing
the story in game form, especially in a short contest-type game, but I'd
think it could be done better even there.  (_So Far_, not entirely a fair
comparison, is much more complex philosophically, though it loses clarity
in the process.  Oh well.)

[..]
>Jools
--
dan shiovitz scythe@u.washington.edu shiov@cs.washington.edu
slightly lost author/programmer in a world of more creative or more 
sensible people ... remember to speak up for freedom because no one else
will do it for you: use it or lose it ... carpe diem -- be proactive.
my web site: http://weber.u.washington.edu/~scythe/home.html some ok stuff.





From adam@yuma.Princeton.EDU Sun Dec  8 21:26:36 MET 1996
Article: 20155 of rec.arts.int-fiction
Path: news.lth.se!solace!mn6.swip.net!news00.sunet.se!sunic!news.sprintlink.net!news-peer.sprintlink.net!EU.net!cpk-news-hub1.bbnplanet.com!news.bbnplanet.com!su-news-hub1.bbnplanet.com!news.pbi.net!cbgw3.lucent.com!cbgw1.lucent.com!cnn.Princeton.EDU!yuma.Princeton.EDU!adam
From: adam@yuma.Princeton.EDU (Adam J. Thornton)
Newsgroups: rec.arts.int-fiction
Subject: Re: Review of Russ Bryan's Review of Andrew Pontious's Capsule Reviews of Contest Games
Date: 7 Dec 1996 16:18:43 GMT
Organization: Princeton University
Lines: 56
Message-ID: <58c5d3$lju@cnn.Princeton.EDU>
References: <5826jv$1h8@news.thorn.net> <587la5$ggs@bartlet.df.lth.se> <JcaPGFA17GqyEwg7@amster.demon.co.uk> <jota.849916179@laraby.tiac.net>
NNTP-Posting-Host: yuma-subnet124.princeton.edu

In article <jota.849916179@laraby.tiac.net>,
Admiral Jota <jota@laraby.tiac.net> wrote:
>Bob Adams <amster@amster.demon.co.uk> writes:
>>Sorry guys but your own personal pet loves and hates doesn't (shouldn't) 
>>come into it. You were supposed to be judging and scoring according to 
>>the authors all-round competence, not whether he wrote in your 
>>particular favourite genre or not.
>I could be wrong, but I had no clue that we were supposed to be judging 
>the authors' all-round competence. If we were, Andrew Plotkin probably 
>ought to be rated much more highly than he was, because he has (in the 
>past) shown himself to be very competent. But I thought we were supposed 
>to rate the games themselves.

If we were judging on authorial competence, Graham Nelson would win
everything and Plotkin would get second and then there'd be an interesting
competition for the other awards.

But I have my own method of scoring, and it's the one I'm going to stick to
next year.  It goes something like this:

"How much did I like this game?"

"Small World" gets a nine; it was not fair, the game was probably too large to
play in two hours, the inventory management was Damn Annoying, but I loved
the premise, I thought the implementation was exceedingly clever, and The
Devil is one of the finest characters I've ever met in IF.  Sure, I had to
make extensive use of the hints.  Oh well.  But I loved _The Phantom
Tollbooth_ (an obvious source for "Small World") and I loved the game.
Hence, a nine.

"My First Stupid Game" gets a two.  An arbitrary death timer, urination, a
bear, horrid prose, Sammy Hagar, and gratuitous gory scenery all combined
to make it a thoroughly unenjoyable experience.  The two was generous.  I
should have given it a one.

"In The End" got, I think, a three.  Yes, I understand what the author was
trying to do.  But I just didn't enjoy the game.  I didn't feel that my
character _was_ bored enough to kill himself out of ennui.  I mean, there's
plenty of stuff to keep me interested for a few game days: the magazine and
the girl, for starters.  Heck, I wanted to go back to her apartment and try
to get a date.  I wanted to meet the guy the magazine was ordered for.  I
wanted to get to know the bartender.  Death-by-ennui was never that close.
I was also put off by how little prose there _was_ in the game.  It felt
like a non-interactive three-page story.

Now, next year, if I have to give games a Plot, Puzzles, Character,
whateverish SPAGlike rating, I can.  But I'll tell you now what's going to
happen: I'm going to ask "How much did I like this game" and then make up
the individual scores to fit.

Adam
-- 
"I'd buy me a used car lot, and | adam@princeton.edu | As B/4 | Save the choad!
I'd never sell any of 'em, just | "Skippy, you little fool, you are off on an-
drive me a different car every day | other of your senseless and retrograde
depending on how I feel.":Tom Waits| little journeys.": Thomas Pynchon | 64,928


From skinner@news.ohioonline.net Sun Dec  8 22:25:22 MET 1996
Article: 20069 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news99.sunet.se!newsfeed.luth.se!news.luth.se!eru.mt.luth.se!www.nntp.primenet.com!nntp.primenet.com!howland.erols.net!vixen.cso.uiuc.edu!newsfeed.internetmci.com!news.ohioonline.net!news.ohioonline.net!not-for-mail
From: skinner@news.ohioonline.net (Suzanne Skinner)
Newsgroups: rec.arts.int-fiction
Subject: Re: Competition games: memorable scenes
Date: 4 Dec 1996 16:06:36 -0500
Organization: OhioOnline, Inc.
Lines: 42
Distribution: world
Message-ID: <584p4s$493@mail.ohioonline.net>
References: <32A53A69.2E21@hermes.cam.ac.uk>
NNTP-Posting-Host: mail.ohioonline.net
X-Newsreader: TIN [version 1.2 PL2]

Chuan-Tze Teo (ctt20@hermes.cam.ac.uk) wrote:
: To start a completely different thread, which scenes from the competition 
: games stuck in your mind?

Delusions:
  Listening to Cynthia talk about me (a.k.a. that....THING) through
  the locked door. Very surreal, very disturbing.
  Seeing myself in the mirror for the first time.
  
Tapestry:
  The first appearance of the Fates. I don't care if it's derivative of
  someone (as a few have claimed) -- the imagery here fascinated me.
  
Sherbet:
  Hatching the dragon/hornet (straight into the killer flower...)

Fear:
  Fumbling with the keys as the police pound on the door, then finally getting
  it open and stepping out into the sunlight.
  
Aayela:
  The gradual rising intensity of the music until it is continuous and
  everpresent...
  The burst of emotion/sound/light upon breaking the crystal open.
  
Small World:
  The devil jumping up and down trying to look over my shoulder at
  heaven ("is that powderpuff really where you want to go when you
  die??"). The devil on a pogo stick. *ROFL* Infact, pretty much everything
  involving that NPC had me in stitches.
  

Susan

--
suskinne@grail.csuohio.edu      Homepage: http://grail.csuohio.edu/~suskinne/
-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
C:\> del *.*
I can't let you do that, Dave.
C:\>
-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-



From erkyrath@netcom.com Sun Dec  8 22:28:23 MET 1996
Article: 20177 of rec.arts.int-fiction
Newsgroups: rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news99.sunet.se!newsfeed.luth.se!news.luth.se!eru.mt.luth.se!www.nntp.primenet.com!nntp.primenet.com!howland.erols.net!netcom.com!erkyrath
From: erkyrath@netcom.com (Andrew Plotkin)
Subject: Tapestry (author's comments)
Message-ID: <erkyrathE2020p.C7I@netcom.com>
Organization: NETCOM On-line Communication Services (408 261-4700 guest)
X-Newsreader: TIN [version 1.2 PL1]
Date: Fri, 6 Dec 1996 16:05:13 GMT
Lines: 232
Sender: erkyrath@netcom.netcom.com

Dan Rapavindo asked me to post this to the newsgroup. Eamil replies 
should go to RD70@LAFIBM.LAFAYETTE.EDU.

--Z

-------------------
>From  ravipind@linux.kirbynet.lafayette.edu Fri Dec  6 07:31:03 1996
Date: Fri, 6 Dec 1996 01:01:02 -0500 (EST)
From: DJR <ravipind@linux.kirbynet.lafayette.edu>
To: erkyrath@netcom.com
Subject: "Tapestry" discusions

So, would you mind terribly posting this e-mail?  I'd greatly appreciate 
it.

Of course, it might be sheer vanity to think that anyone would be 
INTERESTED in such a discussion but I thought "What the heck..." :)

[WARNING..."BEHIND THE SCENE" SPOILERS...SO IF THIS KIND OF THING "RUINS" 
A STORY FOR YOU, STOP READING...]






























OK...first of all, the Neil Gaiman connection. :)

I wrote the general plotline for "TAPESTRY" six months before I 
discovered Sandman comics.  When I DID read it (and the Books of 
Magic) I went **DOH!**

But I stuck with it anyway, since my interpretation of the Greek Fates 
stuck more to the original than Gaiman's and my Morningstar wasn't as 
thoroughly modern.  But I will admit that the characters are Gaiman-esque.
Can I plead a case of great minds thinking alike??? *sheepish grin*

The character was named "Tim" beforehand, after my friend Tim Evanson.  
Tim didn't have a last name, originally.

After reading the Books of Magic and deciding on that WONDERFUL quote for 
the opening, I dubbed the character "Timothy Hunter" as a bow to Gaiman.

To be honest, I didn't think anybody'd get it. ;)

Anyway...further up and further in... 

>From what I've seen, people have either really liked or really hated 
the game, for various reasons.  "Not enough interactivity" and "ponderous 
preaching" are two complaints I've heard.  I'm not here to defend 
Tapestry (Well, maybe just a LITTLE...:) so much as explain myself a 
little bit.

Although, it HAS been pointed out to me that if I have to explain myself 
after the fact, well...maybe I didn't do a very good job of explaining 
the first time.

I've noticed that people that have "gotten" the game are generally the 
ones that like it.  That's not to say the people who don't like it are 
just a bunch of morons who can't handle my high-falutin' talk.  To be 
honest, Neil pretty much got the point and he STILL hated it. :)

What I really want to know, I guess, is WHAT did you hate.  The message?  
The way I was telling it?  Neil's point was that he just didn't like the 
message.  He wouldn't like it no matter HOW I told it.

There's definitely a 'point' to Tapestry's story, and some of it 
involves unraveling some of the symbolism.  Another part of 'getting' it is 
playing it three times for the three endings.  I'm not going to sit here 
and explain every little bit, because that sort of ruins the whole thing, 
but...

1) Morningstar really IS someone.  Someone made the comment "Why are 
people coming up with these stupid 'deep' names for characters?"  Let me 
tell ya, buddy, I didn't make this one up. :)  Morningstar is definitely 
named that for a reason.  There are a lot of references to who he is in 
the prologue and I really thought everybody'd get it.  Some of the 
beta-testers even said I was knocking them over the head with the 
symbolism.  *shrug*  I'm not gonna say it here.  Maybe someone else'll 
ruin it in a follow-up.

Connected point.  There's an "homage" to TRINITY in the prologue that is
gained by typing in a very specific command that shows the game that 
you've figured out something.  Someone's comment in a review 
sounded like they found this.  I'll be pleased if someone figures out 
this little "Easter Egg" without hacking the game.

2) The preaching in the prologue is not my own.  This is connected to 
point 1 and is explained a bit in my "Author's Note" in the WALKTHRU.TXT 
file.  Trust me, I am NOT a preachy person AT ALL.  I HATE 
"holier-than-thou" types and if you thought the point of Tapestry was to 
moralize euthenasia etc...then you REALLY missed the bus.

3) The "non-interactivity" was intended.  Really.  I swear.  :)  I know 
this sounds like "Hey, it's not a bug...it's a FEATURE," but it's true.

	3a) The "non-interactive" prologue -- this was a tough decision.  In 
my VERY first drafts of the game, the prologue was open.  You started out 
in the tower, with Morningstar and he talked to you for a bit, but then 
you got to leave and walk around.  The tableaus were connected via the 
Tapestry, but they were locations that you could walk around.  
Morningstar didn't give the "game" (the fact that you're dead, your 
history, etc...) away in the first few moves.
	The original mapping was something like the Celtic Cross spread for 
Tarot (I think it's the one used in "Shade of Grey" to give you some 
idea...).  Each 'card' location was either a Tableau or a location from 
your past (in the original game, those three sections...the car, your 
house, opened after you "solved" the prologue.  You could see them, just 
not get to the them...).  You won the prologue by figuring out that 
you're dead and what you've done much like the self-discovery scene in 
"Delusions".  Then you returned to the tower and faced Morningstar's 
lambasting of your actions and then the Parcae showed up.
	My friend Tim pointed out that this was all well and good, but it'd 
take the players two hours just to solve the prologue.
	I needed SOME way to present all of this history AND Moringstar's 
character AND the Parcae's view in as tight and quick a way as possible 
so then players could get to the actual GAME.  (To be honest, a lot of 
the "non-interactivity" cries sound like they were written before the 
author finished the prologue.  The Prologue is exactly that and it 
shouldn't be taken as the main point of the game).
	Also, Morningstar's preaching worked REALLY well for setting 
him up and the symbolism tended to fly by the player rather than 
sitting there to be discovered.  For example: observant players 
will notice a connection between Morningstar and certain details 
in the tableaus...it's important.  One of the beta-testers said 
he only found it after multiple playings of the prologue.
	I'm sorry if there are those of you out there who played the 
prologue, and then stopped disgusted at what you'd just been through.  I 
admit, if the only thing to Tapestry was the prologue then it really was 
a case of "tying the player to a chair to shout the plot at him."

	3b) The "non-interacivity" of the Paths -- this was NOT a tough 
decision.  Come on, you're warned over and over that your choices are 
irrevocable.  That's the POINT.  
	I WANTED the decision to be tough and I wanted you to realize the 
implications of it.  Example -- you play Alicia (your mother's) panel 
first.  [BTW Did anyone notice you can play the Panels in any order?  Or 
that you can leave a panel area by touching the smaller panels?  That was 
another point -- I wanted you to walk around and get as much information 
as possible before you reached a decision...].  You decide to save the 
Thompson's business.  Then you play Sarah's.  Because of the choice you 
made in the first panel -- you HAVE to kill Sarah.  Sorry, but that's the 
way things work.
	Is this a lack of interactivity?  I didn't think so when I wrote it.  
I don't think so now.  If you want to save Sarah, the Thompsons have to 
lose their business.  Simple as that.  
	The fact that Andrew said he had trouble typing one particular command 
tells me that it worked for at least one person.

	Another Side Note : Did anyone notice the three quotes that show up 
when you try to leave the path?  Didn't that ameliorate ANYONE'S 
frustration at not being able to switch Paths?


3) The 'Fearscape' sequence -- well this really has nothing to do with 
anything, but I wanted to tell this story. :)  When I was originally 
setting up the sequence, I was having trouble with the symbolism and what 
I wanted to lead the character to.  I'd set up the first room 
("Fearscape") and I had my roommate Dave fiddle with it to test my code.

Dave is a gamewriter's nightmare.  Somehow things just fall to pieces at 
his touch.  Hence the fact that I use him as a betatester. :)

Well, the moon was described as a piece of scenery for the location and 
Dave, being the dork he is, decided to type "GET MOON."

I had forgotten to make the moon "static."

Hence Dave's typing:

>INVENTORY

You are carrying:
 the moon

THAT set off something with me, and the rest of the sequence grew from 
there...:)


Well, I've babbled on long enough.  I probably won't be able to respond 
to your responses via the Usenet, but if it'd REALLY dire that I give you 
a "I agree!" or "You dork!" message, I'll e-mail ya. :)

Speaking of which, I can be reached (until January break that is...) at 
RD70@LAFIBM.LAFAYETTE.EDU.  Comments, flames, and general conversation 
are welcome. :)

Last note: Keep up the incredible work, guys. (And gals...where are the 
gals?  Bonni?  :)  This is from someone who fell in love with i-f at 8 with 
WISHBRINGER and has never quite shaken the habit.  Discovering this 
newsgroup a year ago was an incredible thing and I'm hoping that if and 
when I can get better Usenet access I'll be able to become an active 
member of this little community rather than just a lurker.

Congratulations to everyone who entered the contest...you've accomplished 
something just by saying "I finished a game..." Many's a would-be author 
who's got a great idea that dies somewhere along the way.  The entries 
this year were absolutely incredible in scope and variety and I'm very 
proud to say I was a part of this.

d

--------------------------

-- 

"And Aholibamah bare Jeush, and Jaalam, and Korah: these were the
borogoves..."


From nulldogma@aol.com Mon Dec  9 10:03:19 MET 1996
Article: 615 of rec.arts.int-fiction
Path: df.lth.se!news.lth.se!solace!news.stealth.net!www.nntp.primenet.com!nntp.primenet.com!news-peer.gsl.net!news.gsl.net!portc01.blue.aol.com!audrey01.news.aol.com!not-for-mail
From: nulldogma@aol.com
Newsgroups: rec.arts.int-fiction
Subject: "In The End" -- the point?
Date: 7 Dec 1996 19:44:35 GMT
Organization: AOL http://www.aol.com
Lines: 113
Message-ID: <19961207194400.OAA21313@ladder01.news.aol.com>
NNTP-Posting-Host: ladder01.news.aol.com
X-Admin: news@aol.com
Xref: df.lth.se rec.arts.int-fiction:615

Reading through all the comments of people who just didn't understand "In
The End," who found it depressing and the ending unreasonable, I'm
wondering if many players aren't getting the point -- or whether I've
misinterpreted it myself. Specifically:


[WARNING: GREAT BIG HUGE WHOPPING SPOILERS FOR "IN THE END" AHEAD.]








[DON'T SAY I DIDN'T WARN YOU...]









Take a look at the following scenes from "In The End":

---------

But then, suicides are becoming more and more common, and at least Jon
chose to do it with dignity. Not like the ones who figure that as long as
they're going to give up and go, they might as well take as many other
people along with them as they can. 

--------

>x pedestal
Jon was one of those lucky few who kept a tight rein on their party-animal
lifestyles. The ones who let themselves slide into heavy drinking usually
find it ravages their body, one of the few things which still can. But Jon
seems to have avoided all that - he still has the unspoiled face of a
perpetual thirty-year-old. They say the new treatments can hold you at
twenty. Don't quite see the point, yourself.

--------

Damn. Jon's death must have affected you more then you thought. You never
were one for philosophy, even at funerals. You were much more interested
in how things worked than in why. That was why you were going to be the
one who lasted forever - you were studying the universe, and there would
always be one more thing to discover around the corner. You wonder when it
all began to go wrong.

--------

>ask annie about jon
"Poor Jon," she sighs. "I've known him for ages! I never thought he would
have been one of the ones to give up."

--------

>x annie
Now that you can see her better, you can see that Annie's innocent looks
come from her unspoiled features. If you didn't know better, you'd guess
her age at about twenty, unlike the thirty or so of everyone else. Come to
think of it, she may actually be twenty - its so long since you talked to
a young person you hadn't even considered the possibility. Strange.

------

Now, I read all this to mean that "In The End" is set in a world where
everyone is immortal -- or, at least, where "the new treatments" can keep
you perpetually young, and where genuinely young people are a rarity. And
where more and more people are deciding to take their own life as an
escape from the responsibility of continued, continual living.

Then, taken with the following passage:

--------

"It was a sad day when Jon left us. He was known mainly as one who enjoyed
life to the fullest, and one cannot think of a worse man for it to be
taken from. But always remember, it is this very fact that makes his death
bearable. Since he lived every day as his last, he cannot be said to have
left anything undone. He gained everything he ever wanted from life, and
he probably left it satisfied."

That, at least, is true. Possible the only profound thing that was said in
the whole service. 

--------

...it almost seems to be a positive message -- that mortality is okay, so
long as you live life to the fullest and feel that you left nothing
undone.

So, to me, killing myself made perfect sense. I still had some problems
with the game -- there was way too little space to explore, too little
time to become acclimated to what you needed to do, and no easy way of
figuring out where you needed to do it. (I first tried to kill myself in
the church, and the game wouldn't let me.) But overall as a story, it made
sense -- an arguable point, certainly, but I thought a well-stated and
non-"preachy" one.

So, my question is: Did everyone else miss this? Or did they get it but
still feel manipulated? Or have I actually read something into the game
that isn't there?

Neil
---------------------------------------------------------
Neil deMause                            neild@echonyc.com
                  http://www.echonyc.com/~wham/neild.html
---------------------------------------------------------


From jcompton@flood.xnet.com Mon Dec  9 10:05:00 MET 1996
Article: 649 of rec.arts.int-fiction
Path: df.lth.se!news.lth.se!newsfeed.sunet.se!news00.sunet.se!sunic!nntp.coast.net!news.kei.com!newsfeed.internetmci.com!news.xnet.com!jcompton
From: jcompton@flood.xnet.com (Jason Compton)
Newsgroups: rec.arts.int-fiction
Subject: Re: "In The End" -- the point?
Date: 7 Dec 1996 23:42:36 GMT
Organization: XNet - A Full Service Internet Provider - (708) 983-6064
Lines: 54
Message-ID: <58cvdc$5ul@flood.xnet.com>
References: <19961207194400.OAA21313@ladder01.news.aol.com>
NNTP-Posting-Host: monsoon.xnet.com
X-Newsreader: TIN [version 1.2 PL2]
Xref: df.lth.se rec.arts.int-fiction:649

ITE Spoilers:


















nulldogma@aol.com wrote:

: So, to me, killing myself made perfect sense. I still had some problems
: with the game -- there was way too little space to explore, too little
: time to become acclimated to what you needed to do, and no easy way of
: figuring out where you needed to do it. (I first tried to kill myself in
: the church, and the game wouldn't let me.) But overall as a story, it made
: sense -- an arguable point, certainly, but I thought a well-stated and
: non-"preachy" one.

: So, my question is: Did everyone else miss this? Or did they get it but
: still feel manipulated? Or have I actually read something into the game
: that isn't there?

For me, the sense of manipulation had a lot to do with it, particularly 
given the author's near-bullying of the audience in the introductory 
notes.  I really did start out liking the narrative style but I felt, as 
you did, that the world was way too small to evoke the kind of feeling 
the game was looking for.  And the final location where you're supposed 
to "optimally" complete the game seemed like perhaps the best thing in 
the universe for someone looking for a reason to keep going, but that's 
where you're supposed to ditch it instead.  Committing the dirty deed on 
Annie's doorstep made more sense to me.

(I also think there's something fundamentally wrong with the world of ITE
if Annie can override your instructions to your own car every single time,
and your only recourse is to try to kill her to prevent her from getting
home.)

--
Jason Compton                                  jcompton@xnet.com
Editor-in-Chief, Amiga Report Magazine         (847) 741-0689 FAX
AR on Aminet - docs/mags/ar???.lha             WWW - http://www.cucug.org/ar/
'I said, "You wouldn't understand."            Take what's yours, be damned.'



From raphael@wavefront.com Mon Dec  9 12:51:10 MET 1996
Article: 632 of rec.arts.int-fiction
Path: df.lth.se!news.lth.se!solace!eru.mt.luth.se!www.nntp.primenet.com!nntp.primenet.com!mr.net!news.mr.net!scream.ing.com!news
From: raphael@wavefront.com (Raphael Carter)
Newsgroups: rec.arts.int-fiction
Subject: Re: "In The End" -- the point?
Date: Sun, 08 Dec 1996 04:04:41 GMT
Organization: Society for the Prevention of Cruelty to Algorithms
Lines: 51
Message-ID: <32ad3d70.86061834@news.gofast.net>
References: <19961207194400.OAA21313@ladder01.news.aol.com>
NNTP-Posting-Host: raphael.ddb.com
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
X-Newsreader: Forte Agent .99g/32.339
Xref: df.lth.se rec.arts.int-fiction:632

spoilers for "In the End"...





















nulldogma@aol.com wrote:

>So, my question is: Did everyone else miss this? 

I got it.  The problem was that the only thing that entrapped me and
produced a sense of futility was the limitations of the game.  I
couldn't read a book, go on the Internet, head for a museum, or drive
off randomly in search of adventure, *not* because protracted life had
caused those things to lose their savor, but simply because they
weren't implemented.  And I doubt that implementing more objects and
locations would have helped; you can't implement everything people
ever do to cheer themselves up.

It almost worked during that first car trip -- Annie's responses were
very nicely done.  But even there, there were  things I wanted to say
but couldn't, simply because of the limitations of the parser.

The first two panels of "Tapestry" present well-worn, hyperdramatic
sorts of conflict, but they did manage to put me in situations where
my choices were limited organically by the situation, not artificially
by the parser.  "In the End" made a better first impression on me and
was better-written in some ways, but I wound up liking "Tapestry" much
more.

--
Raphael Carter <raphael@wavefront.com>  http://www.wavefront.com/~raphael/
author of THE FORTUNATE FALL, Tor Books, ISBN 0-312-86034-X
"I often think there should exist a special typographical
sign for a smile." -- Vladimir Nabokov


From goetz@cs.buffalo.edu Mon Dec  9 13:42:37 MET 1996
Article: 20122 of rec.arts.int-fiction
Path: news.lth.se!solace!news.stealth.net!www.nntp.primenet.com!nntp.primenet.com!feed1.news.erols.com!howland.erols.net!news-peer.gsl.net!news.gsl.net!portc01.blue.aol.com!newsstand.cit.cornell.edu!news.acsu.buffalo.edu!acsu.buffalo.edu!goetz
From: goetz@cs.buffalo.edu (Phil Goetz)
Newsgroups: rec.arts.int-fiction
Subject: Re: NPC's and their knowledge of their world (was: More advertising)
Date: 6 Dec 1996 18:41:54 GMT
Organization: State University of New York at Buffalo/Computer Science
Lines: 101
Message-ID: <589pdi$sfn@prometheus.acsu.buffalo.edu>
References: <57b36h$c3g@linux.cpsc.ucalgary.ca> <Pine.LNX.3.95.961201170833.3841C-100000@adamant.res.wpi.edu> <57v2nm$fou@prometheus.acsu.buffalo.edu> <589cei$81h@news.lth.se>
NNTP-Posting-Host: pollux.cs.buffalo.edu
NNTP-Posting-User: goetz

In article <589cei$81h@news.lth.se>,
Magnus Olsson <mol@marvin.df.lth.se> wrote:
>In article <57v2nm$fou@prometheus.acsu.buffalo.edu>,
>Phil Goetz <goetz@cs.buffalo.edu> wrote:
>>When the NPC executes the "achieve" action, it constructs a plan, which
>>uses the knowledge embedded in the actual program code.
>
>This has always struck me as somewhat odd. If the NPC's use the actual
>program code as their knowledge data base, doesn't that mean that they
>know *everything* about their world? I recall that you posted about
>problems with NPC's trying to perform UNDO's to achieve their goals :-).
>
>Magnus Olsson (mol@df.lth.se)


Characters are supposed to use only their knowledge when forming plans.
Knowledge is represented by taking a predicate like

	in(will,safe)

and asserting

	knows(joe,in(will,safe))

A lot of the physics-type coding is written with predicates that
are declared as "common-knowledge", meaning that by default everyone
knows these things.

To find out what a character knows, you backchain on rules much like
in ordinary Prolog, but you put an implicit "knows(char, X) around
everything.  So, if you have the common-knowledge rules

	soggy(X) :- wet(X), paper(X).
	wet(X) :- in(X,Y), water(Y).

(common-knowledge means that, e.g.,

	knows(joe,soggy(X) :- wet(X), paper(X))

is also true), then you can derive

	knows(joe,soggy(newspaper))
from
	knows(joe,paper(newspaper))
	knows(joe,in(newspaper,pond))
	knows(joe,water(pond))

When an action is carried out, it is true that every witness to the
action knows that the action occurred, and knows the things that the
action made true.  Also, they know that the other witnesses know these
things, and they know that the other witnesses know that the other
witnesses know these things:

	knows(joe,knows(jim,knows(joe,event(239, hit(jim,joe,fist)))))

ad infinitum.  My code doesn't actually assert all these things, since there
are an infinite number of them, but it can derive them if asked.

Within the planning code, a plan predicts what knowledge would result
>from  its execution, just as it predicts the plan's other effects.
So, if someone is planning to
hide the will, assuming their plan is specified so that it requires
that others NOT know the will's location, their plan will not involve
putting the will in its hiding place when others are watching.
(Ideally you'd want to be able to insert a step like "wait until
no one else is watching" into the plan, but that's beyond my sights
just now.  That would be a reactive plan, whereas I'm constructing
logical plans.  You could specify that kind of wait using my NPC
programming language, though.)

A problem at the moment is "not".  How do you know when someone
knows something is not true?  Right now the implementation is that, if
they can't prove that they know something, they 'know' it is not true.
So once an object is out of sight, they can't prove it exists, and
assume that it doesn't.  I need a good way of representing unknowns.

There are some well-known methods for dealing with this.
A bigger problem, which no one has addressed, is whether it is right
to use the same rules for actually implementing the system as the
characters use to reason with.  I think the correct answer is "no" --
certainly if I wanted to interface my system with an animation system,
the animation would have much more detailed rules than the rules
that characters use -- but I don't want to duplicate effort in the
animation/physics layer and in the character belief layer.

In a text-based system, it's better to
have just one set of rules, because the types of rules NPCs reason with
are similar in granularity to the types of rules used to produce results
in text.  They both deal with symbolic relations like "Jim is in the garage"
instead of physical ones specifying Jim's X,Y,Z, center of mass, extent
of stretch, posture, etc.

This is especially a problem because I want to develop a system in
which animation is optional.  I want ordinary people like us to be able
to use the system to produce text adventures, without all the overhead
involved in animation.  This is like asking to use the same methods to
develop books and movies, maybe.  Very possibly I will give up and start
using two completely independent rulebases, one for the game world and
one for characters.

Phil Goetz@cs.buffalo.edu


From avrom@Turing.Stanford.EDU Mon Dec  9 13:49:11 MET 1996
Article: 20217 of rec.arts.int-fiction
Path: news.lth.se!solace!news.ecn.uoknor.edu!feed1.news.erols.com!cpk-news-hub1.bbnplanet.com!news.bbnplanet.com!su-news-hub1.bbnplanet.com!news.Stanford.EDU!not-for-mail
From: avrom@Turing.Stanford.EDU (Avrom Faderman)
Newsgroups: rec.arts.int-fiction
Subject: Re: Preaching to the pews
Date: 8 Dec 1996 01:10:55 -0800
Organization: CSLI, Stanford University
Lines: 28
Message-ID: <58e0mv$rd5@Turing.Stanford.EDU>
References: <587evk$1ei@news2.gte.net> <58d2hg$j04@costarica.earthlink.net> <erkyrathE22vHn.E85@netcom.com> <erkyrathE22w0w.EzD@netcom.com>
NNTP-Posting-Host: turing.stanford.edu

In article <erkyrathE22w0w.EzD@netcom.com>,
Andrew Plotkin <erkyrath@netcom.com> wrote:
[accidental snip snipped]
>However, I'll just mention the interesting point, which was "What about 
>_Infidel_?"

I assume you're referring to the very last action that must be taken
to "win" the game, and its result.

The interesting thing about this is that it's very oblique about
morality, and certainly isn't an ethical _puzzle_--one assumes the
author wasn't really endorsing the action that must be taken (at least
I hope not).  To the extent that the puzzle has ethical dimensions, it
is that the character has to do something that (IMO, at least) is,
while not exactly immoral, at least evidence of a pretty messed up
value system.

The puzzle is closer to being _psychological_.  Rather than figuring
out what the PC _should_ do, the player has to figure out the one
thing they _would_ do.  You "win" the game not because you bring about
the best possible outcome but rather because you bring about the
outcome that the PC would be happiest with.

(Sorry for the vagueness, I was trying to avoid real spoilers for
Infidel.)

-Avrom



From avrom@Turing.Stanford.EDU Mon Dec  9 13:57:23 MET 1996
Article: 20230 of rec.arts.int-fiction
Path: news.lth.se!solace!mn6.swip.net!newsfeed.sunet.se!news01.sunet.se!sunic!02-newsfeed.univie.ac.at!03-newsfeed.univie.ac.at!sbg.ac.at!cosy.sbg.ac.at!voskovec.radio.cz!www.nntp.primenet.com!nntp.primenet.com!news.bbnplanet.com!su-news-hub1.bbnplanet.com!news.Stanford.EDU!not-for-mail
From: avrom@Turing.Stanford.EDU (Avrom Faderman)
Newsgroups: rec.arts.int-fiction
Subject: Re: Preaching to the pews
Date: 7 Dec 1996 18:14:20 -0800
Organization: CSLI, Stanford University
Lines: 53
Message-ID: <58d89s$gsk@Turing.Stanford.EDU>
References: <587evk$1ei@news2.gte.net>
NNTP-Posting-Host: turing.stanford.edu

In article <587evk$1ei@news2.gte.net>, Jason Melancon <hraron@gte.net> wrote:
>  "You should be a bit careful, perhaps, with puzzles based on morals:
>You don't want to come off as preachy."  Avrom Faderman

[snip]

>I want to talk about this concept, preachiness. What do people mean by
>this term? Is it more than just speaking our mind?

Well, I can only say what I meant, and, to tell the truth, I'm not
sure "preachy" was quite the term I wanted.

Basing puzzles on morals, unlike mentioning morals in static fiction*
has a consequence far beyond speaking one's mind.  It requires, or at
least risks, speaking one's mind in a particularly didactic way.

A puzzle is, by definition, supposed to be a point at which the player
figures something out.  What will open this gate?  How can I convince
the shopkeeper to give me the carpet that actually flies, rather than
the shabby useless one?  Who murdered the horse-breeder?

Solving these puzzles requires learning something about the world in
which the game is based.  You can think of the game's author as a
teacher (albeit a very Socratic one, unless the game contains a lot of
built-in hints) and the game's player as a student.  This is generally
fine--the topic of instruction is how the game's universe works, and
this is something about which the author is legitimately in a position
of authority.

But morals are different.  They're not relative to worlds--if the
player character in a game would be acting wrongly in doing X in
circumstances Y, someone would _really_ be acting wrongly in doing X
in circumstances Y.  If an author proposes to teach a player something
with a puzzle about morals, it can't simply be something about the
game universe--it must be something about the world in general.  And
this is something about which the author is NOT legitimately in a
position of authority.

Conducting moral discourse as if it were an exchange between teacher
and student, as opposed to two debaters of equal standing, is what I
was calling "preachy."  This doesn't happen in (well written) static
fiction, even when the author is clearly expressing his or her
mind--the fiction can be taken as simply one argument in the debate.
But in a puzzle, where the author supposedly knows THE THING to do and
the player needs to LEARN what it is, isn't a matter of equal
footing--It's a conceit that the author has special access to the
truth (in the way they really do in non-moral issues, at least about
their own world) and that the player must discover what this truth is.

OK.  That's my explanation of my words.

	-Avrom



From erkyrath@netcom.com Mon Dec  9 13:57:32 MET 1996
Article: 20189 of rec.arts.int-fiction
Newsgroups: rec.arts.int-fiction
Path: news.lth.se!solace!news.stealth.net!www.nntp.primenet.com!nntp.primenet.com!ix.netcom.com!netcom.com!erkyrath
From: erkyrath@netcom.com (Andrew Plotkin)
Subject: Re: Preaching to the pews
Message-ID: <erkyrathE22u02.C8z@netcom.com>
Organization: NETCOM On-line Communication Services (408 261-4700 guest)
X-Newsreader: TIN [version 1.2 PL1]
References: <587evk$1ei@news2.gte.net> <58d89s$gsk@Turing.Stanford.EDU>
Date: Sun, 8 Dec 1996 04:04:50 GMT
Lines: 48
Sender: erkyrath@netcom18.netcom.com

Avrom Faderman (avrom@Turing.Stanford.EDU) wrote:
> But morals are different.  They're not relative to worlds--if the
> player character in a game would be acting wrongly in doing X in
> circumstances Y, someone would _really_ be acting wrongly in doing X
> in circumstances Y.  If an author proposes to teach a player something
> with a puzzle about morals, it can't simply be something about the
> game universe--it must be something about the world in general. 

Up to this point, I agree with you.

> And
> this is something about which the author is NOT legitimately in a
> position of authority.

Ok, just as in static fiction...

> Conducting moral discourse as if it were an exchange between teacher
> and student, as opposed to two debaters of equal standing, is what I
> was calling "preachy."  This doesn't happen in (well written) static
> fiction, even when the author is clearly expressing his or her
> mind--the fiction can be taken as simply one argument in the debate.
> But in a puzzle, where the author supposedly knows THE THING to do and
> the player needs to LEARN what it is, isn't a matter of equal
> footing--It's a conceit that the author has special access to the
> truth (in the way they really do in non-moral issues, at least about
> their own world) and that the player must discover what this truth is.

But then isn't the whole IF work just another argument in the debate? 
It's true that the author knows *the* solution, but this is exactly 
analogous to the way in which a static fiction author writes *the* 
solution, the thing that the the protagonist does and is rewarded by a 
happy ending.

In one case, the author is declaiming "X"; in the other case, the player
has to try things one at a time, with the author saying "Nope... nope... 
not that either... yes, *that's* right, it's X." These are equally 
one-sided.

I've certainly tried to hit ideas about morals about my own work. I 
haven't been accused of being preachy, possibly because I'm so 
obfuscatory that nobody can figure out what I'm preaching. :)

--Z

-- 

"And Aholibamah bare Jeush, and Jaalam, and Korah: these were the
borogoves..."


From avrom@Turing.Stanford.EDU Mon Dec  9 14:09:37 MET 1996
Article: 20206 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news00.sunet.se!sunic!mn6.swip.net!solace!news.ecn.uoknor.edu!feed1.news.erols.com!cpk-news-hub1.bbnplanet.com!news.bbnplanet.com!su-news-hub1.bbnplanet.com!news.Stanford.EDU!not-for-mail
From: avrom@Turing.Stanford.EDU (Avrom Faderman)
Newsgroups: rec.arts.int-fiction
Subject: Re: Preaching to the pews
Date: 8 Dec 1996 01:37:41 -0800
Organization: CSLI, Stanford University
Lines: 111
Message-ID: <58e295$sto@Turing.Stanford.EDU>
References: <587evk$1ei@news2.gte.net> <58d89s$gsk@Turing.Stanford.EDU> <erkyrathE22u02.C8z@netcom.com>
NNTP-Posting-Host: turing.stanford.edu

In article <erkyrathE22u02.C8z@netcom.com>,
Andrew Plotkin <erkyrath@netcom.com> wrote:
>Avrom Faderman (avrom@Turing.Stanford.EDU) wrote:
[snip]
>> Conducting moral discourse as if it were an exchange between teacher
>> and student, as opposed to two debaters of equal standing, is what I
>> was calling "preachy."  This doesn't happen in (well written) static
>> fiction, even when the author is clearly expressing his or her
>> mind--the fiction can be taken as simply one argument in the debate.
>> But in a puzzle, where the author supposedly knows THE THING to do and
>> the player needs to LEARN what it is, isn't a matter of equal
>> footing--It's a conceit that the author has special access to the
>> truth (in the way they really do in non-moral issues, at least about
>> their own world) and that the player must discover what this truth is.
>
>But then isn't the whole IF work just another argument in the debate? 
>It's true that the author knows *the* solution, but this is exactly 
>analogous to the way in which a static fiction author writes *the* 
>solution, the thing that the the protagonist does and is rewarded by a 
>happy ending.
>
>In one case, the author is declaiming "X"; in the other case, the player
>has to try things one at a time, with the author saying "Nope... nope... 
>not that either... yes, *that's* right, it's X." These are equally 
>one-sided.

This is a good point, but I still think there is at least a
psychological difference between declaiming "X" and patiently but
critically waiting for your audience to guess "X."  (And I did
originally describe the problem as COMING OFF AS preachy, not simply
as BEING preachy).  The first is indeed only presenting one side, but
it's _presenting_ it, directly and (if, again, the fiction is
well-written) respectfully.  The second is the technique the wise
teacher uses to guide the confused student.  As I said before, this is
legitimate in areas where the teacher (author) really has more
authority than the student (player), but not in areas where he or she
doesn't.

Of course, the Socratic method isn't the only method used by
teachers.  Teachers can lecture, too, and it's _possible_ to declare
"X" in a way that makes it sound like a lecture, or a homily.  It's
precisely when static fiction does this that I think it comes off as
preachy as well.  But lots of declarations are simply bits of a debate
between equals, so it's easy (if the author is skilled) to avoid
sounding didactic when they make declarations.  It's a lot harder to
use the Socratic method that way, just because of the associations we
have with it.

>I've certainly tried to hit ideas about morals about my own work. I 
>haven't been accused of being preachy, possibly because I'm so 
>obfuscatory that nobody can figure out what I'm preaching. :)

Spoilers for So Far...






























This is interesting.  I've played "A Change in the Weather," "So Far,"
and "Lists and Lists," and finished all but the first, and I have to
admit that I didn't notice this (I assume you weren't talking about
"Lists," unless the moral issues were _very_ obscure).

Well, that's not quite true.  You certainly _touch_ on moral issues in
"So Far," for example in [crawling, cramped], but the game provided,
for me at least, no clear answer.  I didn't have the feeling when I got
out of [crawling, cramped] that I had been rewarded for morality, or
even that the game necessarily thought I had.  I had witnessed a sad
event, and perhaps a moral tragedy--maybe in a morally ideal world,
the PC would have gotten the boy out instead of himself (although even
that isn't obvious), but that wasn't an option;  the boy wasn't
accepting help.  But even if we accept this as a moral claim, it's
closer to a _declaration_ than a _puzzle_;  the player doesn't have to
figure out that injustice had occurred (or that it hadn't, if that was
your claim) to progress.

The closest the game came to a "moral" (probably "ethical" would be a
better word here) _puzzle_ is the very last move of the game.  But
that's sufficiently close to the end, and the "losing" move has
interesting enough results, that the player can almost decide which
choice is the better.  You clearly prefer one, but it's not like the
player is stranded unless he or she agrees with you.

-Avrom




From cardinalt@earthlink.net Mon Dec  9 14:35:29 MET 1996
Article: 20244 of rec.arts.int-fiction
Path: news.lth.se!solace!news.stealth.net!vixen.cso.uiuc.edu!howland.erols.net!EU.net!usenet2.news.uk.psi.net!uknet!usenet1.news.uk.psi.net!uknet!xara.net!emerald.xara.net!news.thenet.net!uunet!in2.uu.net!206.250.118.17!nntp.earthlink.net!usenet
From: cardinalt@earthlink.net (Cardinal Teulbachs)
Newsgroups: rec.arts.int-fiction
Subject: Re: Preaching to the pews
Date: Mon, 09 Dec 1996 04:45:58 GMT
Organization: Earthlink Network, Inc.
Lines: 106
Message-ID: <58g5gc$b7j@colombia.earthlink.net>
References: <587evk$1ei@news2.gte.net> <58d89s$gsk@Turing.Stanford.EDU>
NNTP-Posting-Host: max1-sc-ca-31.earthlink.net
X-Newsreader: Forte Free Agent 1.0.82

avrom@Turing.Stanford.EDU (Avrom Faderman) made so bold as to state:

>In article <587evk$1ei@news2.gte.net>, Jason Melancon <hraron@gte.net> wrote:
>>  "You should be a bit careful, perhaps, with puzzles based on morals:
>>You don't want to come off as preachy."  Avrom Faderman

>[snip]

>>I want to talk about this concept, preachiness. What do people mean by
>>this term? Is it more than just speaking our mind?

>Well, I can only say what I meant, and, to tell the truth, I'm not
>sure "preachy" was quite the term I wanted.

>Basing puzzles on morals, unlike mentioning morals in static fiction*
>has a consequence far beyond speaking one's mind.  It requires, or at
>least risks, speaking one's mind in a particularly didactic way.

I don't disagree with you, but on the other hand where is it written
that i-f ought not be didactic? I realize this is the case you're
wanting to make, but I wonder why. There seems to be no reason in
principle why a work of i-f--even a text adventure--can't have a
teaching or rhetorical aim. 

Aren't you really only saying that you yourself don't want to
play/read that sort of work, and then presuming that no one else does
either? Nothing wrong with that--it's just that I need to be clear
about the claim. You're not claiming that there's something
illegitimate in a person writing such a work if that's what he/she is
intending to write, are you?

>But morals are different.  They're not relative to worlds--if the
>player character in a game would be acting wrongly in doing X in
>circumstances Y, someone would _really_ be acting wrongly in doing X
>in circumstances Y.  If an author proposes to teach a player something
>with a puzzle about morals, it can't simply be something about the
>game universe--it must be something about the world in general.  And
>this is something about which the author is NOT legitimately in a
>position of authority.

So no moral teaching is legitimate, or is it just that an author ought
not present himself explicitly as a teacher when he's writing fiction?

I think what you're saying, if I'm understanding you correctly, is
that you consider a story preachy that does anything more than simply
present a world as experienced through its character's eyes. If it
tries to declare that its world is the same as reality, then you
recoil. 

That's mostly my reaction, too--when I disagree with the author. I
think most readers recoil at that sort of thing. But the fact remains
that stories still get called preachy even when they don't explicitly
state any intention to teach. Let's consider a Jewish or Christian
game; suppose that the idea of the thing is perform ten virtuous
actions corresponding to the Ten Commandments and that at the end the
player goes to heaven or whatever. I will absolutely dadgum fersure
guarantee you that such a game will be branded "preachy" by a certain
predictable crowd even though its author said not one whit about its
relation or lack thereof to the real world.

Is it because the story is clearly based on a world-view that claims
not to be fiction? That can't be it, can it? *Every* story is based on
some world-view, and every world-view makes claim to connection with
reality. That's what a world-view is: a doctrine about the nature of
the world and all reality. It's just well-developed in some stories
and glossed over in others. So where's the difference?

>But in a puzzle, where the author supposedly knows THE THING to do and
>the player needs to LEARN what it is, isn't a matter of equal
>footing--It's a conceit that the author has special access to the
>truth (in the way they really do in non-moral issues, at least about
>their own world) and that the player must discover what this truth is.

You complaint appears to me to be just as I said in my other post. You
don't think there's any absolute measure of good and evil, so you hate
reading stories that suppose there is. I, in turn, hate stories in
which it is clearly supposed there is not. I consider *them* preachy.
The only way, really, to avoid writing a story that both of us will
consider completely free of preachiness is to either write one that
only involves principles we agree on (which will be hard to do, I
suspect) or one that is so vague and indeterminate as to have very
little soul. This latter is the usual strategy, and it's one
reason--though only one--most i-f stories have the intellectual depth
of comic books. 

The answer to the problem seems to me to be simply that an author
should know the audience he's writing for and write for them. 

--Cardinal T

          I mean, what the hell kind of villain thwarts the hero's
	  progress with soup cans in the kitchen pantry?
	                                         --Russ Bryan
	
         Are there any text games prominently featuring dinosaurs?  
         If not, does anyone besides me think it would be cool? 
                                                 --Matthew Amster-Burton

         Please be as rational as possible
                                                 --Mike Thomas
         
         "Bathroom?  Yeah.  Go through that door, on the end
         of the hall, on your left."  "Pardon?"  "South twice,
         than east."  "Ah."
                                                  --Clyde "Fred" Sloniker



From jota@laraby.tiac.net Mon Dec  9 14:39:59 MET 1996
Article: 20256 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news00.sunet.se!sunic!news.sprintlink.net!news-peer.sprintlink.net!howland.erols.net!news.bbnplanet.com!cam-news-hub1.bbnplanet.com!uunet!in3.uu.net!199.0.65.182!news-in.tiac.net!posterchild!laraby.tiac.net!jota
From: jota@laraby.tiac.net (Admiral Jota)
Newsgroups: rec.arts.int-fiction
Subject: Re: Preaching to the pews
Date: 9 Dec 96 08:54:33 GMT
Organization: The Internet Access Company, Inc.
Lines: 53
Message-ID: <jota.850121673@laraby.tiac.net>
References: <587evk$1ei@news2.gte.net> <58d89s$gsk@Turing.Stanford.EDU> <58g5gc$b7j@colombia.earthlink.net>
NNTP-Posting-Host: laraby.tiac.net
X-Newsreader: NN version 6.5.0 #1 (NOV)

cardinalt@earthlink.net (Cardinal Teulbachs) writes:

[lotsa stuff that I probably should have removed has been removed]

>Aren't you really only saying that you yourself don't want to
>play/read that sort of work, and then presuming that no one else does
>either? Nothing wrong with that--it's just that I need to be clear
>about the claim. You're not claiming that there's something
>illegitimate in a person writing such a work if that's what he/she is
>intending to write, are you?

It sounded to me that Avrom was saying that he didn't want to play a game 
where the author was trying to teach him something that he didn't feel 
the author was a legitiment person to teach. In other words, if a game 
was intended as a didactic presentation of fluid dynamics, I'm not so 
sure that I would accept it if it was written by a philosophy major. If 
the game is written as didactic regarding morality, I wouldn't 
particularly like it if it was written by someone that I didn't consider 
an expert on morality.

Somehow, I've managed to switch from interpreting Avrom's opinion to 
presenting my own... sorry about that. Anyway, here's the bit (by Avrom) 
that seems to suggest that what I think is close to what he was thinking: 

>avrom@Turing.Stanford.EDU (Avrom Faderman) made so bold as to state:

>>But morals are different.  They're not relative to worlds--if the
>>player character in a game would be acting wrongly in doing X in
>>circumstances Y, someone would _really_ be acting wrongly in doing X
>>in circumstances Y.  If an author proposes to teach a player something
>>with a puzzle about morals, it can't simply be something about the
>>game universe--it must be something about the world in general.  And
>>this is something about which the author is NOT legitimately in a
>>position of authority.

cardinalt@earthlink.net (Cardinal Teulbachs) writes:

>So no moral teaching is legitimate, or is it just that an author ought
>not present himself explicitly as a teacher when he's writing fiction?

That's not what I saw in that paragraph. It looked like he was saying 
that a moral teaching is only legitimate it the writer is a legimate 
teacher of morals. I would probably consider a moral teaching by Billy 
Graham to be more legitimate than one by Bill Clinton. (This part is, of 
course, *my* opinion, and not necessarily Avrom's.)

[lots of other stuff snipped, because it's not the stuff I'm responding to]

--
                         /<-= -=-=- -=  Admiral Jota  =- -=-=- =->\
                     __/><-=-  http://www.tiac.net/users/jota/  =-><\__
                       \><-= jota@mv.mv.com  --  Finger for PGP =-></
                         \<-=- -=  -=-  -=  -==-  =-  -=-  =- -=->/


From nulldogma@aol.com Mon Dec  9 14:40:47 MET 1996
Article: 20182 of rec.arts.int-fiction
Path: news.lth.se!solace!mn6.swip.net!newsfeed.sunet.se!news01.sunet.se!sunic!02-newsfeed.univie.ac.at!01-newsfeed.univie.ac.at!voskovec.radio.cz!www.nntp.primenet.com!nntp.primenet.com!feed1.news.erols.com!howland.erols.net!news-peer.gsl.net!news.gsl.net!portc01.blue.aol.com!audrey01.news.aol.com!not-for-mail
From: nulldogma@aol.com
Newsgroups: rec.arts.int-fiction
Subject: Re: Preaching to the pews
Date: 7 Dec 1996 18:40:33 GMT
Organization: AOL http://www.aol.com
Lines: 85
Message-ID: <19961207184000.NAA20007@ladder01.news.aol.com>
References: <didq5EAqvIqyEwBh@amster.demon.co.uk>
NNTP-Posting-Host: ladder01.news.aol.com
X-Admin: news@aol.com

> I want to talk about this concept, preachiness. What do people mean by
> this term? Is it more than just speaking our mind? I guess I don't
> understand the "show vs. tell" dichotomy in IF very well. (Come to
> think of it, past threads about this might be a good addition to the
> IF authoring pages ... I'll be on the lookout.)

Well, as I use the term, anyway, it's not just presenting a message. The
best games (as with the best books, movies, etc.) (IMHO) tell you
something about the way the author sees the world, and help you understand
why. "Preachiness" is when the message is especially didactic and
heavy-handed, when you feel manipulated rather than educated.

Obviously, this is a pretty subjective notion. 

> In my opinion, of the above three games I quoted Andrew on, In The
> End, and the others to a lesser extent, weren't preachy enough: While
> I liked ITE, except for the "solution," I could barely discern the
> philosophy that In The End tried to demonstrate, and in fact I deigned
> to use the author's walkthrough. 

I didn't think ITE was preachy, either. (More to come on this in a later
post.)

> Just to be clear, I come from a background of student organizing, so
> naturally my bias here is, if anything, toward preaching. But can I
> hear from others on what, *exactly, specifically* (give spoilers), you
> thought was preachy in a text game and what could have been done about
> it? Tall order, I know. No hurry.

I, too, come from a background in student organizing. It's all about
recognizing that everything, ultimately, is propaganda; and yet people
really resent (understandably) really blatant propaganda. You want to
respect your readers' intelligence, present them with the same things you
see in the way you see them, and trust that they will draw the same
conclusions.

Good non-preachy example (IMHO):


[CHRISTMINSTER & TRINITY SPOILERS AHEAD:]










Breaking the window in Christminster and killing the skink in Trinity. In
both cases, these were actions you *chose* (without being made to think
much about them beforehand); more importantly, the consequences were
described evocatively but not dogmatically -- you had Edward following you
about moping and the skink's feeble squeaks as it expired, but the game
didn't deign to tell you how you emotionally felt about it; that was left
up to you.

This becomes a lot harder, of course, when the game itself depends on that
emotional reaction. Tapestry, for example, depends entirely on you
identifying with the anguish of the main character over his life
decisions. I didn't, and so for me the game was a total waste. Whether it
could've been written in such a way that I *did* feel that way is an
interesting question -- and anyway, it seems that lots of other people did
feel drawn in, so the game may have been too "preachy" for me but not for
others.

> One reason for asking is that I've had an idea in the back of my mind
> awhile for a game that, if I did it right, would certainly deal with
> particular generalizations and visions. What advice would people have
> about avoiding preaching?

Trust your readers, and the importance of your material. Focus on the
little things, and let the big messages take care of themselves.
Acknowledge complexity. And learn from other authors who do it
exceptionally well. (My own recommendations for recent books/movies:
Ursula LeGuin's novella collection _Four Ways to Forgiveness_ and Mike
Leigh's movie _Secrets and Lies_. Really, any LeGuin and Leigh. They are
my heroes of non-preachiness.)

Neil
---------------------------------------------------------
Neil deMause                            neild@echonyc.com
                  http://www.echonyc.com/~wham/neild.html
---------------------------------------------------------


From erkyrath@netcom.com Mon Dec  9 14:49:15 MET 1996
Article: 20140 of rec.arts.int-fiction
Newsgroups: rec.arts.int-fiction
Path: news.lth.se!solace!demos!news.stealth.net!www.nntp.primenet.com!nntp.primenet.com!howland.erols.net!netcom.com!erkyrath
From: erkyrath@netcom.com (Andrew Plotkin)
Subject: "Of Forms Unknown" and allegorical gunk
Message-ID: <erkyrathE20E6G.7GL@netcom.com>
Organization: NETCOM On-line Communication Services (408 261-4700 guest)
X-Newsreader: TIN [version 1.2 PL1]
Date: Fri, 6 Dec 1996 20:27:52 GMT
Lines: 82
Sender: erkyrath@netcom.netcom.com

In my comments, I wrote:

> [Of Forms Unknown]
> Perhaps I am jaundiced, because I know exactly what I was intending with
> _So Far_ (and "Weather"), so I know what went into them. Unfortunately,
> not much seems to have gone into "Forms", in spite of an apparently
> allegorical cast to the ending. But this wasn't backed up by anything in
> the game. Did I miss anything? I can only judge from what I saw, so I must
> judge it not very good. 

And other people have said similar things. So, aside from being smug 
that my game worked (and being bitter because I have no social life), 
what can I say about this topic?

(I'm really talking about _So Far_ and "Weather" in this post, not "OFK" 
specifically. It's just a good segue.)

Well, first, I tried to make the individual scenes interesting. People 
aren't going to go all the way through, much less look for hidden levels 
of meaning, if the game isn't cool on the literal level. The scene with 
the kid in the metal world got to people. I'm happy with that; it has 
nothing to do with what I intended when I designed it.

I did, however, try to keep The Theme stitched into every single scene of
_So Far_. This is the tricky part, and not necessarily obvious on the
surface, but I think it's what led to a game that produced such a
gratifying amount of discussion and analysis in the newsgroup. It's also
maybe what people felt was missing from "OFK". (Yeah, so I lied.)

What I did was, from the beginning, have The Theme in mind. (No, I'm not 
going to say what it was -- but yes, I'm going into more detail now than 
I have before.) From before the beginning, really. The genesis of _So 
Far_ was a single actual event. I wanted to get that experience into a 
game, so I came up with a scene -- the ending scene of the game -- that 
felt the same to me as the event.

Now of course this scene by itself doesn't convey jack to anyone else. It 
feels right to me *because* it reminds me of how I actually felt in the 
real situation. So I have to put in more information. 

So my sneaky trick is, I'm not going to actually tell the player what the
metaphors mean. Instead, I'm going to make a whole bunch of *apparently 
unrelated* scenes, all of which express parts of the same experience. Not 
even necessarily the same parts. Events leading up to the "final scene", 
events after it, particular thoughts I had at the time. Sometimes they 
show up as puzzles, sometimes as solutions, sometimes as background 
scenery.

But the point is, there's still an underlying coherence. It's not
something I *designed*, but I'm trusting that it's really in there,
because all these pieces ultimately come from the same part of my life.

Of course, really I'm simplifying the situation. There was not only the 
central event of _So Far_, but the Theme per se, which was an image that 
I came away from the event with; both wound up stuck into the game, in 
different ways. And there are other hidden levels as well. I wrote a lot 
of background to the home world of _So Far_'s protagonist; only a couple 
of details made it into the game. (I meant to put in more, but these 
things have a life of their own.) Some things came straight from my 
subconscious, and only later explained to me what they meant -- the 
teeming silent crowds, for example.

And since real life never resolves nicely into anything, the ending of 
_So Far_ isn't all that neat and clean either.

There. That's how I did it. Pretty much the same applies to "A Change 
in the Weather", except that that was simpler.

This is not the only way to write a "deep" game. I'm half-convinced that 
it's a dead end, in fact, because I can only use this technique to write 
about myself! I have no idea how to write about protagonists who are not 
me -- much less other characters. Future works will probably be 
experiments in different directions entirely.

--Z



-- 

"And Aholibamah bare Jeush, and Jaalam, and Korah: these were the
borogoves..."


From leonlin@uclink.berkeley.edu Mon Dec  9 14:50:21 MET 1996
Article: 20205 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news01.sunet.se!sunic!02-newsfeed.univie.ac.at!01-newsfeed.univie.ac.at!voskovec.radio.cz!www.nntp.primenet.com!nntp.primenet.com!ix.netcom.com!smx-ca9-40.ix.netcom.com!user
From: leonlin@uclink.berkeley.edu (Leon Lin)
Newsgroups: rec.arts.int-fiction
Subject: Thanks and Congratulations for Competition
Date: Fri, 06 Dec 1996 22:17:03 -0800
Organization: UCB
Lines: 39
Message-ID: <leonlin-0612962217030001@smx-ca9-40.ix.netcom.com>
NNTP-Posting-Host: smx-ca9-40.ix.netcom.com
X-NETCOM-Date: Fri Dec 06 10:13:06 PM PST 1996

I would like to offer my thanks and congratulations to everyone involved
in the 1996 Interactive Fiction Competition. I had a lot of fun, both in
writing my entry, "Kissing the Buddha's Feet," and playing the many games
entered into the competition.

Great thanks to Kevin Wilson, both for taking the time in his busy
schedule to organize the competition and for being a wonderful friend and
inspiration. Thanks to Michael Kinyon and the Official IF Competition
Betatesting team, who helped me debug my game. And thanks to Colin
Turnbull, for volunteering to count the votes, and Volker Blasius, for
managing the competition entries and the whole IF archive on ftp.gmd.de.

Congratulations to Graham Nelson for winning the competition with the
charming "Sherbet." You proved again that your legendary reputation in the
IF community is well deserved. Congratulations also to C. E. Forman, for a
gripping, intriguing, thrilling game in "Delusions" (and also for
correctly guessing my identity!), and Daniel Ravipinto; your work
"Tapestry" really moved me with its powerful writing and ideas, and opened
my eyes to the potential of interactive fiction. 

And many thanks and congratulations to all the other entrants as well, for
taking the time and effort to write games, and pleasing me with the
diversity and quality of your efforts. I hope to be able to play your
future games.

Finally, I do want to thank the many people who took the time to offer
their comments and criticism on my game. The reviews of my first game,
"The One That Got Away," which I have saved and still read, helped me
immensely in writing "Kissing the Buddha's Feet," and I hope your comments
on "Kissing" will help me make my next game even better.

Once again, thanks to everyone who participated and helped make the '96
Competition the success it was. I hope I'll have the time to enter the
contest again next year, but no matter what, I'll be looking forward to
it.

-- 
Leon Lin
leonlin@uclink.berkeley.edu


From whizzard@uclink.berkeley.edu Mon Dec  9 14:52:08 MET 1996
Article: 20253 of rec.arts.int-fiction
Path: news.lth.se!solace!mn6.swip.net!newsfeed.sunet.se!news99.sunet.se!nntp-oslo.UNINETT.no!nntp-trd.UNINETT.no!nntp.uio.no!www.nntp.primenet.com!nntp.primenet.com!dciteleport.com!feed1.news.erols.com!cpk-news-hub1.bbnplanet.com!news.bbnplanet.com!su-news-hub1.bbnplanet.com!arclight.uoregon.edu!news.sprintlink.net!news-peer.sprintlink.net!howland.erols.net!agate!uclink.berkeley.edu!whizzard
From: whizzard@uclink.berkeley.edu (Gerry Kevin Wilson)
Newsgroups: rec.arts.int-fiction
Subject: Re: Review of Russ Bryan's Review of Andrew Pontious's Capsule Reviews of Contest Games
Date: 9 Dec 1996 07:42:00 GMT
Organization: University of California at Berkeley
Lines: 26
Message-ID: <58gfs8$bhs@agate.berkeley.edu>
References: <5826jv$1h8@news.thorn.net> <JcaPGFA17GqyEwg7@amster.demon.co.uk> <erkyrathE20FAJ.BIA@netcom.com> <1obAbBAxGyqyEwEE@amster.demon.co.uk>
NNTP-Posting-Host: uclink.berkeley.edu

In article <1obAbBAxGyqyEwEE@amster.demon.co.uk>,
Bob Adams  <amster@amster.demon.co.uk> wrote:
>
>I'll accept your comment as true as I did not study the rules. However,
>if the rules did not include any reference to judging the authors all-
>round writing/programming/presentation competence, then I fail to
>understand why the group bothered to organise a competition in the first
>place.
>
>-- 
>Bob Adams
>          http://www.amster.demon.co.uk
>


Bob, lighten up.  It is assumed by myself, if not others, that games with
more impressive writing, form, etc. will be liked the best.  I credit
folks with some taste.  I gave no criteria whatever to judge the games on
because I assume that others are quite capable of forming their own
opinions and using a fair, or nearly fair, method of doing so.  I doubt
that professional judges would have differed much from the final results
we got.  But, as I have always said, if anyone wishes to run the
competition in a dramatically different way, there's always room for them
to organize another contest.
-- 
	"Stress?  WHO ME???!!!  Never."


From hraron@gte.net Mon Dec  9 14:53:34 MET 1996
Article: 20211 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news00.sunet.se!sunic!news.sprintlink.net!news-peer.sprintlink.net!dciteleport.com!worldnet.att.net!uunet!in2.uu.net!206.124.68.65!newsfeed.gte.net!usenet
From: hraron@gte.net (Jason Melancon)
Newsgroups: rec.arts.int-fiction
Subject: [voting] Criteria vs. *Like* (was Re: re: Re: Review Review of the Review Review review)
Date: Sun, 08 Dec 1996 12:22:46 GMT
Organization: GTE Intelligent Network Services, GTE INS
Lines: 75
Message-ID: <58ebjt$iaq@news3.gte.net>
References: <58agpi$4o0@bolivia.earthlink.net> <19961207181600.NAA19352@ladder01.news.aol.com>
NNTP-Posting-Host: tpm229050.gte.net
X-Newsreader: Forte Free Agent 1.0.82

"Sorry guys but your own personal pet loves and hates don't
(shouldn't) come into it." Russ Bryan <cleofax@javanet.com>

"If an author has written a technically impressive, complex, well
spellchecked game that I want to throw across the room, then I feel
obligated to give it a low score. Contrarily, if there's a game that's
buggy and sloppy but makes me want to keep playing it, I'll give it a
high score." Neil DeMause <neild@echonyc.com>

"If you really don't know how to grade the games, the SPAG system
works fine and incorporates a lot of stuff." Whizzard
<whizzard@uclink.berkeley.edu>

---------------------------------------------------------

Here are my two cents on this:

I guess I don't see anything wrong with breaking up the scoring
process by individually grading criteria, it's just that the criteria
may vary. 

Doubtless most games will be right to score via a system like what
would be appropriate to use in a SPAG rating.  So use one!  Why not?
It will make reviewing that game easier later, it will make your score
more specific and detailed, and you can even send the final list to
Whizzard for use in SPAG, because the goal of his list and the goal of
the voting are approximately the same, as I understand them. After
all, if you give, for example, Atmosphere, a "2.0", it's because you
*liked* the atmosphere, right?  I mean, are people saying his rating
system is too rigid?

Two problems with this are 1) your votes won't have as much
statistical impact since, e.g., your favorite probably won't be a 10,
and 2) not all games will have the same prominent aspects, or in
ratios that SPAG's four main ones represent.  In other words, maybe a
game doesn't have a plot per se, but it's the funniest damn thing
since The Beautiful South.  (I'm sure these two have been raised here
recently, but I'll recap.)  As far as I can figure, their respective
solutions are simply 1) expand proportionally, adjust and round votes
so your extremes are one or more 1s and 10s (see A. Plotkin's post for
real info), and 2) use a better set of criteria!  No biggie! . . . ?

----

Some more benefits to doing this that I personally noticed follow.
These are probably, however, very individual, plus I didn't do it both
ways and then choose this way.  So what follows can't really recommend
using criteria, but maybe some can relate:

I found that using criteria forced me to notice certain things about
some games that made me re-evaluate my attitude toward them.  An ex.:
After I played "Kissing," I was anxious to rate it lowly because I
couldn't find the model, or the game, or word the chair thing etc.
But, if I recall, sitting there trying to rate its gameplay and all, I
realized its atmosphere, writing, and the fact that Evan responded to
queries about EVERY NOUN IN THE GAME really did redeem it.  It's too
early for me to go on any more.  Hihihihe, sorry

----

"I always thought people played adventures for entertainment. Don't
tell me I've been doing it wrong all these years!" Bob Adams
<amster@amster.demon.co.uk>

I haven't had to worry about this yet, but something we may be
forgetting is that "Enjoyability" and Quality in text games may not be
the same thing.  I'm thinking of fiction like the movie "Platoon."
Art that shows us something important about the world, but is
unpleasant to watch or think about, may not be "likeable" (while it
may indeed be "entertaining" in a sense).  You respect this sort of
thing more than like it, often.  Or maybe I'm just playing word games.

If I'm outta line, tell me off,
Jason Melanon



From winalski@zko.dec.com Mon Dec  9 14:55:20 MET 1996
Article: 20180 of rec.arts.int-fiction
Path: news.lth.se!solace!dataphone!www.nntp.primenet.com!nntp.primenet.com!feed1.news.erols.com!worldnet.att.net!uunet!in3.uu.net!204.96.36.2!wizard.pn.com!brighton.openmarket.com!decwrl!pa.dec.com!usenet
From: Paul S Winalski <winalski@zko.dec.com>
Newsgroups: rec.games.int-fiction,comp.sys.ibm.pc.games.adventure,rec.arts.int-fiction,comp.sys.ibm.pc.games.rpg,alt.games.video.classic
Subject: Re: Dungeon, the original Zork:I neeed Help!
Date: Sat, 07 Dec 1996 19:18:39 -0500
Organization: Digital Equipment Corporation
Lines: 68
Message-ID: <32AA095F.5F3A@zko.dec.com>
References: <849637929.28107@dejanews.com> <slrn5a9np5.kj4.darin@connectnet1.connectnet.com> <5833eo$1du@dfw-ixnews9.ix.netcom.com> <slrn5abk27.9vg.darin@connectnet1.connectnet.com> <586upv$6la@news.netmagic.net>
Reply-To: winalski@zko.dec.com
NNTP-Posting-Host: lspace.zko.dec.com
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
X-Mailer: Mozilla 3.01 (WinNT; I) [AXP]
Xref: news.lth.se rec.games.int-fiction:19370 comp.sys.ibm.pc.games.adventure:144895 rec.arts.int-fiction:20180 comp.sys.ibm.pc.games.rpg:137014 alt.games.video.classic:13078

Richard Cortese wrote:
> 
> Nice history Darin, only one thing I would add to clarify, the original
> Adventure/Collosal Cave was in Fortran right from the start if I remember
> an interview of Crothers<sp?>

Correct.  In fact, the original FORTRAN Adventure program is still one
of the programs we use to test our FORTRAN compilers here at DEC.

> I read correctly. On one of the BSD OS
> distribution CD roms, 2.0 I believe, they included the Fortran source.
> In order to run the game under BSD, you have to pass the source through
> a Fortran to C converter & compile it from there. I assume this is
> because virtually all languages for mainframes cost $$$$$$.

Actually, it's because the FORTRAN compiler then available on BSD UNIX
(f77) was pretty feeble.  Adventure was written in FORTRAN IV and used
some nuances of the language f77 didn't do very well.

> Someone from the .adventure newsgroup could surely give you better info on
> this then I, but they developed their own programing language/interpreter/
> whatever you want to call it. IMO: That is one of the reasons why the
> syntax was so tight. "Blorple the cube" works, but any close miss like
> "Blorple thecube" would choke it just as bad as a syntax error in basic.

The original mainframe Adventure program has
a very limited syntax.  Commands must be one or two words, and there's
a very limited vocabulary.  The developers of the next adventure game,
mainframe Zork, wrote in a language developed at MIT called MDL.  They
greatly expanded the syntactic capabilities of the command parser.  As
you
say, they would still have trouble with something like "Blorple
thecube".
In fact, to this day, I don't know of any text-based adventure programs
that will attempt to detect mistakes such as that one, where you have
stuck two words together.

Such things never "choked" the parser--at worse, it would tell you it
didn't understand what you meant.

> IMHO: This info was one of the things that contributed to Infocom's demise.
> Once again, from hazy memory; I remember Infocom as one of the first
> companies to start abandoning platforms. The spin on it was, "Those jerks!
> All they have to do is run the source code through their compiler for
> our 'xxxxxx' & we could have the same game. I don't know if this is
> strictly true since they came our with improved versions of their
> interpreter, but the damage was done. What they failed to see was people
> with dieing platforms will eventually move on to more profitable platforms.
> Alienating your customers now insures they will not be your customers in
> the future.

This was the era of great fallout among personal computer platforms--the
demise of the Amiga and Apple II and the ascendency of the
IBM-compatible
PC among the Intel-x86-based computers.  Also the time when MS/DOS won
out
over CP/M.  Infocom made the right move in dropping the dying platforms.

What killed Infocom in the end was their unsuccessful attempt to make a
go
at the commerical database business.  Computer games were never the
ultimate
goal of Infocom--they were a way to generate cash flow to support the
investment in the company's long-term core business, which was PC-based
databases.  It was the failure to make this business work that led to
Infocom's demise.

--PSW


From jcaveney@ix.netcom.com Mon Dec  9 14:55:37 MET 1996
Article: 20214 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news00.sunet.se!sunic!nntp.coast.net!howland.erols.net!www.nntp.primenet.com!nntp.primenet.com!ix.netcom.com!news
From: jcaveney@ix.netcom.com(Jerry Caveney )
Newsgroups: rec.games.int-fiction,comp.sys.ibm.pc.games.adventure,rec.arts.int-fiction,comp.sys.ibm.pc.games.rpg,alt.games.video.classic
Subject: Where to find the original Zork (Dungeon) (Was Re: Dungeon, the original Zork:I neeed Help!)
Date: 8 Dec 1996 15:25:43 GMT
Organization: Netcom
Lines: 17
Message-ID: <58emln$qa4@sjx-ixn4.ix.netcom.com>
References: <849637929.28107@dejanews.com> <slrn5a9np5.kj4.darin@connectnet1.connectnet.com> <5833eo$1du@dfw-ixnews9.ix.netcom.com> <slrn5abk27.9vg.darin@connectnet1.connectnet.com> <586upv$6la@news.netmagic.net> <32AA095F.5F3A@zko.dec.com>
NNTP-Posting-Host: atl-ga20-12.ix.netcom.com
X-NETCOM-Date: Sun Dec 08  7:25:43 AM PST 1996
Xref: news.lth.se rec.games.int-fiction:19385 comp.sys.ibm.pc.games.adventure:144979 rec.arts.int-fiction:20214 comp.sys.ibm.pc.games.rpg:137121 alt.games.video.classic:13099

For those who are following this thread, and may be interested, the
easiest place to find the original mainframe Zork game (generally
called "Dungeon"), compiled for the pc, is to download the file
pcdungeo.zip from http://www.gamesdomain.co.uk/

The complete, direct address is
http://www.gamesdomain.co.uk/directd/pc/dos/adventures/index.html and
click on "dungeon".

The Fortran and C versions (but not the pc version) can be found, along
with *lots* of other fascinating info on the history of the original
Zork, at http://www.csd.uwo.ca/~pete/Infocom/

Just thought I'd post this to save any others the time of searching. 
Took me a while to find the pc version.

Jerry


From ctt20@hermes.cam.ac.uk Mon Dec  9 16:07:08 MET 1996
Article: 20143 of rec.arts.int-fiction
Path: news.lth.se!solace!mn6.swip.net!news00.sunet.se!sunic!news.sprintlink.net!news-peer.sprintlink.net!howland.erols.net!www.nntp.primenet.com!nntp.primenet.com!usenet.eel.ufl.edu!warwick!lyra.csx.cam.ac.uk!news
From: Chuan-Tze Teo <ctt20@hermes.cam.ac.uk>
Newsgroups: rec.arts.int-fiction
Subject: Fear: an author's experience
Date: Sat, 07 Dec 1996 03:12:05 -0800
Organization: University of Cambridge
Lines: 156
Message-ID: <32A95105.578E@hermes.cam.ac.uk>
NNTP-Posting-Host: imsety.trin.cam.ac.uk
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
X-Mailer: Mozilla 2.0 (Win16; I)

I'm sure there are many of you out there wondering just what it's 
actually like to write a competition entry, and why anyone would want to 
do such a crazy thing. So, if anyone's interested...

I rediscovered the IF world last year and was impressed by the sheer 
volume of the archive. Over the course of a few months, I played through 
all the Inform games. About this time, I toyed with the idea of writing  
one myself, but wasn't confident of either my literary or programming 
skills. I thought up the basic plot for "Fear" at this time, but wrote 
absolutely nothing down.

Coming to the end of the long summer holidays in early September, I was 
feeling somewhat bored and looking for something challenging to do. Thus 
I set myself the task of writing an entry for this year's competition. I 
went to the library and got out some books on psychology and one on good 
writing style. I read all the internet guides to IF authorship that I 
could get my hands on, including Graham Nelson's bill of player rights, 
and a paragraph that amounted to "Your first game will definitely be 
crap, so don't worry." (I ignored both of these ;-) )

Then I grabbed a copy of Inform 6 and attempted to compile some of the 
example source code files, which threw out error messages which I didn't 
understand. Well, I needed some code to learn from, so it was back to 
Inform 5.5 which worked perfectly. My first attempts at writing Inform 
code produced huge numbers of syntax errors as I had no experience with 
C, which was rather infuriating as all I had at this stage was room 
descriptions and exits, but eventually it worked. I still had no idea 
what the dreamworlds would be like, and started brainstorming. At the end 
of the first week (on and off), I had most of the house laid out and some 
horribly inelegant and broken code for the spider. When I got stuck on 
programming, I turned around and forced myself to write room 
descriptions.

Writing the descriptions was by far the most difficult part of this game. 
The house plan in Fear is loosely based on a small place I used to stay 
in, and I soon discovered that descriptions of normal everyday rooms are 
much harder to write than exotic locales. Eventually I opted for a 
minimalistic approach, characterising the key objects and leaving a fair 
amount to the player's imagination. Thus I could avoid boring 
descriptions. I hope it worked.

Oh, by the way, houses on this side of the Big Pond tend to have a 
mortice lock fitted (requiring a key) in addition to the knob-type lock, 
for those wondering why a key is needed to open the door.

The dreamworlds idea was not consciously inspired by Curses. The design 
of the plot required that the player be forced into facing their fears, 
and there was no way I could do this in the claustrophobic house. Cynics 
who claim that this was merely an excuse to string several difficult and 
unrelated puzzles together are only partially right ;-)

By the end of the second week, I had nearly finished the house, pyramid 
and duck areas and was still trying to think of a good sound-related 
puzzle. I wanted each realm to have its own distinct atmosphere. The 
point of the statue puzzle, to me, was that being trapped in the dark 
with no lightsource is a situation the player as well as the protagonist 
would hate, and to escape you have to explore by feeling things. The 
statue puzzle was intended to be easy, a matter of making observations 
about the statues, but actually turned out to be much more difficult than 
I thought. Oh, the protagonist's background is deliberately left 
unspecified; the idea is that just perhaps, "it could be you".

The duck code was a real pain to write- but more on this later.

I showed this unfinished version to my sister, who complained about the 
spider being scary, and found a totally nonexistent bug.

By this time, it was about mid-September and I was getting quite anxious 
to finish Fear in time to get a bit of beta-testing done. I was extremely 
relieved when the deadline was extended! I dreamed of the crystal shapes, 
somehow connected them to music, and thus the third dreamworld was born. 
It was an incredible feeling when the code worked the first time I ran 
it, and for the first time I felt the game was near to completion. 
Finally I wrote the atmosphere and endgame daemons. Writing the final 
minutes up till dawn was really an enjoyable experience, even if I still 
had to go back and sort out little things like scoring. I decided on a 
total score of 36 because I think 36 is a much prettier looking number 
than, say, 50. Your tastes may vary...

Finally, at the end of the third week, I thought it was complete. After a 
final play-through to pick up more bugs, I thought it was bug-free, and 
sent it out to the beta testers, waiting anxiously for the reports.

ARGH!

The first beta reports revealed that the Great Hall code was broken. Up 
to this point I had used the metaphor "tying = containment", which was 
correctly deduced by the testers, who then proceeded to rip it apart in 
various ways. Worse, the descriptions of tied objects were inelegant and 
in a few cases totally wrong. Unable to come up with a better concept at 
this stage, I wrote a few awful hacks to fix it.

More to the point, it was revealed that Fear was short of some synonyms 
and many scenery objects, because people were trying to examine 
everything. These were much easier to fix. Dave Gatewood, being an 
editor, very helpfully picked up many minor but annoying grammatical and 
stylistic errors. But everyone's contributions were very constructive and 
made the game much better. I really appreciate the effort they put in.

By now, it was just about the start of October, I was back in college and 
I had two weeks left, and I was beginning to get very busy. Many clues 
were added to the puzzles at this time in an attempt to make them easier.
In one hectic weekend I finished the second beta and sent it out, hoping 
that this would be the end.

It wasn't.

Apart from another 50 or so comments about synonyms, cosmetic bugs and so 
on, it transpired that the tying code was still horribly broken, and no 
amount of hacking would fix it. The next weekend, I took the plunge and 
rewrote the entire thing into its present form, which gives each object 
two tieable ends. (How do the other games containing ropes handle this? I 
would be very interested to know.)

Everyone seemed happy about the third beta, so I sent out the final 
version. Except that it was the WRONG final version, because I had 
corrected a minor bug and then forgotten to recompile. Fortunately Dave 
spotted this in time for me to send in an updated version. The code for 
the final version was 50% longer than the first beta which gives you an 
idea of just how much can be added during testing and how much work 
testing actually is...

Well, there it was, my first game, publicly released (gulp).

The judging period meant one and a half months of suspense. I didn't get 
much sleep this term due to excessive extracurricular activities and 
excessive amounts of work, but I managed to play and enjoy almost all the 
competition entries anyway. Reading some of the comments got a little 
worrying at times, but I decided to keep my mouth shut and not post 
anything. Probably wisely.

Finally, the results came out, and I was quite pleased to come 6th 
considering the quality of the competition. I would be grateful if those 
of you who have reviewed Fear could possibly email me a copy as I may 
have missed one or two; I do appreciate your time.

Are the puzzles in any way unfair or unreasonably difficult? Does the 
abrupt switch in atmospheres work for you? What impression did the game 
leave on you?

What of the future? I have ideas tossing around in my head for a major 
piece at the moment, but nothing is likely to be coded for a bit. All I 
can say is that I want to incorporate those elements of style that worked 
in Fear in a radically different milieu. Thus, I would like to hear 
feedback, bug reports and so on, as I plan on a post-competition release 
2 in the foreseeable future. This would also enormously increase my 
motivation to actually write the game. (send copies of newsgroup replies 
by email please as I'll be off till the 22nd soon)

More immediately, I shall be going on holiday (hang gliding) for a couple 
of weeks soon. The fact that I am somewhat acrophobic will no doubt be 
viewed by some as ironic. Or possibly appropriate... it's too late to 
back out now...


- Chuan


From graham@gnelson.demon.co.uk Mon Dec  9 21:53:38 MET 1996
Article: 20269 of rec.arts.int-fiction
Path: news.lth.se!solace!nntp.uio.no!www.nntp.primenet.com!nntp.primenet.com!dispatch.news.demon.net!demon!graham
From: Graham Nelson <graham@gnelson.demon.co.uk>
Newsgroups: rec.arts.int-fiction
Subject: Re: Preaching to the pews
Date: Mon, 09 Dec 1996 12:57:51 +0000 (GMT)
Organization: none
Lines: 33
Message-ID: <ant0912511cbM+4%@gnelson.demon.co.uk>
References: <587evk$1ei@news2.gte.net> <589m98$qon@prometheus.acsu.buffalo.edu> <58d2hg$j04@costarica.earthlink.net> <erkyrathE22vHn.E85@netcom.com> <erkyrathE22w0w.EzD@netcom.com> 
NNTP-Posting-Host: gnelson.demon.co.uk
X-NNTP-Posting-Host: gnelson.demon.co.uk
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; CHARSET=ISO-8859-1
X-Newsreader: ANT RISCOS Marcel [ver 1.09]

Personally, I think it's fair enough for Meretzky to have been
"preachy" in AMFV -- at least preachy morality makes a break
>from  adolescent jokes about sex.  I suppose part of the objection
stems from the player being required to be the main character, not
just observe the main character.

Jigsaw annoyed several people along similar lines.  I think Jigsaw
has its preachy moments, too, but I thought it was more interesting
to stir up moral awkwardness -- to get the player to do things
which his conscience probably wouldn't be 100% happy with, to
be opposing someone he probably agrees with, and so on.  The idea
was that the resolution at the end of the game would be a much
more suitable climax.

There is an interesting moral issue here which does not arise
in ordinary fiction.  Suppose we have a game called "Nigel:
Confessions of a Grotesque Serial Killer", or some such.  People
might well find reading such a novel acceptable (well, it would
be in poor taste perhaps, but it wouldn't be morally wrong).
But would it be immoral to play it as IF, in the persona of
the serial killer, solving puzzles like sharpening an axe
("The axe bounces off Geoffrey's neck.  Doh!") before every
massacre, and so on?  I certainly wouldn't like to.

I remember thinking much the same years ago on playing
a fatuous pornographic adventure game (can't remember the name,
and that's probably a kindness).  I don't object to erotica,
personally, but having to answer questions like "Do you prefer
blondes or brunettes?" was faintly revolting.

-- 
Graham Nelson | graham@gnelson.demon.co.uk | Oxford, United Kingdom



From DGATEWOO@MUSIC.CC.UGA.EDU Tue Dec 10 10:12:31 MET 1996
Article: 20289 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news99.sunet.se!newsfeed.luth.se!news.luth.se!eru.mt.luth.se!news-stkh.gsl.net!news.gsl.net!news-paris.gsl.net!news.gsl.net!news-peer.gsl.net!news.gsl.net!howland.erols.net!feed1.news.erols.com!news.bbnplanet.com!cpk-news-hub1.bbnplanet.com!news.mindspring.com!cssun.mathcs.emory.edu!news.service.emory.edu!hobbes.cc.uga.edu!128.192.253.5
From: Dave Gatewood <DGATEWOO@MUSIC.CC.UGA.EDU>
Newsgroups: rec.games.int-fiction,rec.arts.int-fiction
Subject: RE: Phlegm (was Competition thoughts)
Date: 09 DEC 96 11:15:16 EST
Organization: The University of Georgia
Lines: 39
Sender: usenet@MUSIC.CC.UGA.EDU
Message-ID: <09DEC96.12155068.0015@128.192.253.5>
References: <581usk$q6p@mail.ohioonline.net> <32ac258b.8738183@news.demon.co.uk>
NNTP-Posting-Host: music.cc.uga.edu
Xref: news.lth.se rec.games.int-fiction:19452 rec.arts.int-fiction:20289

In article <32ac258b.8738183@news.demon.co.uk> francis.irving@vegauk.co.uk (Francis Irving) writes:
>On 3 Dec 1996 14:26:12 -0500, skinner@news.ohioonline.net (Suzanne
>Skinner) wrote:
>
>>          4     Phlegm
>
>Am I the only person who thought that Phlegm was excellent?  Along
>with Small World, it was the best game in the competition.
>
>The setting had a beautiful pastel cartoony feel, the puzzles were
>just unusual enough, and yet still of the right difficulty.  It was
>good fun, amusingly written, and well tuned and tested.
>
>Does anyone agree with me?
>
>Francis.

I too thought Phlegm was one of the more amusing games - it had a
great character in Leo the Lemming, one of the contest's best puzzles
in the moose head, and a fun "anything goes" atmosphere.  It's also
the only game in the contest that recognizes the syntax
"gaze longingly at [object]", which is great attention to detail.  (On
the other hand, it did have at least one pretty bad bug that allowed
you to get the grail with only one crayon.)

Then again, I also thought that "Ralph" and "In The End" were among
the better games, while I wasn't attracted to "Small World" at all (I
found it to be tedious, and the puzzles non-intuitive.  What's more,
I banished the devil almost immediately, and from what I've read, I
apparently missed out on a great NPC by doing so.)

So no one entirely agrees with me either - which is of course to be
expected.  Yet on the whole, I was pleased that the contest results
generally did agree with my votes - very few games were far from
where I had ranked them.  This "big ol' average" system seemed to
work quite well.

Dave



From nkg@vcn.bc.ca Tue Dec 10 10:13:38 MET 1996
Article: 20291 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news00.sunet.se!sunic!news.sprintlink.net!news-peer.sprintlink.net!arclight.uoregon.edu!mr.net!news-out.communique.net!uunet!in1.uu.net!204.191.160.4!van-bc!news.mindlink.net!nntp.portal.ca!news.bc.net!unixg.ubc.ca!freenet.vancouver.bc.ca!not-for-mail
From: nkg@vcn.bc.ca (Neil K. Guy)
Newsgroups: rec.arts.int-fiction
Subject: Congratulations
Date: 10 Dec 1996 08:16:58 GMT
Organization: Vancouver CommunityNet
Lines: 24
Message-ID: <58j69q$k92@milo.vcn.bc.ca>
NNTP-Posting-Host: opus.vcn.bc.ca
X-Newsreader: TIN [UNIX 1.3 BETA-950824-16colors PL0]


 Just a little note joining the round of applause for the entrants in and
administrators of (especially the unsung vote counter, Mr. Turnbull) the
IF contest. I admit I didn't have time to play all the entries this year
(still haven't) and so couldn't in good faith vote, but the games I've
played have been terrific. 

 Perhaps for the good of the Genre we all should contribute to the Isle of
Eigg emancipation fund so that the islanders may break free of the
oppressive bonds of absentee landlords that have cursed their isle for
generations. Perhaps then contest entrant Ms. Angela Horns could be
assured a steady, dependable supply of electricity for her erstwhile
computer, thereby guaranteeing another fine entry next year. (unless, of
course, she's one of those virtuoso programmers who codes longhand.)

 Either that or I think a lot of people are going to be checking out
anagram-generators and running them on all the names of all the
net.personalities on this newsgroup... 

 - Neil K.

--
        the Vancouver CommunityNet   *   http://www.vcn.bc.ca/
              (formerly the Vancouver Regional FreeNet)


From timbuktu@wpi.edu Tue Dec 10 11:01:29 MET 1996
Article: 20285 of rec.arts.int-fiction
Path: news.lth.se!solace!mn6.swip.net!newsfeed.sunet.se!news99.sunet.se!newsfeed.luth.se!news.luth.se!eru.mt.luth.se!news-stkh.gsl.net!news.gsl.net!sn.no!Oslo2.Norway.EU.net!Norway.EU.net!nntp.uio.no!www.nntp.primenet.com!nntp.primenet.com!usenet.eel.ufl.edu!news.ultranet.com!bigboote.WPI.EDU!adamant.res.wpi.edu!timbuktu
From: George Caswell <timbuktu@adamant.res.wpi.edu>
Newsgroups: rec.arts.int-fiction
Subject: Re: Directions in space
Date: Mon, 9 Dec 1996 14:21:23 -0500
Organization: Worcester Polytechnic Institute
Lines: 33
Message-ID: <Pine.LNX.3.95.961209141437.3846O-100000@adamant.res.wpi.edu>
References: <sourcerer.0a90@starbug.49.249.155> <32966751.575@-.-> <Pine.LNX.3.95.961123013209.27717H-100000@adamant.res.wpi.edu> <E1DDnE.62@ladle.demon.co.uk> <Pine.LNX.3.95.961125190623.30593A-100000@adamant.res.wpi.edu> <E1LFw8.CA@ladle.demon.co.uk> <32A215E0.7045@cosc.canterbury.ac.nz> <E1uvnH.2M@ladle.demon.co.uk>  <ant0522341cbM+4%@gnelson.demon.co.uk> <Pine.SUN.3.91.961206084448.10954E-100000@nebula.phy.duke.edu>
Reply-To: timbuktu@wpi.edu
NNTP-Posting-Host: adamant.res.wpi.edu
Mime-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
In-Reply-To: <Pine.SUN.3.91.961206084448.10954E-100000@nebula.phy.duke.edu>

On Fri, 6 Dec 1996, Stephen Granade wrote:

> On a slightly off-topic subject...
> 
> Has anyone here played "Empire of the Overmind" by Avalon Hill?  (Yes, 
> you in the back, I know AH made mostly wargames, but this was an 
> honest-to-goodness text adventure from the early 1980's, so you can put 
> your hand down now.)  Rather than using compass directions, it used a "go 
> [to] <location>" syntax.  This bothered me initially, but I soon became 
> used to typing "go road" to get around.
> 
   Not really off-topic after the whole 'take-two' incident.  (Be afraid.
Take three may yet visit r.a.i-f)  Never played that one, but Nord N' Bert is
an Infocom example of a dual-system...  Basically it used what I call
equivalent areas or areas of trivial movement...  anyplace you've been, you
can go by naming it (Of course, naming seemed to be the thing in Nord N'
Bert...  silly naming.)  I think it worked in Nord N' Bert because it wasn't
real big on the traditional I-F elements like <sarcasm> navigation, story, or
any of that other fluff, and concentrated on the -REAL- stuff, like PUNS!
</sarcasm>  Given that there weren't a large number of locations available at
any given time, this type of movement worked for Nord N' Bert.
   Should I assume the game you refer to used named-movement for each step of
the way, and didn't have any auto-nav between non-adjacent locations?  Do you
consider this game a special case, for this style of movement to have worked,
or did the method itself just work for you?
                           ________________________________________________
 ______________ _/> ____  | George Caswell, WPI CS 1999. Member L+L and    |
<___ _________// _/<_  /  | SOMA. Sometimes artist, writer, builder. Admin |
   // <> ___  <  > / _/   | of ADAMANT, a Linux box for the creative and   |
  // /> /  / _/ / / <____ | productive members of the computer world. For  |
 // </ <<</ < _/ <______/ |_more info see http://www.wpi.edu/~timbuktu.____|
</          </             



From kinder@teaching.physics.ox.ac.uk Tue Dec 10 13:04:19 MET 1996
Article: 20299 of rec.arts.int-fiction
Path: news.lth.se!solace!nntp.uio.no!www.nntp.primenet.com!nntp.primenet.com!usenet.eel.ufl.edu!warwick!lyra.csx.cam.ac.uk!news.ox.ac.uk!kinder
From: kinder@teaching.physics.ox.ac.uk (David Kinder)
Newsgroups: rec.arts.int-fiction
Subject: Re: More possible Inform abuses
Date: 10 Dec 1996 10:54:17 GMT
Organization: Oxford University
Lines: 9
Message-ID: <58jfgp$svu@news.ox.ac.uk>
References: <eson-0912961706300001@eson.cts.com>
NNTP-Posting-Host: teaching17.physics.ox.ac.uk
X-Newsreader: TIN [version 1.2 PL2]

Eugene (eson@cts.com) wrote:
: - Dial tones, busy signals, modem connections
: - The sounds of an old IBM XT booting up (boop boop Beep!)

These two are used rather well in Cosmoserve (AGT), but on the
whole sound effects can get annoying. Plus not all interpreters
support sound (Frotz, Zip200, some other Zip variants).

David


From gdr11@cl.cam.ac.uk Tue Dec 10 17:22:21 CET 1996
Article: 20307 of rec.arts.int-fiction
Path: news.lth.se!solace!news.stealth.net!vixen.cso.uiuc.edu!howland.erols.net!www.nntp.primenet.com!nntp.primenet.com!usenet.eel.ufl.edu!warwick!lyra.csx.cam.ac.uk!news
From: Gareth Rees <gdr11@cl.cam.ac.uk>
Newsgroups: rec.arts.int-fiction
Subject: Re: Preaching to the pews
Date: 10 Dec 1996 16:07:43 +0000
Organization: Cambridge University Computer Lab
Lines: 36
Sender: gdr11@stint.cl.cam.ac.uk
Message-ID: <yxsn2vm5qnk.fsf@stint.cl.cam.ac.uk>
References: <587evk$1ei@news2.gte.net>
	<589m98$qon@prometheus.acsu.buffalo.edu>
	<58d2hg$j04@costarica.earthlink.net>
NNTP-Posting-Host: stint.cl.cam.ac.uk
X-Newsreader: Gnus v5.3/Emacs 19.34

Cardinal Teulbachs <cardinalt@earthlink.net> wrote:
> Generally, we tend to call something "preachy" when it stands on moral
> arguments we dispute and disagree with.

There's more to "preaching" in fiction than you suggest.  The author of
a work of fiction has an ability that people in real life do not have,
namely to make things work out according to the way he or she thinks on
the issue.  In real life the facts relating to moral arguments are
usually not at all clear-cut, but in fiction an absolute certainty can
be established.  We might call this "stacking the deck".

A classic template for the libertarian political novel (especially in
science fiction) is that there is a debate about some moral issue,
followed by events which overwhelmingly bear out the cause of one side
(presumably that with which the author agrees).  One thinks of "Atlas
Shrugged" by Ayn Rand, or "Starship Troopers" by Robert Heinlein.  The
reader who disagrees with the author wails "but it isn't like that" in
vain - because it *is* like that in the author's invented world.

If an author has something contentious to say, then it's more
interesting to read about that argument in a world that is recognisably
complex, that hasn't been expressly created for the purpose of winning
the argument.

Returning to interactive fiction, "Tapestry" allows the reader to take
one of three moral positions, and the created world supports all three
positions [1].  I found it insipid precisely because of this
unconditional support.  Where is the moral position of the author, apart
from being completely nonjudgemental?

[1] It is therefore annoying that by choosing the car crash scene first
one can close off one of the three paths without actually making any
choices, simply by failing to solve the puzzle first time.

-- 
Gareth Rees


From graham@gnelson.demon.co.uk Tue Dec 10 19:26:43 MET 1996
Article: 20309 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news99.sunet.se!newsfeed.luth.se!news.luth.se!eru.mt.luth.se!news-stkh.gsl.net!news.gsl.net!news-penn.gsl.net!news.gsl.net!snunews.snu.ac.kr!newsfeed.dacom.co.kr!usenet.kornet.nm.kr!howland.erols.net!www.nntp.primenet.com!nntp.primenet.com!dispatch.news.demon.net!demon!graham
From: Graham Nelson <graham@gnelson.demon.co.uk>
Newsgroups: rec.arts.int-fiction
Subject: Re: Zarf's comments on the contest games (SPOILERS)
Date: Mon, 09 Dec 1996 13:03:57 +0000 (GMT)
Organization: none
Lines: 32
Message-ID: <ant091357868M+4%@gnelson.demon.co.uk>
References: <erkyrathE222KK.3JG@netcom.com> <19961208141400.JAA10799@ladder01.news.aol.com> 
NNTP-Posting-Host: gnelson.demon.co.uk
X-NNTP-Posting-Host: gnelson.demon.co.uk
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; CHARSET=ISO-8859-1
X-Newsreader: ANT RISCOS Marcel [ver 1.09]

In article <19961208141400.JAA10799@ladder01.news.aol.com>,
<URL:mailto:nulldogma@aol.com> wrote:
> 
> > Or, indeed, in future releases of *these* games. The competition format 
> > inevitably means that games don't get enough beta-testers, and the 
> > beta-testers don't get enough time. (Note that "Sherbet", for example, 
> > got no beta-testing at all.)

The last point was entirely my own fault, or at least,
my own fault combined with the peculiar history of the
game (a tale for which the world is not yet ready).
I deserved to lose points for it, and am not in the least
resentful.
 
> Is now the time to be arguing for allowing beta-testers to vote? I would
> have gladly been a beta-tester for some games if it hadn't disqualified
> me, and I assume other people would have, too.

I didn't realise beta-testers couldn't vote!  Whyever not?

> The more time goes by, the more I talk to competition authors, and the
> more games I play past the two-hour mark, the more I realize how many of
> these games will be *much* better in their second/third/whatever releases.
> It seems a shame that they couldn't be judged on a more final form...

Possibly.  But to some extent it's the same for everyone.
And besides, the judging process itself is a form of elevated
beta-testing.

-- 
Graham Nelson | graham@gnelson.demon.co.uk | Oxford, United Kingdom



From mamster@u.washington.edu Tue Dec 10 19:28:49 MET 1996
Article: 20314 of rec.arts.int-fiction
Path: news.lth.se!solace!eru.mt.luth.se!www.nntp.primenet.com!nntp.primenet.com!howland.erols.net!peerfeed.internetmci.com!dciteleport.com!worldnet.att.net!uunet!in3.uu.net!140.142.64.3!news.u.washington.edu!root
From: mamster@u.washington.edu (Matthew Amster-Burton)
Newsgroups: rec.arts.int-fiction
Subject: Re: Preaching to the pews
Date: Tue, 10 Dec 1996 17:56:23 GMT
Organization: University of Washington
Lines: 32
Message-ID: <32ada20c.6332722@news.u.washington.edu>
References: <587evk$1ei@news2.gte.net> <589m98$qon@prometheus.acsu.buffalo.edu> <58d2hg$j04@costarica.earthlink.net> <yxsn2vm5qnk.fsf@stint.cl.cam.ac.uk>
NNTP-Posting-Host: mamster.cdmrc.washington.edu
X-Newsreader: Forte Free Agent 1.1/32.230

Gareth Rees <gdr11@cl.cam.ac.uk> wrote:

>A classic template for the libertarian political novel (especially in
>science fiction) is that there is a debate about some moral issue,
>followed by events which overwhelmingly bear out the cause of one side
>(presumably that with which the author agrees).  One thinks of "Atlas
>Shrugged" by Ayn Rand, or "Starship Troopers" by Robert Heinlein.  The
>reader who disagrees with the author wails "but it isn't like that" in
>vain - because it *is* like that in the author's invented world.

Excellent point--this is one of the reasons I can fairly say that I've
never had my position swayed on a contentious point by a work of
fiction, only nonfiction.

Frankly, I question the ability of IF, a form of literature far more
restrictive than the novel, to make a reasoned and earnest
sociopolitical point.  IF offers fewer plot devices and less text than
a book.  It exists on a plane somewhere between a video game and a
novel, neither of which is a good medium for a political message.

I'm not here to bash IF, obviously.  After playing some political
works and making an abortive attempt to write my own, however, I've
concluded that political IF is doomed to be too preachy or too subtle.

Now that I've made sweeping generalizations, an alternative method
does come to mind.  Lost New York presents its politics as a history
lesson, one that most player probably haven't heard before.  A good
way of avoiding preachiness, but probably not appropriate for many
games.

Matthew



From straight@email.unc.edu Wed Dec 11 09:47:45 MET 1996
Article: 20329 of rec.arts.int-fiction
Path: news.lth.se!solace!mn6.swip.net!newsfeed.sunet.se!news99.sunet.se!newsfeed.luth.se!news.luth.se!eru.mt.luth.se!news-stkh.gsl.net!news.gsl.net!news-lond.gsl.net!news.gsl.net!news-peer.gsl.net!news.gsl.net!swrinde!howland.erols.net!cs.utexas.edu!newshost.convex.com!newsgate.duke.edu!news-server.ncren.net!concert!newz.oit.unc.edu!login2.isis.unc.edu!straight
From: Michael Straight <straight@email.unc.edu>
Newsgroups: rec.arts.int-fiction,rec.games.int-fiction
Subject: Moral Dilemnas in IF (was Re: [CONTEST] My reviews)
Date: Tue, 10 Dec 1996 17:13:52 -0500
Organization: The University of North Carolina at Chapel Hill
Lines: 76
Message-ID: <Pine.A41.3.95.961210161026.84860B-100000@login2.isis.unc.edu>
References: <Pine.GSO.3.95.961203220116.10773C-100000@ucsu.Colorado.EDU>
NNTP-Posting-Host: login2.isis.unc.edu
Mime-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
X-Sender: straight@login2.isis.unc.edu
In-Reply-To: <Pine.GSO.3.95.961203220116.10773C-100000@ucsu.Colorado.EDU>
Xref: news.lth.se rec.arts.int-fiction:20329 rec.games.int-fiction:19479

Spoilers for Tapestry and In The End













On Tue, 3 Dec 1996, Paul O'Brian wrote about Tapestry:

>    Ultimately, the game's plot boils down to the idea that moral dilemmas 
>    can be extremely powerful in the medium of interactive fiction. I think 
>    this is a very, very good idea indeed.

One of the things good fiction can do is allow you to experience the world
through someone else's viewpoint, or experience a situation that you would
not be able to in real life.  After playing In The End and Tapestry, I
wonder if whether IF might not put the player/reader too close to the
story to achieve the desired effect.  They show us some possibilites for
IF unavailable in ordinary fiction - you don't just read about someone who
kills himself or kills his wife, you actually do it.  However, unless the
player/reader can really get into the role-playing, I think the effect is
actually less powerful than reading an ordinary story.

I found Tapestry frustrating because, when I was initally presented with
the three options, I was inclined to go with the "face up to what you've
done and try to deal with it" option (not only because Lucifer was pushing
the "change the past" option).  However, when I realized that it was going
to entail not just remembering my past but actually ignoring my dying
mother, killing my wife, and running down an innocent girl, I didn't want
to do that -- so I quit the game and replayed it Lucifer's way. 

Now if Tapestry had been done as a set of three linked short stories (or
three Sandman comic books), the narration would get me "inside the head" 
of the protagonist and attempt to make me understand how he was thinking. 
But since, in the game, *I* was the protagonist, I had a hard time
separating myself - my ideas, emotions, morals, reactions, etc. - from the
character, and I think I was less able to have empathy for the character
and more like I was being told how to feel.  I wasn't just being asked to
identify with someone who had killed his wife, I was being asked to kill
my wife!  So instead of trying to "experience it" I balked! 

I had similar problems with In The End.  Where a well-written short story
could have told me how this fellow felt, shown me his reactions to the
world around me, possibly given me some empathy for his decision to kill
himself, the game was asking me to react in ways that I didn't think the
situation warranted.  It put me in a *more* judgemental role, since it was
asking me to choose what action to take, rather than just try to
understand the decisions someone else had made.

Perhaps it was the nature of the dilemnas posed in each of these cases.
The part of Tapestry that tugged at me the most was when I had to choose
between helping the old couple keep their business and going to see my
mother.  The situation of having to make the choice was a "real"
experience - no matter which decision I made, I had the experience of
being confronted with the choice.  

I'd be interested in other people's thoughts on whether the things I've
mentioned seem like inherent limits in IF or whether these were just early
attempts at something that would be more effective with better writing and
characterization (not that I'd say the writting in either game was bad). 
At this point, I'm inclined to argue that at lease some kinds of
situations are *easier* to empathize with when you're reading about
someone else instead of being asked to live them yourself.

Michael Straight is at two-hundred-something points in Curses.
FLEOEVDETYHOEUPROEONREWMEILECSOFMOERSGTIRVAENRGEEARDSTVHIESBIITBTLHEEPSRIACYK
Ethical	Mirth Gas/"I'm chaste alright."/Magic Hitler Hats/"Hath	grace limits?"
"Irate Clam Thighs!"/Chili Hamster Tag/The Gilt	Charisma/"I gather this calm."



From mol@bartlet.df.lth.se Wed Dec 11 11:15:51 MET 1996
Article: 20339 of rec.arts.int-fiction
Path: news.lth.se!news
From: mol@bartlet.df.lth.se (Magnus Olsson)
Newsgroups: rec.arts.int-fiction
Subject: Re: Random competition thoughts
Date: 11 Dec 1996 11:15:36 +0100
Organization: The Computer Society at Lund University and Lund Institute of Technology
Lines: 79
Message-ID: <58m1k8$2nu@bartlet.df.lth.se>
References: <yxslob65pjs.fsf@stint.cl.cam.ac.uk>
NNTP-Posting-Host: bartlet.df.lth.se
NNTP-Posting-User: mol

In article <yxslob65pjs.fsf@stint.cl.cam.ac.uk>,
Gareth Rees  <gdr11@cl.cam.ac.uk> wrote:
>1. Why the fad for including responses like this?
>
>     >score
>     Life doesn't work like that.

Are you referring to the specific response, or to the fact that
non-scoring games are becoming more common?

>2. Lots of games hadn't been playtested enough ("Delusions" ought to be
>   the winner of the "most unfortunate bugs" award).  If this was
>   anything to do with the silly rules about "official betatesters",
>   then those rules ought to be scrapped next year.

I think it may have something to do with those rules. As I understood
it, the official beta testers got rather overworked, and there was
some hardware trouble that delayed the distribution of games to them. Plus
the fact that just knowing that there was some red tape involved in getting
a game beta tested may have deterred people from submitting games to test.
It is *much* easier if one is allowed to let a friend have a quick look
at one's game.

I can understand the reasons for the rule, but I, too, think it should
go away.

>3. Lots of experimentation with form and content, which is really
>   encouraging.  Don't worry if you experiment and the result isn't very
>   satisfactory; that's the whole point of experiments.  The genre will
>   learn from its mistakes (I hope).

Agreed! What I found a bit distrubing, though, was the tendency of
certain reviewers to summarily discard anything that wasn't
sufficiently inventive.  I hope their views aren't representative; not
that there's anythin wrong with being inventive, but I see a risk of
next year's competition becoming a "freak show" of novelties, with
authors trying to out-invent each other - at the expense of content,
of course.

But there's probably not much cause for worry in either direction: the
winner was, after all, quite traditional, while the inventive entries
show a lot of promise.

>4. Some games had too much text ("Tapestry" is the worst offender among
>   those I've played).  Interactive fiction needs to show, not tell.

Define "too much". I think I know what you mean (and that it's perhaps
also what some people mean when they complain about "preachiness"),
but it would be interesting to see your views on the subject in more
detail.

>5. The scoring system is too complex.

Too complex? Give me a break - if rating each game between 1 and 10 is
too complex, then what isn't? IMHO, the problem with the scoring system
is not that it's too complex, but that people have been reading too much
into it, and especially that people have been worrying a lot about not
everyone applying the same standards. SInce I was one of the proponents of
the present scoring system, let me state that the intention was simply
that everybody should apply their own standards, and that any variation
would be evened out in the averaging process.

>  Go back to nominating your best three.

As has been pointed out repeatedly, that would bias the vote against
any games that aren't portable to all the judges' computers. To have
any chance of winning, an author would have to write in Inform or
(possibly, now that the source is free) TADS. 

>6. No women (no surprise there).

I'm at least slightly surprised. Bonni "Lone Quilter" "Cyber-Babushka"
Mierzejewska had stated that she would enter, pity she didn't. And I
know for a fact that there are quite a few female IF devotees out
there; I had hoped that at least a few of them would enter.


-- 
Magnus Olsson (mol@df.lth.se)


From richardb@msi-uk.com Wed Dec 11 13:13:11 MET 1996
Article: 20340 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news01.sunet.se!sunic!surfnet.nl!howland.erols.net!feed1.news.erols.com!super.zippo.com!zdc!zippo!drn
From: richard barnett <richardb@msi-uk.com>
Newsgroups: rec.arts.int-fiction
Subject: yet more thoughts on the competition entries (longish)
Date: 10 Dec 1996 12:21:48 -0800
Organization: news read and posted courtesy of Zip News
Lines: 169
Sender: usenet@ftp.zippo.com
Message-ID: <58kgos$l8t@lana.zippo.com>
NNTP-Posting-Host: gatekeeper.msi-uk.com

well, i hoped to get these out earlier, but work pressures have foiled me; in
some cases others have already said everything i want to say, so i won't
waste my time and yours by revisiting those areas.

-- richard

-------------------------------------------------------------------------------

scores (- indicates not played):
  Beyond the Picket Fence				- (no time)
  Don't Be Late						- (no interpreter)
  Eldor							- (wouldn't run)
  Maiden of the Moonlight				- (no time)
  Promoted!						- (no interpreter)
  Punkirita Quest One Liquid				2
  House of the Stalker					3
  My First Stupid Game					3
  Rippled Flesh						3
  In the End						4
  Of Forms Unknown					4
  Ralph							4
  Stargazer						4
  Kissing the Buddha's Feet				5
  Phlegm						5
  Reverberations					5
  Aayela						6
  Piece of Mind						6
  Sir Ramic Hobbs and the Oriental Wok			6
  Tapestry						6
  Wearing the Claw					6
  Alien Abduction					7
  Fear							7
  Lists and Lists					7
  Small World						7
  Delusions						8
  The Meteor, the Stone, and a Long Glass of Sherbet	9

technical: 

  i was impressed by the hint system used in `sherbet' -- hints only being
  available for the areas you'd entered -- and that used in `small world' --
  hints being offered on the obstacles you are currently facing.  however,
  `small world' at times lapsed into `'you just need to wander around to make
  progress'' (annoying when i was totally stuck, particularly as there was no
  walkthrough) and, like the majority of the other hint systems, they can
  both reveal what the obstacles are before you've realised it yourself.

  `lists' is a very impressive piece of inform coding, but as i know
  lisp/scheme already i didn't play it for too long.

timing:

  i found several of the games to be much too short; i know that two hours is
  supposed to be the maximum play time, but i expected them to take more than
  15 minutes to complete.  `of forms unknown', `in the end', `liquid',
  `ralph', `stargazer', `my first stupid game' and `aayela' all fell into
  this category.

  `sherbet' and `delusions' were games i didn't finish in the two hours, but
  by then they both had me more or less hooked (i scored these 9 and 8
  respectively), and i'll return to these games.  (i didn't finish `small
  world' or `kissing the buddha's feet' either, but they weren't quite so
  enjoyable -- see other comments.)

pedantry:

  although probably to be expected, given the time constraints on the authors
  and testers, i felt that many of these games contained problems which should
  have been fixed during the beta-testing stage.  for instance:

   * typos and poor grammar

   * textual references to objects which have disappeared from the game
     persist:
      + the door in the first location of `aayela'

   * textual references to things which should be game objects:
      + the car door in `in the end'
      + the goods in the store in `reverberations'
      + one of the ledges in `sherbet'

   * no feedback on the results of game actions:
      + cutting the mesh in `piece of mind'
      + turning on the wine cellar light in `wok'
      + walking through cerberus in `wearing the claw'

   * idiosyncratic syntax, including that used in walkthroughs, and a lack of
     `synonyms' for some actions:
      + 'look for click' but not `listen' in `alien abduction'
      + `hoe garden' but not `dig garden' in `alien abduction'
      + `screw foo to bar' but not `screw foo in bar' in `of forms unknown'
      + `crank volume' in `house of the stalker'
      + `strike' and `hit' aren't synonyms in `fear'

   * in `wearing the claw', the player has a left hand but no right hand

   * player's head in `alien abduction' doesn't always follow player

   * scoring for one task several times:
      + showing pizza box to guard in `reverberations'
      + giving hoe to pop in `alien abduction'

   * scoring more than maximum points:
      + 'alien abduction'

specific, short comments:

  House of the Stalker
    slightly distasteful (perhaps pointing out an inconsistency in my
    attitude to game violence: i'm happy to `kill troll', but less happy to
    perform the more explicit sequence required here) and illogical (why
    can't i run away once the maniac's been discommoded with the drano).  i
    didn't bother to finish this, even with the hints.

  In the End
    interaction/exploration of the game's universe proved unsatisfying (for
    example, you can apparently drink an arbitrary amount at the bar; you
    can't converse with the barman about anything); this isn't realistic
    enough to overcome the lack of puzzles.

  Of Forms Unknown
    imitative of a game which hasn't yet hooked me, with over-simple but not
    especially logical puzzles (solved by a process of elimination, since
    there were relatively few objects);  the writing was pleasant.

  Ralph
    a nice idea well-implemented, but the puzzles didn't hang together for me
    -- there weren't sufficient clues to indicate that you should use one of
    the humans to solve the problem for you.

  Kissing the Buddha's Feet
    one of the games i played last, and so i was suffering from judging
    fatigue by this point: because of this, i found the chaotic babble of the
    unwanted guests (4-5 lines, each turn, of ``x does blah'') much more
    annoying than if i'd played the game outside the competition.  (the
    babble was probably meant to be like that.)  i didn't give this a fair
    shot, but it showed promise, so i'll return to it.

  Tapestry
    again, too much waiting for text to scroll past;  good implementation of
    actor interactions;  i didn't even think about any path other than that
    of morningstar's until i completed it;  the story felt too much like an
    excerpt from one of the quotes' sources

  Wearing the Claw
    slightly let down by the wait-for-n-turns-while-you're-told-vital-stuff
    section in the middle, but otherwise good, with an enjoyable endgame.
    the working of the usually-metalevel scoring device into the story was
    a good touch.

  Small World
    the game mechanics (inventory management, using the looking glass) were a
    bit clunky, for what seemed like no particularly good reason.  puzzles
    were hard and slightly arbitrary in parts, and this made its rather
    linear style a bit off-putting.  a very nice concept, though.

  Delusions
    detailed and rich up to the 13-point mark, but i sensed a frustrating
    midgame about to unfold: getting knocked out too frequently, with many
    things `reset'; actions that score me points for no obvious reason (yet).
    i think i liked the way the fridge/freezer, described as one object, was
    in fact 2, though i swore on realising it (via the hint).

  The Meteor, the Stone, and a Long Glass of Sherbet
    a wonderful game; it had just enough of the zork style and references to
    feel familiar without being (too) derivative.  the solutions to some of
    the puzzles made me question my visualisation of the situation:  in
    particular, acquiring the black scroll (i can tie a rope to it, but i
    can't actually take it?).


From drudmann@nyx.net Wed Dec 11 20:50:44 MET 1996
Article: 20361 of rec.arts.int-fiction
Path: news.lth.se!solace!news.ecn.uoknor.edu!munnari.OZ.AU!spool.mu.edu!newspump.sol.net!howland.erols.net!vixen.cso.uiuc.edu!usenet
From: drudmann@nyx.net (Darrell Rudmann)
Newsgroups: rec.arts.int-fiction
Subject: Re: Review of Russ Bryan's Review of Andrew Pontious's Capsule Reviews of Contest Games
Date: 11 Dec 1996 18:50:19 GMT
Organization: University of Illinois, U-C
Lines: 31
Message-ID: <58mvpb$aa7@vixen.cso.uiuc.edu>
References: <58agpi$4o0@bolivia.earthlink.net> <19961207181600.NAA19352@ladder01.news.aol.com> <58cpi4$p05@agate.berkeley.edu>
NNTP-Posting-Host: dodge.vp.uiuc.edu
Mime-Version: 1.0
Content-Type: Text/Plain; charset=US-ASCII
X-Newsreader: WinVN 0.99.8 (x86 32bit)

A few comments, borrowing from a number of recent posts....

A number of good points have been brought up pro- and con- a 
more structured rating system.  If the competition is 
conceptualized as a People's Choice awards, then the current 
system makes complete sense to me.  If this fits the spirit 
of the competition, then all of the flaws inherent in this 
kind of rating are appropriate.

The current system is beneficial in that those who would like 
a more structured system can indeed do so on their own, 
following the afore-mentioned SPAG system or by using 
standard criteria for creative writng or a 'home brew' 
system.  It is my guess that these judges will do the authors 
a bigger service in the long run by being more complete and 
even-handed in their evaluation.  However, in the world of 
Usenet, imposing structured ratings on everybody seems likely 
to produce a lot of non-compliance, particularly from those 
who are fine with the current system (and they are many).

The current system may not be perfect, but then, it tolerates 
most everything.  Perhaps this is for the best.  (This is 
largely a complete reversal of what I posted earlier.  
<sigh>).

It sounds as if the competition will have a bigger problem 
not with the rating system but with handling so many entries, 
particularly if it continues to grow at it's current rate.

Darrell Rudmann



From amandel@scws3.fas.harvard.edu Wed Dec 11 20:51:17 MET 1996
Article: 20360 of rec.arts.int-fiction
Path: news.lth.se!solace!news.stealth.net!vixen.cso.uiuc.edu!howland.erols.net!math.ohio-state.edu!magnus.acs.ohio-state.edu!news.cis.ohio-state.edu!nntp.sei.cmu.edu!fs7.ece.cmu.edu!casaba.srv.cs.cmu.edu!das-news2.harvard.edu!fas-news.harvard.edu!scws3.fas.harvard.edu!amandel
From: amandel@scws3.fas.harvard.edu (Aaron Mandel)
Newsgroups: rec.arts.int-fiction
Subject: Re: "In The End" -- the point?
Date: 11 Dec 1996 18:59:27 GMT
Organization: Liberty Bell & Robot Pimp, Inc.
Lines: 43
Message-ID: <58n0af$mdd@decaxp.harvard.edu>
References: <19961207194400.OAA21313@ladder01.news.aol.com> <32A9DC17.BB8@fred.aurora.edu> <staff.0dva@rabbit.augs.se> <58fuss$t9s@decaxp.harvard.edu> <58l35s$e71@news.bu.edu>
NNTP-Posting-Host: scws3.fas.harvard.edu
X-Newsreader: TIN [version 1.2 PL2]

So, mraymond@bu.edu is like:
: (Planetfall and In The End spoilers)





















:    I believe you just pointed out what I saw as the main flaw in "In The End".
: In Planetfall, nobody tells you to like Floyd, or care about his
: wellbeing. The game never said "you feel sad"...but then it didn't have
: to.

I agree entirely -- I thought "In The End" was an awful game, but almost
completely because of the implementation. For a game where you were meant
to soak up the ambience, there were a lot of things you could try to
observe or do that just didn't work. If it weren't for the title, I
wouldn't have figured out that you "should" kill yourself.

Someone pointed out earlier that you can put a little characterization
into the game's text (e.g. "The sword gleams brightly, eagerly awaiting
slaughter.") but the player -- NOT the player-character -- has to have at
least some motivation to agree.

Aaron

"When I hear the word 'consensus', I reach for my Luger."
	- Nicholas Currie						O-


From graham@gnelson.demon.co.uk Wed Dec 11 22:06:27 MET 1996
Article: 20362 of rec.arts.int-fiction
Path: news.lth.se!solace!eru.mt.luth.se!pumpkin.pangea.ca!news.mira.net.au!harbinger.cc.monash.edu.au!munnari.OZ.AU!spool.mu.edu!newspump.sol.net!www.nntp.primenet.com!nntp.primenet.com!dispatch.news.demon.net!demon!graham
From: Graham Nelson <graham@gnelson.demon.co.uk>
Newsgroups: rec.arts.int-fiction
Subject: Re: Congratulations
Date: Tue, 10 Dec 1996 21:10:29 +0000 (GMT)
Organization: none
Lines: 21
Message-ID: <ant102129345M+4%@gnelson.demon.co.uk>
References: <58j69q$k92@milo.vcn.bc.ca> 
NNTP-Posting-Host: gnelson.demon.co.uk
X-NNTP-Posting-Host: gnelson.demon.co.uk
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; CHARSET=ISO-8859-1
X-Newsreader: ANT RISCOS Marcel [ver 1.09]

In article <58j69q$k92@milo.vcn.bc.ca>, Neil K. Guy
<URL:mailto:nkg@vcn.bc.ca> wrote:
> 
>  Perhaps for the good of the Genre we all should contribute to the Isle of
> Eigg emancipation fund so that the islanders may break free of the
> oppressive bonds of absentee landlords that have cursed their isle for
> generations. Perhaps then contest entrant Ms. Angela Horns could be
> assured a steady, dependable supply of electricity for her erstwhile
> computer, thereby guaranteeing another fine entry next year. (unless, of
> course, she's one of those virtuoso programmers who codes longhand.)

Actually, she sews her programs in lace and sends them to me.
I have an old Singer automatic loom connected up to a punch-card
reader.

She's not quite a virtuoso, though -- I do occasionally receive
patches.

-- 
Graham Nelson | graham@gnelson.demon.co.uk | Oxford, United Kingdom



From nulldogma@aol.com Thu Dec 12 09:16:22 MET 1996
Article: 20386 of rec.arts.int-fiction
Path: news.lth.se!solace!mn6.swip.net!seunet!news2.swip.net!funny.bahnhof.se!nntp.uio.no!www.nntp.primenet.com!nntp.primenet.com!news.bbnplanet.com!su-news-hub1.bbnplanet.com!arclight.uoregon.edu!news.sprintlink.net!news-peer.sprintlink.net!worldnet.att.net!uunet!in2.uu.net!152.163.170.17!newstf01.news.aol.com!audrey01.news.aol.com!not-for-mail
From: nulldogma@aol.com
Newsgroups: rec.arts.int-fiction
Subject: Re: Preaching to the pews
Date: 10 Dec 1996 17:24:47 GMT
Organization: AOL http://www.aol.com
Lines: 19
Message-ID: <19961210172400.MAA21652@ladder01.news.aol.com>
References: <yxsn2vm5qnk.fsf@stint.cl.cam.ac.uk>
NNTP-Posting-Host: ladder01.news.aol.com
X-Admin: news@aol.com

Gareth Rees wrote:
> If an author has something contentious to say, then it's more
> interesting to read about that argument in a world that is recognisably
> complex, that hasn't been expressly created for the purpose of winning
> the argument.

Okay, Gareth just said in four lines everything I was struggling to say in
my much longer, less coherent post. Very nicely put, Gareth -- I'm going
to be tacking this one to my bulletin board, as a constant reminder as I
write (and not just I-F).

Maybe we can stop arguing about the evils of preachiness now, and go on to
the virtues of pithiness...

Neil
---------------------------------------------------------
Neil deMause                            neild@echonyc.com
                  http://www.echonyc.com/~wham/neild.html
---------------------------------------------------------


From erkyrath@netcom.com Thu Dec 12 09:17:34 MET 1996
Article: 20384 of rec.arts.int-fiction
Newsgroups: rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news00.sunet.se!sunic!news.sprintlink.net!news-peer.sprintlink.net!howland.erols.net!netcom.com!erkyrath
From: erkyrath@netcom.com (Andrew Plotkin)
Subject: Re: Congratulations
Message-ID: <erkyrathE2A76u.EF3@netcom.com>
Organization: NETCOM On-line Communication Services (408 261-4700 guest)
X-Newsreader: TIN [version 1.2 PL1]
References: <58j69q$k92@milo.vcn.bc.ca>  <ant102129345M+4%@gnelson.demon.co.uk> <58n987$bu5@lex.zippo.com> <58noao$m5e@nr1.calgary.istar.net> <jota.850355839@laraby.tiac.net>
Date: Thu, 12 Dec 1996 03:32:54 GMT
Lines: 33
Sender: erkyrath@netcom23.netcom.com

Admiral Jota (jota@laraby.tiac.net) wrote:
> Roger Carbol <rog@col.ca> writes:
> >Mark J Musante wrote:
> >> Graham Nelson (graham@gnelson.demon.co.uk) wrote:

> >> > She's not quite a virtuoso, though -- I do occasionally receive
> >> > patches.
> >> And, annoyed at having to do that, she says "Darn it!"
> >Oh, stop needling the poor lady.

> Yeah, what's the point? And what does it have to do with this thread? 

Well, that settles the question of whether there can be moral dilemmas in 
IF. I am totally unable to decide whether Graham should be slowly 
dismembered for starting this nonsense and the rest of you burnt at the 
stake for continuing it, or vice versa.

(On the other hand, it comes to the same thing in the end, so maybe I'm 
just knit-picking.)

--Z

(Aren't you sorry you started this? If only you had known. Well, you 
know what they say about a stitch in time.)

(So tell me, is Miss Horn's adventure compiler written in Purl?)

(I'll shut up now.)

-- 

"And Aholibamah bare Jeush, and Jaalam, and Korah: these were the
borogoves..."


From jools@arnod.demon.co.uk Thu Dec 12 10:45:13 MET 1996
Article: 20378 of rec.arts.int-fiction
Path: news.lth.se!solace!nntp.uio.no!www.nntp.primenet.com!nntp.primenet.com!howland.erols.net!EU.net!usenet2.news.uk.psi.net!uknet!usenet1.news.uk.psi.net!uknet!dispatch.news.demon.net!demon!jools
From: Julian Arnold <jools@arnod.demon.co.uk>
Newsgroups: rec.games.int-fiction,rec.arts.int-fiction
Subject: Linearity vs. interactivity (re: Tapestry) (was Re: Competition mini-reviews (part 2))
Date: Thu, 05 Dec 1996 12:31:22 +0000 (GMT)
Organization: Organisation name, location. Telephone/Fax?
Lines: 45
Message-ID: <ant0512220b0c4bn@arnod.demon.co.uk>
References: <32A54F78.37D4@hermes.cam.ac.uk> <32A689C4.3B5E@hermes.cam.ac.uk> 
NNTP-Posting-Host: arnod.demon.co.uk
X-NNTP-Posting-Host: arnod.demon.co.uk
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; CHARSET=ISO-8859-1
X-Newsreader: ANT RISCOS Marcel [ver 1.08]
Xref: news.lth.se rec.games.int-fiction:19494 rec.arts.int-fiction:20378

In article <32A689C4.3B5E@hermes.cam.ac.uk>, Chuan-Tze Teo
<URL:mailto:ctt20@hermes.cam.ac.uk> wrote:
> 
> TAPESTRY
> 
> [...]
> 
> I found the puzzles rather tedious, especially after the first time when 
> replaying to see the multiple endings, and got little satisfaction out of 
> solving them. Had to look up the hints to work out exactly how to deal 
> with the medicine. But then, the puzzles aren't the point of this game; 
> for what they're worth they fit well within the setting. I suppose the 
> background information behind the decisions needs to be presented in some 
> way, but perhaps just letting the player wandering around exploring the 
> environment and talking to people may work better.

"Tapestry" was far and away the best game in the competition.  I'm
interested that many people have commented on the linearity and lack of
interactivity of this game.  (Non-)linearity was not a factor in my
appreciation of the game.  It is easy to confuse linearity with lack of
interactivity, which is maybe what many people have done with this game. 
The interactivity, the fact that it is you, the player, making the
decisions and dealing with the consequences, makes the game.  This is
what raises "Tapestry" far above the level of a mere "Twilight Zone"
clone-- which is what it may have become if it had been static fiction.

It is true that once you have set off along a path, your choices are
limited, you may not leave the path.  Such linearity may be something to
frown upon in a review, but during play I found this completely
irrelevant.  I viewed my enforced adherence to my chosen path (not that
I ever felt the inclination to purposefully stray from this path) as a
perfectly reasonable and expected consquence of my choice-- I made my
bed, now I've got to lie in it.  For similar reasons, I had no wish to
go back and replay the game, trying the other paths.  Sometimes it's
better not to know what might have been.

That's it, I just wanted to make the distinction between linearity and
interactivity, not to review the game, so I'll stop here.

Jools
-- 
"For small erections may be finished by their first architects; grand
ones, true ones, ever leave the copestone to posterity.  God keep me
>from  ever completing anything." -- Herman Melville, "Moby Dick"



From gdr11@cl.cam.ac.uk Thu Dec 12 19:18:10 MET 1996
Article: 20410 of rec.arts.int-fiction
From: Gareth Rees <gdr11@cl.cam.ac.uk>
Newsgroups: rec.arts.int-fiction,rec.games.int-fiction
Subject: Re: Moral Dilemnas in IF (was Re: [CONTEST] My reviews)
Date: 12 Dec 1996 17:46:57 +0000
Organization: Cambridge University Computer Lab
Lines: 11
Sender: gdr11@stint.cl.cam.ac.uk
Message-ID: <yxsk9qny7se.fsf@stint.cl.cam.ac.uk>
References: <Pine.GSO.3.95.961203220116.10773C-100000@ucsu.Colorado.EDU>
	<Pine.A41.3.95.961210161026.84860B-100000@login2.isis.unc.edu>
NNTP-Posting-Host: stint.cl.cam.ac.uk
X-Newsreader: Gnus v5.3/Emacs 19.34
Path: news.lth.se!solace!eru.mt.luth.se!news.algonet.se!news.cybernet.dk!nntp.uio.no!www.nntp.primenet.com!nntp.primenet.com!usenet.eel.ufl.edu!warwick!lyra.csx.cam.ac.uk!news
Xref: news.lth.se rec.arts.int-fiction:20410 rec.games.int-fiction:19510

I found that "Tapestry" was unsettling because it confused the player
with the protagonist.  Here I am, directing the actions of Timothy
Hunter, someone with a strong personality and detailed life history.  I
want to know what *he* thinks about the moral question at the heart of
the game, but instead the question is turned around and I am asked what
*I* think.  Well, I know what I think about the issue; my own views
aren't very interesting to me.  I'd prefer to find out what the
protagonist (and by extension, the author) have to say on the subject.

-- 
Gareth Rees


From thoni@softlab.se Thu Dec 12 19:54:37 MET 1996
Article: 20411 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news99.sunet.se!newsfeed.luth.se!news.luth.se!erix.ericsson.se!erinews.ericsson.se!news
From: Thomas Nilsson <thoni@softlab.se>
Newsgroups: rec.arts.int-fiction
Subject: Re: Preaching to the pews
Date: Thu, 12 Dec 1996 13:19:30 +0100
Organization: SoftLab
Lines: 71
Message-ID: <32AFF852.7533@softlab.se>
References: <587evk$1ei@news2.gte.net> <58d89s$gsk@Turing.Stanford.EDU> <58g5gc$b7j@colombia.earthlink.net> <Pine.LNX.3.95.961209044428.3136C-100000@adamant.res.wpi.edu>
NNTP-Posting-Host: rabbit.softlab.se
Mime-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit
X-Mailer: Mozilla 3.0Gold (X11; I; SunOS 5.5 sun4m)

George Caswell wrote:
> >
>    It's really just the wrong context.  I-F prompts you to step into a
> character's role.  If that character needs to make serious decisions (not just
> 'how' or 'why' but 'should I?') it's presumptuous for the author to say 'this
> is right.  That is not.'.
> 

And previously Roger Carbol wrote:

> I feel like breaking into transcript mode, so I shall:
> 
> >LOOK
> You see here a half-empty bottle of red wine.
> >EXAMINE WINE
> The luscious crimson liquid swirls in the bottle, verily begging
> you to quaff it.
> ---
> >TAKE SWORD
> You pull the sword out of the stone in one mighty stroke.  Wielding it
> lustily, you regret there is no one nearby to taste its cold steel.
> ---
> 
> Those two main characters had a viewpoint, I would think.  And I for 
> one, and possibly many others, find it an irritating obstacle to
> my viewpoint as a player.
> 

This discussion can be viewed as to focus on the question if the author
is 'allowed' to decide the right and wrongs in the eyes of the
protagonist.

Personally I don't feel in the least bit irritated with small (but
tasteful) comments about 'my' (as the character in the work of IF)
feelings or viewpoints. On the contrary I feel they help me to take the
guise of the character created by the author.

Perhaps this is the result of my view of what an author is trying to
offer the player. I think a work of IF should offer something very akin
to a role in a play. I.e. as the player of that part I am the one doing
the interpretation of what the author intended, but the script does the
lion part of leading my in the direction to do this in the spirit of the
author.

Consider you as a modern western person doing the role of Hamlet. Would
you even consider playing that part with your own views of the world? Of
course not! Instead you would study the script to 'get into' the role of
Hamlet so as to act in a natural way on stage according to who you think
Hamlet is. In a work of IF I feel little comments about views, longings
etc. does make the spirit of the protagonist more visible to me. Of
course it must be done with some subtleness so as not to (as we say in
Sweden) 'write things on the persons nose'.

An opposing view could be that the author create the setting, and most
of the actors, but not the (perhaps most important) 'hero'.

Having this latter view I am sure that any 'prechyness' would upset
anyone, because any views and thoughts are imposed on *you* (as in the
real you).

	Thomas

-- 
"Little languages go a long way..."
(ThoNi of ThoNi&GorFo Adventure Factories in 1985)
-------------------------------------------------------------------------------
Thomas Nilsson				Phone Int.: (+46) 13 651 12
Junovgen 12				Phone Nat.: 013 - 651 12
S-590 74  LJUNGSBRO 			Email: thoni@softlab.se
SWEDEN					alan-request@softlab.se for info
-------------------------------------------------------------------------------


From gdr11@cl.cam.ac.uk Thu Dec 12 19:54:43 MET 1996
Article: 20409 of rec.arts.int-fiction
Path: news.lth.se!solace!news.stealth.net!www.nntp.primenet.com!nntp.primenet.com!usenet.eel.ufl.edu!warwick!lyra.csx.cam.ac.uk!news
From: Gareth Rees <gdr11@cl.cam.ac.uk>
Newsgroups: rec.arts.int-fiction
Subject: Show & tell (was Re: Random competition thoughts)
Date: 12 Dec 1996 17:38:17 +0000
Organization: Cambridge University Computer Lab
Lines: 26
Sender: gdr11@stint.cl.cam.ac.uk
Message-ID: <yxslob3y86u.fsf_-_@stint.cl.cam.ac.uk>
References: <yxslob65pjs.fsf@stint.cl.cam.ac.uk>
	<58nqbf$nld@venezuela.earthlink.net>
NNTP-Posting-Host: stint.cl.cam.ac.uk
X-Newsreader: Gnus v5.3/Emacs 19.34

I wrote:
> Interactive fiction needs to show, not tell.

Cardinal Teulbachs <cardinalt@earthlink.net> wrote:
> I don't understand this, Gareth.  What does it mean?

Show vs tell is a basic idea from literary criticism.  "Telling" is the
presentation of information directly in the authorial voice.

   >examine kathy
   She looks like she gets easily irritated.

"Showing" is the presentation of information indirectly, as the result
of some event or action.

   >say hello to kathy
   "Who rattled your chain, dumbo?" she snaps.

It's not a case of "show good, tell bad": Jane Austen is an author who
uses "telling" with consummate effect.  But interactive fiction's sole
strength is that it is interactive.  "Showing" suits the form much
better than "telling": if you want to tell a story, why not use a
conventional form?

-- 
Gareth Rees


From goetz@cs.buffalo.edu Fri Dec 13 09:33:18 MET 1996
Article: 20444 of rec.arts.int-fiction
Path: news.lth.se!solace!eru.mt.luth.se!www.nntp.primenet.com!nntp.primenet.com!news-peer.gsl.net!news.gsl.net!portc01.blue.aol.com!newsstand.cit.cornell.edu!news.acsu.buffalo.edu!acsu.buffalo.edu!goetz
From: goetz@cs.buffalo.edu (Phil Goetz)
Newsgroups: rec.arts.int-fiction
Subject: Re: Tapestry (author's comments)
Date: 13 Dec 1996 04:08:25 GMT
Organization: State University of New York at Buffalo/Computer Science
Lines: 46
Message-ID: <58qkrp$bp@prometheus.acsu.buffalo.edu>
References: <erkyrathE2020p.C7I@netcom.com>
NNTP-Posting-Host: pollux.cs.buffalo.edu
NNTP-Posting-User: goetz

Tapestry... very interesting.




TAPESTRY SPOILERS AND CDA VIOLATIONS WARNINGS

I suspect that I liked the game for the "wrong" reasons, though.
The feeling I got from it wasn't anything about fate, or destiny,
but, "The immortals sure are assholes."

You've got Morningstar, and the Wraith, and the Fates, and they're
all arrogant, smug, know-it-alls who love to judge you without any
indication of why they are qualified to do so.  They're not interested
in what you have to say; they all have their own preconceived
notions.  Morningstar blames you for having run over a girl when it
clearly wasn't your fault.  The Wraith and the Fates have really strong
opinions about how guilty you are and how guilty you should feel.

The dominant feeling I got wasn't guilt or coming to terms with guilt;
it was rage at the system.  I chose to save the Thompson's business,
figuring it was my own damn fault for what I'd done before and it
wouldn't help to go visit a mom who was in a sense already dead.
So then I had to kill a little girl!  That doesn't make ME feel
guilty.  It makes me feel MAD.  Couldn't even see my mom's coffin
because of some obnoxious Wraith in the way.  Didn't see that the
Wraith had anything for me to fear, 'cause I had no guilt, and told
it so -- that made the game a dead end, and I had to restore.
You have to submit to the Wraith, even if you're lying, and THAT is
the message I got from the game.  The gods are assholes, but it's
their game and you have to play by their rules.

I quit the game.  I went the Atropos path at first, but dodged
out of the wife-killing scene.  Couldn't get out of killing the girl,
but then I'm wandering around that tower, with nothing to do but touch
the tapestry and go back for the wife.
I said, "**** it.  You can't make me.  QUIT."

I do wish the game would have recognized when the player was defying
the rules of the game.  But just count the cusswords in this post, and
the fact that I'm not willing to go back and play through it the "right"
way, and you can see it riled me up quite a bit.  Which is good, I think.

Phil Goetz@cs.buffalo.edu

It's a bad sign when a stranger starts a conversation with "Hail, Mortal."


From avrom@Turing.Stanford.EDU Fri Dec 13 09:33:39 MET 1996
Article: 20451 of rec.arts.int-fiction
Path: news.lth.se!solace!nntp.uio.no!www.nntp.primenet.com!nntp.primenet.com!news.sprintlink.net!news-peer.sprintlink.net!news.bbnplanet.com!su-news-hub1.bbnplanet.com!news.Stanford.EDU!not-for-mail
From: avrom@Turing.Stanford.EDU (Avrom Faderman)
Newsgroups: rec.arts.int-fiction
Subject: Re: Tapestry (author's comments)
Date: 12 Dec 1996 22:54:37 -0800
Organization: CSLI, Stanford University
Lines: 27
Message-ID: <58qujd$rbp@Turing.Stanford.EDU>
References: <erkyrathE2020p.C7I@netcom.com> <58qkrp$bp@prometheus.acsu.buffalo.edu>
NNTP-Posting-Host: turing.stanford.edu

In article <58qkrp$bp@prometheus.acsu.buffalo.edu>,
Phil Goetz <goetz@cs.buffalo.edu> wrote:
>Tapestry... very interesting.
>
>
>
>
>TAPESTRY SPOILERS AND CDA VIOLATIONS WARNINGS

>I suspect that I liked the game for the "wrong" reasons, though.
>The feeling I got from it wasn't anything about fate, or destiny,
>but, "The immortals sure are assholes."

I agree with this, and much of what you say following, but...

>guilty.  It makes me feel MAD.  Couldn't even see my mom's coffin
>because of some obnoxious Wraith in the way.  Didn't see that the
>Wraith had anything for me to fear, 'cause I had no guilt, and told
>it so -- that made the game a dead end, and I had to restore.
>You have to submit to the Wraith, even if you're lying, and THAT is

I think you missed a path--in fact, the path that was clearly the one
the author considered "best."

I almost missed it too.

-Avrom


From daly@PPD.Kodak.COM Fri Dec 13 23:41:05 MET 1996
Article: 20462 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news00.sunet.se!sunic!news.sprintlink.net!news-peer.sprintlink.net!howland.erols.net!vixen.cso.uiuc.edu!sdd.hp.com!frankensun.altair.com!newsserver.pixel.kodak.com!news.kodak.com!newsserver.rdcs.Kodak.COM!daly
From: daly@PPD.Kodak.COM (Matthew Daly)
Newsgroups: rec.arts.int-fiction
Subject: Re: Scoring implementation
Date: 13 Dec 1996 18:15:57 GMT
Organization: Eastman Kodak Company
Lines: 95
Message-ID: <58s6gt$56t@kodak.rdcs.Kodak.COM>
References: <58mp9h$e8@flood.xnet.com> <erkyrathE29nvC.HoE@netcom.com> <58ne3o$8bg@flood.xnet.com>
Reply-To: daly@PPD.Kodak.COM (Matthew Daly)
NNTP-Posting-Host: titan.ppd.kodak.com

jcompton@typhoon.xnet.com (Jason Compton) writes:
>Andrew Plotkin (erkyrath@netcom.com) wrote:
>: Jason Compton (jcompton@typhoon.xnet.com) wrote:
>: So for us reprobates who don't want *any* scoring system, how would you 
>: like the game to respond to a "score" command? Just "I don't know the 
>: verb 'score'?" 
>: 
>: How about "You tell me."? (I bet *that* would get awfully irritating
>: awfully quick. :-) I may have to start using it...)
>
>That's the price to pay for being a trend setter, I guess. :)
>
>How does Witness react to it?  How about Deadline?  I believe it just says
>it doesn't know what a 'score' is.  Now, you could look at those games
>and say "Well, you only have one goal, to catch the killer."  But you
>could say that a number of scored games have specific goals, and that a
>number of events in Deadline and Witness are progressive acts that should
>earn you some points.

There are multiple levels of situations in which you wouldn't want to
(or wouldn't be able to) give out scores on demand:

1) There is a single goal, and a single path to the solution exists,
but the process of telling you "you just did something right" gives
away too much of the ultimate solution.  (Effectively, Zork III
takes this route by giving you the score at the beginning of a "quest"
instead of when you actually get the "treasure" at the end.)

2) There is a single goal, but multiple paths to the solution, and
there is no good way of saying "There are two ways to kill the
wizard, and you're 80% of the way to one method and 60% of the way
to the other."  (King's Quest VI is an example of how they try to
put in a score anyway, to their detriment IMHO.)

3) There is a single goal, but some of the subtasks might be
performed by either you or an NPC.  As an example, imagine a new
version of Enchanter where you are an entry-level magician accompanied
by a non-magic-using adventurer NPC.  Part of the game logic might be
that the adventurer is smart enough to solve the puzzles that don't
involve spellcasting, and then share his inventory with you.  Again,
a simple numerical rendering is odd: "You are 80% of the way to the
goal, although you only did 50% of that advancement yourself."  In
effect, since Sergeant Duffy uncovers the killer in Suspect regardless
of your efforts, you could say that that game falls into this category
in an extreme way. :-)

4) There are multiple possible goals, and the user chooses which
goal to achieve.  For instance, imagine that playing a hand of
bridge is a part of your game, and you have a hand that can win at
3NT.  You award X points to someone who bids and makes 3NT.  But
how many points do you award to someone who bids 2NT and makes an
overtrick?  How many points to someone who bids 5NT but comes up
a trick short (taking more tricks than the "ideal" case but not
winning the contract)?  How about someone who doubles his opponents
who bid 3NT and setting them by several tricks (making lots of points
above the line but coming no closer to winning a rubber)?

5) There are multiple possible goals, but the game doesn't know
which one you've chosen.  For instance, imagine a game where you
are a politician in the middle of being bribed by a corporation.
During the course of the game, you are constantly provided with
the choice between being corrupt and being in league with the
police, gathering evidence for a big bust.  Or you could play
down the middle, reporting some bribes but sneaking away some
others in hopes that the police don't notice.  The game doesn't
really know what your goals as a player are until you get to the
point of turning over full evidence, partial evidence, or making
a getaway to a Carribean hideout.  In the meantime, the game
couldn't even make a intelligent guess as to how well you're doing.

Right now, I'm designing a game which has elements of (2), (3),
and (5), and the concept of scoring is going to be very important
to me.  At the moment, I'm leaning toward giving the player some
ability to know the full state of the world and let her interpret
to what degree that state was brought about by her actions.  But
no numbers, and the mechanism will be a little more complex than
typing SCORE (although not more difficult than reading a newspaper
in the game).

>If there's no score, there's no score.  It's not necessary to berate the
>player for it.

Amen.  (Sorry in advance if someone accuses you of being "preachy"....)

In addition, there's no need to berate the player for thinking that
there should be a numerical score and a clearly known upper score.
Life also doesn't support "again" or "undo" as such, but that's no 
reason to strip them from I-F parsers.

-Matthew
--
Matthew Daly             I don't buy everything I read ... I haven't
daly@ppd.kodak.com       even read everything I've bought.

My opinions are not necessarily those of my employer, of course.


From avrom@Turing.Stanford.EDU Sat Dec 14 14:19:46 MET 1996
Article: 20467 of rec.arts.int-fiction
Path: news.lth.se!solace!mn6.swip.net!plug.news.pipex.net!pipex!oleane!in2p3.fr!univ-lyon1.fr!howland.erols.net!cam-news-hub1.bbnplanet.com!news.bbnplanet.com!su-news-hub1.bbnplanet.com!news.Stanford.EDU!not-for-mail
From: avrom@Turing.Stanford.EDU (Avrom Faderman)
Newsgroups: rec.arts.int-fiction
Subject: Re: Preaching to the pews
Date: 13 Dec 1996 12:37:50 -0800
Organization: CSLI, Stanford University
Lines: 71
Message-ID: <58sequ$q53@Turing.Stanford.EDU>
References: <587evk$1ei@news2.gte.net> <58g5gc$b7j@colombia.earthlink.net> <58gptc$1vo@Turing.Stanford.EDU> <32ae2928.42375077@news.peinet.pe.ca>
NNTP-Posting-Host: turing.stanford.edu

In article <32ae2928.42375077@news.peinet.pe.ca>,
Trevor Barrie <tbarrie@cycor.ca> wrote:
>avrom@Turing.Stanford.EDU (Avrom Faderman) wrote:
>>This is easier to do, as I said, in static fiction;  making a moral
>>_claim_ can be done in such a way that I feel someone is _suggesting_
>>something to me;  setting up a moral puzzle that I have to guess their
>>answer to lends itself to this far less.
>
>I don't see how that's the case. Perhaps if you'd elaborate more on what you
>mean by a "moral puzzle"? (If you've explained earlier but I missed it, I
>apologize for asking you to repeat yourself.) Examples would be nice...

I don't think I did explain earlier...I was originally responding to
someone who asked whether "puzzles based on morality or emotions" were
a good idea.  What I took them to mean by a "puzzle based on morality"
was this:

The player is confronted with what at first glance looks like a moral
dilemma.  The author, however, has a particular opinion on which route
is the right one to take, and (and this is the important part, what
makes it a moral puzzle rather than simply a point at which the author
makes a moral claim) this is implemented in terms of which route will
allow the player to progress in the game.

As for examples, I don't really think there are very many
(fortunately) in the existing body of IF--I was responding to a
_proposal_, not criticizing any actual games.  But here's a situation
(a pretty silly one;  my puzzle-writing skills aren't up to creating
anything more interesting right now):  The PC is riding on a trolley
which is barreling out of control.  There is a switch up ahead.
Trapped on the left branch of the track is one person;   on the right
branch are five.  On the trolley is a switch.  The player knows that
if he or she does nothing, the trolley will end up on the right
branch, while flipping the switch will put it on the left branch.

Now, suppose the following holds in the game:  1)  Flipping the switch
will make the game unwinnable, and 2)  There is no way for the player
to figure this out logically from the information given them in the
game;  the only way they could know to do this is if they've figured
out that the author thinks it's better to let five die than it is to
actively kill one (there might be hints of _this_ elsewhere in the
game, but there are no hints that such an action would be not only
right but prudent).

This is the sort of situation I was describing as objectionable.  Note
that it doesn't include:

1)  The game making it clear that the PC has particular moral
viewpoints.
2)  The game _describing_ the player's choices in laudatory or
condemning terms.
3)  The game describing the player's choices in ways that, while not
explicitly approving or disapproving, are clearly meant to evoke pride
or guilt.
4)  The game requiring the player to figure out the moral attitudes of
various NPCs in order to progress.

I think all these situations (including, and this is where all the
talk about static fiction vs. IF came in, #2-3) are fine.

One way to get around the danger of this situation, while still having
actions with moral weight and real consequences, is what I suggested
in the original thread, and what Tapestry seems to have tried to
do--abandon the idea of winning, and make multiple importantly
different endings that correspond to the player's choices (note that
Tapestry did engage in #3 above--one of the endings was clearly
considered best by the author--but the other endings weren't
premature;  the player didn't have the feeling of having been punished
with a shortened or unsatisfying game for the choices he or she made).

-Avrom


From avrom@Turing.Stanford.EDU Sat Dec 14 14:26:51 MET 1996
Article: 20482 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news99.sunet.se!newsfeed.luth.se!news.luth.se!eru.mt.luth.se!www.nntp.primenet.com!nntp.primenet.com!news.bbnplanet.com!su-news-hub1.bbnplanet.com!news.Stanford.EDU!not-for-mail
From: avrom@Turing.Stanford.EDU (Avrom Faderman)
Newsgroups: rec.arts.int-fiction
Subject: Re: Preaching to the pews
Date: 13 Dec 1996 13:19:03 -0800
Organization: CSLI, Stanford University
Lines: 110
Message-ID: <58sh87$rdv@Turing.Stanford.EDU>
References: <587evk$1ei@news2.gte.net> <58g5gc$b7j@colombia.earthlink.net> <58gptc$1vo@Turing.Stanford.EDU> <58j697$srv@paraguay.earthlink.net>
NNTP-Posting-Host: turing.stanford.edu

In article <58j697$srv@paraguay.earthlink.net>,
Cardinal Teulbachs <cardinalt@earthlink.net> wrote:
[snip]
>What if one were to do, say, Lucretius' On the Nature of Things? I
>don't know what the hell a player would do in such a piece--I guess
>just fall through the void and bump atoms around--but suppose it were
>done. And suppose the original verse and language it's written in were
>preserved. Wouldn't you call that a good work? It's generally held to
>be more or less a great piece of poetic literature, in its original
>form. Yet it's nothing but one long sermon. It raves on from beginning
>to end about the nature of things, with all the moral consequences
>that radical materialism has to offer.  

I would object to it much more if it had exercises.  I expect debaters
to (usually) be earnest;  I expect them to (often) hold their beliefs
deeply;  I expect them to want to convince me of their views, and
(sometimes) to use very strong language in getting me to do so.  I
have somewhat less patience with them if they (as, say, Anselm
occasionally does) call their opponents fools, and considerably less
if they pat their interlocuters on the head and toss them anchovies
when they seem to be coming around to their side--which is basically
what putting a moral puzzle in IF does.

>>I don't like people I don't know (and most IF authors fall into this
>>category) presuming to teach me about morals.  This doesn't mean I
>>don't like them trying to convince me of a moral position;  it's just
>>that I require they do it in such a way that treats me as an equal
>>rather than as a pupil.
>
>But no great author treats his readers in the way you're talking
>about. He has something to say and he says it. There's no opportunity
>for you to object and there's no pretense that he's merely suggesting
>something. 

"Suggesting" was a bad word for me to use because it sounds limited to
something very mild.  I don't mind an author trying very hard to
convince me of something, in language as vivid as they want to make
it, so long as they don't actually insult me.

I guess the upshot is that I'd rather be sermonized to (if the sermons
isn't insulting) than tested on morality, evaluated for my "progress"
towards a particular position, as if it were obvious that I would
reach it if I were only paying attention.

[snip]
>>See above.  If the game tries to declare things about reality, that's
>>fine--it's the author's perogative to articulate his or her
>>positions.  When things go awry is when the author decides something
>>about reality and then asks us to guess what it is.
>
>I agree completely that this makes for an aggravating puzzle, but
>isn't the problem then simply one of the player's ignorance vis a vis
>the author's game world? It's not really one of preachiness, is it?
              ^^^^^^^^^^

This is where the distinctive nature of _morality_ (as opposed to,
say, physics) comes in.  If the author asks me to guess how to open a
gate, that's just a matter of my ignorance about the game world.  But
morality isn't like that, as I claimed in a much earlier post--if a
moral claim is true in the game world, it's just plain true.  So the
author hasn't simply decided something about the _game_world_ and
asked us to guess what it is (which needn't be aggravating, if we're
given some good hints);  he or she has decided something about
_reality_ and asked us to guess what it is.

>Ok. Here's my difficulty with your position. Moral science is the
>science of human behavior with respect to what men ought and ought not
>to do. As such, it encompasses in some way every conceivable human
>act--not just questions of sexuality and distributive justice and so
>on, as many people seem to think. The permissibility of everything
>from picking your nose to rolling out of bed to chopping off
>Geoffrey's head with an axe comes under its purview. Consequently,
>we're faced with the fact that every puzzle in an i-f game *is* in
>some measure a moral puzzle. That's not to say that the point of every
>puzzle is or even seems to be moral--as if the author were immediately
>concerned with the rightness or wrongness of pulling a bellrope, for
>example--but every puzzle involves the player performing some act. 

By "moral puzzle," I didn't simply mean a puzzle about which one could
have moral beliefs.  I specifically meant one that had morality as its
point.

>Now what is the difference, in principle, between pulling the bellrope
>and, for instance, killing or not killing poor innocent Geoffrey, when
>the author is not immediately concerned with saying anything about the
>rightness or wrongness of killing him?

If the author isn't concerned with the rightness or wrongness of
killing Geoffrey, I wouldn't describe the puzzle as a moral one.  And
while I would find a game that required me to kill Geoffrey to win
_distasteful_, my problem with it wouldn't be what I've been calling
"preachiness," unless the only way I could figure out that I was
supposed to kill Geoffrey was by figuring out that the author thought
the killing of innocents was morally obligatory.

Now of course it would never _occur_ to me that the author of a game
had moral positions about pulling bellropes, so if there were no other
clues about whether to pull the bellrope, I would assume not that I
was being asked to divine a moral principle but rather that I was
being asked to guess randomly.  I don't like games that require that
of me, either, but again it's a completely separate issue.

> And with that this preacher will end his sermon :)

And with that _this_ preacher will lose email access for a couple of
weeks, so all those who have grown tired of me going on at great
length about this may rejoice. ;)

-Avrom



From erkyrath@netcom.com Sat Dec 14 14:28:08 MET 1996
Article: 20481 of rec.arts.int-fiction
Newsgroups: rec.arts.int-fiction
Path: news.lth.se!solace!mn6.swip.net!plug.news.pipex.net!pipex!oleane!jussieu.fr!math.ohio-state.edu!howland.erols.net!www.nntp.primenet.com!nntp.primenet.com!netcom.com!erkyrath
From: erkyrath@netcom.com (Andrew Plotkin)
Subject: Re: Scoring implementation
Message-ID: <erkyrathE2Du8r.Cor@netcom.com>
Organization: NETCOM On-line Communication Services (408 261-4700 guest)
X-Newsreader: TIN [version 1.2 PL1]
References: <58mp9h$e8@flood.xnet.com> <erkyrathE29nvC.HoE@netcom.com> <58ne3o$8bg@flood.xnet.com> <58s6gt$56t@kodak.rdcs.Kodak.COM>
Date: Sat, 14 Dec 1996 02:43:39 GMT
Lines: 33
Sender: erkyrath@netcom10.netcom.com

Matthew Daly (daly@PPD.Kodak.COM) wrote:
> >If there's no score, there's no score.  It's not necessary to berate the
> >player for it.
>
> Amen.  (Sorry in advance if someone accuses you of being "preachy"....)

Now I want to put something like this in my next game:

> SCORE 
There is no score in this game, you jerk. Life doesn't have a score. 
Fiction doesn't have a score either. We're trying to plumb *depths* of
*literary possibility* here, not spin a counter in one corner of your
screen. We're *trying* to say something about *humanity*, goddamnit, and
not incidentally blow your socks off, if you don't flat-out fill your
*underwear* in sheer *shock at my poetic fire*.  You want a *score?*
Here's your SCORE, you subliterate moron: FOUR out of SEVENTY THOUSAND, 
WHICH GIVES YOU THE RANK OF NOT WORTHY TO PLAY THIS FUCKING GAME!

> TAKE DIAMOND
Taken. [Your score has just gone up.]

> SCORE
Drop dead.
[Hit any key to quit]

%_

--Z

-- 

"And Aholibamah bare Jeush, and Jaalam, and Korah: these were the
borogoves..."


From daly@PPD.Kodak.COM Sat Dec 14 23:16:03 MET 1996
Article: 20518 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news99.sunet.se!newsfeed.luth.se!news.luth.se!eru.mt.luth.se!www.nntp.primenet.com!nntp.primenet.com!howland.erols.net!ais.net!newsfeed.concentric.net!newshost.comco.com!frankensun.altair.com!newsserver.pixel.kodak.com!news.kodak.com!newsserver.rdcs.Kodak.COM!daly
From: daly@PPD.Kodak.COM (Matthew Daly)
Newsgroups: rec.arts.int-fiction
Subject: Re: Random competition thoughts
Date: 10 Dec 1996 20:19:55 GMT
Organization: Eastman Kodak Company
Lines: 52
Message-ID: <58kglb$np5@kodak.rdcs.Kodak.COM>
References: <yxslob65pjs.fsf@stint.cl.cam.ac.uk>
Reply-To: daly@PPD.Kodak.COM (Matthew Daly)
NNTP-Posting-Host: titan.ppd.kodak.com

In article <yxslob65pjs.fsf@stint.cl.cam.ac.uk> Gareth Rees <gdr11@cl.cam.ac.uk> writes:
>1. Why the fad for including responses like this?
>
>     >score
>     Life doesn't work like that.
>
>   I don't know about you, but my life has a score (currently 10 out of
>   100).

Uh oh.  Sounds like you didn't get the Fullbright scholarship back
in act 2.  You'd better restore the game and bribe the college
president. :-)

>2. Lots of games hadn't been playtested enough ("Delusions" ought to be
>   the winner of the "most unfortunate bugs" award).  If this was
>   anything to do with the silly rules about "official betatesters",
>   then those rules ought to be scrapped next year.

Unless I missed an awful lot, about half the games weren't submitted
for betatesting.  Plus there were some web snafus at the time.  I
do hope that no one shied away from betatesting because they wanted
to judge instead.

>4. Some games had too much text ("Tapestry" is the worst offender among
>   those I've played).  Interactive fiction needs to show, not tell.

I think that it certainly needs to tell you when you're in an
interactive spot and when you need to just read and type WAIT.
One of the disturbing trends in graphic I-F is making the story
a glorified movie with highly limited interactivity, and it would
be a shame if text I-F went too far down that road.

>5. The scoring system is too complex.  Go back to nominating your best
>   three.

I don't know that that's true, it would certainly help the mid-range
contestants to know if they're grade-3 authors or grade-7.  It certainly
does seem like overkill to go to 1-100 style judging, though.

>6. No women (no surprise there).

One track mind.... ;-)  Although I did beta "Night in the Computing
Center" for the contest and was surprised that it didn't turn up,
since it didn't have any bugs that I could uncover.  Don't know the
story behind that one....

-Matthew
--
Matthew Daly             I don't buy everything I read ... I haven't
daly@ppd.kodak.com       even read everything I've bought.

My opinions are not necessarily those of my employer, of course.


From jdyer@kitts.u.arizona.edu Mon Dec 16 13:22:52 MET 1996
Article: 20557 of rec.arts.int-fiction
Path: news.lth.se!solace!eru.mt.luth.se!www.nntp.primenet.com!nntp.primenet.com!su-news-hub1.bbnplanet.com!news.bbnplanet.com!cpk-news-hub1.bbnplanet.com!newsfeed.internetmci.com!ncar!noao!CS.Arizona.EDU!news.Arizona.EDU!kitts.u.arizona.edu!jdyer
From: jdyer@kitts.u.arizona.edu (Jason B Dyer)
Newsgroups: rec.arts.int-fiction
Subject: Re: Scoring implementation
Date: 15 Dec 1996 18:14:59 GMT
Organization: The University of Arizona
Lines: 20
Message-ID: <591f73$h3m@news.ccit.arizona.edu>
References: <mbtiv69qdxy.fsf@seven.ucs.indiana.edu> <58v88q$qnj@milo.vcn.bc.ca>  <ant151305b49c4bn@arnod.demon.co.uk>
NNTP-Posting-Host: kitts.u.arizona.edu
X-Newsreader: TIN [version 1.2 PL2]

Julian Arnold (jools@arnod.demon.co.uk) wrote:
: Though please, please, please, no-one start whittering on about
: censorship.  It's bad, it's wrong, it doesn't work, and it pisses (I
: mean, urinates) me off.

The above use of the word was completely natural.

The one swear word in _The Legend Lives_ fit in so naturally I didn't
even notice it the first two times I played through the segment.

What does annoy me is when swearing is added for "realism" and it
comes off simply as the author trying to fake it. Take the David
Gerrold Chtorr series; it has some of the most repulsive scenes I've
seen in fiction, but I loved the books anyway because the scenes worked
so well within the narrative. _Rising Sun_, on the other hand, looked
like the author just randomly spread out as much swearing as possible
in an attempt to somehow look "sophisticated."

Jason Dyer
jdyer@u.arizona.edu


From zbir@seven.ucs.indiana.edu Mon Dec 16 17:03:14 MET 1996
Article: 20583 of rec.arts.int-fiction
Path: news.lth.se!solace!mn6.swip.net!plug.news.pipex.net!pipex!multicast.news.pipex.net!tank.news.pipex.net!pipex!www.nntp.primenet.com!nntp.primenet.com!howland.erols.net!vixen.cso.uiuc.edu!news.indiana.edu!news
From: zbir@seven.ucs.indiana.edu (Zachery "Tigger" Bir)
Newsgroups: rec.arts.int-fiction
Subject: Re: Language, language (was: Re: Scoring implementation)
Date: 16 Dec 1996 10:10:34 -0500
Organization: Indiana University, Bloomington
Lines: 89
Message-ID: <mbtvia2r0d1.fsf@seven.ucs.indiana.edu>
References: <mbtiv69qdxy.fsf@seven.ucs.indiana.edu>
	<giMlpMA3QYsyEwWX@amster.demon.co.uk> <erkyrathE2FD7n.4xp@netcom.com>
	<E2GGBA.1Fv%h729ihqu@sun1.cip.fak14.uni-muenchen.de>
	<58vvf3$gtt@decaxp.harvard.edu>
NNTP-Posting-Host: seven.ucs.indiana.edu
X-Newsreader: Gnus v5.2.25/XEmacs 19.14

cpowell@course4.harvard.edu (Charles Powell) writes:

> 
> Florian Beck (fb%h729ihqu@sun1.cip.fak14.uni-muenchen.de) wrote:
>
> Well, certainly some good works have been written that use such language. 
> But all too often, resorting to the use of foul language is a mark of
> an inability to express oneself descriptively.  Considering that
> interactive fiction is a medium which relies so greatly on the power of
> words, I would hope that authors seriously consider what words they choose
> in their descriptions.  On occasion, using language unbecoming of an
> adventurer can produce a powerful effect, but this effect is powerful
> because of its rarity.  I would hate to see such language become commonplace
> in these games.

Okay, I started this da*n thread, so here's a justification (explanation?):

The bar is seedy, right? In the middle of the bad part of town on a
paradise island. The character is an American business man abroad,
trying to stir up foreign investors for the company, and gets
mugged. He wakes up in an alley, without anything. Given the state of
mind of the character, don't you think he _might_ not give a favorable
interpretation of every place he visits? Besides, I think it's much
more true and honest to say "The bar smelled of piss," rather than
"The bar smelled of urine." I dunno, call me low-brow. Would you be as
offended if I told you of my plans for a prophetic wino who
instersperses his fortune telling with curse words?

> 
> : I know of a recent attempt of the american govenment to ban "offensive" 
> : langauge. The german government tries to outlaw certain attitudes/opinions
> : (e.g. concerning police/soldiers) as insult/defamation. 
> 
> : Off topic? I don't think so. There are certain forms/contents some
> : people don't want to hear/know about (nor do they want others to know).
> : Taboos of some sort. But taboos have no place in art. Quite to the
> : contrary: taboos, of any kind, are probably the most interesting thing
> : to write about.
> 
> But is it worthwhile to break social conventions merely for the sake of
> breaking them?  I agree that art should challenge us, and that in
> doing so, it inevitably must challenge our conventions.  But I would
> hope that this challenge is an attempt to propose a viable alternative,
> instead of merely destroying the norms.
> 

I think we've strayed off topic. "Piss" rarely challenges anything
more than your bladder's ability to hold it.

> : It seems some people would like literature (or art for that matter
> : to be neither embarrassing nor disturbing to anyone, regardless of
> : opinion and tradition. But it is _those_ writing I would call
> : bad writing: What's the point of writing something, everyone agrees with 
> : already? It's not only boring. It is a lie: if the common attituedes were
> : justified, why is everything going doen the drain? On the formal side: 
> : the life of people (at least 90% of them) can't be described in the 
> : language of newspapers.
> 
> I agree with you.  But I would prefer to be disturbed by works because of
> their intellectual content, instead of their verbal content.  Surely there
> are better ways to make people think than to shout curses at them. 

With interactive _fiction_ how are you going to be disturbed by
anything _but_ verbal content? Let's say the character witnesses a
mugging. Should we make a concerted effort to have the mugger say, "I
dare say, dear lady, please give up your valuables, or I shall be
forced to do nasty things," or "Give up the fucking money!"?

Now, somebody's gonna say, "Why have a mugging scene?" Why not? It's
int-fiction. Christ, everybody's so hung up on making this medium
goody-goody. I don't want dirty words for dirty words' sake. But,
sometimes, some of these games are just boring, because all the events
within are divergent from the real world. Who knows, maybe I'm not cut
out for it (we'll see during the next competition), but I have a funny
feeling that I am. And I think if "piss" is the worst problem I have
with my game, then I'm lucky.

Regards,

Zac

> 
> 
> Charles Powell
> cpowell@fas.harvard.edu

-- 
		  Zachery J. Bir - zbir@indiana.edu
	    http://seven.ucs.indiana.edu/~zbir/index.html


From erkyrath@netcom.com Mon Dec 16 21:50:35 MET 1996
Article: 20585 of rec.arts.int-fiction
Newsgroups: rec.arts.int-fiction,rec.games.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news00.sunet.se!sunic!news.sprintlink.net!news-peer.sprintlink.net!news.bbnplanet.com!cpk-news-hub1.bbnplanet.com!www.nntp.primenet.com!nntp.primenet.com!netcom.com!erkyrath
From: erkyrath@netcom.com (Andrew Plotkin)
Subject: Re: [Z-machine] Question of opinion
Message-ID: <erkyrathE2Ip5L.Dqz@netcom.com>
Followup-To: rec.arts.int-fiction,rec.games.int-fiction
Organization: NETCOM On-line Communication Services (408 261-4700 guest)
X-Newsreader: TIN [version 1.2 PL1]
References: <E2I63q.436@news.kesmai.com>
Date: Mon, 16 Dec 1996 17:41:45 GMT
Lines: 98
Sender: erkyrath@netcom.netcom.com
Xref: news.lth.se rec.arts.int-fiction:20585 rec.games.int-fiction:19599

rich@muddy.kesmai.com wrote:
> I pulled this off through some Win32 trickery using threads - the Z-machine 
> runs as an independent thread from the GUI, with a couple of data pipes for
> I/O (screen, keyboard)...but I digress. To create the most compatible version 
> possible, one that allowed me to only modify device-dependent code, I've more
> or less locked myself out of a) significant scrollback buffers and b)possibly
> cut and paste (for the Windows/MFC minded, I derived directly from CView and
> draw it myself. I cannot use CRichEditView or CEditView and maintain 100% 
> compatibility with Frotz - email me if you want to the reasons).

I'm sort of curious, but I know nothing about MFC. Feel free to post an 
explanation if you can simplify it for us [voluntary] Windows-illiterates.

The design of xzip/MaxZip/MaxTADS, for comparison, has the interpreter 
engine "on top" of the event loop. The engine calls 
os_dependent_read_line(), or whatever, and that starts up a little event 
loop, which sucks keyboard and mouse events until the user hits Enter. 
Then the little event loop exits. 

This is a totally old-fashioned, single-threaded way of doing things, but 
it is legal in X windows and Mac System 7 -- as long as you don't use any 
fancy-schmancy application class library. :-) I doubt I could get it to 
work with Motif (not that I know anything about Motif) or the 
pure-event-driven model planned for Mac System 8 (not that Copland/System 
8 is going anywhere these days.)

I may try to figure out an alternate approach, say in Java.

> Anyway I COULD make a version that had a long scrollback buffer and would 
> probably support everything you're used to in, say, Wordpad (note that I do
> already support edit keys, just not cut and paste). If I do this I will almost
> certainly sacrifice some compatibility with quirky games like Seastalker or
> Bureaucracy (the fill out form, remember?). 

Those are really not much problem. Seastalker is just a very large status
line; it's not harder than box quotes (and trust me, you can't get away
without box quotes.) Bureaucracy is text input in the status line. 
It's a series of read_char opcodes, so all you really have to do is 
handle those normally. Making an input mark appear in the status line is 
nice but not necessary. 

As long as the main window knows to buffer user keystrokes until the
interpreter asks -- which it must do in any case, since it doesn't know
whether the interpreter will ask via read_line or read_char -- read_char
doesn't display the typed character, remember -- you'll be fine. 

> Also graphical versions would be
> hopeless.

I have never tried writing a version 6 Z-interpreter.

> Is it more important to preserve the compatibility or provide the convienance
> features of a rollback buffer? What do people think?

When not in a V6 game, I definitely vote for convenience (as you can tell 
by the amount of programming time I spend on it.) 

> As I played certain games
> I couldn't help noticing that the presentation - the sizing of the paragraphs,
> even the spacing of more prompts - was more or less built around an 80 col
> line. Even with WinFrotz now you can go full screen with an Arial font and
> get 200+ chars on a line - just doesn't look the same. I found myself going 
> back to a more or less 80x25 layout (only with a big honking easy to read
> font). I was curious what other folks thought about this.

Well, a very wide text window looks bad in any application (when
displaying normal prose text.) It makes the paragraphs too long and
skinny. I like text windows to be about 80 or 100 characters wide, and
proportioned like a piece of paper, which means 40 to 50 lines high. (I
just started an xzip and sized it the way I like it, and counted. And my
shell and Emacs windows are the same.)

I find a 25-line text window painfully cramped in any circumstances.

> P.S. For those up on the specs of the Z-machine, you're probably thinking it
> wouldn't be too hard to have the scrollback just capture what appears in a
> "buffered" window, namely window 0. You're probably also right. Three questions
> arise: are there any games that buffer windows OTHER than 0,

In non-V6 games, window 0 is always a buffer and window 1 is a
non-buffering fixed-width character grid. In V6, again, I am clueless. 

> and what do you do with games that 
> send to the buffered window stuff that really shouldn't be (small example: AMFV
> sticks the "[Press any key to continue]" message from the title screen in the
> buffered output - annoying).

You live with it. Heh. My interpreters just leave the "hit any key" 
message visible, since there's nothing they can do about it. If the game 
clears the screen right away, it's not a big deal, and if not, well, it's 
still not a big deal.

--Z

-- 

"And Aholibamah bare Jeush, and Jaalam, and Korah: these were the
borogoves..."


From mol@bartlet.df.lth.se Mon Dec 16 22:08:50 MET 1996
Article: 20589 of rec.arts.int-fiction
Path: news.lth.se!news
From: mol@bartlet.df.lth.se (Magnus Olsson)
Newsgroups: rec.arts.int-fiction
Subject: Re: Language, language (was: Re: Scoring implementation)
Date: 16 Dec 1996 22:08:04 +0100
Organization: The Computer Society at Lund University and Lund Institute of Technology
Lines: 65
Message-ID: <594dnk$621@bartlet.df.lth.se>
References: <mbtiv69qdxy.fsf@seven.ucs.indiana.edu> <58vvf3$gtt@decaxp.harvard.edu> <mbtvia2r0d1.fsf@seven.ucs.indiana.edu> <jota.850760415@laraby.tiac.net>
NNTP-Posting-Host: bartlet.df.lth.se
NNTP-Posting-User: mol

In article <jota.850760415@laraby.tiac.net>,
Admiral Jota <jota@laraby.tiac.net> wrote:
>zbir@seven.ucs.indiana.edu (Zachery "Tigger" Bir) writes:
>>Let's say the character witnesses a
>>mugging. Should we make a concerted effort to have the mugger say, "I
>>dare say, dear lady, please give up your valuables, or I shall be
>>forced to do nasty things," or "Give up the fucking money!"?
>
>Actually, I think this very case is a great example in favor of the "clean" 
>argument: essentially, if there's no real reason for said language, it 
>tends to detract from the story rather than add to it. 

*Any* literary device used without a real reason detracts from the story.

Note: I consider rude language to be a literary deviced when used in a
literary context by educated academics like the people on this
newsgroup, who (presumably) don't normally ask people to "give up then
fucking money".


>I think that a 
>mugger who said 'I dare say, dear lady...' would be a *much* more 
>interesting NPC than one who said 'Give up the fucking money!' The 
>latter would be a boring, stereotypical, cardboard cut-out.

It depends. The gentleman rogue really is quite cliched, too. 

It all depends on what effect the author was striving for. If he was
striving for realism, the mugger should sounds like a real
mugger. (Fortunately, I've never been mugged myself, so I don't know
what a real mugger sounds like, but most readers won't know anyway;
it's a matter of what language we *expect*, of course).


> If the  
>four-letter words don't specifically add to the story in any way, they 
>tend to detract from it, by making the writing sound less eloquent and 
>less literate.

Less literate, yes. Less eloquent? Pardon my French, but the last
statement is utter bull (notice the euphemistic contraction - or
perhaps that isn't genteel enough? Perhaps I should hav said "bovine
excrement?"). That swearing is a sign of poor vocabulary is a myth
perputuated by pedantic schoolmasters. True, people with small
vocabularies tend to fill out the gaps with profanity - but rude
language has its own eloquence. Just think of the sheer number of
scatologic terms!

Finally, consider the contest entry "My First Silly Game". I think
everybody can agree that that game is not only silly, but extremely
crude. But IMHO I think that a redeeming feature is that the author,
having decided to be crude, doesn't shy away from crude
language. Would the game have been better if he had written about the
player's feeling an urge to "urinate" (rather than to "piss")? As it
was, I found the very crudity of the game, the _attitude_ of it all,
to be strangely entertaining. If the author had tried to be genteel
and use "literary" words, it would have been intolerable.






-- 
Magnus Olsson (mol@df.lth.se)


From lpsmith@rice.edu Tue Dec 17 09:35:55 MET 1996
Article: 20593 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news99.sunet.se!newsfeed.luth.se!news.luth.se!eru.mt.luth.se!www.nntp.primenet.com!nntp.primenet.com!su-news-hub1.bbnplanet.com!news.bbnplanet.com!cam-news-hub1.bbnplanet.com!uunet!in2.uu.net!128.42.5.5!rice!ural.owlnet.rice.edu!lpsmith
From: lpsmith@rice.edu (Lucian Paul Smith)
Newsgroups: rec.arts.int-fiction
Subject: Masterpieces Review in Computer Currents
Date: 16 Dec 1996 17:04:19 GMT
Organization: Rice University, Houston, Texas
Lines: 27
Message-ID: <593vej$50e@listserv.rice.edu>
NNTP-Posting-Host: ural.owlnet.rice.edu
X-Newsreader: TIN [version 1.2 PL2]


I was reading the Houston edition of Computer Currents magazine (a free 
magazine with heavy advertizing for local computer centers, although I 
beleive it's national), and I came across a review of Masterpieces.  You 
can find it in their web archives at:

http://www.currents.net/magazine/backiss/archart.html?covr1422

It was reviewed (very favorably, I might add), among only four other 
CD-ROM games!  The quote from that most relevant to this newsgroup:

"To top things off, the package throws in six new games: The Magic Toyshop,
A Change In the Weather, The One That Got Away, The Mind Electric, Uncle
Zebulon's Will, and Toonedia [sic]. These aren't from Infocom but were all
winners in the 1995 annual Society for Preservation of Adventure Games 
contest."

The author of the article is Joe DeRouen, who can be reached at 
jderouen@crl.com

(and, incidentally, has a homepage at
http://www.crl.com/~jderouen/
)

Perhaps he would be a good contact for a review for the I-F CD?

-Lucian "Lucian" Smith


From erkyrath@netcom.com Tue Dec 17 13:45:31 MET 1996
Article: 20619 of rec.arts.int-fiction
Newsgroups: rec.arts.int-fiction
Path: news.lth.se!solace!eru.mt.luth.se!news-stkh.gsl.net!news.gsl.net!news-paris.gsl.net!news.gsl.net!news-peer.gsl.net!news.gsl.net!howland.erols.net!worldnet.att.net!ix.netcom.com!netcom.com!erkyrath
From: erkyrath@netcom.com (Andrew Plotkin)
Subject: Re: [Inform 6] Looting-proof container
Message-ID: <erkyrathE2JnCv.L31@netcom.com>
Organization: NETCOM On-line Communication Services (408 261-4700 guest)
X-Newsreader: TIN [version 1.2 PL1]
References: <Pine.SUN.3.91.961210171541.8823A-100000@xp.psych.nyu.edu>
Date: Tue, 17 Dec 1996 06:00:31 GMT
Lines: 83
Sender: erkyrath@netcom19.netcom.com

Roger Giner-Sorolla (giner@xp.psych.nyu.edu) wrote:

> I'm looking for a nice, elegant way to disable "Take All From" a 
> container, so that items have to be taken out one by one, and anyone who 
> tries "take all" receives a single custom "no can do" message.

'Fraid I can't help. Now, if you want my *inelegant* solution...

In Parser.h, near the top:

#ifdef ALLOW_INTERRUPT_MULTI;	! --Z
global multi_interrupt = 0;		! set to nonzero to interrupt a 
                                        ! multiple-object command
#endif; ! --Z

In PlayTheGame():

Find the comment that starts "So now we must have an ordinary 
parser-generated action..."

Go down a few lines to

           for (k=1:k<=j:k++)
           {   if (deadflag~=0) break;

Replace those two lines with the following bunch:


#ifdef ALLOW_INTERRUPT_MULTI;	! --Z
           multi_interrupt = 0;
#endif; ! --Z
           for (k=1:k<=j:k++)
           {   if (deadflag~=0) break;
#ifdef ALLOW_INTERRUPT_MULTI;	! --Z
               if (multi_interrupt ~= 0) {
                   l = ZRegion(multi_interrupt);
                   switch (l) {
                       3: 
                          print (string) multi_interrupt, "^";
                       2:
                          multi_interrupt = indirect(multi_interrupt);
                   }
                   if (multi_interrupt ~= 0) 
                       break;
               }
#endif; ! --Z

(As you can see, I added three lines before the critical two, and 
thirteen after.)

Presto! You now have the ability to interrupt multi-object commands. At 
any time in the verbing of an object, do
  multi_interrupt = 1;
and no more objects will be verbed. (If the command is not a multi-object
command, setting multi_interrupt is safe and has no effect.) If you set
multi_interrupt to a string, the string will be printed and then the
command will be interrupted. If you set it to a function, the function
will be run -- return zero to continue and non-zero to interrupt. 

To use this hack for what you want, you would set multi_interrupt in the 
LetGo clause of the "after" property of the container. Actually, of 
course, this *doesn't* do what you want -- it prints your custom error 
after the first object is verbed. But I've just spent twenty minutes 
typing all this in, so I'm posting it anyway. Bleah.

No, wait, you can get it to work. In your container's "before" 
property, put 
  LetGo: 
    if (multiflag ~= 0) {
      multi_interrupt = "error";
      rtrue;
    }

No, wait, that will print one object name before the error. That sucks. 
I'm all out of hacks. I hope this has been educational for everybody, 
because I sure wasted *your* time. Sorry.

--Z

-- 

"And Aholibamah bare Jeush, and Jaalam, and Korah: these were the
borogoves..."


From rich@muddy.kesmai.com Tue Dec 17 14:39:46 MET 1996
Article: 20576 of rec.arts.int-fiction
Newsgroups: rec.arts.int-fiction,rec.games.int-fiction
Path: news.lth.se!solace!eru.mt.luth.se!www.nntp.primenet.com!nntp.primenet.com!news.mindspring.com!uunet!in2.uu.net!208.198.253.36!news.kesmai.com!rich
From: rich@muddy.kesmai.com ()
Subject: Question of opinion
Sender: usenet@news.kesmai.com (USENET news)
Message-ID: <E2I63q.436@news.kesmai.com>
Date: Mon, 16 Dec 1996 10:50:14 GMT
X-Nntp-Posting-Host: ns1.kesmai.com
Organization: Kesmai
Lines: 46
Xref: news.lth.se rec.arts.int-fiction:20576 rec.games.int-fiction:19596

Working on WinFrotz 2.0 brought up some interesting design issues I thought I
would ask people about, because it might affect the direction of the
development.

My design goal was to make a shell that surrounded the original Frotz code and
only changed the device-dependent functions that Stefan intended to be edited.
The reason for this was simple: Frotz works well and if it is modified, I could 
integrate the new code in a snap. I didn't want to rewrite any substantial 
portions of Stefan's code basically.

I pulled this off through some Win32 trickery using threads - the Z-machine 
runs as an independent thread from the GUI, with a couple of data pipes for
I/O (screen, keyboard)...but I digress. To create the most compatible version 
possible, one that allowed me to only modify device-dependent code, I've more
or less locked myself out of a) significant scrollback buffers and b)possibly
cut and paste (for the Windows/MFC minded, I derived directly from CView and
draw it myself. I cannot use CRichEditView or CEditView and maintain 100% 
compatibility with Frotz - email me if you want to the reasons).

Anyway I COULD make a version that had a long scrollback buffer and would 
probably support everything you're used to in, say, Wordpad (note that I do
already support edit keys, just not cut and paste). If I do this I will almost
certainly sacrifice some compatibility with quirky games like Seastalker or
Bureaucracy (the fill out form, remember?). Also graphical versions would be
hopeless.

Is it more important to preserve the compatibility or provide the convienance
features of a rollback buffer? What do people think? As I played certain games
I couldn't help noticing that the presentation - the sizing of the paragraphs,
even the spacing of more prompts - was more or less built around an 80 col
line. Even with WinFrotz now you can go full screen with an Arial font and
get 200+ chars on a line - just doesn't look the same. I found myself going 
back to a more or less 80x25 layout (only with a big honking easy to read
font). I was curious what other folks thought about this.

-Rich

P.S. For those up on the specs of the Z-machine, you're probably thinking it
wouldn't be too hard to have the scrollback just capture what appears in a
"buffered" window, namely window 0. You're probably also right. Three questions
arise: are there any games that buffer windows OTHER than 0, how would
you distinguish between the two if so, and what do you do with games that 
send to the buffered window stuff that really shouldn't be (small example: AMFV
sticks the "[Press any key to continue]" message from the title screen in the
buffered output - annoying).



From graham@gnelson.demon.co.uk Tue Dec 17 16:37:18 MET 1996
Article: 20613 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news99.sunet.se!newsfeed.luth.se!news.luth.se!erix.ericsson.se!eua.ericsson.se!cnn.exu.ericsson.se!uunet!in2.uu.net!194.87.0.28!demos!news.stealth.net!news.ibm.net.il!arclight.uoregon.edu!mr.net!www.nntp.primenet.com!nntp.primenet.com!dispatch.news.demon.net!demon!graham
From: Graham Nelson <graham@gnelson.demon.co.uk>
Newsgroups: rec.arts.int-fiction
Subject: Announcing Inform 6.10 and Library 6/3
Date: Mon, 16 Dec 1996 23:30:27 +0000 (GMT)
Organization: none
Lines: 223
Message-ID: <ant1623271cbM+4%@gnelson.demon.co.uk>
NNTP-Posting-Host: gnelson.demon.co.uk
X-NNTP-Posting-Host: gnelson.demon.co.uk
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; CHARSET=ISO-8859-1
X-Newsreader: ANT RISCOS Marcel [ver 1.09]


  Joint release of Inform 6.10, Library 6/3 and Translator's Manual
  =================================================================

Inform 6.10 is the first release of the Inform 6 compiler to enhance
the syntax of the language (slightly), and contains many bug fixes
and minor improvements over 6.05.  Library 6/3 is the first release
of the library for about a year which has had substantial work done
to it (the debugging suite is much better, the parser's
disambiguation routines have been rewritten, the parser is
multilingual if not quite omnilingual). The Translator's Manual is
the outcome of the consultation exercise on language definition
files.

Note that *** library 6/3 can only be used with Inform 6.10 or later
*** whereas Inform 6.10 should still work with library 6/1 and 6/2 as
well as 6/3.  (Though some of the new grammar features can't be used
with 6/1 or 6/2, all old code should be fine.)

As a temporary measure, you can get hold of the new material from the
Inform 6 Home Page:

    http://www.gnelson.demon.co.uk/inform.html

It will be filed in its proper place at ftp.gmd.de shortly, and then
the temporary uploads page will be taken out.

An Inform 6.10 Technical Manual is also provided, but this release
note is hopefully informative enough for game designers.

The all-Internet prize for persistence in reporting a bug goes to
Paul David Doherty, who first reported a bug concerning the parser's
handling of large numbers of full stops sometime around Release 10 of
"Curses", towards the end of the late middle ages.  It is an ex-bug. 
It has ceased to be.

    Graham Nelson
    16 December 1996

---------------------------------------------------------------------

   1.  Additions to the Inform 6 language
   --------------------------------------
The additions were driven by the needs of the new multilingual parser
and concern grammar and the dictionary.

(a) Dictionary words can contain accented characters.
    For example, 'na@:ive' is now a legal dictionary word.  So is
    '@'eleve' (i.e., the presence of the accent ' is no problem).

(b) A new grammar token called "topic" is provided, which can be
    summed up as "like the topic to look up in something": that
    is, it accepts any amount of text and sets the variables
    consult_from and consult_words accordingly.  For example,
    the grammar
    
    Verb 'spong' * topic 'into' noun -> Spong;

    would match
    
    "spong great aunt lucy into the wardrobe"
           ---------------
    with "topic" matching the underlined text.  The action resulting
    is just <Spong wardrobe>, while
    
           consult_from = 2        ("great" is word 2)
           consult_words = 3       (three words in "great aunt lucy")

    (This is how conversation and reading are done already: see the
    Designer's Manual.)

(c) Actions can be marked as "reverse" in grammar, meaning that the
    first and second objects should be exchanged.  For example:
    
    Verb 'spong' * noun 'into' noun -> Spong reverse;

    would match
    
    "spong the cupboard into the duck"

    and generate the action <Spong duck cupboard>.  (This avoids a
    certain amount of clumsiness creating unnecessary actions
    called something like SpongR.)

(d) Prepositions (that is, tokens which are just words, like 'into')
    can now be separated by slashes /, meaning "any of these".
    For instance,
    
    Verb 'spong' * noun 'into'/'in'/'onto'/'on' noun -> Spong;

    will accept any single one of the four words between two nouns.

(e) Dictionary words which end //p are marked as "pluralising".
    For instance,
    
        'grapes//p'

    enters the dictionary as the word 'grapes', marked as
    pluralising.  This does _not_ mean that it's a plural word in
    the ordinary linguistic sense.  It means that it can refer to
    more than one game object.

    So a typical use would be:
    
        Object "red box"
          with name 'red' 'box' 'boxes//p';
        Object "green box"
          with name 'green' 'box' 'boxes//p';

    If these are both on the floor, we might see the dialogue:
    
        > get box
        Which do you mean, the red box or the green box?

        > get boxes
        red box: Taken.
        green box: Taken.

    because the parser (in library 6/3 or later) assumes that 'box'
    refers to only one object, while it knows 'boxes' might refer
    to many game objects.  (Previously, one had to write an annoying
    parse_name routine to communicate this information to the
    parser.)

   2.  Improvements to the Debugging Suite
   ---------------------------------------
That is, to the extra verbs available when games are compiled -D
(or with "Constant DEBUG;" at the top of the source code).

(a) Two new verbs: "showverb" and "showobj".  Best explained by
    example...

    >showverb take
    Verb 'carry' 'get' 'hold' 'take' 
         * 'out' / 'off' / 'up' -> Exit
         * 'in' / 'into' / 'on' / 'onto' noun -> Enter
         * 'off' worn -> Disrobe
         * 'off' noun -> GetOff
         * multi -> Take
         * multiinside 'from' / 'off' noun -> Remove
         * 'inventory' -> Inv

    >showobj diamonds

    Treasure "diamonds" (77) in "West Side of Fissure"
      has multitude 
      with name 'diamond' 'diamonds' 'several' 'high' 'quality',
           after [...] (15577),
           initial "There are diamonds here!" (23606),
           description "They look to be of the highest quality!"
               (23599),
           article "some" (23598),
           depositpoints west wall (10),

    Note that "showobj" is not quite able to get property values
    right: it guesses that property values are probably objects,
    routines, strings or else 0, 1 or NULL.  (Except that it knows
    the three library properties which usually hold numbers.)
    So when it prints

           depositpoints west wall (10),

    the value is actually just meant as the number 10, and
    "showobj" has wrongly guessed that this refers to object 10.
    Similarly, if a property holds a very large or negative number
    (other than -1, i.e., NULL) it may be written as something
    like

           depositpoints "k lglk lkjshlk ...rubbish... " (-2366)

    Despite this I think "showobj" is a useful addition.
    Incidentally, typing just "showobj" (with no object named)
    will show the current location, which is helpful for checking
    map connections.

    Note that in Library 6/3, no properties or attributes are
    "aliased".  This makes all the debugging output much easier
    to follow.

(b) Parser tracing (caused by "trace") is more descriptive, along
    the lines of "showverb": this should help translators.

(c) The verb "routines" (you can now also type "messages") traces
    all messages sent in the game, and their parameters.  (It
    used to trace only the routines being called by the library;
    incidentally, whereas libraries 6/1 and 6/2 imitated message-
    sending when calling before routines and so on, library 6/3
    actually sends messages.)

(d) The verb "actions", which traces actions, now names every
    action, including those created in the program (i.e., not
    just the library ones).

   3.  Improvements to the rest of the library
   -------------------------------------------
Changes are otherwise modest.  A number of bugs are removed
and the removal of "alias"ing properties has two pleasant if
minor consequences:

(a) The same object can now have an active timer and an
    active daemon at the same time.

(b) The rule about which property is used to describe an
    object in a room description is clearer:

    (1) if O is a container or door and it's open
        and provides a when_open message, use that
    (2) if O is a container or door and it's closed
        and provides a when_closed message, use that
    (3) if O is switchable and it's on
        and provides a when_on message, use that
    (4) if O is switchable and it's off
        and provides a when_off message, use that
    (5) otherwise use initial

    In practice this is not really different from the
    previous system except for wrongly constructed objects,
    which it handles better.

------------------------------------------------------------------
-- 
Graham Nelson | graham@gnelson.demon.co.uk | Oxford, United Kingdom



From meta@pobox.com Tue Dec 17 21:29:24 MET 1996
Article: 20632 of rec.arts.int-fiction
Path: news.lth.se!solace!nntp.uio.no!funny.bahnhof.se!seunet!news2.swip.net!mn6.swip.net!plug.news.pipex.net!pipex!rocannon.cam.harlequin.co.uk!btnet!meta
From: meta@pobox.com (mathew)
Newsgroups: rec.arts.int-fiction
Subject: Re: Announcing Inform 6.10 and Library 6/3
Date: 17 Dec 1996 19:33:17 GMT
Organization: Harlington-Straker
Lines: 26
Message-ID: <596sht$orn@rocannon.cam.harlequin.co.uk>
References: <ant1623271cbM+4%@gnelson.demon.co.uk> <32b6c9f4.1894913@news.u.washington.edu>
NNTP-Posting-Host: snotra.long.harlequin.co.uk
Originator: meta@snotra

In article <32b6c9f4.1894913@news.u.washington.edu>,
Matthew Amster-Burton <mamster@u.washington.edu> wrote:
>Graham Nelson <graham@gnelson.demon.co.uk> wrote:
>>    Verb 'spong' * topic 'into' noun -> Spong;
>>
>>    would match
>>    
>>    "spong great aunt lucy into the wardrobe"
>
>Uh...is this an actual verb or a neologism for the sake of example?

It's a nonsense word common to computer scientists and mathematicians in
Oxford and Cambridge.  It was popularized around 1988/89; in fact, I found
my "Spong" T-shirt just the other day.

It's also a proper noun; there's a Bishop Spong, and you'll find an entry in
the whois database for spong.com; and when I was growing up, my grandmother
had an amazing Spong runner bean slicer.


mathew
-- 
meta@pobox.com        content available at <URL:http://www.pobox.com/%7Emeta/>
     RFC 1896, Eudora Pro 3 and CyberDog 1.1 text/enriched mail accepted

          MILLENNIUM: Why not learn to spell it four years early?


From ian@io.com Wed Dec 18 09:47:15 MET 1996
Article: 20639 of rec.arts.int-fiction
Path: news.lth.se!solace!mn6.swip.net!plug.news.pipex.net!pipex!multicast.news.pipex.net!tank.news.pipex.net!pipex!www.nntp.primenet.com!nntp.primenet.com!news.texas.net!news.kei.com!news.thenet.net!news.io.com!xanadu.io.com!ian
From: ian@io.com (Xiphias Gladius)
Newsgroups: rec.arts.int-fiction
Subject: Re: Scoring implementation
Date: 17 Dec 1996 17:35:34 -0600
Organization: Illuminati Online
Lines: 53
Message-ID: <ian.850863321@xanadu.io.com>
References: <mbtiv69qdxy.fsf@seven.ucs.indiana.edu> <58v88q$qnj@milo.vcn.bc.ca> <Pine.GSO.3.95.961216090123.11864B-100000@nova> <5943te$89b@milo.vcn.bc.ca> <32b6c494.518259@news.u.washington.edu>
NNTP-Posting-Host: xanadu.io.com

mamster@u.washington.edu (Matthew Amster-Burton) writes:

>In Japan, TV and movies are considerably more violent than the
>analogous American fare.  Yet violent crime is extremely low.
>Naturally there are other factors that make America a violent place,
>but if media causes violence even to a tiny degree, Japan should be
>awash in blood.  It is not.  Violence causes violence.

While I agree with the rest of your thesis, Mr. Amster-Burton, I feel
compelled to mention that Japan isn't as good a counterexample as we
anti-censorship people once thought it was.  Japan *appears* to have a low
rate of violence, and specifically sexual violence, but that is primarily
because of a cultural taboo against *reporting* sexual violence.  Their
actual rate of rape and other sexually violent crimes is suspected to be
comparable to the United States.

Nonetheless, I agree with you.  I don't think that media portrayals of
violence have any measurable effect on rates of violent crime. 
(Personally, I suspect that the frequency of acts of violence per capita
has more to do with population density than any other factor)

Nor do I feel that exposure to "bad language" in an I-F game will have
much effect on how someone expresses him or herself.  People tend to talk
as they *hear*, more than as they *read*, anyway.  If people around
someone tended to swear as part of their normal mode of expression, I'd
expect that person to swear, as well.  If the person only experienced
profanity in text adventures, it would be less likely.

There seem to be two issues here.  The spurious one is an equating of
"containing profanity" with "of low quality".  I think a quick check of
D.H. Lawrence takes care of that argument. :)

The more reasonable is that some people are afraid that some text
adventures will be inappropriate for their children.  My only advice is to
test games yourself, before giving them to your children.  Me, I'd give
"The Land Beyond the Picket Fence", "Uncle Zebulon's Will", "Wishbringer",
"A Passover Adventure" and some others to young children. But I wouldn't
give "Tapestry" to a child under, oh, say, about ten or so.  It has no bad
language; it's just that I don't want to expose my children (when I have
them) to moral relativism until they're in double digits.  Similarly, I
wouldn't want them playing "Small World" when they were too young.  You
may feel it's a fun, innocent game, and it is, but it also contains a
specifically Christian devil, heaven, and Fall.  Nothing wrong with that,
and I had a lot of fun with the game, but I wouldn't want to expose my
children to that until they were, say, eight or nine, at least. 

That's my personal choice, and I don't expect anyone else to make the same
one.  But I feel that people have to decide what they want their children
exposed to, and then screen their children's books, movies, tv shows, and
games, to make sure that it fits in with what they want their children to
learn.  No I-F author can, or should, make that choice for you.

	- Ian


From graham@gnelson.demon.co.uk Wed Dec 18 13:46:05 MET 1996
Article: 20567 of rec.arts.int-fiction
Path: news.lth.se!solace!nntp.uio.no!www.nntp.primenet.com!nntp.primenet.com!uwm.edu!math.ohio-state.edu!jussieu.fr!rain.fr!news-paris.gsl.net!news.gsl.net!news-lond.gsl.net!news.gsl.net!dispatch.news.demon.net!demon!graham
From: Graham Nelson <graham@gnelson.demon.co.uk>
Newsgroups: rec.arts.int-fiction
Subject: Re: Good Language/Bad Compiler
Date: Sun, 15 Dec 1996 13:05:00 +0000 (GMT)
Organization: none
Lines: 68
Message-ID: <ant151300868M+4%@gnelson.demon.co.uk>
References: <32B256E7.1A6B@geocities.com> 
NNTP-Posting-Host: gnelson.demon.co.uk
X-NNTP-Posting-Host: gnelson.demon.co.uk
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; CHARSET=ISO-8859-1
X-Newsreader: ANT RISCOS Marcel [ver 1.09]

In article <32B256E7.1A6B@geocities.com>, Bif
<URL:mailto:bifurcate@geocities.com> wrote:
> It's a question of preference. Would I rather go through the errors
> sorting real from spurious or rather sit through a recompilation? With a
> fast comPOOHter I'd pick the latter.

Inform, however, has to run on a wider variety of platforms than any
commercial compiler I know of.

> Can a command line option be put into the compiler to limit the number
> of error messages printed?

It is already limited to 100.  I'm not sure there's enough of a
constituency that would like things to be different!

> > > And I think else's should always match the last if that doesn't
> > > already have its own else; this makes some complicated routines more
> > > readable (less unreadable).

So do I, and so does Inform.  There's something to be said for reading
the documentation on a product before declaring that it "sucks".

Perhaps I might explain, doubtless in a patronising fashion, why
compilers of C-like languages often generate strings of error
messages in which only the first few are particularly meaningful.
It is not a particular foible of Inform: it is a consequence of
the syntax of the language, in one sense, and of the design of
a fast syntax analyser in another.  (That is, if you like Inform
for being fast, you have to accept that one penalty is that it's
not so good at error recovery and error reporting: for example
errors are not always produced in "the right order".)

The problem is that the syntax has a number of "modes", and the
compiler needs to be right about which one it's currently in.
For instance, the three really important modes for Inform are:

   parsing the body of an object definition
   parsing the code in a routine
   parsing directives

When an error in the source code corrupts the beginning or
end markers, the syntax analyser finds itself (e.g.) trying to
parse code in a routine as though it were directives, and
this causes a cascade of errors.  Errors not affecting such
beginning/end markers are usually recovered from without
difficulty.

You can observe the same behaviour under almost any C compiler,
typically by missing out the final } from a routine, or
the ; after a type declaration.  The only way to entirely
avoid such difficulties is to design the language with essentially
no "modes" in the sense above (BASIC is broadly speaking such
a language).  It's therefore ironic that this thread began with
the claim that Inform is a good language and a bad compiler,
then went on to blame the compiler for a consequence of the
language design.

I don't want to overdo the injured pride act.  But Inform,
though it is certainly an amateur piece of work, is a quite
high-performance compiler by comparison with many, perhaps
even most, professional works.  It is faster than my C
compiler by a good-sized factor, and consumes much less memory.
The comparison is not entirely fair, but not entirely
unenlightening, either.

-- 
Graham Nelson | graham@gnelson.demon.co.uk | Oxford, United Kingdom



From erkyrath@netcom.com Wed Dec 18 13:47:30 MET 1996
Article: 20656 of rec.arts.int-fiction
Newsgroups: rec.arts.int-fiction
Path: news.lth.se!solace!demos!news.stealth.net!news.ibm.net.il!arclight.uoregon.edu!news.sprintlink.net!news-peer.sprintlink.net!news.bbnplanet.com!cpk-news-hub1.bbnplanet.com!www.nntp.primenet.com!nntp.primenet.com!netcom.com!erkyrath
From: erkyrath@netcom.com (Andrew Plotkin)
Subject: Re: [Off Topic]  Muahaha!
Message-ID: <erkyrathE2LEKJ.25K@netcom.com>
Organization: NETCOM On-line Communication Services (408 261-4700 guest)
X-Newsreader: TIN [version 1.2 PL1]
References: <597ct5$d4g@agate.berkeley.edu>
Date: Wed, 18 Dec 1996 04:45:55 GMT
Lines: 33
Sender: erkyrath@netcom8.netcom.com

Gerry Kevin Wilson (whizzard@uclink.berkeley.edu) wrote:

> Ah, I've just walked out of my very last final, in my very last semester
> of college.  If all goes well (and I thought it did) I will never have to
> take another test at college (barring, and I shudder at the thought, grad
> school.)

> The question is, now what to do.  I could go work for Activision (fix up
> their Zork series so that it actually has something to do with Zork. :),
> or LucasArts, maybe Origin or Sierra.  I think I'll avoid the startups
> right out of the gate.  Probably Activision, since a few folks know me
> there.

If you can leach off your Activision contacts to actually start making 
*money* off your IF experience...

Well, I'll happily leach off *you*. Or at least force you to send my 
resume and portfolio to your superiors.

So good luck. :-)

(Not right now, though. My current job looks solid for a couple of years 
at least.)

--Z

PS: Congrats. Or, maybe I should put it, "Hello, Bachelor!"


-- 

"And Aholibamah bare Jeush, and Jaalam, and Korah: these were the
borogoves..."


From straight@email.unc.edu Wed Dec 18 14:44:57 MET 1996
Article: 20657 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news00.sunet.se!sunic!mn6.swip.net!plug.news.pipex.net!pipex!multicast.news.pipex.net!tank.news.pipex.net!pipex!www.nntp.primenet.com!nntp.primenet.com!news.sgi.com!news.msfc.nasa.gov!bcm.tmc.edu!newshost.convex.com!newsgate.duke.edu!news-server.ncren.net!concert!newz.oit.unc.edu!login1.isis.unc.edu!straight
From: Michael Straight <straight@email.unc.edu>
Newsgroups: rec.arts.int-fiction,rec.games.int-fiction
Subject: Re: Moral Dilemnas in IF (was Re: [CONTEST] My reviews)
Date: Tue, 17 Dec 1996 09:28:20 -0500
Organization: The University of North Carolina at Chapel Hill
Lines: 68
Message-ID: <Pine.A41.3.95.961217090734.64020C-100000@login1.isis.unc.edu>
References: <Pine.GSO.3.95.961203220116.10773C-100000@ucsu.Colorado.EDU> <Pine.A41.3.95.961210161026.84860B-100000@login2.isis.unc.edu> <Pine.GSO.3.95.961211075804.5241A-100000@ucsu.Colorado.EDU>
NNTP-Posting-Host: login1.isis.unc.edu
Mime-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
X-Sender: straight@login1.isis.unc.edu
In-Reply-To: <Pine.GSO.3.95.961211075804.5241A-100000@ucsu.Colorado.EDU>
Xref: news.lth.se rec.arts.int-fiction:20657 rec.games.int-fiction:19639



On Wed, 11 Dec 1996, Paul O'Brian wrote:

> > Spoilers for Tapestry, Trinity, and In The End









> As indeed you were meant to balk. It seems to me that no narration can get
> you "inside" the head of a character as much as actually *being* inside
> the head of the character and making that character's choices for him. I
> also had a hard time separating myself, as I mentioned in my review, but I
> think that is Tapestry's strength; it makes you walk a mile in the shoes
> of Timothy Hunter (I think that was the character's name) far more
> powerfully than traditional character identification could. 

Well, I disagree.  In a traditional narrative, the narrator gets me inside
the character's head by telling me what he's thinking or at least letting
me watch his reactions.  In Tapestry, I was asked to role-play a character
that I didn't know much about other than the facts of his actions.  Did
Timothy kill his wife because he loved her too much to let her suffer or
because her illness was inconvenient to him and he'd stopped loving her?

> And I might
> point out that you weren't being asked to kill your wife. You were being
> asked to make a choice between killing your wife and blackmailing a doctor
> & ruining his practice. Neither option is a good one, but that's the
> idea, and the lack of separation between you and the character makes that 
> choice loom the larger.

Except that in real life, I would have had the option of neither
blackmailing the doctor or killing my wife.  In Tapestry I was being asked
to role-play either Timothy-who-can-kill-his-wife or Timothy-who-can-
blackmail-a-doctor.  A narrative might have presented either of these
Timothys in such a way as to make me sympathetic to him and perhaps help
me have more compassion for someone who makes this kind of choice. 
Tapestry, instead of trying to help me empathize with Timothy, asked me
what I would do in Timothy's shoes, putting me in a more judgemental frame
of mind (by asking me to make a judgement). 

As I mentioned in the original post, I think Tapestry was much more
compelling in the first scene where you have to choose between visiting
your mother or helping the couple, because it is a genuine either-or
dilemma - I didn't see a third option that the game prevented me from
choosing and neither seemed so obviously "right" to me that it was an easy
decision.

Maybe my point is that IF seems more successful in making you empathize
with situations than with decisions.  Having to choose between visiting
your mother and helping the couple was a situation that the game could put
me in.  But the decision to kill one's wife or commit suicide is much
harder to get a player to role-play and, I think, more effectively
communicated by a traditional narrative that gets inside the character's
head so that you are asked to watch and try to understand him rather than
take his place and make a decision about what you would do in that
situation.

Michael Straight would love to have an IF author prove him wrong.
FLEOEVDETYHOEUPROEONREWMEILECSOFMOERSGTIRVAENRGEEARDSTVHIESBIITBTLHEEPSRIACYK
Ethical	Mirth Gas/"I'm chaste alright."/Magic Hitler Hats/"Hath	grace limits?"
"Irate Clam Thighs!"/Chili Hamster Tag/The Gilt	Charisma/"I gather this calm."



From erkyrath@netcom.com Wed Dec 18 14:56:38 MET 1996
Article: 20658 of rec.arts.int-fiction
Newsgroups: rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news99.sunet.se!newsfeed.luth.se!news.luth.se!eru.mt.luth.se!www.nntp.primenet.com!nntp.primenet.com!netcom.com!erkyrath
From: erkyrath@netcom.com (Andrew Plotkin)
Subject: Re: Magnetic field reversals
Message-ID: <erkyrathE2LGCF.4pu@netcom.com>
Organization: NETCOM On-line Communication Services (408 261-4700 guest)
X-Newsreader: TIN [version 1.2 PL1]
References: <sourcerer.0a90@starbug.49.249.155> <E2BK4K.BE@ladle.demon.co.uk> <Pine.LNX.3.95.961212182026.1750H-100000@adamant.res.wpi.edu> <58rn7r$6k8@bartlet.df.lth.se> <5974oa$ja0@whiskey.ee.tulane.edu>
Date: Wed, 18 Dec 1996 05:24:15 GMT
Lines: 64
Sender: erkyrath@netcom8.netcom.com

Judson Lester (lester@whiskey.ee.tulane.edu) wrote:
> >The reversals can actually be timed quite accurately, by measuring the
> >thickness of the sediment layers with different magnetic polarity, by
> >measuring isotope distributions, etc. I don't remember any exact
> >figures, but I think the flip takes on the order of several thousands
> >or tens of thousands of years.

> This isn't what the orginal poster wanted to know.  (At least, it wasn't 
> what I wanted to know and my guess is that he had the same question in 
> mind.)  Yes, several thousand years pass _between_ flips, but how long 
> does a flip take? 

No, he was answering the question. :-) That's how long a flip takes.

Ok, I have here "American Scientist" magazine, Nov-Dec 1996, page 552:
"The Reversal of the Earth's Magnetic Field". 

Well, I'll just summarize:

The last field reversal was 780,000 years ago. The present rate is between
one or two reversals per million years, but the rate has varied.  (For
example, there was a period of no reversals which started 120 megayears
ago and ended 80 megayears ago.)

(So, yes, by the numbers, we could have one any tenth-of-a-megayear now.)

The reversal itself takes a few thousand years.

During a reversal, the field strength of the Earth decreases by about a
factor of ten, and the field direction fluctuates anomalously (at any 
given measuring site.) It's not a simple case of a dipole field rotating 
180 degrees. The whole thing gets messy, and sort of bubbly -- there's a 
neat (entirely theoretical, computer simulated) picture of a sphere 
halfway through (somebody's model of a) reversal, and it's got big 
patches and bands of "north pole" and "south pole" wandering around the 
planet.

(This is all background material in the article -- the article itself is
about some possible statistical results coming from our many samples of
the "messy" in-reversal field. I won't try to explain that. The real short
form is "It kinda looks like something which is directly influencing the
reversal is affected by fluid motion at the top of the Earth's core, or
possibly the other way around, and also by seismic wave velocity in the
lower mantle (which we think is affected by temperature), or possibly the
other way around, and the current field direction at the core surface ties
in there too. But this could all be a statistical artifact. We'll get back
to you.")

So, yes, a reversal could happen "soon", but it would probably take a
human lifetime to notice one starting up. Don't expect compasses to just
stop working some Tuesday afternoon. 

And, to answer the *original* original question, yes, the magnetic field
is caused by the rotation of the Earth. When the planet is not in the
process of a reversal, the magnetic poles are always near the rotational
poles. 

--Z


-- 

"And Aholibamah bare Jeush, and Jaalam, and Korah: these were the
borogoves..."


From whizzard@uclink.berkeley.edu Wed Dec 18 19:08:53 MET 1996
Article: 20663 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news01.sunet.se!sunic!mn6.swip.net!plug.news.pipex.net!pipex!oleane!jussieu.fr!math.ohio-state.edu!howland.erols.net!agate!uclink.berkeley.edu!whizzard
From: whizzard@uclink.berkeley.edu (Gerry Kevin Wilson)
Newsgroups: rec.arts.int-fiction
Subject: [Off Topic]  Muahaha!
Date: 18 Dec 1996 00:12:21 GMT
Organization: University of California at Berkeley
Lines: 23
Message-ID: <597ct5$d4g@agate.berkeley.edu>
NNTP-Posting-Host: uclink.berkeley.edu


Ah, I've just walked out of my very last final, in my very last semester
of college.  If all goes well (and I thought it did) I will never have to
take another test at college (barring, and I shudder at the thought, grad
school.)

The question is, now what to do.  I could go work for Activision (fix up
their Zork series so that it actually has something to do with Zork. :),
or LucasArts, maybe Origin or Sierra.  I think I'll avoid the startups
right out of the gate.  Probably Activision, since a few folks know me
there.

What does this mean for everyone here?  Well, I'll probably be getting a
new email account soon (whizzard@netcom.com anyone?) and it'll be a while
longer before SPAG 10 is released (I plead innocent, one of the winners of
the contest went on vacation before I could get a prize pick from him.)

And of course, everyone who keeps promising to release some mythical game
'shortly after Avalon is out' better start writing really fast.  And ye'll
not get another word out of me on that subject.  Well, not 'til I'm ready
to talk some more, anyhow.
-- 
	"Ha.  Made ya look!"


From graham@gnelson.demon.co.uk Wed Dec 18 21:51:06 MET 1996
Article: 20670 of rec.arts.int-fiction
Path: news.lth.se!solace!news.stealth.net!www.nntp.primenet.com!nntp.primenet.com!dispatch.news.demon.net!demon!graham
From: Graham Nelson <graham@gnelson.demon.co.uk>
Newsgroups: rec.arts.int-fiction
Subject: Re: Masterpieces Review in Computer Currents
Date: Tue, 17 Dec 1996 19:34:47 +0000 (GMT)
Organization: none
Lines: 32
Message-ID: <ant1719471cbM+4%@gnelson.demon.co.uk>
References: <593vej$50e@listserv.rice.edu> <erkyrathE2IpCG.EHG@netcom.com> 
NNTP-Posting-Host: gnelson.demon.co.uk
X-NNTP-Posting-Host: gnelson.demon.co.uk
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; CHARSET=ISO-8859-1
X-Newsreader: ANT RISCOS Marcel [ver 1.09]

In article <erkyrathE2IpCG.EHG@netcom.com>, Andrew Plotkin
<URL:mailto:erkyrath@netcom.com> wrote:
> 
> Lucian Paul Smith (lpsmith@rice.edu) wrote:
> > "To top things off, the package throws in six new games: The Magic Toyshop,
> > A Change In the Weather, The One That Got Away, The Mind Electric, Uncle
> > Zebulon's Will, and Toonedia [sic]. These aren't from Infocom but were all
> > winners in the 1995 annual Society for Preservation of Adventure Games 
> > contest."

I do hope this will not be taken as an attack of any kind, but
I have misgivings about the name "Society for the Preservation
of Adventure Games".  It carries a number of connotations which
I think misleading: it implies membership (either you're in,
or you don't want to preserve adventure games) whereas in fact
it is an e-zine; it claims a certain preeminence, which I
suppose is fair enough when titling anything -- but in fact it's
only one of several good e-zines (XYZZYnews springs to mind);
it implies, particularly to the world beyond this newsgroup,
that "Adventure Games" need preservation.  They were not an
endangered species when SPAG began, nor is there any sign
of them becoming one.

Please forgive any hostile tone.  The last thing I would want
would be to attack the good work of anyone in building an
IF community, and I fully acknowledge SPAG as a part of that
work.  I would merely prefer a different title, and that SPAG
not be confused with r.a.i-f.

-- 
Graham Nelson | graham@gnelson.demon.co.uk | Oxford, United Kingdom



From whizzard@uclink.berkeley.edu Wed Dec 18 21:52:00 MET 1996
Article: 20665 of rec.arts.int-fiction
Path: news.lth.se!solace!mn6.swip.net!plug.news.pipex.net!pipex!oleane!pasteur.fr!univ-lyon1.fr!howland.erols.net!agate!uclink.berkeley.edu!whizzard
From: whizzard@uclink.berkeley.edu (Gerry Kevin Wilson)
Newsgroups: rec.arts.int-fiction
Subject: Re: A thought on the number of games entered into the IF comp.
Date: 18 Dec 1996 19:25:32 GMT
Organization: University of California at Berkeley
Lines: 18
Message-ID: <599gfc$963@agate.berkeley.edu>
References: <5968s0$9ds@reader1.reader.news.ozemail.net> <19961218191500.OAA01239@ladder01.news.aol.com>
NNTP-Posting-Host: uclink.berkeley.edu

In article <19961218191500.OAA01239@ladder01.news.aol.com>,
Nulldogma <nulldogma@aol.com> wrote:

>pegging the length of voting time to the number of games entered? So, say
>you set it at four games per week (about what it was this year): If 40
>games are entered, you just give people 10 weeks to play them.

Yeah.  I was thinking the same thing.  I think I already did that this
year (pushed back the voting deadline further than it was originally to
allow folks more time to play them.)  Of course, it people get too busy,
that's fine.  We still get some results from the die-harders, even though
it isn't as representative.  If things get really hairy, I can always
switch to official judging and save myself a lot of headaches. ;P

Nah, just kidding.  I like the People's Choice awards.  It's so gosh darn
democratic. :)
-- 
	"Avalon?  <looks around worriedly>  We know nothing...."


From DGATEWOO@MUSIC.CC.UGA.EDU Wed Dec 18 22:00:31 MET 1996
Article: 20669 of rec.arts.int-fiction
Path: news.lth.se!solace!news.stealth.net!www.nntp.primenet.com!nntp.primenet.com!news.sprintlink.net!news-peer.sprintlink.net!worldnet.att.net!uunet!in2.uu.net!155.229.2.176!metro.atlanta.com!cssun.mathcs.emory.edu!news.service.emory.edu!hobbes.cc.uga.edu!128.192.253.5
From: Dave Gatewood <DGATEWOO@MUSIC.CC.UGA.EDU>
Newsgroups: rec.arts.int-fiction
Subject: Re: [Inform] "describe" for things that are on supporters
Date: 18 DEC 96 13:02:46 EST
Organization: The University of Georgia
Lines: 26
Sender: usenet@MUSIC.CC.UGA.EDU
Message-ID: <18DEC96.14090074.0016@128.192.253.5>
References: <57ra5a$nd0@dfw-ixnews11.ix.netcom.com> <57umvu$hek@saturn.brighton.ac.uk> <32A73B36.623@fred.aurora.edu> <erkyrathE202JC.DM5@netcom.com> <32AC6C51.21AE@fred.aurora.edu> <erkyrathE26E70.CCM@netcom.com> <E2Bvv2.13F@raisin.bagel.org>
NNTP-Posting-Host: music.cc.uga.edu

>Andrew Plotkin (erkyrath@netcom.com) wrote:
>: As to your actual problem: I was wrong, it has nothing to do with your
>: "description" or "describe" routines. It's just that you have a static
>: supporter, and the contents of static objects are listed out
>: automatically as part of the room description. If you don't want this to
>: happen, give it the scenery attribute instead.

I think Andrew got his words switched here.  From page 139 of the
Designer's Manual (discussing "Look"),

"A supporter which is scenery won't be mentioned, but anything on top
of it which is not concealed will be."

In other words, if you have a supporter (even scenery) with anything on
it, when you "look" you'll get the line "On the [supporter] is..."
(Someone please correct me if I'm wrong, but whether or not your
supporter is static should have no effect on this.)

You can suppress this line by giving the bulletin board the
concealed attribute.  This will also suppress any mention of the board
at all (no "There is a bulletin board here"), so you'd have to do as
Andrew suggested and add it to your room description (since it's static,
that's probably a good place for it anyway).

Dave



From whizzard@uclink.berkeley.edu Thu Dec 19 09:38:06 MET 1996
Article: 20682 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news99.sunet.se!newsfeed.luth.se!news.luth.se!eru.mt.luth.se!www.nntp.primenet.com!nntp.primenet.com!howland.erols.net!agate!uclink.berkeley.edu!whizzard
From: whizzard@uclink.berkeley.edu (Gerry Kevin Wilson)
Newsgroups: rec.arts.int-fiction
Subject: Re: Masterpieces Review in Computer Currents
Date: 18 Dec 1996 18:52:06 GMT
Organization: University of California at Berkeley
Lines: 34
Message-ID: <599egm$848@agate.berkeley.edu>
References: <593vej$50e@listserv.rice.edu> <erkyrathE2IpCG.EHG@netcom.com> <ant1719471cbM+4%@gnelson.demon.co.uk>
NNTP-Posting-Host: uclink.berkeley.edu

In article <ant1719471cbM+4%@gnelson.demon.co.uk>,
Graham Nelson  <graham@gnelson.demon.co.uk> wrote:

>I do hope this will not be taken as an attack of any kind, but
>I have misgivings about the name "Society for the Preservation
>of Adventure Games".  It carries a number of connotations which
>Please forgive any hostile tone.  The last thing I would want
>would be to attack the good work of anyone in building an
>IF community, and I fully acknowledge SPAG as a part of that
>work.  I would merely prefer a different title, and that SPAG
>not be confused with r.a.i-f.

Okay, just to clear this up.  The official name is and always has been
"The X Annual Interactive Fiction Competition."  I have always
represented it as such to companies and people interested in taking part
in some way.  The official name, I am sure you will agree, is nice and
neutral, with few connotations at all ;) (well, other than that outrageous
annual claim. :) 

Anyways, this is just to say that the outrageous parade of names is none
of my doing.  I didn't name the contest after SPAG.  And really, the only
significance in the acronym for SPAG is that I was aiming for SPAM and
missed.  Being the lazy sort of guy I am, I left it alone rather than
think of a better name.  (And hey, when SPAG started, it wasn't that
unreasonable a name.  I could count on the fingers of one hand the new
games I saw that year.)  It was, how you say, a spot of drought.

So Graham, mild wittiness aside, I'm just as confused about the name
changes as you are.  I guess Activision's marketing division either liked
the acronym (in a markety sort of way) or got confused between the two
seperate I-F things that I manage.  Not too unreasonable a thing to do if
you have very little contact with raif.
-- 
	"Avalon?  <looks around worriedly>  We know nothing...."


From erkyrath@netcom.com Thu Dec 19 09:38:24 MET 1996
Article: 20691 of rec.arts.int-fiction
Newsgroups: rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news01.sunet.se!sunic!mn6.swip.net!plug.news.pipex.net!pipex!oleane!pasteur.fr!univ-lyon1.fr!howland.erols.net!www.nntp.primenet.com!nntp.primenet.com!netcom.com!erkyrath
From: erkyrath@netcom.com (Andrew Plotkin)
Subject: Re: Is this good or bad design?
Message-ID: <erkyrathE2MpI9.K5A@netcom.com>
Organization: NETCOM On-line Communication Services (408 261-4700 guest)
X-Newsreader: TIN [version 1.2 PL1]
References: <599dte$8tv@koala.scott.net> <599m0e$t7d@bartlet.df.lth.se>
Date: Wed, 18 Dec 1996 21:39:45 GMT
Lines: 31
Sender: erkyrath@netcom.netcom.com

Magnus Olsson (mol@bartlet.df.lth.se) wrote:
> > The idea is that once you see the combination, you know it. Nothing that
> > has the combination written down has to be in scope or anything. It's
> > a flag in the player. What do you think?

> I'm afraid this wouldn't work very well for me *unless* you allowed me
> also to open the safe the hard way (i.e. by explicitly turning the
> dial to the right combination). Since you let me turn the dial, I'd
> expect to be required to set it to the correct combination. Your
> implementation would probably feel very confusing - in effect, I can
> set the dial to the wrong combination, but not to the right one!

> If you really don't want to bother with the combination and the dial
> (and I can understand why you wouldn't), let me suggest that you make
> it obvious that I don't need to set the dial to anything. For example,
> you could let the commands "turn dial", "turn knob to 23", "turn dial
> right to 4", "set dial to 25", "dial 4-5-1-2" all produce the text
> "You play around with the dial for a while, but since you don't know
> the combination, it's an idle exercise" as long as I don't know the
> combination. When I do know it, manipulating the dial gives the message
> "You set the dial to the correct combination, and are rewarded with a 
> soft click." 

I was going to post of all of that, but Magnus beat me to it. What he said.

--Z

-- 

"And Aholibamah bare Jeush, and Jaalam, and Korah: these were the
borogoves..."


From erkyrath@netcom.com Thu Dec 19 09:47:12 MET 1996
Article: 20692 of rec.arts.int-fiction
Newsgroups: rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news99.sunet.se!newsfeed.luth.se!news.luth.se!eru.mt.luth.se!www.nntp.primenet.com!nntp.primenet.com!howland.erols.net!netcom.com!erkyrath
From: erkyrath@netcom.com (Andrew Plotkin)
Subject: IF Cliches I would like to not see any more of, thank you
Message-ID: <erkyrathE2nD2A.Gx2@netcom.com>
Organization: NETCOM On-line Communication Services (408 261-4700 guest)
X-Newsreader: TIN [version 1.2 PL1]
Date: Thu, 19 Dec 1996 06:08:33 GMT
Lines: 43
Sender: erkyrath@netcom18.netcom.com

Today's rant: the crack so narrow that you can't get through if you're 
carrying anything.

It was in Adventure, it was in Zork, and it *never made any sense.* 
Picture it, folks. You're squishing through a narrow crack. You're holding 
a lantern. What gets stuck -- the lantern, or your butt? *Visualize*. 
Very good. Your typical brass lantern is smaller in every dimension than 
my torso, and I'm 155 pounds stretched six feet tall.

Show me a hole that I can wiggle through, and I will wiggle through it 
holding a flashlight in one hand. It's just not a problem. I bet I could 
push my backpack through ahead of me, too.

A human-sized gold sarcophagus in one thing. (I won't get into the
question of what such a thing would weigh, mind you.) A flashlight is
quite another. And what about those games that force you to drop a *gold
coin*?  Or an emerald the size of a bird's egg? (Plovers aren't
ostrich-sized, you know.)

As many a physics professor has put it: "This is a non-physical 
solution." 

But somehow those narrow cracks just keep getting programmed. One at 
least in the '96 competition; one in Unnkulian Zero; probably more I've 
forgotten or blocked the memory of.

Oh, another thing. "PUT LANTERN THROUGH CRACK." It makes perfect sense to 
*me*, but somehow the parser never manages to understand it. Bleah.

Footnote: No, I am not a spelunker. Maybe I'm missing something. Maybe a 
*long* narrow tunnel, with lots of climbing, would require you to have 
both hands free. But even if this were what Crowther&Woods were 
visualizing, imitators often miss the point. The competition entry I'm 
thinking of, for example, has a "crack" which is an ordinary hallway 
door, which is blocked so that it can only be opened a few inches. That's 
no climbing chimney.

--Z

-- 

"And Aholibamah bare Jeush, and Jaalam, and Korah: these were the
borogoves..."


From obrian@ucsu.Colorado.EDU Thu Dec 19 09:49:07 MET 1996
Article: 20683 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news00.sunet.se!sunic!news.sprintlink.net!news-peer.sprintlink.net!cpk-news-hub1.bbnplanet.com!news.bbnplanet.com!cam-news-hub1.bbnplanet.com!uunet!in3.uu.net!128.138.240.25!boulder!ucsu.Colorado.EDU!obrian
From: Paul O'Brian <obrian@ucsu.Colorado.EDU>
Newsgroups: rec.arts.int-fiction,rec.games.int-fiction
Subject: Re: Moral Dilemnas in IF (was Re: [CONTEST] My reviews)
Date: Wed, 18 Dec 1996 14:24:42 -0700
Organization: University of Colorado at Boulder
Lines: 71
Message-ID: <Pine.GSO.3.95.961218140352.1368A-100000@ucsu.Colorado.EDU>
References: <Pine.GSO.3.95.961203220116.10773C-100000@ucsu.Colorado.EDU> <Pine.A41.3.95.961210161026.84860B-100000@login2.isis.unc.edu> <Pine.GSO.3.95.961211075804.5241A-100000@ucsu.Colorado.EDU> <Pine.A41.3.95.961217090734.64020C-100000@login1.isis.unc.edu>
NNTP-Posting-Host: ucsu.colorado.edu
Mime-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
NNTP-Posting-User: obrian
In-Reply-To: <Pine.A41.3.95.961217090734.64020C-100000@login1.isis.unc.edu>
Xref: news.lth.se rec.arts.int-fiction:20683 rec.games.int-fiction:19648

On Tue, 17 Dec 1996, Michael Straight wrote:
> On Wed, 11 Dec 1996, Paul O'Brian wrote:
> 
> > > Spoilers for Tapestry and In The End





> 
> 
> 
> 
> 
> 
> 
> 
> 
> > It seems to me that no narration can get
> > you "inside" the head of a character as much as actually *being* inside
> > the head of the character and making that character's choices for him. I
> > also had a hard time separating myself, as I mentioned in my review, but I
> > think that is Tapestry's strength; it makes you walk a mile in the shoes
> > of Timothy Hunter (I think that was the character's name) far more
> > powerfully than traditional character identification could. 
> 
> Well, I disagree.  In a traditional narrative, the narrator gets me inside
> the character's head by telling me what he's thinking or at least letting
> me watch his reactions.  In Tapestry, I was asked to role-play a character
> that I didn't know much about other than the facts of his actions.  Did
> Timothy kill his wife because he loved her too much to let her suffer or
> because her illness was inconvenient to him and he'd stopped loving her?

Fair enough. We disagree. I think that such a question is exactly what the
game wants you to be asking, and I think that's a good thing. If
Tapestry's main character had been better defined, the game would have
been less interesting, because when you are asked to role-play a character
you don't know much about other than the facts of his actions, you
yourself create that character's moral structure, rather than seeing it
laid out for you. Imagine if you knew that Timothy Hunter was a callous,
uncaring jerk who killed his wife because, as you say above, the
illness was inconvenient to him. The choices necessary to play that
role would become clear, but Tapestry's dilemmas would no longer
be dilemmas, and it would become an unappetizing journey through the mind
of a reprehensible person.

> As I mentioned in the original post, I think Tapestry was much more
> compelling in the first scene where you have to choose between visiting
> your mother or helping the couple, because it is a genuine either-or
> dilemma - I didn't see a third option that the game prevented me from
> choosing and neither seemed so obviously "right" to me that it was an easy
> decision.

I agree that this section was stronger. I'm wondering if perhaps the time
limit is what made it more compelling. When the hospital calls, there
isn't time to equivocate about the decision. However, in the "sick wife"
scene, there's always the option of not making a choice. The game hints
that this has been going on for quite some time, but I certainly tried to
find some way to avoid both blackmail *and* euthanasia. However, where the
first scene locked me between 2 unpleasant options by use of a time limit,
the second scene simply didn't let the action advance until one of the
choices had been made. Perhaps you and I both found ourselves thinking
"Why couldn't we just wait until she died naturally?"

Paul O'Brian                                     obrian@ucsu.colorado.edu
"It makes no difference which one of us you vote for! Your planet is
doomed! DOOMED!"
							-- Kodos





From graham@gnelson.demon.co.uk Fri Dec 20 09:43:47 MET 1996
Article: 20725 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news99.sunet.se!newsfeed.luth.se!news.luth.se!eru.mt.luth.se!news-stkh.gsl.net!news.gsl.net!news-lond.gsl.net!news.gsl.net!dispatch.news.demon.net!demon!gnelson.demon.co.uk!graham
From: Graham Nelson <graham@gnelson.demon.co.uk>
Newsgroups: rec.arts.int-fiction
Subject: Re: Spong (Was Re: Announcing Inform 6.10 and Library 6/3)
Date: Wed, 18 Dec 1996 19:38:52 +0000 (GMT)
Organization: none
Lines: 24
Message-ID: <ant1819520b0M+4%@gnelson.demon.co.uk>
References: <ant1623271cbM+4%@gnelson.demon.co.uk> <32b6c9f4.1894913@news.u.washington.edu> <596sht$orn@rocannon.cam.harlequin.co.uk> 
NNTP-Posting-Host: gnelson.demon.co.uk
X-NNTP-Posting-Host: gnelson.demon.co.uk
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; CHARSET=ISO-8859-1
X-Newsreader: ANT RISCOS Marcel [ver 1.09]

In article <596sht$orn@rocannon.cam.harlequin.co.uk>, mathew
<URL:mailto:meta@pobox.com> wrote:
> 
> In article <32b6c9f4.1894913@news.u.washington.edu>,
> Matthew Amster-Burton <mamster@u.washington.edu> wrote:
> >Graham Nelson <graham@gnelson.demon.co.uk> wrote:
> >>    Verb 'spong' * topic 'into' noun -> Spong;
> >>
> >>    would match
> >>    
> >>    "spong great aunt lucy into the wardrobe"
> >
> >Uh...is this an actual verb or a neologism for the sake of example?
> 
> It's a nonsense word common to computer scientists and mathematicians in
> Oxford and Cambridge.  It was popularized around 1988/89; in fact, I found
> my "Spong" T-shirt just the other day.

Yes, and I was a mathematics undergraduate in Cambridge in
1988/9.  Guilty as charged.  What a zog, eh?

-- 
Graham Nelson | graham@gnelson.demon.co.uk | Oxford, United Kingdom



From graham@gnelson.demon.co.uk Fri Dec 20 09:45:06 MET 1996
Article: 20718 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news00.sunet.se!sunic!news.sprintlink.net!news-peer.sprintlink.net!howland.erols.net!worldnet.att.net!ix.netcom.com!netcom.net.uk!dispatch.news.demon.net!demon!gnelson.demon.co.uk!graham
From: Graham Nelson <graham@gnelson.demon.co.uk>
Newsgroups: rec.arts.int-fiction
Subject: Re: Announcing Inform 6.10 and Library 6/3
Date: Wed, 18 Dec 1996 19:45:11 +0000 (GMT)
Organization: none
Lines: 48
Message-ID: <ant181911b49M+4%@gnelson.demon.co.uk>
References: <ant1623271cbM+4%@gnelson.demon.co.uk> 
NNTP-Posting-Host: gnelson.demon.co.uk
X-NNTP-Posting-Host: gnelson.demon.co.uk
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; CHARSET=ISO-8859-1
X-Newsreader: ANT RISCOS Marcel [ver 1.09]

In article <ant1623271cbM+4%@gnelson.demon.co.uk>, Graham Nelson
<URL:mailto:graham@gnelson.demon.co.uk> wrote:
> 
> 
>   Joint release of Inform 6.10, Library 6/3 and Translator's Manual
>   =================================================================

It's bad form to interrupt my own posts, but two things I forgot
to mention:

(a) The default indefinite article for all objects used to be "a".
    With the new library (which needs to be more sensitive to
    word contractions) the default is to print "a" or "an",
    whichever is correct.

(b) There are four new attributes:

        male
        female
        neuter
        pluralname

    (Well, actually "female" has been around for ages.)  The first
    three aren't useful in English-language games except to
    give the genders of people.  (Note that you can give the
    "neuter" attribute to animate but sexless object such as
    a computer, if you so wish.  This affects the handling of
    words like "it", "him" and "her".)

    "pluralname" should be given to an object whose short name
    is linguistically a plural.  For instance, an object called
    
       "pillars of ice"

    ought to have "pluralname": this makes the library messages
    more grammatical.  You might see something like
    
       > OPEN PILLARS
       Those aren't openable.

    instead of "That isn't openable.".

These are fringe benefits from the stricter sense of grammar
which the multilingual parser can't do without.

-- 
Graham Nelson | graham@gnelson.demon.co.uk | Oxford, United Kingdom



From john@elvw.demon.co.uk Fri Dec 20 09:52:40 MET 1996
Article: 20730 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news00.sunet.se!sunic!news.sprintlink.net!news-peer.sprintlink.net!howland.erols.net!www.nntp.primenet.com!nntp.primenet.com!dispatch.news.demon.net!demon!mail2news.demon.co.uk!elvw.demon.co.uk!john
From: John Wood <john@elvw.demon.co.uk>
Newsgroups: rec.arts.int-fiction
Subject: Re: [INFORM] Additive propert
Date: Fri, 20 Dec 1996 00:01:09 GMT
Organization: None
Lines: 20
Message-ID: <663213891wnr@elvw.demon.co.uk>
References: <66.6661.1727@tabb.com> <32AFF77C.546F@shef.ac.uk> <erkyrathE2BD79.6ov@netcom.com>  <ant1314261cbM+4%@gnelson.demon.co.uk>
Reply-To: john@elvw.demon.co.uk
X-Mail2News-User: john@elvw.demon.co.uk
X-Mail2News-Path: relay-7.mail.demon.net!relay-5.mail.demon.net!elvw.demon.co.uk
X-Broken-Date: Thursday, Dec 19, 1996 22.21.55
X-Newsreader: Newswin Alpha 0.7

Graham Nelson <graham@gnelson.demon.co.uk> writes:
>
> I've always wanted an option like
> 
> Constant AND_WORK_THIS_TIME_YOU_SWINE;
> 
> I don't suppose anyone's written the appropriate library extension?

I've seen something like this - *once*.  I was having trouble printing 
DVI files on my Atari ST, and looking at the list of command-line 
parameters I saw

	-z	Solve printer problems.

I tried it, expecting lots of debug output.  There wasn't any, but that 
didn't matter because it printed perfectly...

John




From graham@gnelson.demon.co.uk Fri Dec 20 11:06:09 MET 1996
Article: 20717 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news00.sunet.se!sunic!news.sprintlink.net!news-peer.sprintlink.net!howland.erols.net!worldnet.att.net!ix.netcom.com!netcom.net.uk!dispatch.news.demon.net!demon!gnelson.demon.co.uk!graham
From: Graham Nelson <graham@gnelson.demon.co.uk>
Newsgroups: rec.arts.int-fiction
Subject: Re: Preaching to the pews
Date: Wed, 18 Dec 1996 20:00:09 +0000 (GMT)
Organization: none
Lines: 62
Message-ID: <ant182009d07M+4%@gnelson.demon.co.uk>
References: <Pine.SUN.3.91.961210130312.2716A-100000@xp.psych.nyu.edu> 
NNTP-Posting-Host: gnelson.demon.co.uk
X-NNTP-Posting-Host: gnelson.demon.co.uk
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; CHARSET=ISO-8859-1
X-Newsreader: ANT RISCOS Marcel [ver 1.09]

In article <Pine.SUN.3.91.961210130312.2716A-100000@xp.psych.nyu.edu>,
Roger Giner-Sorolla <URL:mailto:giner@xp.psych.nyu.edu> wrote:
> 
> Graham Nelson opined:
> 
> > I don't object to erotica,
> > personally, but having to answer questions like "Do you prefer
> > blondes or brunettes?" was faintly revolting.
> 
> As someone who fancies redheads, I'd have to agree.
> 
> Seriously, I wonder what in particular makes that question so tacky.  My 
> sense is that it compromises the fictional reality of the story by 
> shamelessly pandering to the reader's own fantasies.  The author should 
> be an author, not a pimp, right?.
> 
> On the other hand, it's also a stupefyingly shallow level of character 
> definition.  I can imagine a more interesting erotic game asking deeper 
> questions about the personality characteristics the player desires...

Oh, it asked deeper questions all right.  Answering that one's
ideal bust size is 1,000,000 inches may have been a puerile
response, but it did result in a much more intriguing text.

Personally, I think I'd prefer a game in which the ultimate
object of attraction was a person one wouldn't have guessed
>from  the outset (much less created from a specification).

But then I think this discussion is drifting back to an
interesting one held a couple of years ago, about the possibility
of a credible romance game (romance, rather than genre fiction
with a twist of romance, which is what I take "Plundered Hearts"
to be).  I really do think this would be a fine idea for
someone to pursue.

I wonder if it would be possible to write an adventure-game sex
scene which was interactive, had a modicum of taste and still
took itself at all seriously?  I think the very furthest it
could get would be foreplay, or worse...

   > GET CONDOM

   But the condom's right at the back of the medicine
   cabinet, behind the piles ointment, and you don't  (*)
   want Delores to see that, do you?

   > DELORES, CLOSE YOUR EYES

   Delores pouts.  "You close yours, first!"

   > CONSUMMATE
   
   Who are you calling consummate?

Etc., etc.

-- 
Graham Nelson | graham@gnelson.demon.co.uk | Oxford, United Kingdom

(*) This is not autobiographical.  I do not have a medicine
    cabinet.



From aultman@koala.scott.net Fri Dec 20 11:07:04 MET 1996
Article: 20726 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news00.sunet.se!sunic!news.sprintlink.net!news-peer.sprintlink.net!news.sprintlink.net!news-pull.sprintlink.net!news.sprintlink.net!news-ana-7.sprintlink.net!HiWAAY.net!acara.snsnet.net!news.scott.net!koala.scott.net!not-for-mail
From: aultman@koala.scott.net
Newsgroups: rec.arts.int-fiction
Subject: Re: Preaching to the pews
Date: 15 Dec 1996 23:11:45 -0600
Organization: Scott Network Services, Inc.
Lines: 34
Message-ID: <592lmh$793@koala.scott.net>
References: <587evk$1ei@news2.gte.net> <58g5gc$b7j@colombia.earthlink.net> <58gptc$1vo@Turing.Stanford.EDU> <58j697$srv@paraguay.earthlink.net>
NNTP-Posting-Host: koala.scott.net

In article <58j697$srv@paraguay.earthlink.net>,
Cardinal Teulbachs <cardinalt@earthlink.net> wrote:
>
>Well, ok, but it is in fact pretty much impossible to teach without
>having a heavy-handed superiority of tone. That's what teaching is:
>declaring something to be true and giving the reasons why. Anything
>else isn't really teaching, is it? It's "suggesting".

I taught myself to play guitar, and I never took that tone with myself.
_The_Remains_of_the_Day_ taught me quite a bit about British nobility
and the culture of house servants (at least for the time in which it was
set). I-F games have taught me about thinking, patience, and persistence.
Various life experiences have taught me moral lessons.
Fairy Tales, Aesop's fables, and Sesame Street all entertain the audience
they are trying to teach.

(skip to the next paragraph if you haven't played Zork III.)
Zork III, specifically, did a little to teach that perhaps we should
trust people and perhaps we shouldn't kill people just because they
attacked us first. It's possible to find other lessons in these episodes,
but let's not bother in this article.

I don't think you could call any of that heavy-handed and superior.

So we see that perhaps moral teaching in I-F can be successful. I just
wonder if Joe Newbie could get away with the exact same thing, if
Infocom hadn't beaten him to it, or would critics line up to accuse him
of "preachiness?"

That is all,

Joe -- Aultman, not Newbie.

Forgive me if this article sounds heavy-handed or superior.


From erkyrath@netcom.com Fri Dec 20 16:52:42 MET 1996
Article: 20705 of rec.arts.int-fiction
Newsgroups: rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news00.sunet.se!sunic!news.sprintlink.net!news-stk-200.sprintlink.net!www.nntp.primenet.com!nntp.primenet.com!ix.netcom.com!netcom.com!erkyrath
From: erkyrath@netcom.com (Andrew Plotkin)
Subject: Re: Language, language
Message-ID: <erkyrathE2o8y4.15y@netcom.com>
Organization: NETCOM On-line Communication Services (408 261-4700 guest)
X-Newsreader: TIN [version 1.2 PL1]
References: <mbtiv69qdxy.fsf@seven.ucs.indiana.edu> <kVGUECACX$ryEw9o@amster.demon.co.uk> <596s6k$ogp@rocannon.cam.harlequin.co.uk> <32B94232.353B@thinkage.on.ca>
Date: Thu, 19 Dec 1996 17:37:16 GMT
Lines: 60
Sender: erkyrath@netcom.netcom.com

David Adrien Tanguay (dat@thinkage.on.ca) wrote:
> Why is it that a Latin derived word is okay but the equivalent English or
> French derived word is profane? 'shit' == 'feces'/'defecate',
> 'piss' == 'urinate', 'fuck' == 'fornicate'/'coitus'.

A long interesting story, I'm sure, as is usual with language. I've heard 
theories that it started (in English) with the Norman conquest; the 
Norman French vocabulary was upper-class, the court language, which made 
the older Anglo-Saxon lower-class by comparison -- "vulgar" in the 
original sense, "of the common people". 

That's not certain, however. The situation is more complicated than I've 
made it sound. It's certainly true, however, that our shortest, most 
common, most "primal" words are all from Old English: all the pronouns, 
all the conjunctions, words like "meat", "hand", "stop", "eat", you get 
the idea. I think the statistic was that of the fifty most common English 
words, all are from Old English; of the hundred most common, 85 are. 
Something like that. And a lot of legal and governmental terms are from 
French: "bailiff", "jury", "verdict", "president". 

(Although I've always been pleased that "sheriff" is straight out of Old
English "shire reeve", and meant a thousand years ago exactly what it
means today -- a local government official in charge of administering the 
law.)

The Latin connection, of course, is that Latin was the language of the 
medieval church, which meant medieval science. And scientists have to be 
able to talk about anything they want; you can't stop them, that's 
practically the definition. Again the distinction formed between educated 
language, which was proper between educated men, and "profane" language 
-- a telling word itself, since it originally was the opposite of 
"sacred", not of "polite". (Although certainly a large part of swearing 
is blasphemy, which is profane in both senses -- and vulgar, since an 
educated man was by definition a Church man, one way or another, and 
would never think of taking the Lord's name in vain. Theoretically.)

> Medaeival
> squeamishness wasn't successful at removing the old words for these things
> from the common (== 'vulgar') language.

I don't recall that medieval folk were particularly squeamish. 
Shakespeare and Chaucer, as I said earlier. Popular entertainment was 
full of fart jokes and women getting grabbed by the "queynte". The age of 
Bowdler was the *modern* age, the 1800's and still going strong.

> If the concept is acceptable (and
> it may not be, but that's a different issue), the choice of word shouldn't
> matter much. Arguing about 'piss' vs. 'urinate', in a technical context
> like this (as opposed to, e.g., 'piss off'), is mindless prudery.

No, there I disagree. This is written prose; the choice of word is more 
important than anything. That's why I'll use "piss" if it's the best 
choice for the sentence in question.

--Z (full of urine and *acetic acid*)

-- 

"And Aholibamah bare Jeush, and Jaalam, and Korah: these were the
borogoves..."


From whizzard@uclink.berkeley.edu Fri Dec 20 20:44:13 MET 1996
Article: 20746 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news01.sunet.se!sunic!mn6.swip.net!plug.news.pipex.net!pipex!hole.news.pipex.net!pipex!bowl.news.pipex.net!pipex!tank.news.pipex.net!pipex!btnet!newsfeed.internetmci.com!feed1.news.erols.com!howland.erols.net!agate!uclink.berkeley.edu!whizzard
From: whizzard@uclink.berkeley.edu (Gerry Kevin Wilson)
Newsgroups: rec.arts.int-fiction
Subject: E-mail Address Change
Date: 20 Dec 1996 04:03:11 GMT
Organization: University of California at Berkeley
Lines: 25
Message-ID: <59d35v$p2k@agate.berkeley.edu>
NNTP-Posting-Host: uclink.berkeley.edu


Hi everyone.

Since I'm not sure how my email account will be changing when I graduate,
I've subscribed to pobox.com.  They assign you an address and forward your
mail from that account to wherever you want.  So, from now on, direct mail
to me at: whizzard@pobox.com

I would appreciate it if those of you who have documents of mine on the
web or whatnot would take a moment to change the contact information in
them.

Unless the company goes out of business, this will be the only time this
change is necessary.

So, just remember the new address.  I'll see what I can do about editing
my From: header to reflect this change.  Or maybe just the Reply-to:
header.

Also, one last thing: I'm going to be out of circulation for a few days
while I move back home from college and settle in, then probably another
day or two for Xmas after that.  Then we'll see about SPAG 10.  Sorry for
the delay, but it is unavoidable.
-- 
     Losing the war against dirty laundry...


From graham@gnelson.demon.co.uk Sat Dec 21 09:23:40 MET 1996
Article: 20747 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news99.sunet.se!news.kth.se!nntp.uio.no!www.nntp.primenet.com!nntp.primenet.com!dispatch.news.demon.net!demon!graham
From: Graham Nelson <graham@gnelson.demon.co.uk>
Newsgroups: rec.arts.int-fiction
Subject: Re: [INFORM] Additive propert
Date: Fri, 13 Dec 1996 14:28:26 +0000 (GMT)
Organization: none
Lines: 33
Message-ID: <ant1314261cbM+4%@gnelson.demon.co.uk>
References: <66.6661.1727@tabb.com> <32AFF77C.546F@shef.ac.uk> <erkyrathE2BD79.6ov@netcom.com> 
NNTP-Posting-Host: gnelson.demon.co.uk
X-NNTP-Posting-Host: gnelson.demon.co.uk
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; CHARSET=ISO-8859-1
X-Newsreader: ANT RISCOS Marcel [ver 1.09]

In article <erkyrathE2BD79.6ov@netcom.com>, Andrew Plotkin
<URL:mailto:erkyrath@netcom.com> wrote:
> 
> Robert Fisher (COP96RDF@shef.ac.uk) wrote:
> > > I'd like to suggest that in the next update of the Inform specs, the
> > > Orders property be made additive.  Right now, Life is but Orders isn't.
> > > I'd hacked my copy of the 5/12 library, and it seemed to work with no
> > > problems at all, until of course I switched to 6/2 and couldn't figure
> > > out why none of my Orders properties were working any more!

I agree.  In Library 6/3, "orders" is additive.  6/3 contains a much
enhanced parser (it has to be capable of any natural language, not
just English) and will not quite be suitable for the V3 Z-machine any
longer anyway: so some of the compromises imposed on 6/2 and earlier
libraries for reasons of economy can be dropped.

> Heh. I hack the Inform libraries all the time. 
> 
> I strongly recommend the following trick: put all your hacks inside 
> conditional directives (IFDEF HACKNAME/ENDIF.) This means that, by default, 
> the libraries behave as documented; you have to put a Constant HACKNAME 
> statement in your source code to invoke a change. Then, to see what 
> you've done, you can just look at the top of your source code.

I've always wanted an option like

Constant AND_WORK_THIS_TIME_YOU_SWINE;

I don't suppose anyone's written the appropriate library extension?

-- 
Graham Nelson | graham@gnelson.demon.co.uk | Oxford, United Kingdom



From erkyrath@netcom.com Sun Dec 29 21:51:12 MET 1996
Article: 20814 of rec.arts.int-fiction
Newsgroups: rec.arts.int-fiction
Path: news.lth.se!solace!eru.mt.luth.se!www.nntp.primenet.com!nntp.primenet.com!howland.erols.net!netcom.com!erkyrath
From: erkyrath@netcom.com (Andrew Plotkin)
Subject: Re: Questionable Languages & Compilers
Message-ID: <erkyrathE2q30q.48I@netcom.com>
Organization: NETCOM On-line Communication Services (408 261-4700 guest)
X-Newsreader: TIN [version 1.2 PL1]
References: <32b72f97@beachyhd.demon.co.uk> <1996Dec19.165314.307@wcc.govt.nz> <59cimp$2hf@life.ai.mit.edu>
Date: Fri, 20 Dec 1996 17:24:26 GMT
Lines: 82
Sender: erkyrath@netcom.netcom.com

David Baggett (dmb@lf.ai.mit.edu) wrote:
> And I don't see why it's OK to harshly criticize IF works that people write
> for free, but it's not OK to criticize the tools.  Those of you who are
> lauding *or* criticizing Inform's language design: do you really know much
> of anything about programming language design and implementation?  (I know
> Thomas Nilsson does, but how about the rest of you?)

I took a class once. I have the Dragon Book you refer to...

> I've spent a great deal of time reading about the subject over the past few
> years, and it's quite clear to me that there are serious problems with
> *all* the existing IF development systems, and that none of them deserves
> anything like a "professional-quality compiler" label.

> One very basic requirement for a "professional quality compiler" is that it
> perform nontrivial optimizations like strength reduction; do any of these
> compilers do that? 

This becomes a sore point, because there *is* a difference between Graham 
and his spare time (on one finger), and MetroWerks (on the rest of the 
platoon's appendages).

(Metrowerks is a Mac compiler vendor which started up a couple of years 
ago and is now widely regarded as the best choice. They are a major 
software company with revenues of $10 million a year. Graham is a bored 
professor.)

It would be lovely if Inform applied all the optimizations that I expect 
>from  Metrowerks' compiler, or even from gcc. I don't know what 
optimizations it does provide. (I know it does some. See the tech 
manual.) If it misses some, however, I don't regard it as a "major 
problem". 

It's a nuisance that a few games have come up against the resource limits
of the V5 Z-machine (notably Jigsaw -- even though there's a V8 version,
Graham said recently that some scenes were trimmed to make the V5 version
fit.) But you'd have to demonstrate that a typical game *could* be shrunk
significantly by optimization. I don't believe a C-like language on a
registerless architecture *has* many nontrivial optimizations. (Trivial
ones, like moving complex expressions out of loops, tend to be done by
hand by C-native hackers -- me, anyway. I admit that CSE elimination would
be nice.)

Put it this way: I would love to write a Mac Web browser that didn't 
suck. But I simply can't compete with MS and NS. They can implement 
"professional" features faster than I can *read* about them. (You decide 
whether these are actually useful features, but it *is* what the market 
wants.) Because of this, I haven't bothered. Therefore, I use a Web 
browser that I hate. Is this bad? I think it is. I'm certainly glad that 
there are amateur IF systems out there as opposed to none at all.

(Please don't write back pointing out the flaws in this analogy. It's not 
a parallel, it's a point of view on the question of whether amateurs 
should write software.)

> This is, in the long run, what we should expect of the tool
> designers, just as we ultimately expect our authors to have read the major
> works of (interactive) fiction.

Sure. I'm sure you noticed the total rewrite that went into Inform 6.

> I don't mean to be pointlessly critical, and I'm not saying these tools are
> useless (far from it), but if we're going to hold our fiction up to the
> high standards of the literary world, shouldn't we fairly judge the tools
> by the equivalent langauge design and implementation standards?  I've said
> myself that improved tools are the main reason (IMO) for IF's renaissance
> in the 90's.  But the flip side of the coin is that, as with the fiction,
> we're nowhere near where we could be.  Certainly there is no reason to put
> a moratorium on criticisms of tools!

The other problem is that the particular criticisms that were posted 
were, uh, unuseful. One change request which has already been 
implemented, and one that badly misunderstood the way compilers are used 
(although I don't object to the idea of a user-controllable option for 
"max number of errors to tolerate.")

--Z

-- 

"And Aholibamah bare Jeush, and Jaalam, and Korah: these were the
borogoves..."


From erkyrath@netcom.com Sun Dec 29 21:51:20 MET 1996
Article: 20804 of rec.arts.int-fiction
Newsgroups: rec.arts.int-fiction
Path: news.lth.se!solace!umdac!umu.se!newsfeed.sunet.se!news00.sunet.se!sunic!mn6.swip.net!plug.news.pipex.net!pipex!multicast.news.pipex.net!tank.news.pipex.net!pipex!www.nntp.primenet.com!nntp.primenet.com!netcom.com!erkyrath
From: erkyrath@netcom.com (Andrew Plotkin)
Subject: Re: Questionable Languages & Compilers
Message-ID: <erkyrathE2tp40.n7@netcom.com>
Organization: NETCOM On-line Communication Services (408 261-4700 guest)
X-Newsreader: TIN [version 1.2 PL1]
References: <32b72f97@beachyhd.demon.co.uk> <59cimp$2hf@life.ai.mit.edu> <erkyrathE2q30q.48I@netcom.com> <59evu4$42s@sjx-ixn4.ix.netcom.com> <59fo51$lcv@life.ai.mit.edu>  <ant2112160b0M+4%@gnelson.demon.co.uk>
Date: Sun, 22 Dec 1996 16:14:24 GMT
Lines: 35
Sender: erkyrath@netcom21.netcom.com

Graham Nelson (graham@gnelson.demon.co.uk) wrote:
> In article <59fo51$lcv@life.ai.mit.edu>, David Baggett
> <URL:mailto:dmb@lf.ai.mit.edu> wrote:
> > 
> > In article <59evu4$42s@sjx-ixn4.ix.netcom.com>,
> > William Bryant <wbryant@ix.netcom.com> wrote:
> > 
> > >The "Dragon Book" wouldn't be "programming compilers in C" or some
> > >such title, latest edition about 1992?
> > 
> > Here's a Library of Congress listing for it:
> > 
> >   Aho, Alfred V.  Compilers, principles, techniques, and tools /
> >   Reading, Mass. : Addison-Wesley Pub. Co., c1986.  x, 796 p. : ill. ;
> >   24 cm.  LC CALL NUMBER: QA76.76.C65 A37 1986

> Aho, Sethi and Ullmann, to give all three authors.
> The above is the second edition.

Sheerly for the sake of history, I'll note that I also have the old
_Introduction to Automata Theory, Languages, and Computation_ by Hopcroft
and Ullman (1979). The one with a picture of a girl labelled "Mathematical
Truth" struggling with a bizarre contraption labelled "NP-Complete
Problems". (And the back cover is the same girl in the contraption's
collapsed ruins.)

Please don't ask me what I'm doing with a textbook which was published a 
year *before* I started hacking -- on that brand-new Apple II+ -- in BASIC.

--Z

-- 

"And Aholibamah bare Jeush, and Jaalam, and Korah: these were the
borogoves..."


From dmb@ai.mit.edu Sun Dec 29 21:51:24 MET 1996
Article: 20797 of rec.arts.int-fiction
Path: news.lth.se!solace!umdac!umu.se!newsfeed.sunet.se!news01.sunet.se!sunic!02-newsfeed.univie.ac.at!01-newsfeed.univie.ac.at!voskovec.radio.cz!news-feed.inet.tele.dk!arclight.uoregon.edu!feed1.news.erols.com!howland.erols.net!bloom-beacon.mit.edu!ai-lab!rice-chex!dmb
From: dmb@rice-chex.ai.mit.edu (David Baggett)
Newsgroups: rec.arts.int-fiction
Subject: Re: Questionable Languages & Compilers
Date: 21 Dec 1996 17:31:06 GMT
Organization: MIT Artificial Intelligence Lab
Lines: 28
Message-ID: <59h6sq$6nc@life.ai.mit.edu>
References: <32b72f97@beachyhd.demon.co.uk> <erkyrathE2q30q.48I@netcom.com> <59evu4$42s@sjx-ixn4.ix.netcom.com> <59g6p8$grj@bartlet.df.lth.se>
Reply-To: dmb@ai.mit.edu
NNTP-Posting-Host: rice-chex.ai.mit.edu

In article <59g6p8$grj@bartlet.df.lth.se>,
Magnus Olsson <mol@bartlet.df.lth.se> wrote:

>But I think that the design of the *language* is far more important than
>the design of the compiler. 
>...
>It must have taken considerable courage on Graham's part to "fix" the
>dangling else's in Inform, knowing that a lot of existing code would
>probably break.

Language design is critically important, but it cannot be done in the
absence of an understanding of how compilers are properly implemented.

Having to fix something as basic as improper dangling else in the 6th major
revision of a programming language shows totally ad-hoc design *and* a
refusal to use appropriate tools for the job of parsing in the compiler.
Everyone whose Inform 5 code is now invalid has to pay for the poor design
and implementation of Inform 5.  I cannot see how you can put a positive
spin on this and keep a straight face.

And it's not just Inform.  TADS had a similar upheaveal from v1 to v2, and
it, too, uses a hand-coded parser with plenty of bugs over the years.

Dave Baggett
__
dmb@ai.mit.edu
"Mr. Price: Please don't try to make things nice! The wrong notes are *right*."
--- Charles Ives (note to copyist on the autograph score of The Fourth of July)


From graham@gnelson.demon.co.uk Sun Dec 29 21:51:29 MET 1996
Article: 20800 of rec.arts.int-fiction
Path: news.lth.se!solace!demos!news.stealth.net!www.nntp.primenet.com!nntp.primenet.com!dispatch.news.demon.net!demon!gnelson.demon.co.uk!graham
From: Graham Nelson <graham@gnelson.demon.co.uk>
Newsgroups: rec.arts.int-fiction
Subject: Re: Questionable Languages & Compilers
Date: Sun, 22 Dec 1996 14:43:43 +0000 (GMT)
Organization: none
Lines: 63
Message-ID: <ant221443d07M+4%@gnelson.demon.co.uk>
References: <32b72f97@beachyhd.demon.co.uk> <erkyrathE2q30q.48I@netcom.com> <59evu4$42s@sjx-ixn4.ix.netcom.com> <59g6p8$grj@bartlet.df.lth.se> <59h6sq$6nc@life.ai.mit.edu> 
NNTP-Posting-Host: gnelson.demon.co.uk
X-NNTP-Posting-Host: gnelson.demon.co.uk
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; CHARSET=ISO-8859-1
X-Newsreader: ANT RISCOS Marcel [ver 1.09]

In article <59h6sq$6nc@life.ai.mit.edu>, David Baggett
<URL:mailto:dmb@rice-chex.ai.mit.edu> wrote:
> 
> In article <59g6p8$grj@bartlet.df.lth.se>,
> Magnus Olsson <mol@bartlet.df.lth.se> wrote:
> 
> >But I think that the design of the *language* is far more important than
> >the design of the compiler. 
> >...
> >It must have taken considerable courage on Graham's part to "fix" the
> >dangling else's in Inform, knowing that a lot of existing code would
> >probably break.

I know of no existing code that actually did break, by the way,
though I'm willing to be corrected.

> Language design is critically important, but it cannot be done in the
> absence of an understanding of how compilers are properly implemented.

Yes and no.  In some respects the Inform language benefits from
not making compromises to suit compiler convenience (for example,
it would be easier to parse if it required far more commas and
braces, making it LALR(1), but it would be more tiresome to type
as source code).  But broadly I agree.

> Having to fix something as basic as improper dangling else in the 6th major
> revision of a programming language shows totally ad-hoc design *and* a
> refusal to use appropriate tools for the job of parsing in the compiler.
> Everyone whose Inform 5 code is now invalid has to pay for the poor design
> and implementation of Inform 5.  I cannot see how you can put a positive
> spin on this and keep a straight face.

No, Inform 6 was not really the 6th major revision.  Inform 5
was the only version which anyone other than myself actually
produced any game which was ever posted to the Net.  Inform 1 to
4 were not major releases so much as a series of updates rapidly
appearing in the first year of Inform's existence.

Nevertheless, yes, I agree that Inform 5 was poorly implemented
(though not that it was poorly designed).  I bear full
responsibility for that and would expect to be criticised if
I were advancing Inform 5 as a professional-quality tool.
But I am not.

It is a simple procedure to update source code from Inform 5 to
Inform 6: far less effort than updating from K&R C to ANSI C,
for instance.

> And it's not just Inform.  TADS had a similar upheaveal from v1 to v2, and
> it, too, uses a hand-coded parser with plenty of bugs over the years.

I wonder if you appreciate how poorly the parsers produced by
tools such as "lex" and "yacc" perform?  They generally work
(provided the language design makes compromises so as to be
expressible to "lex" and "yacc" -- which would worsen Inform
in my view) but impose speed penalties of up to a factor of 2.

Have you read the Dragon Book, I wonder?  It does make this
very point.

-- 
Graham Nelson | graham@gnelson.demon.co.uk | Oxford, United Kingdom



From dmb@ai.mit.edu Sun Dec 29 21:51:30 MET 1996
Article: 20809 of rec.arts.int-fiction
Path: news.lth.se!solace!nntp.uio.no!www.nntp.primenet.com!nntp.primenet.com!newspump.sol.net!howland.erols.net!bloom-beacon.mit.edu!ai-lab!lf!dmb
From: dmb@lf.ai.mit.edu (David Baggett)
Newsgroups: rec.arts.int-fiction
Subject: Re: Questionable Languages & Compilers
Date: 22 Dec 1996 20:22:30 GMT
Organization: MIT Artificial Intelligence Lab
Lines: 62
Message-ID: <59k5a6$597@life.ai.mit.edu>
References: <32b72f97@beachyhd.demon.co.uk> <59g6p8$grj@bartlet.df.lth.se> <59h6sq$6nc@life.ai.mit.edu> <ant221443d07M+4%@gnelson.demon.co.uk>
Reply-To: dmb@ai.mit.edu
NNTP-Posting-Host: lf.ai.mit.edu

In article <ant221443d07M+4%@gnelson.demon.co.uk>,
Graham Nelson  <graham@gnelson.demon.co.uk> wrote:

>I wonder if you appreciate how poorly the parsers produced by
>tools such as "lex" and "yacc" perform?  They generally work
>(provided the language design makes compromises so as to be
>expressible to "lex" and "yacc" -- which would worsen Inform
>in my view) but impose speed penalties of up to a factor of 2.

The idea that it's reasonable to use a tremendously error-prone method to
solve a problem for which trivial tools exists, simply to save time on
lexical analysis -- a small proportion of the entire compilation task -- is
totally misguided, in my opinion.

Suppose that the best machine-generated lexical analyzer *were* twice as
slow as your hand-coded one.  How much longer should it take to compile
code?  Fractionally longer, unless your compiler's doing basically no work
to generate and optimize code.

Look, it takes TADS *less than one second* to compile Legend on my PC at
home.  Even if all it were doing were lexical analysis, and the lexical
analysis took 10 times as long, I'd still be looking at very reasonable
compile times on huge programs (as programs in this area go).

There is no reason to give up reliable, bug-free, extensible parsing in a
tool like this.  Yet you're compromising the robustness of the tool, and
your ability to modify it easily, in the name of efficiency?

(And making a grammar that's not even parsable by a standard
machine-generated parser is *really* evil.  What happens when someone wants
to write a program that manipluates Inform 6 source code?  They have to
adapt your hand-coded parser, bugs and all.  If you can't fit your ideal
language syntax into regular grammars for the tokens and context-free
grammars for the expressions and statements, you're really hurting.)

And in any case, machine-generated lexical analyzers *are* very competitive
with hand-coded alternatives.  Get a copy of RE2C or Wuu Yang's paper on
the lookahead problem.  (AltaVista will find both.)  It basically comes
down to figuring on how many characters of lookahead you need to tokenize
in the worst case, and managing the lookahead buffer wisely in the
generated code.

I suspect your answer to all this comes down to "I must compromise the
design and implementation of Inform so that I can play and compile games on
older hardware".  I think it's madness to penalize the majority of your
language's audience (who have circa 1985+ hardware) for the needs a very
few who get a thrill out of running programs on their first computers.  (I
still use my Atari 800, too; I just don't support it with compilers I write
here in 1996.)

To put it another way: speed of compilation and small compiler memory
footprint are noble goals, but only *after* you've gotten everything else
right

(And once again, many of the same criticisms can be made of TADS, too, so
I'm not just being partisan here.)

Dave Baggett
__
dmb@ai.mit.edu
"Mr. Price: Please don't try to make things nice! The wrong notes are *right*."
--- Charles Ives (note to copyist on the autograph score of The Fourth of July)


From rhodri@wildebst.demon.co.uk Sun Dec 29 21:51:31 MET 1996
Article: 20829 of rec.arts.int-fiction
Path: news.lth.se!solace!nntp.uio.no!www.nntp.primenet.com!nntp.primenet.com!EU.net!usenet2.news.uk.psi.net!uknet!usenet1.news.uk.psi.net!uknet!dispatch.news.demon.net!demon!wildebst.demon.co.uk!not-for-mail
From: rhodri@wildebst.demon.co.uk (Rhodri James)
Newsgroups: rec.arts.int-fiction
Subject: Re: Questionable Languages & Compilers
Date: Mon, 23 Dec 1996 02:36:12 GMT
Organization: The Wildebestiary
Lines: 39
Message-ID: <n40CB352E@wildebst.demon.co.uk>
References: <59g6p8$grj@bartlet.df.lth.se> <59h6sq$6nc@life.ai.mit.edu> <ant221443d07M+4%@gnelson.demon.co.uk> <59k5a6$597@life.ai.mit.edu>
NNTP-Posting-Host: wildebst.demon.co.uk
X-NNTP-Posting-Host: wildebst.demon.co.uk
X-Newsreader: Offlite 0.09 / Termite Internet for Acorn RISC OS

dmb@lf.ai.mit.edu (David Baggett) wrote:

> I suspect your answer to all this comes down to "I must compromise the
> design and implementation of Inform so that I can play and compile games
> on older hardware".  I think it's madness to penalize the majority of
> your language's audience (who have circa 1985+ hardware) for the needs a
> very few who get a thrill out of running programs on their first
> computers.  (I still use my Atari 800, too; I just don't support it with
> compilers I write here in 1996.)

I was going to leave this thread alone.  I was.  Honestly.  No matter how
much I disagree with Dave about the quality of yacc and lex (implicitly),
lowest common denominators (explicitly) and so on and so forth.  But then I
read the above paragraph and my head exploded.  That was messy, and didn't
go with the pale green walls of the study.

Circa 1985+.  Glibble.  Dave, you must surely have a reasonable idea that
anyone comparing 1985 machines with 1996 machines isn't even using an
astronomer's approximation, the specifications are so far apart.  I did
work out a few years ago that memory sizes in machines were roughly
doubling every two years, though I've heard others estimate that at 18
months.  Supporting stuff on "older hardware" can easily mean supporting
*last* *year's* platform!

One of the truly dumb things that developers often do is to always use the
latest kit.  It may be a breeze to do your work on, but a great majority of
the customers have positively ancient machines (say, two years old), and
that really neat trick that you stuffed in for some bell or whistle may
take enough cycles that for the customers your pride and joy moves like a
slug on valium.  This has happened repeatedly in the commercial world. 
Sales droids love it, because it means that they can tempt customers into
upgrading because they now "need" it.  That way lies madness (and Windows
95, which is surely indication enough!).

-- 
Rhodri James  *-*  Wildebeeste herder to the masses
If you don't know who I work for, you can't misattribute my words to them

... but that's a herring of a different colour


From dmb@ai.mit.edu Sun Dec 29 21:51:32 MET 1996
Article: 20840 of rec.arts.int-fiction
Path: news.lth.se!solace!nntp.uio.no!www.nntp.primenet.com!nntp.primenet.com!howland.erols.net!bloom-beacon.mit.edu!ai-lab!lf!dmb
From: dmb@lf.ai.mit.edu (David Baggett)
Newsgroups: rec.arts.int-fiction
Subject: Fast lexers/slow hardware/better environments (Re: Questionable ...)
Date: 24 Dec 1996 10:30:50 GMT
Organization: MIT Artificial Intelligence Lab
Lines: 146
Message-ID: <59obcq$t2j@life.ai.mit.edu>
References: <59g6p8$grj@bartlet.df.lth.se> <ant221443d07M+4%@gnelson.demon.co.uk> <59k5a6$597@life.ai.mit.edu> <n40CB352E@wildebst.demon.co.uk>
Reply-To: dmb@ai.mit.edu
NNTP-Posting-Host: lf.ai.mit.edu

In article <n40CB352E@wildebst.demon.co.uk>,
Rhodri James <rhodri@wildebst.demon.co.uk> wrote:

>...I disagree with Dave about the quality of yacc and lex (implicitly),
>lowest common denominators (explicitly) and so on and so forth.

I know it's not your main point, but for the record: unless AP's inoperable
brain tumors are catching, I didn't specifically mention yacc and lex;
Graham did.  Even I find it somewhat difficult to defend these specific
tools against hand-coded equivalents, because yacc and lex are so
wretched. :)

There are many other tools that do the same job for the same language (C),
but much better.  It seems like over two dozen are available on the net,
and the aforesaid PRECC was developed at Oxford, (I'm totally guessing) a
stone's throw from Graham's office.

The idea that machine-generated lexical analyzers are, practically
speaking, slower than their hand-coded equivalents is outdated.  Here are a
few quotes from Bumbulis and Cowan's 1994 RE2C paper, which I mentioned
earlier in this thread:

  "Lexical analysis routines are still often coded by hand despite the
  widespread availability of scanner generators. [...]  One commonly cited
  reason for not using Lex-geneated scanners is performance: they can be 10
  times slower than equivalent hand-coded scanners.  As a result, there has
  been considerable research into improving the performance of mechanically
  generated scanners.  GLA, one such scanner generator, can produce scanners
  that are faster than most hand-coded scanners."

  "Table 1 compares two RE2C-generated C scanners wit the (hand-coded)
  lcc scanner and comparable GLA- and flex-generated scanners on a variety
  of platforms.  It reports the times in seconds required by the various
  scanners to scan about 170,000 lines of C source.  The 5,607,820 byte
  source file used essentially consists of 10 copies of the source to
  James Clark's SGML parser, sgmls.  The times reported are averages 
  for 10 trials; the sizes reported include everything but the C library
  code. [...]  As a general rule, the RE2C-generated scanners were the
  fastest, followed by the FLA-generated scanner and then the lcc scanner.
  The flex-generated scanners were significantly slower.  Only the space-
  optimized flex scanner was smaller than the default RE2C scanner, and
  only by a narrow margin."

  Table 1:

                TIME                      SPACE
  program    user  sys  total   text  data   bss  total

  flex -Cem  10.36 0.87 11.23   5200   4192   48  9440
  flex -Cf    5.44 0.72  6.16   4688  64384   48 69120
  lcc         3.19 0.67  3.86   7328   1216 8256 16800
  gla         2.89 0.63  3.52  11552   3056  144 14752
  re2c        2.54 0.68  3.22  13264    512    0 13776
  re2c -s     2.38 0.67  3.05  11056   4528    0 15584

  (Times listed are for an R4000.  See the paper for other archiectures.)
 
Looks pretty convincing to me.

>Circa 1985+.  Glibble.  Dave, you must surely have a reasonable idea that
>anyone comparing 1985 machines with 1996 machines isn't even using an
>astronomer's approximation, the specifications are so far apart.  I did
>work out a few years ago that memory sizes in machines were roughly
>doubling every two years, though I've heard others estimate that at 18
>months.  Supporting stuff on "older hardware" can easily mean supporting
>*last* *year's* platform!

I'm not entirely clear on what you're arguing for or against here, but to
clarify my own position: If it takes just over two seconds to tokenize
170,000 lines of code on an R4000 (unspecified clock rate, but I don't
think MIPS made them faster than 200Mhz, so lets assume that), then how
long would it take to tokenize the same amount of code on a 33Mhz
i486-based machine? I'd guess that since (unless I am mistaken) the R4000
is clock-multiplied, the multiple would certainly be less than a factor of
7, the difference in quoted clock speeds.  That means an RE2C-generated
scanner might be able to tokenize the source in around 15 seconds.  This is
still very zippy; that's a huge amount of code.  Doing any kind of
nontrivial code generation work would take considerably longer than that.

With an i486 we are not talking about last year's hardware.  We're talking
about two-generations-old hardware; 3+ year old hardware.  I think it is
reasonable to draw the line at compromising the language design or
implementation in the the name of hardware older than that.  Obviously it's
subjective.

Incidentally, I picked 1985 because I've written lots and lots of code for
a fairly typical circa 1985 personal computer architecture, an 8Mhz 68000.
I remember what it was like trying to get compilcated programs like
compilers to run fast enough on such a machine, and in some cases one did
indeed have to resort to nasty hand-coding (or bail-outs to straight
assembly) where higher-level techniques would suffice for faster machines.
The Inform compiler looks a lot like a compiler written for that kind of
machine to me.  And I don't think it makes sense to make that kind of
compromise; to make the language and its implementation ad hoc and
immutable for the sake of supporting my poor old Atari ST, which deserves
to rest in peace.

(On the other hand, I mentioned the Atari 800 flippantly.  It's a salient
point, though, that one of Inform's inviolable implicit goals is to compile
binaries that will run on Atari 800's and Apple ]['s.  This is a cool
thing, but once again I don't think it's worth making such great
compromises for.  In other words, the Z-Machine as target architecture is
both the coolest and the worst choice Graham made for Inform. It makes the
language design much ickier than it might otherwise be.)

>One of the truly dumb things that developers often do is to always use the
>latest kit.

Well, just so you don't hate me, I swear I only gave up my 486 a few months
ago.  I wrote much of WorldClass and Legend on a 486, waiting 30 seconds or
so for compiles.  No big deal.  I wrote UU2 on said Atari ST, enduring
glacial (and, thanks to a nasty TADS v1 lexer bug, sometimes infinite)
compile times.

>[...] and that really neat trick that you stuffed in for some bell or
>whistle may take enough cycles that for the customers your pride and joy
>moves like a slug on valium.

I'm certainly not ignorant of this, having "run" Windows 95 on my 486 box.
The flip side of the coin, however, is that faster machines provide
opportunities to make programs better.  Going from an Atari 800 to an Atari
ST meant that I could start writing programs in C instead of assembly.  You
could say I paid a huge price for that; back when I only had floppy drives
it took 15 minutes to compile a 15,000 line C program.  But C let me write
more sophisticated programs in less time than I could have in assembly,
because for nontrivial tasks C was a better tool.

Likewise, the transition from an Atari ST to a Pentium makes even better
tools, like Scheme, ML, and Prolog feasible.  It seems crazy to me to cling
to the C compiler, especially for a narrow, low-performance domain like
text-based IF.

I'll tell you something else, too.  You shouldn't need to wait for compiles
any more.  Your IF language should support interpreted and (VM-) compiled
execution, so you can test programs without a compile-link-test-crash-edit
cycle.  You should be able to interrupt your running IF program, change a
variable -- heck, define a new function and test it out on a few boundary
cases -- and restart it given the new context.  That will do vastly more to
reduce development times than making ever-faster compilers for C-like
languages.

Dave Baggett
__
dmb@ai.mit.edu
"Mr. Price: Please don't try to make things nice! The wrong notes are *right*."
--- Charles Ives (note to copyist on the autograph score of The Fourth of July)


From mattack@area.com Sun Dec 29 21:51:33 MET 1996
Article: 20855 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news01.sunet.se!sunic!02-newsfeed.univie.ac.at!03-newsfeed.univie.ac.at!sbg.ac.at!cosy.sbg.ac.at!voskovec.radio.cz!www.nntp.primenet.com!nntp.primenet.com!enews.sgi.com!news.sgi.com!news.spies.com!not-for-mail
From: mattack@area.com (Matt Ackeret)
Newsgroups: rec.arts.int-fiction
Subject: Re: Fast lexers/slow hardware/better environments (Re: Questionable ...)
Date: 25 Dec 1996 05:52:52 GMT
Organization: Area Systems, Mountain View, California
Lines: 24
Message-ID: <59qffk$eei@news.spies.com>
References: <59g6p8$grj@bartlet.df.lth.se> <59k5a6$597@life.ai.mit.edu> <n40CB352E@wildebst.demon.co.uk> <59obcq$t2j@life.ai.mit.edu>
NNTP-Posting-Host: access.class-a.net
X-Newsposter: Pnews 4.0-test46 (31 Oct 96)

In article <59obcq$t2j@life.ai.mit.edu>, David Baggett <dmb@ai.mit.edu> wrote:
>(On the other hand, I mentioned the Atari 800 flippantly.  It's a salient
>point, though, that one of Inform's inviolable implicit goals is to compile
>binaries that will run on Atari 800's and Apple ]['s.  This is a cool
>thing, but once again I don't think it's worth making such great
>compromises for.  In other words, the Z-Machine as target architecture is
>both the coolest and the worst choice Graham made for Inform. It makes the
>language design much ickier than it might otherwise be.)

Oh wow, are you hypothesizing different backends for the same front-end 
Inform compiler?  That is, the same source language compiling into Zcode or
TADS code or some other virtual machine [such as Java.. dunno if that would
make any sense at all]?

As I told David in e-mail, it sounds to me like Inform isn't the language 
for him.  I mean, it seems to me that the whole reason for the existance of
Inform is to compile *into the existing Zmachine*.  Graham may state that
I'm wrong.  I don't even program in Inform, but with people talking about
the inability to create objects at runtime and other "arbitrary" limitations,
it seems to me that the reason people "put up with" this sort of stuff is
because they *want* their game as absolutely portable as possible.  Otherwise
they would use some other more modern game development system.
-- 
mattack@apple.com


From dmb@ai.mit.edu Sun Dec 29 21:51:34 MET 1996
Article: 20867 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news00.sunet.se!sunic!mn6.swip.net!plug.news.pipex.net!pipex!oleane!in2p3.fr!univ-lyon1.fr!howland.erols.net!bloom-beacon.mit.edu!ai-lab!lf!dmb
From: dmb@lf.ai.mit.edu (David Baggett)
Newsgroups: rec.arts.int-fiction
Subject: Re: Fast lexers/slow hardware/better environments (Re: Questionable ...)
Date: 25 Dec 1996 22:54:23 GMT
Organization: MIT Artificial Intelligence Lab
Lines: 45
Message-ID: <59sbav$5tc@life.ai.mit.edu>
References: <59g6p8$grj@bartlet.df.lth.se> <n40CB352E@wildebst.demon.co.uk> <59obcq$t2j@life.ai.mit.edu> <59qffk$eei@news.spies.com>
Reply-To: dmb@ai.mit.edu
NNTP-Posting-Host: lf.ai.mit.edu

In article <59qffk$eei@news.spies.com>, Matt Ackeret <mattack@area.com> wrote:

>Oh wow, are you hypothesizing different backends for the same front-end 
>Inform compiler?  That is, the same source language compiling into Zcode or
>TADS code or some other virtual machine [such as Java.. dunno if that would
>make any sense at all]?

It wouldn't make sense for Inform (and this is part of my point), because
Inform's design is intimately tied to weird Z-Machine restrictions.

A better choice would have been to chuck the Z-Machine and design a new
virtual machine.  That's what Mike Roberts did, and it does show when you
compare the design of the two languages.  Hindsight is 20/20, of course.

>As I told David in e-mail, it sounds to me like Inform isn't the language
>for him.  I mean, it seems to me that the whole reason for the existance of
>Inform is to compile *into the existing Zmachine*.

Well, I guess you're right: I don't use Inform, and never will as long as
it looks anything remotely like Inform 5 or 6.

But the point of the whole tirade wasn't to show how bad a choice it would
be for me, but to dispute claims about the wonderfulness of Inform's design
and implementation (which are more frequent, and less often challenged now
that Inform is the undisputed king of the IF hill).

Inform fans (including, rarely, Graham himeslf) have not been claiming that
their favorite langauge is superb "given that it's crippled and at times
bizarre so as to support the Z-Machine and old hardware" -- there are never
any such qualifications.  And I firmly believe that targeting the old and
creaky Z-Machine sent Inform down a language design rathole which we could
escape with a new VM and an old and creaky but very highly evolved language
(lisp).

But again, that doesn't mean Inform and TADS aren't worth using.  They're
the best things out there (modulo Hugo and Alan, which I haven't written
any code in, and can't can't practically compare).  And there's no doubt
that you can write high-quality games in TADS and Inform, because there are
examples to prove it.

Dave Baggett
__
dmb@ai.mit.edu
"Mr. Price: Please don't try to make things nice! The wrong notes are *right*."
--- Charles Ives (note to copyist on the autograph score of The Fourth of July)


From graham@gnelson.demon.co.uk Sun Dec 29 21:51:34 MET 1996
Article: 20911 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news99.sunet.se!newsfeed.luth.se!news.luth.se!eru.mt.luth.se!news-stkh.gsl.net!news.gsl.net!news-lond.gsl.net!news.gsl.net!dispatch.news.demon.net!demon!gnelson.demon.co.uk!graham
From: Graham Nelson <graham@gnelson.demon.co.uk>
Newsgroups: rec.arts.int-fiction
Subject: Re: Fast lexers/slow hardware/better environments (Re: Questionable ...)
Date: Sat, 28 Dec 1996 22:31:55 +0000 (GMT)
Organization: none
Lines: 67
Message-ID: <ant282255313M+4%@gnelson.demon.co.uk>
References: <59g6p8$grj@bartlet.df.lth.se> <n40CB352E@wildebst.demon.co.uk> <59obcq$t2j@life.ai.mit.edu> <59qffk$eei@news.spies.com> <59sbav$5tc@life.ai.mit.edu> 
NNTP-Posting-Host: gnelson.demon.co.uk
X-NNTP-Posting-Host: gnelson.demon.co.uk
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; CHARSET=ISO-8859-1
X-Newsreader: ANT RISCOS Marcel [ver 1.09]

In article <59sbav$5tc@life.ai.mit.edu>, David Baggett
<URL:mailto:dmb@lf.ai.mit.edu> wrote:
> 
> In article <59qffk$eei@news.spies.com>, Matt Ackeret <mattack@area.com> wrote:
> 
> >Oh wow, are you hypothesizing different backends for the same front-end 
> >Inform compiler?  That is, the same source language compiling into Zcode or
> >TADS code or some other virtual machine [such as Java.. dunno if that would
> >make any sense at all]?
> 
> It wouldn't make sense for Inform (and this is part of my point), because
> Inform's design is intimately tied to weird Z-Machine restrictions.

I dispute this, and certainly the implication that Inform
is in some way overwhelmingly handicapped.  Z-machine quirks
are responsible for a number of oddities in the marginalia of
Inform, yes.

> A better choice would have been to chuck the Z-Machine and design a new
> virtual machine.  That's what Mike Roberts did, and it does show when you
> compare the design of the two languages.  Hindsight is 20/20, of course.

And opinions vary (although in some respects I agree with
yours: I rather like TADS as an exercise in computer science,
though I have less enthusiasm for its standard library).

> >As I told David in e-mail, it sounds to me like Inform isn't the language
> >for him.  I mean, it seems to me that the whole reason for the existance of
> >Inform is to compile *into the existing Zmachine*.
> 
> Well, I guess you're right: I don't use Inform, and never will as long as
> it looks anything remotely like Inform 5 or 6.
> 
> But the point of the whole tirade wasn't to show how bad a choice it would
> be for me, but to dispute claims about the wonderfulness of Inform's design
> and implementation (which are more frequent, and less often challenged now
> that Inform is the undisputed king of the IF hill).

May I say once more that critical appraisal is an accolade,
not an attack, and (not that my opinion on the subject should
matter) I welcome it.

> Inform fans (including, rarely, Graham himeslf) have not been claiming that
> their favorite langauge is superb "given that it's crippled and at times
> bizarre so as to support the Z-Machine and old hardware" -- there are never
> any such qualifications.  And I firmly believe that targeting the old and
> creaky Z-Machine sent Inform down a language design rathole which we could
> escape with a new VM and an old and creaky but very highly evolved language
> (lisp).

Firstly: I disagree as to Inform's disfigurement and bizarreness.
For a cripple, it does get about.

Secondly, the implication that a LISP-like language is incompatible
with the Z-machine is wrong.  Infocom's own language, ZIL, was
essentially LISP (and some Z-machine features reflect that: for
instance the order in which opcodes are processed is designed to
make a LISP syntax analyser's job easier).  And I have to say, the
bits of ZIL I've seen... have, well, let's call it "charm" if we're
going to avoid accusations of bizarreness.  The most frequent
criticism of Inform has been that it has a steep learning curve.
To someone who's never programmed before, ZIL (or LISP) would be
a hard furrow to plough.

-- 
Graham Nelson | graham@gnelson.demon.co.uk | Oxford, United Kingdom



From graham@gnelson.demon.co.uk Sun Dec 29 21:51:35 MET 1996
Article: 20910 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news99.sunet.se!newsfeed.luth.se!news.luth.se!eru.mt.luth.se!news-stkh.gsl.net!news.gsl.net!news-lond.gsl.net!news.gsl.net!netcom.net.uk!dispatch.news.demon.net!demon!gnelson.demon.co.uk!graham
From: Graham Nelson <graham@gnelson.demon.co.uk>
Newsgroups: rec.arts.int-fiction
Subject: Re: Fast lexers/slow hardware/better environments (Re: Questionable ...)
Date: Sat, 28 Dec 1996 22:17:08 +0000 (GMT)
Organization: none
Lines: 89
Message-ID: <ant282208bc8M+4%@gnelson.demon.co.uk>
References: <59g6p8$grj@bartlet.df.lth.se> <59k5a6$597@life.ai.mit.edu> <n40CB352E@wildebst.demon.co.uk> <59obcq$t2j@life.ai.mit.edu> <59qffk$eei@news.spies.com> 
NNTP-Posting-Host: gnelson.demon.co.uk
X-NNTP-Posting-Host: gnelson.demon.co.uk
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; CHARSET=ISO-8859-1
X-Newsreader: ANT RISCOS Marcel [ver 1.09]

In article <59qffk$eei@news.spies.com>, Matt Ackeret
<URL:mailto:mattack@area.com> wrote:
> 
> In article <59obcq$t2j@life.ai.mit.edu>, David Baggett <dmb@ai.mit.edu> wrote:
> >(On the other hand, I mentioned the Atari 800 flippantly.  It's a salient
> >point, though, that one of Inform's inviolable implicit goals is to compile
> >binaries that will run on Atari 800's and Apple ]['s.  This is a cool
> >thing, but once again I don't think it's worth making such great
> >compromises for.  In other words, the Z-Machine as target architecture is
> >both the coolest and the worst choice Graham made for Inform. It makes the
> >language design much ickier than it might otherwise be.)

I don't think it necessarily does make the language design
"ickier", but it has resulted in some historical accidents,
and I think I probably would prefer run-time data typing
and a couple of other tweaks.  Otherwise, I continue to
think the Z-machine is an excellent design, and the recent
proliferation of Z-machine games (which are being played
on machines where other design systems have never reached:
people _do_ play on hand-held computers, for instance)
bears this out.

Have any Inform authors had to seriously compromise their
games because of restrictions brought on by the Z-machine?
I haven't, except when working some years ago for restricted
subsets of the Z-machine.

> Oh wow, are you hypothesizing different backends for the same front-end 
> Inform compiler?  That is, the same source language compiling into Zcode or
> TADS code or some other virtual machine [such as Java.. dunno if that would
> make any sense at all]?

It already compiles to six different virtual machines, V3 to
V8, (but that's just my little joke).  I have very occasionally
wondered if an option for "output as ANSI C" would be worth the
trouble.  But I don't think it would add any new portability
(quite the reverse, actually).

As for Java, surely better to wait for the completion of the
Java Z-machine interpreter?

> As I told David in e-mail, it sounds to me like Inform isn't the language 
> for him.  I mean, it seems to me that the whole reason for the existance of
> Inform is to compile *into the existing Zmachine*.  Graham may state that
> I'm wrong.

Ermm... well, I like to think that the purpose of Inform is to
make easier the creation of decent-quality games which are as
portable as humanly possible.  Given the latter requirement,
some kind of virtual machine has to be used.  I continue to
think that the Z-machine is a good choice, even if I did get it
"off the peg" rather than tailor-make it.

The aim is certainly not to worship the Z-machine!

>             I don't even program in Inform, but with people talking about
> the inability to create objects at runtime and other "arbitrary" limitations,
> it seems to me that the reason people "put up with" this sort of stuff is
> because they *want* their game as absolutely portable as possible.  Otherwise
> they would use some other more modern game development system.

Inform is fairly modern.  Only Hugo, which is (I think it's fair
to say) strongly influenced by Inform, post-dates it as a serious
design system.  And actually you can create objects at runtime.

To get back to what Dave was saying, I'm interested by his
full post (on automatically-generated lexical scanners).  I shall
bear that in mind should I write a compiler again.  I continue to
distrust automatically generated code as potentially unsafe (how
sure am I that it will work?) and potentially awkward to maintain,
but Dave's performance statistics suggest that there's no longer
a grave handicap in using them.

As far as I know, the lexical scanning phase of Inform 6 has
never gone wrong.  (And there are several good reasons not to
use a standard lexical scanner on Inform: it would slow down
the syntax analyser marginally, for instance.)

On small computers vs the sort Dave has in his office, well now,
a pretty large number of Acorn users are running Inform on
A3000 series Archimedes: 1M or 2M of RAM and a processor which
runs at about 1/60th the speed of the one in my own Acorn.  And
why shouldn't they?  It may be fair enough to expect commercial
users of a compiler to go and buy the latest model computer
every other year, but Inform isn't only for that kind of people.

-- 
Graham Nelson | graham@gnelson.demon.co.uk | Oxford, United Kingdom



From bnewell@gobblernet.lod.com Sun Dec 29 21:51:36 MET 1996
Article: 20856 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news00.sunet.se!sunic!mn6.swip.net!plug.news.pipex.net!pipex!multicast.news.pipex.net!tank.news.pipex.net!pipex!www.nntp.primenet.com!nntp.primenet.com!feed1.news.erols.com!news.alt.net!newspost1.alt.net!gobblernet.lod.com!bnewell
From: bnewell@gobblernet.lod.com (Bob Newell)
Newsgroups: rec.arts.int-fiction
Subject: Re: Questionable Languages & Compilers
Date: Tue, 24 Dec 1996 16:44:14 GMT
Organization: GobblerNet BBS 701 222 0429
Lines: 19
Message-ID: <E2xFtq.CxI.2.GobblerN@gobblernet.lod.com>
References: <59g6p8$grj@bartlet.df.lth.se> <59h6sq$6nc@life.ai.mit.edu> <ant221443d07M+4%@gnelson.demon.co.uk> <59k5a6$597@life.ai.mit.edu> <n40CB352E@wildebst.demon.co.uk>
X-Newsreader: TIN [UNIX 1.3 BETA-950824-color PL0]

Rhodri James (rhodri@wildebst.demon.co.uk) wrote:
: Circa 1985+.  Glibble.  Dave, you must surely have a reasonable idea that
: anyone comparing 1985 machines with 1996 machines isn't even using an
<etc>: 
: One of the truly dumb things that developers often do is to always use the
: latest kit.  It may be a breeze to do your work on, but a great majority of
: the customers have positively ancient machines (say, two years old), and

Point well taken; I often object to this sort of behavior (often driven 
by greedy vendors such as Micro$oft).  But there is a limit, too.  For 
instance, just this year I've given up supporting Inform on sub-386 
machines (even though I own one and love it).  There *are* reasonable 
bottom limits, and now, when you can buy a used low-end 386 for pocket 
change, there seems little point in compiler compatibility back to the 8088.
(Although run-time compatibility is much different... it seems nice to be 
able to play games on a Psion even if you can't build 'em there...)

Bob



From marnix@worldonline.nl Sun Dec 29 21:51:37 MET 1996
Article: 20826 of rec.arts.int-fiction
Path: news.lth.se!solace!news.ecn.uoknor.edu!news.wildstar.net!newsfeed.direct.ca!portc01.blue.aol.com!cliffs.rs.itd.umich.edu!howland.erols.net!surfnet.nl!news.unisource.nl!news.worldonline.nl!usenet
From: marnix@worldonline.nl (Marnix Klooster)
Newsgroups: rec.arts.int-fiction
Subject: Re: Questionable Languages & Compilers
Date: Mon, 23 Dec 1996 19:58:28 GMT
Organization: World Online
Lines: 25
Message-ID: <32be8655.1681309@news.worldonline.nl>
References: <32b72f97@beachyhd.demon.co.uk> <59g6p8$grj@bartlet.df.lth.se> <59h6sq$6nc@life.ai.mit.edu> <ant221443d07M+4%@gnelson.demon.co.uk> <59k5a6$597@life.ai.mit.edu>
NNTP-Posting-Host: drdt1-p127.worldonline.nl
X-Newsreader: Forte Free Agent 1.1/16.230

dmb@lf.ai.mit.edu (David Baggett) wrote:

> And in any case, machine-generated lexical analyzers *are* very competitive
> with hand-coded alternatives.  Get a copy of RE2C or Wuu Yang's paper on
> the lookahead problem.  (AltaVista will find both.)  It basically comes
> down to figuring on how many characters of lookahead you need to tokenize
> in the worst case, and managing the lookahead buffer wisely in the
> generated code.

If in need to generate efficient (better than yacc), general
(accepts almost any grammar), and simple (uses BNF notation)
parsers in C, use PRECC (or PRECCX).  Free, written by Peter
Breuer (sp?), current version 2.44, runs with any ANSI C
compiler.  (Sorry, I've got no URL.)

> Dave Baggett

Groetjes,

 <><

Marnix
--
Marnix Klooster        |  If you reply to this post,
marnix@worldonline.nl  |  please send me an e-mail copy.


From nr@mamba.cs.Virginia.EDU Sun Dec 29 21:51:38 MET 1996
Article: 20882 of rec.arts.int-fiction
Newsgroups: rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news99.sunet.se!nntp-oslo.UNINETT.no!nntp-trd.UNINETT.no!nntp.uio.no!www.nntp.primenet.com!nntp.primenet.com!feed1.news.erols.com!cwix!uunet!in2.uu.net!192.35.48.11!hearst.acc.Virginia.EDU!murdoch!not-for-mail
From: nr@mamba.cs.Virginia.EDU (Norman Ramsey)
Subject: Re: Questionable Languages & Compilers
X-Nntp-Posting-Host: mamba-fo.cs.virginia.edu
Message-ID: <59uj4v$i2@mamba.cs.Virginia.EDU>
Sender: usenet@murdoch.acc.Virginia.EDU
Organization: University of Virginia
References: <32b72f97@beachyhd.demon.co.uk> <59h6sq$6nc@life.ai.mit.edu> <ant221443d07M+4%@gnelson.demon.co.uk> <59k5a6$597@life.ai.mit.edu>
Date: Thu, 26 Dec 1996 19:19:59 GMT
Lines: 49

In article <59k5a6$597@life.ai.mit.edu>, David Baggett <dmb@ai.mit.edu> wrote:
>In article <ant221443d07M+4%@gnelson.demon.co.uk>,
>Graham Nelson  <graham@gnelson.demon.co.uk> wrote:
>
>>I wonder if you appreciate how poorly the parsers produced by
>>tools such as "lex" and "yacc" perform?  They generally work
>>(provided the language design makes compromises so as to be
>>expressible to "lex" and "yacc" -- which would worsen Inform
>>in my view) but impose speed penalties of up to a factor of 2.
>
>The idea that it's reasonable to use a tremendously error-prone method to
>solve a problem for which trivial tools exists, simply to save time on
>lexical analysis -- a small proportion of the entire compilation task -- is
>totally misguided, in my opinion.
>
>Suppose that the best machine-generated lexical analyzer *were* twice as
>slow as your hand-coded one.  How much longer should it take to compile
>code?  Fractionally longer, unless your compiler's doing basically no work
>to generate and optimize code.

Actually, measurements show that in many compilers, lexical analyis is
the single most time-consuming phase, primarily because it is the only
one in which each input character is touched.  In a compiler like
Inform, in which global optimization is (probably) unnecessary, there
is little static semantic checking, and the machine target is
essentially quads, I find it unsurprising that the cost of lexical
analysis is significant.

Hanson and Fraser's lcc compiler is twice as fast as gcc in part
becausae of clever lexical analysis.  People writing new code should
look into the re2c tool (described in LOPLAS around 1994, I think),
which embodies the work of a very clever person who figured out how to
apply Hanson and Fraser's tricks automatically.  I've got to look up
the name, beause I keep recommending the work, and the people involved
should get credit.  Waite's paper in SP&E entitled `The Cost of
Lexical Analysis' is also a good read, adn I think there are a couple
of SP&E papers on parsing as well.

It's my opinion that *compilation* speed (as opposed to speed of the
generated code) doesn't get enough attention from the
programming-language community.  

N

P.S. LOPLAS --> ACM Letters on Programming Languages and Systems
     SP&E --> Software---Practice & Experience
-- 
Norman Ramsey
http://www.cs.virginia.edu/~nr


From erkyrath@netcom.com Sun Dec 29 21:51:39 MET 1996
Article: 20788 of rec.arts.int-fiction
Newsgroups: rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news00.sunet.se!sunic!mn6.swip.net!plug.news.pipex.net!pipex!oleane!pasteur.fr!univ-lyon1.fr!howland.erols.net!news-peer.gsl.net!news.gsl.net!ix.netcom.com!netcom.com!erkyrath
From: erkyrath@netcom.com (Andrew Plotkin)
Subject: Re: Questionable Languages & Compilers
Message-ID: <erkyrathE2svyK.Hur@netcom.com>
Organization: NETCOM On-line Communication Services (408 261-4700 guest)
X-Newsreader: TIN [version 1.2 PL1]
References: <32b72f97@beachyhd.demon.co.uk> <1996Dec19.165314.307@wcc.govt.nz> <59cimp$2hf@life.ai.mit.edu> <erkyrathE2q30q.48I@netcom.com> <59fmnj$krf@life.ai.mit.edu>
Date: Sun, 22 Dec 1996 05:44:44 GMT
Lines: 66
Sender: erkyrath@netcom3.netcom.com

David Baggett (dmb@lf.ai.mit.edu) wrote:
> In article <erkyrathE2q30q.48I@netcom.com>,
> Andrew Plotkin <erkyrath@netcom.com> wrote:

> >This becomes a sore point, because there *is* a difference between Graham 
> >and his spare time (on one finger), and MetroWerks (on the rest of the 
> >platoon's appendages).

> Is it also a sore point that we're writing IF games in our spare time, so
> that when someone compares our works to "real" literature, it's not fair?
> I say that's garbage.

Writing *is* different. Everyone who writes does it in their spare time 
(except a small minority, just about all of whom have been doing it for a 
while) and there are no programming textbooks to study. No backlog of 
technical info which applies to the field. There's just books (of which I 
read as many as anyone, give or take) and stuff like writers' workshops 
and composition classes, which are known to be optional.

Writing is also a singleton sport, which was my point about Metrowerks. For 
most kinds of programs, you *can* do twice as much by hiring twice as 
many programmers. (Up to obvious limits.) My Matrowerks C compiler has 
buttloads of nice features -- source-level debugger, syntax-based 
coloring in the editor, pop-up lists of functions, lots of libraries, 
kept up to date with Mac system software, etc, etc. One person couldn't 
do that, not at that rate. Kernighan and Ritchie didn't do it.

Whereas a book is written by one person staring at enough blank paper for 
enough time.

> And if it's a sore point, why claims like this:

>     "But Inform, though it is certainly an amateur piece of work,
>     is a quite high-performance compiler by comparison with many,
>     perhaps even most, professional works."

Well, I didn't say that. Now that you've brought up all these issues like 
optimization, I'm wavering on it (mostly because I don't feel like 
re-reading the Inform tech manual chapters on optimization, so I am, to 
coin a phrase, ill-informed.)

> I didn't say that lack of optimization was a major problem.  I said it was
> an indication of a non-"professional" compiler.

Well, but I agree with you on that. :-) I'm saying I don't expect as much 
>from  Graham as I do from my commercial compiler/IDE.

>  If you want an example of
> a major problem, how about this: why are we writing text-based interactive
> fiction in variants of a low-level systems programming language?  This is
> *not* a systems programming task; in fact it's at nearly the exact opposite
> side of the spectrum.  (This doesn't just apply to Inform, of course.)

Oop, different thread. The choice of design language features will be 
dealt with next post. I *don't* think it's fair to criticize Graham (or 
Mike Roberts) for their choice of tasks to tackle. Especially since, at 
least for *me*, their tackles have been very successful, and enabled me 
to do exactly the tasks I want to do. I'm a classic (ok, really ANSI) C 
recidivist.

--Z

-- 

"And Aholibamah bare Jeush, and Jaalam, and Korah: these were the
borogoves..."


From john@ucc.gu.uwa.edu.au Sun Dec 29 21:51:39 MET 1996
Article: 20790 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news00.sunet.se!sunic!mn6.swip.net!plug.news.pipex.net!pipex!hole.news.pipex.net!pipex!bowl.news.pipex.net!pipex!bt!btnet-feed2!unlisys!fu-berlin.de!news-ber1.dfn.de!news-fra1.dfn.de!news-kar1.dfn.de!news.nacamar.de!www.nntp.primenet.com!nntp.primenet.com!feed1.news.erols.com!news.ecn.uoknor.edu!munnari.OZ.AU!news.uwa.edu.au!john
From: john@ucc.gu.uwa.edu.au (John "West" McKenna)
Newsgroups: rec.arts.int-fiction
Subject: Re: Questionable Languages & Compilers
Date: 22 Dec 1996 09:21:12 GMT
Organization: The University of Western Australia
Lines: 9
Message-ID: <59iui8$8fd$1@enyo.uwa.edu.au>
References: <32b72f97@beachyhd.demon.co.uk> <1996Dec19.165314.307@wcc.govt.nz> <59cimp$2hf@life.ai.mit.edu> <erkyrathE2q30q.48I@netcom.com> <59fmnj$krf@life.ai.mit.edu> <erkyrathE2svyK.Hur@netcom.com>
NNTP-Posting-Host: starfish.ucc.gu.uwa.edu.au

erkyrath@netcom.com (Andrew Plotkin) writes:

>Whereas a book is written by one person staring at enough blank paper for 
>enough time.

You mean writing is really that easy?  Just stare at some paper for a
while?  I think I chose the wrong job.

John :-) West


From jota@laraby.tiac.net Sun Dec 29 21:51:40 MET 1996
Article: 20816 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news01.sunet.se!sunic!02-newsfeed.univie.ac.at!01-newsfeed.univie.ac.at!voskovec.radio.cz!news-feed.inet.tele.dk!arclight.uoregon.edu!feed1.news.erols.com!worldnet.att.net!uunet!in2.uu.net!199.0.65.182!news-in.tiac.net!posterchild!laraby.tiac.net!jota
From: jota@laraby.tiac.net (Admiral Jota)
Newsgroups: rec.arts.int-fiction
Subject: Re: Questionable Languages & Compilers
Date: 22 Dec 96 11:39:55 GMT
Organization: The Internet Access Company, Inc.
Lines: 17
Message-ID: <jota.851254795@laraby.tiac.net>
References: <32b72f97@beachyhd.demon.co.uk> <1996Dec19.165314.307@wcc.govt.nz> <59cimp$2hf@life.ai.mit.edu> <erkyrathE2q30q.48I@netcom.com> <59fmnj$krf@life.ai.mit.edu> <erkyrathE2svyK.Hur@netcom.com> <59iui8$8fd$1@enyo.uwa.edu.au>
NNTP-Posting-Host: laraby.tiac.net
X-Newsreader: NN version 6.5.0 #1 (NOV)

john@ucc.gu.uwa.edu.au (John "West" McKenna) writes:
>erkyrath@netcom.com (Andrew Plotkin) writes:

>>Whereas a book is written by one person staring at enough blank paper for 
>>enough time.

>You mean writing is really that easy?  Just stare at some paper for a
>while?  I think I chose the wrong job.

Easy? Appearantly you don't know how long 'enough time' can become, if 
you're not an expert at staring at blank paper :)

--
                         /<-= -=-=- -=  Admiral Jota  =- -=-=- =->\
                     __/><-=-  http://www.tiac.net/users/jota/  =-><\__
                       \><-= jota@mv.mv.com  --  Finger for PGP =-></
                         \<-=- -=  -=-  -=  -==-  =-  -=-  =- -=->/


From dmb@ai.mit.edu Sun Dec 29 21:51:41 MET 1996
Article: 20812 of rec.arts.int-fiction
Path: news.lth.se!solace!eru.mt.luth.se!www.nntp.primenet.com!nntp.primenet.com!news-peer.gsl.net!news.gsl.net!bloom-beacon.mit.edu!ai-lab!lf!dmb
From: dmb@lf.ai.mit.edu (David Baggett)
Newsgroups: rec.arts.int-fiction
Subject: Re: Questionable Languages & Compilers
Date: 22 Dec 1996 21:50:02 GMT
Organization: MIT Artificial Intelligence Lab
Lines: 47
Message-ID: <59kaea$6t7@life.ai.mit.edu>
References: <32b72f97@beachyhd.demon.co.uk> <erkyrathE2q30q.48I@netcom.com> <59fmnj$krf@life.ai.mit.edu> <erkyrathE2svyK.Hur@netcom.com>
Reply-To: dmb@ai.mit.edu
NNTP-Posting-Host: lf.ai.mit.edu

In article <erkyrathE2svyK.Hur@netcom.com>,
Andrew Plotkin <erkyrath@netcom.com> wrote:

>I *don't* think it's fair to criticize Graham (or Mike Roberts) for their
>choice of tasks to tackle.

I think it's fair, but (obviously) not a politcally wise move. :) And I
guess I should reiterate that I'm not saying we should throw TADS or Inform
in the wastebasket, or even that they are not impressive pieces of work.
They both are great achievements.  Few things are as difficult as writing
and maintaing a compiler that many people rely on.

If anything, I'm trying to raise the bar rather than beat on Graham and
Mike.  I question anyone's claims that these tools are as sophisticated and
robust (in many senses) as, say Allegro Common Lisp, or GCC, which are
"professioal-quality" compilers written and maintained by a small number of
people, either for free or for not a lot of money.

Language design and implementation are *difficult*.  I would just hate to
think that, once they've used Inform or TADS, people will:

  - believe these languages are superbly designed and implemented
    compared to other working systems that are out there (not for IF,
    necessarily, but general-purpose languages with free and portable
    virtual machine implementations)

  - take offense to criticisms of the design or implmentation choices
    made by these languages' designers and go into flame mode

  - refuse to consider promising alternatives (like Phil's work on
    Prolog)

Can I also remind everyone that the language originally used to write
Z-Machine interactive fiction was closer to Scheme than Prolog, ML, or C,
and that more high-quality games have been written in Zil (a MDL variant)
than in any other language?

If you're curious, you can get a glimpse of MDL code and some of the things
it added to the Lisp world in Steele and Gabriel's "The Evolution of Lisp"
(an ACM History of Programming Lnagugaes publication available on the web
somewhere).

Dave Baggett
__
dmb@ai.mit.edu
"Mr. Price: Please don't try to make things nice! The wrong notes are *right*."
--- Charles Ives (note to copyist on the autograph score of The Fourth of July)


From graham@gnelson.demon.co.uk Sun Dec 29 21:51:42 MET 1996
Article: 20803 of rec.arts.int-fiction
Path: news.lth.se!solace!mn6.swip.net!newsfeed.sunet.se!news01.sunet.se!sunic!02-newsfeed.univie.ac.at!01-newsfeed.univie.ac.at!Austria.EU.net!EU.net!enews.sgi.com!www.nntp.primenet.com!nntp.primenet.com!dispatch.news.demon.net!demon!gnelson.demon.co.uk!graham
From: Graham Nelson <graham@gnelson.demon.co.uk>
Newsgroups: rec.arts.int-fiction
Subject: Re: Questionable Languages & Compilers
Date: Fri, 20 Dec 1996 23:58:29 +0000 (GMT)
Organization: none
Lines: 81
Message-ID: <ant202329868M+4%@gnelson.demon.co.uk>
References: <32b72f97@beachyhd.demon.co.uk> <1996Dec19.165314.307@wcc.govt.nz> <59cimp$2hf@life.ai.mit.edu> 
NNTP-Posting-Host: gnelson.demon.co.uk
X-NNTP-Posting-Host: gnelson.demon.co.uk
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; CHARSET=ISO-8859-1
X-Newsreader: ANT RISCOS Marcel [ver 1.09]

In article <59cimp$2hf@life.ai.mit.edu>, David Baggett
<URL:mailto:dmb@lf.ai.mit.edu> wrote:
> 
> >In article <32b72f97@beachyhd.demon.co.uk>, <Adam@beachyhd.demon.co.uk> writes:
> 
> >I don't see how Inform can be described as "amateur" at all, to be quite
> >honest..!
> I think Graham simply means he's not getting paid for Inform, which is what
> "amateur" really means.

Quite.  In England it has old-fashioned connotations of gentility,
too (who would be a rude mechanic?).

> And I don't see why it's OK to harshly criticize IF works that people write
> for free, but it's not OK to criticize the tools.

I agree entirely.

> I've spent a great deal of time reading about the subject over the past few
> years, and it's quite clear to me that there are serious problems with
> *all* the existing IF development systems, and that none of them deserves
> anything like a "professional-quality compiler" label.

I think most of the weaknesses in Inform are due to (minor) flaws
in the language design, rather than the compiler itself, at
present.  In some ways I would like to tear up the language design
and reshape some of it, but there's far too much existing code
which would be disrupted.

> One very basic requirement for a "professional quality compiler" is that it
> perform nontrivial optimizations like strength reduction; do any of these
> compilers do that?

Guilty; I don't know what "strength reduction" is.  The Inform
compiler optimises for code size, except for some fiddling around
with "for" loops.  Speed is not as serious an issue with Inform
as it as with TADS (for WorldClass users on low-end machines,
perhaps) -- but I doubt speed is a very serious issue for any
system.  Whereas speed of compilation and amount of memory used
by the compiler are both important to users of this newsgroup,
I believe.  Inform keeps only very local parse trees for both
reasons.

Besides this, optimisation theory is heavily dependent on the
hardware model.  Inform compiles to a machine for which the
standard assumptions (you have many memory cells, but few
registers, etc.; the stack is expensive to use for temporary
storage) do not hold.

> For that matter, have any of the people writing these
> compilers even thumbed through the Dragon Book to see what other people who
> have designed languages and written compilers over the past 50 years have
> done?  This is, in the long run, what we should expect of the tool
> designers...

The Dragon Book is cited at several points in the Inform Technical
Manual, as a convenient reference for shift-reduce parsing, hash
coding (where the Dragon Book has useful pragmatic advice) and
so on.  Other standard algorithms, such as red-black tree balancing,
can also be found in Inform.  The Inform lexer is a hand-coded
improvement on the typical lexer produced by "yacc".  So I think
I can acquit myself on this score.  (In fact, the only part of the
Dragon Book which Inform 6 is not heavily indebted to is the
section on compiling 3-address code to machine code: this is because
the Z-machine essentially runs 3-address code already.)

> I don't mean to be pointlessly critical, and I'm not saying these tools are
> useless (far from it), but if we're going to hold our fiction up to the
> high standards of the literary world, shouldn't we fairly judge the tools
> by the equivalent langauge design and implementation standards?

Yes!  I spent significant amounts of time writing Inform 6 from
scratch, reimplementing the entire compiler, exactly because of
this (resulting in very large speed increases).  I'm only saying
that the image of existing tools as entirely casual programs may
be a trifle unjust.  One doesn't have to be a professional to have
read the basics of the professional literature.

-- 
Graham Nelson | graham@gnelson.demon.co.uk | Oxford, United Kingdom



From russotto@wanda.vf.pond.com Sun Dec 29 21:51:44 MET 1996
Article: 20817 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news01.sunet.se!sunic!02-newsfeed.univie.ac.at!01-newsfeed.univie.ac.at!voskovec.radio.cz!www.nntp.primenet.com!nntp.primenet.com!feed1.news.erols.com!news.magicnet.net!news.sprintlink.net!news-atl-21.sprintlink.net!news.sprintlink.net!news-pull.sprintlink.net!news.sprintlink.net!news-ana-7.sprintlink.net!news.pond.com!wanda.vf.pond.com!not-for-mail
From: russotto@wanda.vf.pond.com (Matthew T. Russotto)
Newsgroups: rec.arts.int-fiction
Subject: Re: Questionable Languages & Compilers
Date: 22 Dec 1996 13:18:08 -0500
Organization: Ghotinet
Lines: 26
Message-ID: <59ju10$3tl@wanda.vf.pond.com>
References: <32b72f97@beachyhd.demon.co.uk> <1996Dec19.165314.307@wcc.govt.nz> <59cimp$2hf@life.ai.mit.edu> <ant202329868M+4%@gnelson.demon.co.uk>
NNTP-Posting-Host: wanda.vf.pond.com

In article <ant202329868M+4%@gnelson.demon.co.uk>,
Graham Nelson  <graham@gnelson.demon.co.uk> wrote:
}In article <59cimp$2hf@life.ai.mit.edu>, David Baggett
}<URL:mailto:dmb@lf.ai.mit.edu> wrote:
}> One very basic requirement for a "professional quality compiler" is that it
}> perform nontrivial optimizations like strength reduction; do any of these
}> compilers do that?
}
}Guilty; I don't know what "strength reduction" is.  

The quickest reference I have to hand defines it as reducing the
computational cost of an operation while providing mathematically
identical results.  

One problem with trying to do this with a compiler for a virtual
machine is that the performance characteristics of the VM aren't
known, and probably vary from implementation to implementation.  On my
PowerMac, for instance, I'll make an educated guess that the time for
any non-I/O operation is roughly proportional to the number of calls
to read_code_byte generated, no matter what the mathematics involved.
On something like a Z-machine on top of a 6502, this won't be the case
as things like 16-bit multiplication take a long time.
-- 
Matthew T. Russotto                                russotto@pond.com
"Extremism in defense of liberty is no vice, and moderation in pursuit
of justice is no virtue." 


From erkyrath@netcom.com Sun Dec 29 21:51:44 MET 1996
Article: 20795 of rec.arts.int-fiction
Newsgroups: rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news99.sunet.se!nntp-oslo.UNINETT.no!nntp-trd.UNINETT.no!Oslo2.Norway.EU.net!Norway.EU.net!nntp.uio.no!www.nntp.primenet.com!nntp.primenet.com!ix.netcom.com!netcom.com!erkyrath
From: erkyrath@netcom.com (Andrew Plotkin)
Subject: Re: Questionable Languages & Compilers
Message-ID: <erkyrathE2suzD.GMJ@netcom.com>
Organization: NETCOM On-line Communication Services (408 261-4700 guest)
X-Newsreader: TIN [version 1.2 PL1]
References: <32b72f97@beachyhd.demon.co.uk> <1996Dec19.165314.307@wcc.govt.nz> <59cimp$2hf@life.ai.mit.edu> <59f5q8$v6l@bartlet.df.lth.se> <59fos3$lmq@life.ai.mit.edu>
Date: Sun, 22 Dec 1996 05:23:37 GMT
Lines: 29
Sender: erkyrath@netcom3.netcom.com

David Baggett (dmb@lf.ai.mit.edu) wrote:
> The point is, we don't pay attention to ill-informed praise or criticism of
> IF works, so why should we treat the tools differently?  As (I believe)
> Gareth said, this isn't Kindergarten.

On the contrary -- ill-informed criticism of IF works provokes the 
biggest flames around here. Not so much specific works, but the 
philosophy of IF authorship (or reasons why there shouldn't be any. 
Philosophy, I mean.) (And, of course, for each such flame there's someone 
who thinks the criticism was *well*-informed.)

I know I've filled your shorts with napalm on the subject in the past, so 
don't look so ingenuous. :-)

I play as nice as I can, but I also like playing shishkebob when I find 
something that deserves it. I don't like to let statements I strongly 
disagree with go by.

As to your other posts, I am very interested by your comments on 
features of IF languages, and will reply in that thread separately. 
Squirm and twist all you like -- you're just not ill-informed enough 
about programming languages to flame. Sorry.

--Z

-- 

"And Aholibamah bare Jeush, and Jaalam, and Korah: these were the
borogoves..."


From erkyrath@netcom.com Sun Dec 29 21:51:45 MET 1996
Article: 20789 of rec.arts.int-fiction
Newsgroups: rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news00.sunet.se!sunic!mn6.swip.net!plug.news.pipex.net!pipex!oleane!pasteur.fr!univ-lyon1.fr!howland.erols.net!worldnet.att.net!ix.netcom.com!netcom.com!erkyrath
From: erkyrath@netcom.com (Andrew Plotkin)
Subject: Re: Questionable Languages & Compilers
Message-ID: <erkyrathE2sy7z.KuH@netcom.com>
Organization: NETCOM On-line Communication Services (408 261-4700 guest)
X-Newsreader: TIN [version 1.2 PL1]
References: <32b72f97@beachyhd.demon.co.uk> <1996Dec19.165314.307@wcc.govt.nz> <59cimp$2hf@life.ai.mit.edu> <32ba50f5.4005680@news.worldonline.nl> <59fnpk$l9c@life.ai.mit.edu>
Date: Sun, 22 Dec 1996 06:33:35 GMT
Lines: 145
Sender: erkyrath@netcom3.netcom.com

David Baggett (dmb@lf.ai.mit.edu) wrote:
> In article <32ba50f5.4005680@news.worldonline.nl>,
> Marnix Klooster <marnix@worldonline.nl> wrote:

> >What features should an IF implementation language have, in your
> >opinion?

> [I sent this note to Marnix, but decided to post it as well, in slightly
> edited form.]

> It's not so much features; if anything, it's that these languages have too
> many features that ought to be in libraries, not hard-wired into the
> language.  As a consequence, the features are not very extensible, and you
> have to spend lots of time learning special, bizarre syntax to be able to
> use them or read other people's code.

I dance around, sprinkling saffron and holy oil upon your brow, as you 
utter these holy words.

> My feeling is that a language should provide only the primitives you need,
> and that everything else should be defined in terms of those primitives.
> The designer should ensure that these primitves can be combined in such a
> way that a compiler can perform useful optimizations, and the compiler
> writer should ensure that the compiler takes advantage of the good design.
> Neither of these things is by any means easy, which is why so many people
> who "roll their own" languages screw them up.

> As I've said before, 

...around the time I was trying to decide to do for the competition, for 
example...

> I think Scheme is a really good base language to build
> an IF system around.  It has very few primitives, but the primitives are
> extremely powerful in combination.  There are well-known optimizations that
> work well on Scheme code.  And you can do things in Scheme that you can't
> do easily in most other languages.  Here are two examples:

> 1) 1st class functions.

> 2) Continuations.

[explanations snipped]

I certainly like features like these in languages. (SML, which I whine 
for occasionally without doing anything about it, is pretty much made of 
the idea of first-class functions, together with the Sexiest Type System 
in the Universe. On the other hand, I still can't think in continuations. 
Maybe someday I'll figure them out.) 

However, on the *third* hand, Inform (being C-like) supports function 
pointers (in its own icky typeless way), so you can do many of the tricks 
you want to use first-class functions for. You could easily write an 
iterator function like you describe, which takes (among other arguments) 
a function pointer. The compiler doesn't keep you type-safe, but we C 
recidivists know how to be careful, so we *do* get features like this 
when we want them.

And the Z-machine has an exception mechanism which, unless I'm very much 
mistaken, is essentially limited (one-use) continuations. (I've seen 
sketchy Scheme implementations which had limited continuations like 
this. They suffice for the loop-bailing example you gave.) 

(None of this helps programming newbies, however.)

> These are the kinds of features that are *good* to put in a language.
> They're powerful, very general-purpose, and (though it's not obvious at
> first) combine very efficiently, and without obscuring optimzation
> opportunities.

> If these examples seem esoteric, well, remember this: programming languages
> train you not to want power they don't provide.  Once you're used to
> working with things like 1st class functions and continuations, you can't
> stand writing code without them.

Now I will give the argument for the defense: C is, uh, not that bad. 
I've used a bunch of languages, including Scheme, SML, C, C++, and Java. 
(Java is an awful compromise of a language, BTW. I *really* miss 
first-class functions when I use it. I understand they're being hacked 
into the next version, which is good, I guess, except that it means that 
Java is firmly on the path to becoming an awful bloated monstrosity of a 
language -- like C++ is.)

Sorry -- tangent. The point is, I always wind up back at C. It's dumb
enough that I can get it to do what I want. If I need it to iterate on an
arbitrary function, I hack that together -- it's neither the hard part of
my programming day nor a major source of bugs. If I need a small amount 
of OO behavior, I hack *that* together. If I need a large amount of OO 
behavior, I switch to C++ and keep very tight limits on what C++ features 
I use, and where, so that the program is essentially C in the easy 
sections. 

So C is great for hotshot geeks like me. Contrariwise, however, C isn't so
bad for beginners either. (I hear you sharpening your machetes out there
-- hold on -- I'm going to qualify that.) The original "language for 
beginners" was BASIC. Idiots can demonstratably learn BASIC. Imperative 
programming where numbers are the only first-class objects is really easy 
for people. The problem is, BASIC causes inoperable brain tumors, because 
it doesn't give you the tools to figure out recursion and modular design. 

C is BASIC plus recursion and a certain amount of modularity. And the 
roof is lopped off, so that you can write anything and everything in it, 
if you're willing to become a hotshot geek about halfway through. This is 
why it's so popular. Idiots can get started in it, and once they develop 
a clue (which I have, I hope you don't mind me claiming) they (we) don't 
have to leave.

(You may just say that I've developed a more advanced form of inoperable 
brain cancer. This may be.)

(The hard part about getting started in C is traditionally strings, and 
pointers, and other aspects of dynamic memory management. Note that these 
are exactly the bits that were left out of TADS and Inform (except as 
very advanced features, and then they're provided in a fairly idiot-proof 
way, not like C at all.) So this is not an argument about C-like IF 
languages.)

People *can* get started in TADS and Inform. I really believe that Scheme 
(and SML) would be much harder for beginners, because of their purely 
functional style. People had *trouble* with "Lists and Lists".

After typing all this, my feeling is that the real solution is an
imperative-looking language which contains Scheme-like features. So that
people can jump to it from BASIC, but not get stuck inventing their own
high-level features like I do. You say Dylan is this, and I've heard
something about a language called Haskell, too; I've never looked at
either of them. 

If Inform 7 went this way, I wouldn't mind a bit. It might, however, be 
too much for one person. (Kernighan and Ritchie didn't write Dylan. I 
don't know how many people that took.) (On the other hand, I've heard 
Scheme is pretty damn easy to implement. :-) Which makes a certain amount 
of hash out of my point.)

It's late. I was going to talk about Phil Goetz's Prolog work, but I have 
to go. (The summary is "Don't talk to be about Phil, man. I think he's in 
the process of inventing a genre as different from Infocom-style IF as IF 
was from Space Invaders.")

--Z

-- 

"And Aholibamah bare Jeush, and Jaalam, and Korah: these were the
borogoves..."


From dmb@ai.mit.edu Sun Dec 29 21:51:46 MET 1996
Article: 20811 of rec.arts.int-fiction
Path: news.lth.se!solace!nntp.uio.no!www.nntp.primenet.com!nntp.primenet.com!news.texas.net!news.kei.com!bloom-beacon.mit.edu!ai-lab!lf!dmb
From: dmb@lf.ai.mit.edu (David Baggett)
Newsgroups: rec.arts.int-fiction
Subject: Re: Questionable Languages & Compilers
Date: 22 Dec 1996 21:29:17 GMT
Organization: MIT Artificial Intelligence Lab
Lines: 150
Message-ID: <59k97d$6ib@life.ai.mit.edu>
References: <32b72f97@beachyhd.demon.co.uk> <32ba50f5.4005680@news.worldonline.nl> <59fnpk$l9c@life.ai.mit.edu> <erkyrathE2sy7z.KuH@netcom.com>
Reply-To: dmb@ai.mit.edu
NNTP-Posting-Host: lf.ai.mit.edu

In article <erkyrathE2sy7z.KuH@netcom.com>,
Andrew Plotkin <erkyrath@netcom.com> wrote:

>However, on the *third* hand, Inform (being C-like) supports function 
>pointers (in its own icky typeless way), so you can do many of the tricks 
>you want to use first-class functions for. 

I liked your post a lot.  But I do think that it's risky to believe that
function pointers (C, Inform) or property "pointers" (TADS) really do the
same thing as true first-class functions.

OK, I'll admit it.  I've written several orders of magnitude more code in C
than in any other language.   Next comes Atari 800 BASIC, probably, and
then various assembly languages.  In a lot of ways, I'm a low-level guy at
heart.

But IF is so... high-level.  Or at least, it should be.  I don't *need* to
write in assembly to write a good IF game.  I don't even need to write in
C, which IMHO is a fancy macro assembler with infix notation.  In fact,
because IF is so "high-level", I *shouldn't* try to write it in any of
those languages, because I'm certain to have more bugs in my final product
if I do.

I want IF code to be reusable.  Heck, I want all code to be reusable, but
it's an impossible goal with mainstream code.  It's not with IF, though.
It's a limited domain, it doesn't require anything to be coded down to the
bare metal of the machine like 3D games do, and it's such a "clean"
problem.  It's a problem that deserves a simple, elegant language, like
(yes, Phil) Prolog, ML, or Scheme.

Function pointers in C don't really give you the kind of reusability win
that good old Lambda The Ultimate does.  I try to force C to do it for me.
I write iterators that walk trees and graphs and call a provided function
on each node.  But it's not the same.  I have to name every function I do
this with, and I have to precisely define its arity and types, which cannot
vary.  When all I really want is something that "does X" on every node,
where I get to make X anything I want at the point of the call.

Compare C's qsort library function with a Scheme sort primitive, for
example.  For qsort, you have to define a separate function (say,
"compare_thing") which only works on one specific type of object.  Then you
have to pass a pointer to the function into the qsort routine.  And if your
function pointer is hosed, you crash with no useful error message.

Here's a similar call, but in Scheme:

  (sort '(1 4 5 3 2 5) <) -> (1 2 3 4 5 5)

I pass in a list of stuff (type-checked to be sure it's a list at
run-time), and a sorting function.  How about this:

 (sort '(1 4 5 3 2 5) (lambda (x y)
		       (if (and (odd? x) (even? y))
			   #t
			   (if (and (even? x) (odd? y))
			       #f
			       (< x y)))))

  -> (1 3 5 5 2 4)

To go from a function that sorts numbers to a function that sorts and
separates odds from evens (or anything complicated, for that matter), I
just have to declare a little function inline to apply to each pair.
And it works on different types of arguments, too:

  (sort '("the" "cat" "and" "the" "hat") string<?)
  -> ("and" "cat" "hat" "the" "the")

  (sort '(the cat and the hat) (lambda (x y) 
                                (string<? (symbol->string x)
                                          (symbol->string y))))
  -> (and cat hat the the)

  (sort '((5 3 4) (4 2 3) (4 5 6) (3 1 2)) (lambda (x y)
					   (< (apply min x)
					      (apply min y))))
  -> ((3 1 2) (4 2 3) (5 3 4) (4 5 6))

(The last example sorts a list of lists according to each list's minimum
element.)

Write the last example in C code using qsort (itself a rare example of a
reusable C routine) and see how many lines of code you end up writing.  No,
it's not like moving mountains, but it's not a one-liner either.

The advantage of the Scheme approach is that, since you're combining fewer
primitives, there's less chance you've screwed something up.  You can
better leverage your utility functions so you don't have to write new ones
>from  scratch.

(Another example I didn't give is using the Scheme sort to sort objects
of different types; for example, a list of *both* strings and symbols.
You can't do this in C without subverting the static type system and
implementing your own dynamic type system by hand.)

>If I need it to iterate on an arbitrary function, I hack that together --
>it's neither the hard part of my programming day nor a major source of
>bugs.

The programmer's mantra: "I [can] do that without introducing bugs." :)

I don't doubt that you personally generate comparatively few bugs in your
code.  But, as you point out, you are a serious C hack.  C has trained you,
as it has trained me, to do these things in a specific way, and with great
caution, to get them to work.

You can always tell how programmed a person has become by C by removing a *
>from  a */ in their source code and seeing how long it takes them to find
the syntax error.  You, Andrew, would probably come in under 30 seconds,
because that exact token error would be the first thing you looked for when
you got the usual flood of "100 errors --- limit exceeded".  But how long
would it take a C newbie?  Probably hours.  (I've seen it.)

>People *can* get started in TADS and Inform. 

Yes, and of course the best evidence is the raft of games that have just
been released...

But these languages also generate an inordinate amount of traffic from
beginners struggling with problems that should (often) have been fixed in
the language design (the classic case being TADS' do/io/VerDo/VerIo
complexity).

>I really believe that Scheme (and SML) would be much harder for beginners,
>because of their purely functional style. People had *trouble* with "Lists
>and Lists".

You may very well be right.  If it's true, it's really a shame.  The only
*really* daunting thing about Scheme and ML is the very un-C-like syntax.
You don't actually *have* to write Scheme functionally either.  It's just
the preferred method.  (Preferred by language theorists, at least.)

>After typing all this, my feeling is that the real solution is an
>imperative-looking language which contains Scheme-like features.

I think perhaps the best solution is a Scheme + objects with an optional
Newbie front-end that has more "conventional" syntax.  (I put that in
quotes because Lisp has been around since 1956...)  If you choose to use
the Newbie syntax, you don't quite get the full power of the language (no
macros, for example).  But you can still use the same libraries and code
snippets that other people write.

But maybe that's the language design equivalent of Zaphod Beeblebrox, and
not such a good idea after all...

Dave Baggett
__
dmb@ai.mit.edu
"Mr. Price: Please don't try to make things nice! The wrong notes are *right*."
--- Charles Ives (note to copyist on the autograph score of The Fourth of July)


From dmonniau@ens-lyon.fr Sun Dec 29 21:51:47 MET 1996
Article: 20815 of rec.arts.int-fiction
Path: news.lth.se!solace!nntp.uio.no!www.nntp.primenet.com!nntp.primenet.com!hunter.premier.net!uunet!in2.uu.net!193.10.88.100!news00.sunet.se!sunic!mn6.swip.net!plug.news.pipex.net!pipex!oleane!pasteur.fr!univ-lyon1.fr!cri.ens-lyon.fr!gerland!dmonniau
From: David Monniaux <dmonniau@ens-lyon.fr>
Newsgroups: rec.arts.int-fiction
Subject: Re: Questionable Languages & Compilers
Date: Mon, 23 Dec 1996 03:08:51 +0100
Organization: Ecole Normale Superieure de Lyon, France
Lines: 10
Message-ID: <Pine.GSO.3.95.961223030440.25297F-100000@gerland>
References: <32b72f97@beachyhd.demon.co.uk> <32ba50f5.4005680@news.worldonline.nl> <59fnpk$l9c@life.ai.mit.edu> <erkyrathE2sy7z.KuH@netcom.com> <59k97d$6ib@life.ai.mit.edu>
NNTP-Posting-Host: gerland.ens-lyon.fr
Mime-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
X-Sender: dmonniau@gerland
To: dmb@ai.mit.edu
In-Reply-To: <59k97d$6ib@life.ai.mit.edu>

You suggest Standard ML for writing IF. Maybe you should also check
Objective CAML, which is a dialect of ML with lots of interesting
features, such as yacc- and lex- like tools, native code compilers,
functors and modules.

See http://pauillac.inria.fr/ocaml/htmlman/.

"Si l'informatique marchait, cela se saurait."




From dmb@ai.mit.edu Sun Dec 29 21:51:48 MET 1996
Article: 20819 of rec.arts.int-fiction
Path: news.lth.se!solace!nntp.uio.no!news-feed.inet.tele.dk!arclight.uoregon.edu!news-peer.gsl.net!news.gsl.net!howland.erols.net!bloom-beacon.mit.edu!ai-lab!lf!dmb
From: dmb@lf.ai.mit.edu (David Baggett)
Newsgroups: rec.arts.int-fiction
Subject: Re: Questionable Languages & Compilers
Date: 23 Dec 1996 08:34:10 GMT
Organization: MIT Artificial Intelligence Lab
Lines: 38
Message-ID: <59lg62$jhv@life.ai.mit.edu>
References: <32b72f97@beachyhd.demon.co.uk> <erkyrathE2sy7z.KuH@netcom.com> <59k97d$6ib@life.ai.mit.edu> <Pine.GSO.3.95.961223030440.25297F-100000@gerland>
Reply-To: dmb@ai.mit.edu
NNTP-Posting-Host: lf.ai.mit.edu

In article <Pine.GSO.3.95.961223030440.25297F-100000@gerland>,
David Monniaux  <dmonniau@ens-lyon.fr> wrote:

>You suggest Standard ML for writing IF. Maybe you should also check
>Objective CAML, which is a dialect of ML with lots of interesting
>features, such as yacc- and lex- like tools, native code compilers,
>functors and modules.

Thanks for posting the pointer.  The main reason I personally prefer Scheme
to ML for an IF system is macros.  Macros let you make mini-languages.  To
choose an IF example, you could implement Manhattan map layout (as someone
recently discussed implementing in Inform) with a simple macro:

  (defmap general-store tree-lined-grove library
          park          town-square      museum
          river         mayors-house)

could generate code to connect these locations as indicated (up being
north).  The advantage of this is that the map connectivity is evaluated at
compile time rather than run-time.

What I'd really like to see is a Scheme with H/M type inference built into
the language (rather than grafted on after the fact).  (Or perhaps that
would be an ML with lots of parentheses and ML as the macro prepocessor.)

I know of some attempts to apply static type inference to Scheme, but I
know of no one re-doing ML with lisp syntax.  Has anyone done that?

The pattern-matching programming constructs ML provides are another very
powerful utility you don't get from C and friends.  Andrew Wright and Bruce
Duba at Rice have brought this idiom over to Scheme, but it's a lot cleaner
in ML, IMHO.

Dave Baggett
__
dmb@ai.mit.edu
"Mr. Price: Please don't try to make things nice! The wrong notes are *right*."
--- Charles Ives (note to copyist on the autograph score of The Fourth of July)


From marnix@worldonline.nl Sun Dec 29 21:51:49 MET 1996
Article: 20825 of rec.arts.int-fiction
Path: news.lth.se!solace!news.ecn.uoknor.edu!news.wildstar.net!newsfeed.direct.ca!portc01.blue.aol.com!cliffs.rs.itd.umich.edu!howland.erols.net!surfnet.nl!news.unisource.nl!news.worldonline.nl!usenet
From: marnix@worldonline.nl (Marnix Klooster)
Newsgroups: rec.arts.int-fiction
Subject: Re: Questionable Languages & Compilers
Date: Mon, 23 Dec 1996 19:58:32 GMT
Organization: World Online
Lines: 69
Message-ID: <32be93f5.5169486@news.worldonline.nl>
References: <32b72f97@beachyhd.demon.co.uk> <erkyrathE2sy7z.KuH@netcom.com> <59k97d$6ib@life.ai.mit.edu> <Pine.GSO.3.95.961223030440.25297F-100000@gerland> <59lg62$jhv@life.ai.mit.edu>
NNTP-Posting-Host: drdt1-p127.worldonline.nl
X-Newsreader: Forte Free Agent 1.1/16.230

dmb@lf.ai.mit.edu (David Baggett) wrote:

> In article <Pine.GSO.3.95.961223030440.25297F-100000@gerland>,
> David Monniaux  <dmonniau@ens-lyon.fr> wrote:
> 
> >You suggest Standard ML for writing IF. Maybe you should also check
> >Objective CAML, which is a dialect of ML with lots of interesting
> >features, such as yacc- and lex- like tools, native code compilers,
> >functors and modules.
> 
> Thanks for posting the pointer.  The main reason I personally prefer Scheme
> to ML for an IF system is macros.  Macros let you make mini-languages.  To
> choose an IF example, you could implement Manhattan map layout (as someone
> recently discussed implementing in Inform) with a simple macro:
> 
>   (defmap general-store tree-lined-grove library
>           park          town-square      museum
>           river         mayors-house)
> 
> could generate code to connect these locations as indicated (up being
> north).  The advantage of this is that the map connectivity is evaluated at
> compile time rather than run-time.

Isn't this essentially an implementation issue?  I mean, almost
always programming in a functional language comes down to
designing a mini-languague, in my (Haskell) experience.  (Also,
when I did my first real Scheme programming using Andrew's superb
genieus optimizing IDE, I found that I could transplant these
techniques almost word-for-word.)  Whether certain constructs in
this mini-language can be `executed at compile-time' depends on
the quality of the implementation.

In other words, what is the advantage of macros over ordinary
functions, except for more efficient execution?  I suspect
languages such as Haskell, Gofer, Miranda, etc. do not have
macros because they have simpler semantics -- no side effects,
lazy evaluation, etc.

> What I'd really like to see is a Scheme with H/M type inference built into
> the language (rather than grafted on after the fact).  (Or perhaps that
> would be an ML with lots of parentheses and ML as the macro prepocessor.)

Again, what advantages would the addition of macros to ML bring
you?

> I know of some attempts to apply static type inference to Scheme, but I
> know of no one re-doing ML with lisp syntax.  Has anyone done that?

Not that I'm aware of; what would be gained?

> The pattern-matching programming constructs ML provides are another very
> powerful utility you don't get from C and friends.  Andrew Wright and Bruce
> Duba at Rice have brought this idiom over to Scheme, but it's a lot cleaner
> in ML, IMHO.

Very true.  If I ever design an IF language (or rather, a
general-purpose language well-suited to IF) this will most
definitely be in it.

> Dave Baggett

Groetjes,

 <><

Marnix
--
Marnix Klooster        |  If you reply to this post,
marnix@worldonline.nl  |  please send me an e-mail copy.


From rhodri@wildebst.demon.co.uk Sun Dec 29 21:51:49 MET 1996
Article: 20834 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news99.sunet.se!newsfeed.luth.se!news.luth.se!erix.ericsson.se!erinews.ericsson.se!eua.ericsson.se!news.algonet.se!hammer.uoregon.edu!news-peer.gsl.net!news.gsl.net!EU.net!usenet2.news.uk.psi.net!uknet!usenet1.news.uk.psi.net!uknet!dispatch.news.demon.net!demon!wildebst.demon.co.uk!not-for-mail
From: rhodri@wildebst.demon.co.uk (Rhodri James)
Newsgroups: rec.arts.int-fiction
Subject: Re: Questionable Languages & Compilers
Date: Mon, 23 Dec 1996 22:42:19 GMT
Organization: The Wildebestiary
Lines: 13
Message-ID: <n4139A160@wildebst.demon.co.uk>
References: <59k97d$6ib@life.ai.mit.edu> <Pine.GSO.3.95.961223030440.25297F-100000@gerland> <59lg62$jhv@life.ai.mit.edu> <32be93f5.5169486@news.worldonline.nl>
NNTP-Posting-Host: wildebst.demon.co.uk
X-NNTP-Posting-Host: wildebst.demon.co.uk
X-Newsreader: Offlite 0.09 / Termite Internet for Acorn RISC OS

marnix@worldonline.nl (Marnix Klooster) wrote:

> In other words, what is the advantage of macros over ordinary functions,
> except for more efficient execution? 

The advantage of macros is that they can hide messy language issues under
a kinder API.  This is also their disadvantage!

-- 
Rhodri James  *-*  Wildebeeste herder to the masses
If you don't know who I work for, you can't misattribute my words to them

... I have too much time on my hands.  Let's run another convention.


From dmb@ai.mit.edu Sun Dec 29 21:51:51 MET 1996
Article: 20872 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news01.sunet.se!sunic!02-newsfeed.univie.ac.at!newsfeed.de.ibm.net!news-m01.ny.us.ibm.net!newsfeed.uk.ibm.net!arclight.uoregon.edu!news.sprintlink.net!news-peer.sprintlink.net!howland.erols.net!bloom-beacon.mit.edu!ai-lab!lf!dmb
From: dmb@lf.ai.mit.edu (David Baggett)
Newsgroups: rec.arts.int-fiction
Subject: Re: Questionable Languages & Compilers
Date: 25 Dec 1996 22:31:54 GMT
Organization: MIT Artificial Intelligence Lab
Lines: 171
Message-ID: <59sa0q$5nh@life.ai.mit.edu>
References: <32b72f97@beachyhd.demon.co.uk> <Pine.GSO.3.95.961223030440.25297F-100000@gerland> <59lg62$jhv@life.ai.mit.edu> <32be93f5.5169486@news.worldonline.nl>
Reply-To: dmb@ai.mit.edu
NNTP-Posting-Host: lf.ai.mit.edu

In article <32be93f5.5169486@news.worldonline.nl>,
Marnix Klooster <marnix@worldonline.nl> wrote:

>In other words, what is the advantage of macros over ordinary
>functions, except for more efficient execution?  I suspect
>languages such as Haskell, Gofer, Miranda, etc. do not have
>macros because they have simpler semantics -- no side effects,
>lazy evaluation, etc.

Although I have taken only a cursory look at Haskell and Miranda, and know
nothing at all about Gofer, I'll make the case for macros in lisp-like
languages, and then you can tell me if the case depends on something
besides the syntax.

I took a while to read through Paul Graham's book _On Lisp_ again so I
could find some good examples to show how macros are important, so I will
shamelessly borrow from that text in the following discussion.  Definitely
buy this book, however, if you're even remotely interested in either lisp
or in the theory of programming in general.  It will teach you more about
advanced programming techniques than any other book I know of.

Paul Graham points out that macros have two properties that ordinary
functions don't:

  1) They can control the evaluation of their arguments.
  2) They are expanded in the compilation context, not the run-time
     context.

Consider implementing a basic while ... do loop in Common Lisp.  Here's one
way to do it:

  (defmacro while (test &body body)
    '(do ()
      ((not ,test))
      ,@body))

This cannot be implemented in a function in lisp or Scheme, because a
function must evaluate all its arguments exactly once.  (while) may
evaluate the body argument zero, one, or more times, depending on the
evaluation of the test expression at run-time.  Likewise, the test will get
re-evaluated every time though the loop.  Unlike a function argument, its
evaluation may change over time as the run-time context changes.

There are other ways in which capability #1 is critical.  The Common Lisp
setf macro lets you assign values to expressions that are not normally
legal targets (or "lvalues" in C parlance).  E.g.,

  (setf (car my-list) 'a)

will put the symbol 'a in the first element of the list bound to my-list.
This kind of notation is quite useful but uncommon in general-purpose
programming languages.  (Some dialects of BASIC allow substrings to be used
as lvalues like this, but I know of few other examples.)  Because Common
Lisp has such a powerful macro facilty, it can provide this capability in
setf, and you (the programmer) can extend that capability as you add new
potential setf targets.

Note that setf here must examine the text, rather than value, of its
fitst argument in order to know how to do the assignment.  Because of this,
you can't write setf as a lisp function.

A final example of #1 is (and).  Suppose the language had no and function,
but you wanted to write expressions like this:

  (if (and sky-blue death taxes)
    (print "world normal")
    (print "world awry!"))

You could define (and) in terms of if with a macro that would expand like
this:

  (and a b)  -> (if (not a)
                  #f
                  (if (not b)
                    #f
                    #t))

The key thing here is that you have maintained two common and important
properties of (and):

  1) The arguments are evaluated in order from left to right.
  2) The (and) will "short-circuit" and stop evaluating arguments
     as soon as it evaluates an argument as false.

You get the first property by setting up your macro carefully.  You get the
second property becuase the (if) special form guarantees it.  (In Scheme
code; I assume most lisp dialects agree on this point.)

You can't write (and) as a function and maintain these critical properties.

Moving on to macro capability #2 cited above, macros can look to the
compilation environment to determine how to generate code.  A simple
example is optimization.  A macro to multiply two numbers, like

  (times x y)

might examine its arguments and emit better code in cases like

  (times x 2)  expands to (left-shift x 2)
  (times x 0)  expands to 0
  (times x 1)  expands to x
  (times x 5)  expands to (+ x (left-shift x 2))
  (times 11 7) expands to 77

and so forth.  As you (Marnix) point out, the compiler ought to do this
kind of optimization for you, and you can help it out by giving it hints
(e.g., by labeling a given expression as guaranteed to be 16-bit
integral).

But what about when you're implementing your own language -- perhaps a
mini-language within your large lisp-based system, or maybe a simple
compiler to another target?  Macros allow you to do this kind of simple
strength reduction and constant folding in code generation trivially.  This
means that you can write a compiler for a language with lisp-like syntax
very easily; for example, you could implement a powerful VM-based IF system
within Common Lisp in a fraction of the time it would take to code the same
in C.  (Of course there are disadvantages to doing this for an IF system
that you plan on letting hundreds of people use in their own homes.  But
say you're a game company, and the only users you need to support are your
own in-house programmers?  You can save yourself months of work with this
approach and win big.)

Another example of using the compilation environment is conditional
compilation.  This is what the C macro facility is all about.  But with
lisp macros you can do much fancier things, and without deviating from the
usual syntax of the language.

Consider a localization task.  You're writing a word processor that must
support a particular OS in many different languages, with different writing
systems.  Knowing that the Chinese text primitives don't exist on an Arabic
system, you need to compile out references to the Chinese calls so the
dynamic linker won't complain about missing libraries when a Saudi Arabian
user runs the program.  (Alternatively, you may find it a bit rude to weigh
done the Arabian users with a meg of Chinese language object code, and vice
versa.)

You can do this very nastily with #ifdefs in C.  In lisp you can make it
much nicer, because you can make arbitrarily sophisticated macros that
examine the compile-time localization values to generate the right code for
each primitive -- in this case, "display character string", "alphabetize",
"find word boundary", "re-fill paragraph", etc.

Once again, you can't do this without macros.

There are other, more esoteric uses of macros where functions won't
suffice.  In _On Lisp_, Graham shows how to implement Scheme's
continuations in Common Lisp using macros.

>If I ever design an IF language (or rather, a general-purpose language
>well-suited to IF) this will most definitely be in it.

You raise a good point inside the parens.  I used to believe that IF
demanded special language designs appropriate only to is limited domain.
But now I see the folly in that.  Almost everything that TADS and Inform
provide in their designs that is specific to IF would be better off in
libraries.  The only exceptions, in my opinion, are syntactic sugars like
TADS'

   "You are here.";

printing statement shorthand.  And, indeed, you can do most such sugaring
with macros.

It is a sign of weakness that (for example) TADS and Inform can't be
implemented in themselves, when so little is gained in return.

Dave Baggett
__
dmb@ai.mit.edu
"Mr. Price: Please don't try to make things nice! The wrong notes are *right*."
--- Charles Ives (note to copyist on the autograph score of The Fourth of July)


From graham@gnelson.demon.co.uk Sun Dec 29 21:51:52 MET 1996
Article: 20798 of rec.arts.int-fiction
Path: news.lth.se!solace!mn6.swip.net!plug.news.pipex.net!pipex!multicast.news.pipex.net!tank.news.pipex.net!pipex!www.nntp.primenet.com!nntp.primenet.com!dispatch.news.demon.net!demon!gnelson.demon.co.uk!graham
From: Graham Nelson <graham@gnelson.demon.co.uk>
Newsgroups: rec.arts.int-fiction
Subject: Re: Questionable Languages & Compilers
Date: Sun, 22 Dec 1996 14:31:33 +0000 (GMT)
Organization: none
Lines: 16
Message-ID: <ant221433b49M+4%@gnelson.demon.co.uk>
References: <32b72f97@beachyhd.demon.co.uk> <1996Dec19.165314.307@wcc.govt.nz> <59cimp$2hf@life.ai.mit.edu> <59eu68$6fp@news.multiverse.com> 
NNTP-Posting-Host: gnelson.demon.co.uk
X-NNTP-Posting-Host: gnelson.demon.co.uk
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; CHARSET=ISO-8859-1
X-Newsreader: ANT RISCOS Marcel [ver 1.09]

In article <59eu68$6fp@news.multiverse.com>, Matthew Russotto
<URL:mailto:russotto@ariel.ct.picker.com> wrote:
> Ignorant criticism, however, is useless. There's been plenty of criticism
> of TADS (including a certain nameless library), Inform (including the 
> hanging-else bug), AGT (nevermind), etc.

Just to recap: there is no hanging-else bug in Inform.
It is a late bug.  It has ceased to be.  Bereft of life,
it rests in peace.  It has shuffled off this mortal coil
and joined the choir invisible.

This is an ex-bug.

-- 
Graham Nelson | graham@gnelson.demon.co.uk | Oxford, United Kingdom



From dmb@ai.mit.edu Sun Dec 29 21:51:53 MET 1996
Article: 20806 of rec.arts.int-fiction
Path: news.lth.se!solace!mn6.swip.net!plug.news.pipex.net!pipex!oleane!pasteur.fr!univ-lyon1.fr!howland.erols.net!bloom-beacon.mit.edu!ai-lab!lf!dmb
From: dmb@lf.ai.mit.edu (David Baggett)
Newsgroups: rec.arts.int-fiction
Subject: Re: Questionable Languages & Compilers
Date: 22 Dec 1996 19:45:36 GMT
Organization: MIT Artificial Intelligence Lab
Lines: 32
Message-ID: <59k350$4ki@life.ai.mit.edu>
References: <32b72f97@beachyhd.demon.co.uk> <1996Dec19.165314.307@wcc.govt.nz> <59cimp$2hf@life.ai.mit.edu> <59eu68$6fp@news.multiverse.com>
Reply-To: dmb@ai.mit.edu
NNTP-Posting-Host: lf.ai.mit.edu

In article <59eu68$6fp@news.multiverse.com>,
Matthew Russotto <russotto@ariel.ct.picker.com> wrote:

>}And I don't see why it's OK to harshly criticize IF works that people write
>}for free, but it's not OK to criticize the tools. 
>
>I'll remember that next time someone gets defensive about a certain
>library...

I can't recall ever denying the problems with my own stuff.  In fact, I'm
usually the first one to point them out, and to encourage others to so --
read the introductory note to the very first release of WorldClass for
example.

Here's a deal: when I start shooting off my mouth about how WorldClass is a
professional quality this or that, then you can flame the crap out of me,
OK?.

>Nor is implying that the authors of these tools haven't read anything
>about how these tools are written, when a small amount of research would
>indicate otherwise.

Right, right.  I must have this opinion because I haven't read as much as
you about Inform.  I've read the book on TeX, too, and I know that Don
Knuth's a really smart guy.  That doesn't change my opinion on the TeX
language or its implementation...

Dave Baggett
__
dmb@ai.mit.edu
"Mr. Price: Please don't try to make things nice! The wrong notes are *right*."
--- Charles Ives (note to copyist on the autograph score of The Fourth of July)


From nr@mamba.cs.Virginia.EDU Sun Dec 29 21:51:53 MET 1996
Article: 20881 of rec.arts.int-fiction
Newsgroups: rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news99.sunet.se!nntp-oslo.UNINETT.no!nntp-trd.UNINETT.no!nntp.uio.no!www.nntp.primenet.com!nntp.primenet.com!su-news-hub1.bbnplanet.com!news.bbnplanet.com!cam-news-hub1.bbnplanet.com!uunet!in2.uu.net!192.35.48.11!hearst.acc.Virginia.EDU!murdoch!not-for-mail
From: nr@mamba.cs.Virginia.EDU (Norman Ramsey)
Subject: Re: Questionable Languages & Compilers
X-Nntp-Posting-Host: mamba-fo.cs.virginia.edu
Message-ID: <59uhn6$c0@mamba.cs.Virginia.EDU>
Sender: usenet@murdoch.acc.Virginia.EDU
Organization: University of Virginia
References: <32b72f97@beachyhd.demon.co.uk> <1996Dec19.165314.307@wcc.govt.nz> <59cimp$2hf@life.ai.mit.edu>
Date: Thu, 26 Dec 1996 18:55:34 GMT
Lines: 37

In article <59cimp$2hf@life.ai.mit.edu>, David Baggett <dmb@ai.mit.edu> wrote:
>[it should be Ok to criticize tools as well as games]

Agreed.  Let's have at it :-)

>I've spent a great deal of time reading about [programming-language
>design and implementation] over the past few
>years, and it's quite clear to me that there are serious problems with
>*all* the existing IF development systems, and that none of them deserves
>anything like a "professional-quality compiler" label.
>
>One very basic requirement for a "professional quality compiler" is that it
>perform nontrivial optimizations like strength reduction; do any of these
>compilers do that?

I think you're assuming that the goals for an IF language or compiler
should be the same as the goals for a compiler for a general-purpose
programming language, e.g., the generated code should run fast.
What evidence have you got in favor of this position?  

My pet peeve at the moment is that existing tools seem to offer little
in the way of static type checking.  A language like Inform leaves a
lot of checking for run time.  For example, according to the language,
every property is meaningful on every object.  This rule offers
tremendous flexibility, but it also leads to heavy overloading of
properties like `general'.  On the other hand, the obvious way of using
a fully static type system like that for C++, Java, or Modula-3 would
make Inform programming significantly more awkward than it is today.
Reconciling these competing goals would make a good master's project :-)

It's easy to write long lists of desiderata for these languages and
tools.  What's on other people's lists?

N
-- 
Norman Ramsey
http://www.cs.virginia.edu/~nr


From dmb@ai.mit.edu Sun Dec 29 21:51:54 MET 1996
Article: 20883 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news99.sunet.se!nntp-oslo.UNINETT.no!nntp-trd.UNINETT.no!nntp.uio.no!www.nntp.primenet.com!nntp.primenet.com!howland.erols.net!cliffs.rs.itd.umich.edu!bloom-beacon.mit.edu!ai-lab!lf!dmb
From: dmb@lf.ai.mit.edu (David Baggett)
Newsgroups: rec.arts.int-fiction
Subject: Re: Questionable Languages & Compilers
Date: 27 Dec 1996 05:03:31 GMT
Organization: MIT Artificial Intelligence Lab
Lines: 55
Message-ID: <59vlb3$8fj@life.ai.mit.edu>
References: <32b72f97@beachyhd.demon.co.uk> <1996Dec19.165314.307@wcc.govt.nz> <59cimp$2hf@life.ai.mit.edu> <59uhn6$c0@mamba.cs.Virginia.EDU>
Reply-To: dmb@ai.mit.edu
NNTP-Posting-Host: lf.ai.mit.edu

In article <59uhn6$c0@mamba.cs.Virginia.EDU>,
Norman Ramsey <nr@mamba.cs.Virginia.EDU> wrote:

>I think you're assuming that the goals for an IF language or compiler
>should be the same as the goals for a compiler for a general-purpose
>programming language, e.g., the generated code should run fast.
>What evidence have you got in favor of this position?  

First of all, I didn't mean to imply that raw performance is at the top of
my list of IF system requirements, because it really isn't.  My point was
mainly that I don't think it's reasonable to call any of these compilers
professional-quality.  There's nothing *wrong* with an IF compiler that
doesn't do fancy optimizations; I just wouldn't call it
"professional-quality".

However, it's worth looking at the other part of your question, which is
why should an IF language be domain-specific rather than general-purpose.
The traditional analysis (with which I have historically agreed) has been
that limiting the set of problems one is intended to solve with a language
makes it more focused, and therefore [much hand-waving] "simpler, better,
easier to learn, etc."

The problem with this analysis is that if one takes a step back (as I've
done, since I haven't written a stitch of code in TADS or Inform in quite
some time), one sees that these languages have gone more the way of PL/I
and C++ -- they have become "kitchen sink" languages with feature upon
feature grafted onto the language's syntax and semantics.  They are
certainly not simple anymore, and I'd question claims that they're easy to
learn as well.

Now when I look at TADS and Inform I ask myself why the parser is *part of
the language*.  Why things like Z-Machine "properties" are welded into the
fabric of Inform.  For Inform it's because (I assume) Graham has always
viewed Inform's symbiotic relationship with the Z-Machine as inviolable.
So why not weave Z-Machine features/quirks/limitations into the language?

Frankly, I'm pretty sure we'd be doing just as well with a simple dialect
of an established general-purpose object-oriented langauge (say, Smalltalk,
to name yet another one), extended with lots of library routines.  Library
routines to, for example, parse input commands.  So I pass the baton back
to you: what would be *wrong* with this?  How would this be worse than TADS
or Inform, given equivalently powerful libraries?

>It's easy to write long lists of desiderata for these languages and
>tools.

Given that there's a clear understanding that the libraries are not part of
the language design, my list of stuff to remove is much bigger than my list
of stuff to add.

Dave Baggett
__
dmb@ai.mit.edu
"Mr. Price: Please don't try to make things nice! The wrong notes are *right*."
--- Charles Ives (note to copyist on the autograph score of The Fourth of July)


From nr@mamba.cs.Virginia.EDU Sun Dec 29 21:51:55 MET 1996
Article: 20893 of rec.arts.int-fiction
Newsgroups: rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news99.sunet.se!newsfeed.luth.se!news.luth.se!eru.mt.luth.se!www.nntp.primenet.com!nntp.primenet.com!news.sprintlink.net!news-peer.sprintlink.net!uunet!in3.uu.net!192.35.48.11!hearst.acc.Virginia.EDU!murdoch!not-for-mail
From: nr@mamba.cs.Virginia.EDU (Norman Ramsey)
Subject: Special- vs General-purpose languages for IF
X-Nntp-Posting-Host: mamba-fo.cs.virginia.edu
Message-ID: <5a1rue$g63@mamba.cs.Virginia.EDU>
Summary: a mild case for Inform
Sender: usenet@murdoch.acc.Virginia.EDU
Cc: nr
Organization: University of Virginia
References: <32b72f97@beachyhd.demon.co.uk> <59cimp$2hf@life.ai.mit.edu> <59uhn6$c0@mamba.cs.Virginia.EDU> <59vlb3$8fj@life.ai.mit.edu>
Date: Sat, 28 Dec 1996 01:08:30 GMT
Lines: 114

In article <59vlb3$8fj@life.ai.mit.edu>, David Baggett <dmb@ai.mit.edu> wrote:
>However, it's worth looking at the other part of your question, which is
>why should an IF language be domain-specific rather than general-purpose.
>The traditional analysis (with which I have historically agreed) has been
>that limiting the set of problems one is intended to solve with a language
>makes it more focused, and therefore [much hand-waving] "simpler, better,
>easier to learn, etc."
>
>The problem with this analysis is that if one takes a step back (as I've
>done, since I haven't written a stitch of code in TADS or Inform in quite
>some time), one sees that these languages have gone more the way of PL/I
>and C++ -- they have become "kitchen sink" languages with feature upon
>feature grafted onto the language's syntax and semantics.  They are
>certainly not simple anymore, and I'd question claims that they're easy to
>learn as well.

Just like Common Lisp :-)

I've never really bought the simplicity argument.  Successful
languages tend to be big, and often messy.  The only `simple'
exception I can think of is Scheme.  This fact doesn't depress me as
much as it once did.  I must be getting old.

>Now when I look at TADS and Inform I ask myself why the parser is *part of
>the language*.  

I think the special-purpose parser-definition language is worthwhile
for the same reasons yacc is worthwhile---building parsers by hand is
a pain in the butt when the vocabulary to be recognized changes
constantly.  I find the parser sublanguage the most intriguing part of
Inform, especially the ability to modify an existing parser (e.g., the
library parser) without touching the code.

If I find a flaw in the parser sublanguage, it's that it's not
comprehensive enough; one sometimes has to write routines
that go grubbing around in individual words.  One way to correct that
flaw might be to support more than one parser in a game---a
distinguished, general-purpose, `main' parser for user commands, and
other, special-purpose parsers so that 
  look up mumble in book
doesn't have to be so damn hard to program.  It's a nontrivial design
problem, but one worth tackling IMO.

>Why things like Z-Machine "properties" are welded into the
>fabric of Inform.

Are `properties' anything more or less than fields whose values are
statically known to be booleans?  I would imagine that it's useful to
distinguish the booleans, and I imagine that 
  give x light
  x has light
  x hasnt light
are very helpful to novices.  (But I think `give x ~light' is a
syntactic disaster.)  It's annoying that properties are always
initialized (i.e., you can't catch a programming error in which you
fail to say whether an object has p or ~p), but this behavior enables
complex library behavior without requiring the programmer to do any
thinking.  I might search for another linguistic mechanism to support
libraries, but I might not find one :-)

>Frankly, I'm pretty sure we'd be doing just as well with a simple dialect
>of an established general-purpose object-oriented langauge (say, Smalltalk,
>to name yet another one), extended with lots of library routines.  Library
>routines to, for example, parse input commands.  So I pass the baton back
>to you: what would be *wrong* with this?  How would this be worse than TADS
>or Inform, given equivalently powerful libraries?

Setting aside the question of the parser, I think we're on the same
page here.  I'm not a big fan of Smalltalk and Scheme because I'm not
a big fan of dynamic type disciplines, but again my reading suggests
that novices find static typing more difficult to learn than dynamic
typing, and I would hope that one goal of an IF language would be to
help people who have never before written a program.  Again I like the
Inform properties because of the semblance of static typing.

Also, isn't Inform pretty much a pastiche of existing features of
dynamically typed, `mostly-object-oriented' languages, bundled with a
very effective library?  I don't find it a bad effort, in the spirit
of Tony Hoare's `hints on language design'.  The dynamically typed O-O
model fits IF better than it fits anything I've seen since the Lisp
machine window system.

>Given that there's a clear understanding that the libraries are not part of
>the language design, my list of stuff to remove is much bigger than my list
>of stuff to add.

Why pay too much attention to the language when the library is really
where the action is?  If asked why I thought Inform was good, I would
canswer: 

  - rich library with solid documentation
  - language lets you exploit the library without much verbiage
  - syntax and semantics seem accessible to novices
  - decently fast compiler targets widely available abstract machine

There might be gains to moving to a general-purpose language, but if
the easy exploitation of the library is lost, I don't think they would
be worth it.  And I'm skeptical that a general-purpose language would
make things simpler.  (If the language is Scheme, one has to contend
with heap-allocated closures and first-class continuations in the
implementation.  Novices have to swallow the parentheses.)  It seems
that the primary benefit would be that you might have your choice of
compiler.  But if you wanted the portability, I bet you'd want to be
compiling to an abstract machine pretty soon, and existing compilers
probably wouldn't help much.

What do you see as the benefits of using standard general-purpose
languages to write IF?

N

-- 
Norman Ramsey
http://www.cs.virginia.edu/~nr


From marnix@worldonline.nl Sun Dec 29 21:51:56 MET 1996
Article: 20902 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news99.sunet.se!newsfeed.luth.se!news.luth.se!eru.mt.luth.se!www.nntp.primenet.com!nntp.primenet.com!feed1.news.erols.com!howland.erols.net!surfnet.nl!news.unisource.nl!news.worldonline.nl!usenet
From: marnix@worldonline.nl (Marnix Klooster)
Newsgroups: rec.arts.int-fiction
Subject: Re: Special- vs General-purpose languages for IF
Date: Sat, 28 Dec 1996 21:52:42 GMT
Organization: World Online
Lines: 139
Message-ID: <32c56b8e.4010019@news.worldonline.nl>
References: <32b72f97@beachyhd.demon.co.uk> <59cimp$2hf@life.ai.mit.edu> <59uhn6$c0@mamba.cs.Virginia.EDU> <59vlb3$8fj@life.ai.mit.edu> <5a1rue$g63@mamba.cs.Virginia.EDU>
NNTP-Posting-Host: drdt2-p103.worldonline.nl
X-Newsreader: Forte Free Agent 1.1/16.230

nr@mamba.cs.Virginia.EDU (Norman Ramsey) wrote:

> In article <59vlb3$8fj@life.ai.mit.edu>, David Baggett <dmb@ai.mit.edu> wrote:
[about TADS and Inform]
> >           they have become "kitchen sink" languages with feature upon
> >feature grafted onto the language's syntax and semantics.  They are
> >certainly not simple anymore, and I'd question claims that they're easy to
> >learn as well.
> 
> Just like Common Lisp :-)
> 
> I've never really bought the simplicity argument.  Successful
> languages tend to be big, and often messy.  The only `simple'
> exception I can think of is Scheme.  This fact doesn't depress me as
> much as it once did.  I must be getting old.

There are two sides to simplicity, really.  One is that the
syntax and semantics of a language should have a few, powerful,
orthogonal features.  Once this simplicity is lost there is no
way to get it back.

The other side is that a successful language should offer a lot
of `prefab functionality' to the programmer in the simplest way
possible.  This is where `standard libraries' come in.  It is
essential that every standard library is carefully designed, just
as the language itself, because a library is basically just a
language extension.  I believe that this can be done without
sacrificing simplicity, but it takes design.  (A good module
system is indispensable for this.)

To be honest, the coin has a third side: efficiency.  But that is
really not part of language design, but of language
implementation.  Making a language more complex to make its
implementation simpler or more efficient is generally a bad
thing, I think.  Design and implementation should be separated as
far as possible.

> >Now when I look at TADS and Inform I ask myself why the parser is *part of
> >the language*.  
> 
> I think the special-purpose parser-definition language is worthwhile
[snipped...]

I agree with you, Norman -- but why should this mini-language be
part of the language per se?  The alternative is to create a
parser library which can be used when necessary and ignored if
not.  If there is a means of extending the language's syntax, as
in Scheme or Dylan, this alternative is at least as readable, and
much more flexible, than the current Inform approach.

> >Why things like Z-Machine "properties" are welded into the
> >fabric of Inform.

Because the raison d'etre of Inform is to create Z-machine files.
The Z-machine is too weird to efficiently compile a
general-purpose language to.  (Or so I think.  I'd love to be
proven wrong, however.)

> Also, isn't Inform pretty much a pastiche of existing features of
> dynamically typed, `mostly-object-oriented' languages, bundled with a
> very effective library?  I don't find it a bad effort, in the spirit
> of Tony Hoare's `hints on language design'.  The dynamically typed O-O
> model fits IF better than it fits anything I've seen since the Lisp
> machine window system.

Inform is definitely _not_ a bad effort.  I consider it to be at
about the same language level as C++: high-level object-oriented
assembler.  (Flames by private e-mail, please.)  Sure, there are
a lot of things in it that I would have done differently.  But
then again, I probably wouldn't have done it at all.

(What `hints on language design' did Hoare give?  Do you have a
specific reference in mind?)

Just out of curiosity: Why should an i-f language be dynamically
typed?  (Would Modula-X be a bad i-f language?)  Why should it be
object-oriented?  (Would Scheme be a bad i-f language?)

> >Given that there's a clear understanding that the libraries are not part of
> >the language design, my list of stuff to remove is much bigger than my list
> >of stuff to add.
> 
> Why pay too much attention to the language when the library is really
> where the action is?

That is exactly the point.  As I argued before, it is important
that the language itself should be as simple, elegant, and
powerful as possible.  With Inform (and TADS), however, much of
the action is in the language: the parser, the distinction
between dictionary words and other strings, syntax such as (x ==
5 or 6 or 7), action names in before/after routines, Nearby
declarations, Lowstring declarations, and so on.  I believe that
those are the features that make Inform complicated.  With a
sufficiently general and simple language all of these could be
moved to libraries, where they belong.  And this also opens up
the possibility of writing alternative libraries, if the standard
ones are not good enough for your purposes.

>                       If asked why I thought Inform was good, I would
> canswer: 
>   - syntax and semantics seem accessible to novices

Still they are way too complicated, IMnsHO.  I count this a
disadvantage of Inform.  A programming novice shouldn't be
messing around with some C clone, whatever the problem domain is.

> There might be gains to moving to a general-purpose language, but if
> the easy exploitation of the library is lost, I don't think they would
> be worth it.  And I'm skeptical that a general-purpose language would
> make things simpler.  (If the language is Scheme, one has to contend
> with heap-allocated closures and first-class continuations in the
> implementation.  Novices have to swallow the parentheses.)  It seems
> that the primary benefit would be that you might have your choice of
> compiler.  But if you wanted the portability, I bet you'd want to be
> compiling to an abstract machine pretty soon, and existing compilers
> probably wouldn't help much.

Generally, a general-purpose language makes for a more complex
implementation.  But the simplicity should be in the language and
its libraries, not necessarily in the language implementation.

One way to achieve portability is to have a standard library
containing functionality that is efficiently supported by the
chosen abstract machine.  These can then be used by a generic
compiler, but a special-purpose compiler can implement calls to
this library by a couple of abstract machine instructions.  I
have been thinking about doing this for the Z-machine and a
language design I am tinkering with.

> Norman Ramsey

Groetjes,

 <><

Marnix
--
Marnix Klooster        |  If you reply to this post,
marnix@worldonline.nl  |  please send me an e-mail copy.


From wolf@one.net Sun Dec 29 21:51:57 MET 1996
Article: 20891 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news01.sunet.se!sunic!02-newsfeed.univie.ac.at!news.ecrc.de!blackbush.xlink.net!news-kar1.dfn.de!news-fra1.dfn.de!news-ber1.dfn.de!fu-berlin.de!informatik.tu-muenchen.de!main.Germany.EU.net!Germany.EU.net!EU.net!howland.erols.net!news.bbnplanet.com!cam-news-hub1.bbnplanet.com!uunet!in2.uu.net!206.112.192.109!newsfeed.one.net!news.one.net!news
From: wolf@one.net (Roger Plowman)
Newsgroups: rec.arts.int-fiction
Subject: Re: Questionable Languages & Compilers
Date: Fri, 27 Dec 1996 19:52:39 GMT
Organization: OneNet Communications HUB News Server
Lines: 81
Message-ID: <32c42118.5378687@news.one.net>
References: <32b72f97@beachyhd.demon.co.uk> <1996Dec19.165314.307@wcc.govt.nz> <59cimp$2hf@life.ai.mit.edu> <59uhn6$c0@mamba.cs.Virginia.EDU>
NNTP-Posting-Host: port-9-7.access.one.net
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
X-Newsreader: Forte Agent .99g/32.339

nr@mamba.cs.Virginia.EDU (Norman Ramsey) wrote:

>It's easy to write long lists of desiderata for these languages and
>tools.  What's on other people's lists?
>
>N
>-- 
>Norman Ramsey
>http://www.cs.virginia.edu/~nr

I've always liked the minimalist approach when creating programs--and
this would apply to languages as well. I've waded through just about
everything in the if-archive (that's in english, at least) looking for
the best programming language.

Alas, they're all deficient in some respect. Right now I'm using TADS
and WorldClass, because they have the power I need (especially the
Sensor class) but there's definitely a lack of elegance in WorldClass.

Dave talks about putting everything in libraries, but this I think
misses the point. Libraries *ARE* part of the language, the IF
writer/programmer has to learn the library in order to use the
functionality it provides. So, in effect, putting all the goodies in
the library (as opposed to the language itself) is more a packaging
issue than a practical difference. At least to the writer/programmer
who has to use the language.

My list starts and ends with elegance in design. Elegance (for me)
simply means the ability to write clear, simple, *short* code. It
means the creation of code is (after a small learning curve)
intuitive. It means many common tasks should *already* be done for me,
in such a way that I can get at them easily, and not have to write a
lot of code.

Take senses, for instance. IF started out using the sense of sight,
and much of the text handling abilities we've come to love in our IF
tools revolve around the sense of sight.

In Thief's Quest I want to implement all the other senses, sound,
touch, taste, and smell. This should be a simple thing. Yet the
WorldClass library offers over two dozen functions that implement the
various senses. There are function *sets* for each sense. There are
methods and properties to enable the senses, others to record the text
associated with them, and yet others to verify objects are detectable
to the various senses.

ARGH!!!!!!

WorldClass (and Inform and Hugo and many others) remind me of computer
versions of mechanized Victoriana. They are intricate, beautiful,
mesmerizing in their complexity.

And too hard to use. Alan is a noble effort to go in the opposite
direction. Unfortunately it goes too far, putting a strait-jacket on
the ability to do what I want the *way* I want.

In my opinion (and this is only my opinion) the next-generation IF
langauges need to strike a better balance between power and
complexity. Today's computer systems are powerful enough to compile
complex (but intuitive) syntax in reasonable time.

We need to break away from awkward (but easily parsed) syntax like C
based lanagues to more syntactically complex languages that either A)
more closely resemble English (Spanish, German, French....) OR B)
restrict themselves to the IF domain more naturally.

Object orientation is a good first step, but by itself it isn't
enough. Libraries are also good, but in and of themselves don't offer
a solution to object proliferation. What we need are not cleverly
coded functions and optimizing compilers, but rather cleverly
constructed syntaxes that either match the writer's language or the
problem being solved.

The creators of our current day tools have certainly given us more
than we've ever had. But the next generation of tools, like present
day automobiles, need to be easier to use and maintain than their
predecesors.

Respectfully,

Wolf


From dmb@ai.mit.edu Sun Dec 29 21:51:58 MET 1996
Article: 20906 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news01.sunet.se!sunic!mn6.swip.net!plug.news.pipex.net!pipex!oleane!in2p3.fr!univ-lyon1.fr!howland.erols.net!cliffs.rs.itd.umich.edu!bloom-beacon.mit.edu!ai-lab!lf!dmb
From: dmb@lf.ai.mit.edu (David Baggett)
Newsgroups: rec.arts.int-fiction
Subject: Re: Questionable Languages & Compilers
Date: 28 Dec 1996 21:56:27 GMT
Organization: MIT Artificial Intelligence Lab
Lines: 221
Message-ID: <5a452b$kfh@life.ai.mit.edu>
References: <32b72f97@beachyhd.demon.co.uk> <59cimp$2hf@life.ai.mit.edu> <59uhn6$c0@mamba.cs.Virginia.EDU> <32c42118.5378687@news.one.net>
Reply-To: dmb@ai.mit.edu
NNTP-Posting-Host: lf.ai.mit.edu

In article <32c42118.5378687@news.one.net>, Roger Plowman <wolf@one.net> wrote:
>nr@mamba.cs.Virginia.EDU (Norman Ramsey) wrote:

>Right now I'm using TADS and WorldClass, because they have the power I need
>(especially the Sensor class) but there's definitely a lack of elegance in
>WorldClass.
>
>[...] I want to implement all the other senses, sound, touch, taste, and
>smell. This should be a simple thing. Yet the WorldClass library offers
>over two dozen functions that implement the various senses. There are
>function *sets* for each sense. There are methods and properties to enable
>the senses, others to record the text associated with them, and yet others
>to verify objects are detectable to the various senses.

I thorougly agree with your assessment.  The main reason that WorldClass is
so complicated is that it's the first try at doing many new things like
first-class senses.  In my experience, you need to write a new program at
least several times from scratch before you can hope to not only get it all
right but make it simple and clear as well.  I never really wanted to
release WorldClass, but Adam Thornton basically convinced me that it
couldn't hurt to do so.

I think the sense-reach strategy is basically the right one.  But there do
not need to be eighty-zillion methods for this, as you point out.  Things
like canputinto and canspeakto are ugly band-aids that should be replaced
by something more elegant.

Not to sound like a broken record, but I think part of the problem, though,
is the lack of first-class functions in TADS.  And here we come
full-circle, because it was my struggle to write WorldClass and TADS that
prompted me to look at how Scheme and other functional languages would work
for IF.

A language that lacks first-class functions tends to make the programmer
name *everything*.  Hence the absurd number of important names in
WorldClass.

Another problem with WorldClass is that it is slow, particular in tracking
what every NPC and PC knows about in the world.  Since this is not a
particularly exotic thing to do, and since the WorldClass way of doing it
is not terribly inefficient, it seems to me that 1) the TADS VM interpreter
could use some speedups, 2) the TADS compiler needs to optimize code, or 3)
the very idea of compiling to a VM machine binary is rather limiting.

I don't even want to *think* about implementing Prolog-style backtracking
searches in TADS VM or Z-Machine code!

There are alternatives to straight VM binaries like Just-in Time
compilation.  Some Java interpreters use JIT now, but it's a lot of work to
get JIT working and debugged.

>Dave talks about putting everything in libraries, but this I think
>misses the point. Libraries *ARE* part of the language, the IF
>writer/programmer has to learn the library in order to use the
>functionality it provides. So, in effect, putting all the goodies in
>the library (as opposed to the language itself) is more a packaging
>issue than a practical difference.

There is a key difference.  Library code is written entirely in the syntax
and semantics of the host language.  Therefore, if you know the syntax and
semantics of the language, you are certain to be able to read any library
code you come across.  (This assumes that library code is available.  I
think that for IF systems that's a pretty safe bet.)

It seems to me that there are three basic places you can put functionality
in an IF system:

  1) In the target virtual machine
  2) In the language
  3) In a library

Here are examples of each, from TADS:

In the VM:

  random number generator, input tokenization, arithmetic primitives,
  status line display, file selector dialog box, daemons (notify),
  caps(), outhide(), length(), preparse()

In the language:

  verDoX, VerIoX, doX, ioX methods required to interface to parser;
  Special syntax for parser interface:
    verb = 'in' 'go in' 'enter' 
    doAction = 'Enter'
    doSynonym = 'In'
    compoundWord 'on' 'to' 'onto';
    article = 'the' 'a' 'an'
    formatstring 'you' fmtYou;
    specialWords
    StringObj
    NumberObj
  "This outputs a string";
  "This outputs the value <<value>>.";

In a library:

  Standard classes like PC, NPC, door, key, food, etc.
  Sense-reach checking, etc.

Now consider the pros and cons of putting features in each of the three
places:

In the VM:

  PROS:  - Highest performance (native machine code speed)
  CONS:  - Becomes set in stone once VM implementations are in use and
         games use the features.  Therefore, nearly impossible for 
         anyone, including the system author, to change.
         - One can only understand the feature fully by reading the
         VM interpreter source code.  Where there is confusion,
         different VM implementations may vary, causing problems in 
         games that depend on one particular interpretation.

In the language:

  PROS:  - Special syntax can call users' attention to critical
         features.
         - Special syntax may enable a more compact representation.
  CONS:  - One can only fully understand the feature by reading
         the compiler source code (an even worse situation than
         for VM features).
         - The "my source looks like line noise" problem: Nifty syntax
         often conveys little intuition to any but language experts.
         Novices may use syntax without fully understanding it.
         - Special syntax must be fully mastered before one can 
         read programs in the language.
         - Even less modifiable after the fact than VM features,
         since existing source code will break.

In the library:

  PROS:  - Reading, understanding, and modifying the feature requires
         the same knowledge of the language as writing and reading
         one's own game source code (ignoring algorithm complexity,
         of course).
         - New, related, features can be derived simply by modifying the
         source code.
         - Bug-fixes can be posted to the net and applied locally;
         no need to update the compiler or (oh no!) chase down and update
         every user's copy of the VM interpreter.
  CONS:  - In the absence of fancy JIT techniques, code runs much slower
         than native code "stored" in the VM.

Clearly some features need to go in more than one place.  

For most features, it's pretty clear which pros and cons you care about.
And I would say that the obvious conclusion is that you want to put as
little as possible in the VM and compiler, and as much as possible in
libraries.

>In my opinion (and this is only my opinion) the next-generation IF
>langauges need to strike a better balance between power and complexity.

The only way I know of to make complex things comprehensible is to put
*abstraction* to work.  We use abstraction every time we use algebra to
reduce an expression -- you don't have to any intuition about why an
algebraic operation preserves equality; you just apply the operation
mechanically.  This lets you worry about the high-level goal you're
trying to reach.

The same principle applies to computer programming.  A good language
encourages you to vigorously exploit abstraction.  It asks you to take code
that's common to two or more places in your program and to make it into a
separate black-box tool that only needs to be debugged once.

Lexical analyzer generators (to use a recent example) abstract the problem
of tokenizing, so you can write something like

  integer -> [0-9]+
  identifier -> [a-z_][a-z_0-9]*

and represent, in two lines, what you have to write tons of C code to do.
This makes it easy to understand, debug, and extend the lexical analysis
phase of your program.  You do not need to understand or even think about
the complicated mechanisms that turn your two lines into a correct and
equivalent lexical analyzer.

How likely are you to have a bug in your two lines?  And now how likely are
you to have bugs in your many lines of C code?

Abstraction, plain and simple.

>Today's computer systems are powerful enough to compile complex (but
>intuitive) syntax in reasonable time.

It's a matter of taste, but I don't think that more complex syntax will
help; I think it will make it worse.  Have you ever read an APL program?
Even if you are a veteran programmer, unless you are specifically an *APL*
programmer, APL programs look like line noise.

Is my special syntax above significantly better than this:

  (integer (+ 0 9))
  (identifier (- a z _) (* (- a z _ 0 9)))

Perhaps if you're not at all familiar with lisp syntax it is.  But if
you've spent a couple hours learning to read lisp code (there are very few
rules), you can read the lisp version easily.  And the minimalist lisp
syntax can reasonably naturally express all the things you'll invent
special syntax to do.  Once you know the lisp rules, you can read any lisp
expression.  There's never a new operator to learn, an ambiguity you can't
mentally resolve, or operator precedences to internalize.

>We need to break away from awkward (but easily parsed) syntax like C based
>lanagues to more syntactically complex languages that either A) more
>closely resemble English (Spanish, German, French....)

They tried that.  It's called COBOL.  (OK, cheap shot...)

>OR B) restrict themselves to the IF domain more naturally.

I still do not see any concrete evidence that this would help anything.
Can you give examples of what you think would be a better syntax (either
domain-specific, or "closer to English")?

Dave Baggett
__
dmb@ai.mit.edu
"Mr. Price: Please don't try to make things nice! The wrong notes are *right*."
--- Charles Ives (note to copyist on the autograph score of The Fourth of July)


From dmb@ai.mit.edu Sun Dec 29 21:51:59 MET 1996
Article: 20905 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news99.sunet.se!nntp-oslo.UNINETT.no!nntp-trd.UNINETT.no!sn.no!nntp.uio.no!news-feed.inet.tele.dk!arclight.uoregon.edu!newsfeeds.sol.net!newspump.sol.net!ddsw1!news.mcs.net!van-bc!n1van.istar!van.istar!west.istar!news
From: dmb@lf.ai.mit.edu (David Baggett)
Newsgroups: rec.arts.int-fiction
Subject: Re: Questionable Languages & Compilers
Date: 29 Dec 1996 05:21:18 GMT
Organization: MIT Artificial Intelligence Lab
Lines: 221
Message-ID: <5a4v4e$5b2@nr1.vancouver.istar.net>
References: <32b72f97@beachyhd.demon.co.uk> <59cimp$2hf@life.ai.mit.edu> <59uhn6$c0@mamba.cs.Virginia.EDU> <32c42118.5378687@news.one.net>
Reply-To: dmb@ai.mit.edu
NNTP-Posting-Host: webserver.vertigo3d.com

In article <32c42118.5378687@news.one.net>, Roger Plowman <wolf@one.net> wrote:
>nr@mamba.cs.Virginia.EDU (Norman Ramsey) wrote:

>Right now I'm using TADS and WorldClass, because they have the power I need
>(especially the Sensor class) but there's definitely a lack of elegance in
>WorldClass.
>
>[...] I want to implement all the other senses, sound, touch, taste, and
>smell. This should be a simple thing. Yet the WorldClass library offers
>over two dozen functions that implement the various senses. There are
>function *sets* for each sense. There are methods and properties to enable
>the senses, others to record the text associated with them, and yet others
>to verify objects are detectable to the various senses.

I thorougly agree with your assessment.  The main reason that WorldClass is
so complicated is that it's the first try at doing many new things like
first-class senses.  In my experience, you need to write a new program at
least several times from scratch before you can hope to not only get it all
right but make it simple and clear as well.  I never really wanted to
release WorldClass, but Adam Thornton basically convinced me that it
couldn't hurt to do so.

I think the sense-reach strategy is basically the right one.  But there do
not need to be eighty-zillion methods for this, as you point out.  Things
like canputinto and canspeakto are ugly band-aids that should be replaced
by something more elegant.

Not to sound like a broken record, but I think part of the problem, though,
is the lack of first-class functions in TADS.  And here we come
full-circle, because it was my struggle to write WorldClass and TADS that
prompted me to look at how Scheme and other functional languages would work
for IF.

A language that lacks first-class functions tends to make the programmer
name *everything*.  Hence the absurd number of important names in
WorldClass.

Another problem with WorldClass is that it is slow, particular in tracking
what every NPC and PC knows about in the world.  Since this is not a
particularly exotic thing to do, and since the WorldClass way of doing it
is not terribly inefficient, it seems to me that 1) the TADS VM interpreter
could use some speedups, 2) the TADS compiler needs to optimize code, or 3)
the very idea of compiling to a VM machine binary is rather limiting.

I don't even want to *think* about implementing Prolog-style backtracking
searches in TADS VM or Z-Machine code!

There are alternatives to straight VM binaries like Just-in Time
compilation.  Some Java interpreters use JIT now, but it's a lot of work to
get JIT working and debugged.

>Dave talks about putting everything in libraries, but this I think
>misses the point. Libraries *ARE* part of the language, the IF
>writer/programmer has to learn the library in order to use the
>functionality it provides. So, in effect, putting all the goodies in
>the library (as opposed to the language itself) is more a packaging
>issue than a practical difference.

There is a key difference.  Library code is written entirely in the syntax
and semantics of the host language.  Therefore, if you know the syntax and
semantics of the language, you are certain to be able to read any library
code you come across.  (This assumes that library code is available.  I
think that for IF systems that's a pretty safe bet.)

It seems to me that there are three basic places you can put functionality
in an IF system:

  1) In the target virtual machine
  2) In the language
  3) In a library

Here are examples of each, from TADS:

In the VM:

  random number generator, input tokenization, arithmetic primitives,
  status line display, file selector dialog box, daemons (notify),
  caps(), outhide(), length(), preparse()

In the language:

  verDoX, VerIoX, doX, ioX methods required to interface to parser;
  Special syntax for parser interface:
    verb = 'in' 'go in' 'enter' 
    doAction = 'Enter'
    doSynonym = 'In'
    compoundWord 'on' 'to' 'onto';
    article = 'the' 'a' 'an'
    formatstring 'you' fmtYou;
    specialWords
    StringObj
    NumberObj
  "This outputs a string";
  "This outputs the value <<value>>.";

In a library:

  Standard classes like PC, NPC, door, key, food, etc.
  Sense-reach checking, etc.

Now consider the pros and cons of putting features in each of the three
places:

In the VM:

  PROS:  - Highest performance (native machine code speed)
  CONS:  - Becomes set in stone once VM implementations are in use and
         games use the features.  Therefore, nearly impossible for 
         anyone, including the system author, to change.
         - One can only understand the feature fully by reading the
         VM interpreter source code.  Where there is confusion,
         different VM implementations may vary, causing problems in 
         games that depend on one particular interpretation.

In the language:

  PROS:  - Special syntax can call users' attention to critical
         features.
         - Special syntax may enable a more compact representation.
  CONS:  - One can only fully understand the feature by reading
         the compiler source code (an even worse situation than
         for VM features).
         - The "my source looks like line noise" problem: Nifty syntax
         often conveys little intuition to any but language experts.
         Novices may use syntax without fully understanding it.
         - Special syntax must be fully mastered before one can 
         read programs in the language.
         - Even less modifiable after the fact than VM features,
         since existing source code will break.

In the library:

  PROS:  - Reading, understanding, and modifying the feature requires
         the same knowledge of the language as writing and reading
         one's own game source code (ignoring algorithm complexity,
         of course).
         - New, related, features can be derived simply by modifying the
         source code.
         - Bug-fixes can be posted to the net and applied locally;
         no need to update the compiler or (oh no!) chase down and update
         every user's copy of the VM interpreter.
  CONS:  - In the absence of fancy JIT techniques, code runs much slower
         than native code "stored" in the VM.

Clearly some features need to go in more than one place.  

For most features, it's pretty clear which pros and cons you care about.
And I would say that the obvious conclusion is that you want to put as
little as possible in the VM and compiler, and as much as possible in
libraries.

>In my opinion (and this is only my opinion) the next-generation IF
>langauges need to strike a better balance between power and complexity.

The only way I know of to make complex things comprehensible is to put
*abstraction* to work.  We use abstraction every time we use algebra to
reduce an expression -- you don't have to any intuition about why an
algebraic operation preserves equality; you just apply the operation
mechanically.  This lets you worry about the high-level goal you're
trying to reach.

The same principle applies to computer programming.  A good language
encourages you to vigorously exploit abstraction.  It asks you to take code
that's common to two or more places in your program and to make it into a
separate black-box tool that only needs to be debugged once.

Lexical analyzer generators (to use a recent example) abstract the problem
of tokenizing, so you can write something like

  integer -> [0-9]+
  identifier -> [a-z_][a-z_0-9]*

and represent, in two lines, what you have to write tons of C code to do.
This makes it easy to understand, debug, and extend the lexical analysis
phase of your program.  You do not need to understand or even think about
the complicated mechanisms that turn your two lines into a correct and
equivalent lexical analyzer.

How likely are you to have a bug in your two lines?  And now how likely are
you to have bugs in your many lines of C code?

Abstraction, plain and simple.

>Today's computer systems are powerful enough to compile complex (but
>intuitive) syntax in reasonable time.

It's a matter of taste, but I don't think that more complex syntax will
help; I think it will make it worse.  Have you ever read an APL program?
Even if you are a veteran programmer, unless you are specifically an *APL*
programmer, APL programs look like line noise.

Is my special syntax above significantly better than this:

  (integer (+ 0 9))
  (identifier (- a z _) (* (- a z _ 0 9)))

Perhaps if you're not at all familiar with lisp syntax it is.  But if
you've spent a couple hours learning to read lisp code (there are very few
rules), you can read the lisp version easily.  And the minimalist lisp
syntax can reasonably naturally express all the things you'll invent
special syntax to do.  Once you know the lisp rules, you can read any lisp
expression.  There's never a new operator to learn, an ambiguity you can't
mentally resolve, or operator precedences to internalize.

>We need to break away from awkward (but easily parsed) syntax like C based
>lanagues to more syntactically complex languages that either A) more
>closely resemble English (Spanish, German, French....)

They tried that.  It's called COBOL.  (OK, cheap shot...)

>OR B) restrict themselves to the IF domain more naturally.

I still do not see any concrete evidence that this would help anything.
Can you give examples of what you think would be a better syntax (either
domain-specific, or "closer to English")?

Dave Baggett
__
dmb@ai.mit.edu
"Mr. Price: Please don't try to make things nice! The wrong notes are *right*."
--- Charles Ives (note to copyist on the autograph score of The Fourth of July)


From marnix@worldonline.nl Sun Dec 29 21:52:00 MET 1996
Article: 20903 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news99.sunet.se!newsfeed.luth.se!news.luth.se!eru.mt.luth.se!www.nntp.primenet.com!nntp.primenet.com!mr.net!news-out.microserve.net!news-in.microserve.net!news-xfer.netaxs.com!feed1.news.erols.com!howland.erols.net!surfnet.nl!news.unisource.nl!news.worldonline.nl!usenet
From: marnix@worldonline.nl (Marnix Klooster)
Newsgroups: rec.arts.int-fiction
Subject: Re: Questionable Languages & Compilers
Date: Sat, 28 Dec 1996 21:52:39 GMT
Organization: World Online
Lines: 43
Message-ID: <32c56758.2931896@news.worldonline.nl>
References: <32b72f97@beachyhd.demon.co.uk> <1996Dec19.165314.307@wcc.govt.nz> <59cimp$2hf@life.ai.mit.edu> <59uhn6$c0@mamba.cs.Virginia.EDU>
NNTP-Posting-Host: drdt2-p103.worldonline.nl
X-Newsreader: Forte Free Agent 1.1/16.230

nr@mamba.cs.Virginia.EDU (Norman Ramsey) wrote:

> My pet peeve at the moment is that existing tools seem to offer little
> in the way of static type checking.  A language like Inform leaves a
> lot of checking for run time.  For example, according to the language,
> every property is meaningful on every object.  This rule offers
> tremendous flexibility, but it also leads to heavy overloading of
> properties like `general'.  On the other hand, the obvious way of using
> a fully static type system like that for C++, Java, or Modula-3 would
> make Inform programming significantly more awkward than it is today.
> Reconciling these competing goals would make a good master's project :-)

How would e.g. Inform programming be more complicated when static
typing is added?  If the problem is that the programmer must
write down the declarations explicitly, a good solution is to
have automatic type inference, and optional type declarations --
if the inferred type does not match the declared type a
compile-time error is signalled.  This is standard in languages
such as Haskell and ML.

> It's easy to write long lists of desiderata for these languages and
> tools.  What's on other people's lists?

I'd like to have a language with a simple semantics, a readable
syntax, together with powerful libraries.  _Simple_ means no
limits (no upper bound on numbers or string lenghts), elegant
arithmetic (as in Scheme), and a few orthogonal constructs with
which a lot can be achieved.  _Readable_ means not having to use
too many words (e.g., block structure can be indicated by
indentation instead of delimiters), and generally being
consistent.  Since a library is essentially a language extension,
these criteria hold for them too.

> Norman Ramsey

Groetjes,

 <><

Marnix
--
Marnix Klooster        |  If you reply to this post,
marnix@worldonline.nl  |  please send me an e-mail copy.


From bifurcate@geocities.com Sun Dec 29 21:52:01 MET 1996
Article: 20807 of rec.arts.int-fiction
Path: news.lth.se!solace!news.ecn.uoknor.edu!feed1.news.erols.com!howland.erols.net!newsfeed.internetmci.com!news.internetMCI.com!news-admin
From: Bif <bifurcate@geocities.com>
Newsgroups: rec.arts.int-fiction
Subject: Re: Questionable Languages & Compilers
Date: Sun, 22 Dec 1996 11:17:51 -0800
Organization: none
Lines: 12
Message-ID: <32BD895F.300F@geocities.com>
Reply-To: bifurcate@geocities.com
NNTP-Posting-Host: usr4-dialup50.mix1.bloomington.mci.net
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
X-Mailer: Mozilla 3.0 (Win16; I)

Okay, I'm the guy who started this thread. I apologize to Graham and
Andrew and everyone else for swearing and making bad criticism. Both my
complaints were just plain wrong and if I'd thought before using a
certain word, I would have realized that it has connotations of sodomy.

I suppose the reason (not an excuse) for sending that email is that I
was frustrated and a little angry when learning the Inform language. The
learning of most technical tools is frustrating. If it's any
consolation, Graham, I still think the language is neat enough to
continue using it.

--Bif


From mamster@u.washington.edu Sun Dec 29 21:52:02 MET 1996
Article: 20821 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news99.sunet.se!newsfeed.luth.se!news.luth.se!erix.ericsson.se!eua.ericsson.se!news.algonet.se!hammer.uoregon.edu!hunter.premier.net!www.nntp.primenet.com!nntp.primenet.com!mindspring!uunet!in2.uu.net!140.142.64.3!news.u.washington.edu!root
From: mamster@u.washington.edu (Matthew Amster-Burton)
Newsgroups: rec.arts.int-fiction
Subject: Re: Questionable Languages & Compilers
Date: Mon, 23 Dec 1996 16:43:18 GMT
Organization: University of Washington
Lines: 14
Message-ID: <32beb618.2015943@news.u.washington.edu>
References: <32BD895F.300F@geocities.com>
NNTP-Posting-Host: mamster.cdmrc.washington.edu
X-Newsreader: Forte Free Agent 1.1/32.230

Bif <bifurcate@geocities.com> wrote:

>Both my
>complaints were just plain wrong and if I'd thought before using a
>certain word, I would have realized that it has connotations of sodomy.

Sorry to jump in now after completely missing the festivities over the
weekend (why do you do this to me every week), but ain't this one of
the strangest apologies you've ever seen?

Not that I doubt its sincerity, of course....

Matthew



From dmb@ai.mit.edu Mon Dec 30 11:51:15 MET 1996
Article: 20929 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news01.sunet.se!sunic!02-newsfeed.univie.ac.at!newsfeed.de.ibm.net!news-m01.ny.us.ibm.net!newsfeed.uk.ibm.net!arclight.uoregon.edu!feed1.news.erols.com!howland.erols.net!cliffs.rs.itd.umich.edu!bloom-beacon.mit.edu!ai-lab!lf!dmb
From: dmb@lf.ai.mit.edu (David Baggett)
Newsgroups: rec.arts.int-fiction
Subject: Specific Inform criticism (was Re: Fast lexers...)
Date: 30 Dec 1996 01:01:15 GMT
Organization: MIT Artificial Intelligence Lab
Lines: 279
Message-ID: <5a748r$iir@life.ai.mit.edu>
References: <59g6p8$grj@bartlet.df.lth.se> <59qffk$eei@news.spies.com> <59sbav$5tc@life.ai.mit.edu> <ant282255313M+4%@gnelson.demon.co.uk>
Reply-To: dmb@ai.mit.edu
NNTP-Posting-Host: lf.ai.mit.edu

In article <ant282255313M+4%@gnelson.demon.co.uk>,
Graham Nelson  <graham@gnelson.demon.co.uk> wrote:

>Secondly, the implication that a LISP-like language is incompatible
>with the Z-machine is wrong.  Infocom's own language, ZIL, was
>essentially LISP [...]

I didn't actually mean to imply that.  And for that matter, Andrew Plotkin
has recently given us rather compelling evidence that the Z-Machine is
compatible with lisp-like languages.

>[...] (and some Z-machine features reflect that: for instance the order in
>which opcodes are processed is designed to make a LISP syntax analyser's
>job easier).  And I have to say, the bits of ZIL I've seen... have, well,
>let's call it "charm" if we're going to avoid accusations of bizarreness.

I think you're almost making my point for me here.  You point out that the
Z-Machine is tailored to lisp-like languages (at least a little; Z-Machine
"properties" are certainly lisp-influenced) yet you wrote a compiler for a
decidedly un-lipsy language with the Z-Machine as target.

Then you speak of Zil's charm.  Don't you think the same "charm" carries
over to Inform via the Z-Machine?

>The most frequent criticism of Inform has been that it has a steep learning
>curve.  To someone who's never programmed before, ZIL (or LISP) would be a
>hard furrow to plough.

I'm not going to harp on this much more, because it's clear that some
people will agree with me and some people never will.  But I think it's
important to make a distinction between the way in which Inform has a steep
learning curve and the way in which lisp has a steep learning curve.

Inform has a steep learning curve because the syntax and semantics are
non-orthogonal (i.e., fraughty with exceptions), needlessly complicated,
and in some cases confusing or unclear, particular when language primitives
are combined.

Lisp has a steep learning curve because the syntax is very minimalist (so
you have to learn how to read and write everything fully parenthesized).
It's also hard to learn for many people because it encourages a different
kind of programming idiom (extensive use of recursion, functional style, an
emphasis on abstraction, and "fancy" primitives like lambda, call/cc,
force/delay, catch/throw, map, etc.

All the things you've said in defense of Inform's langauge design could
equally well be said of TeX.  (I hope we can at least agree that TeX is
pretty well near the bottom of the barrel when it comes to language
design.)

Lots of code is written in TeX, and most of it even works right.  But that
doesn't mean that TeX is actually *good*.  People are simply struggling
through its oddities, and consulting wizards for help as needed.

So that I'm not just unproductively grousing, here's an uncomprehensive
list of some things that I think are wrong with Inform, from a language
design standpoint.  I will try to leave aside the design of the library,
even though Inform's design makes it hard, in some cases, to separate the
library from the language.

These are roughly in the order that the manual reveals them:

  - 16-bit math only
  - print is part of the language instead of a library routine, so
    it has different syntax than a normal function call. Ditto for
    quit, new_line, spaces, inversions, and others.  Why not
    print(...), quit(), new_line(), spaces(20), etc.?
  - Unnecessarily "new" almost-C syntax: ^ for newline, : to separate
    expressions in for loop, etc.  At least C's \<char> is somewhat
    general.  If you are going to derive from C so heavily, why change
    a few things here and there for no good reason?  This will help
    no one but will confuse the C programmers.
  - (Unless I'm misreading this one:) Whitespace-dependence (variables
    declared on first *line* of function)
  - 32-character maximum on identifier names
  - Silent defaulting of missing function args to zero is an evil
    "convenience" that will surely lead to bugs.
  - Operator insanity; example: "or", as in 

      if (x ~= 1 or 2 or 3) return;

    Inform has *36* different operators.  Only C++ goes further overboard.
  - [ and ] along with { and }.  Why?  (Your defense of this is not
    convincing.)
  - No local variables within { and }; therefore scoping is limited
    to a single routine.  (No functions declared in functions, either.)
  - More ad-hoc syntax: use of "to" to denote ranges in switch statements;
    label names (targets of jumps) preceded by dot.
  - Magic numbers: @@64 to get the "@" character instead of something
    symbolic like "@at".  Again, why are there *numerous* mechanisms
    for the same task (escaping characters)?
  - More magic numbers: string variables that must be accessed by
    number (@00 to get string 0) and set with another special
    reserved word: string 0 "string";
  - rtrue reserved word: more pointless special syntax!  Does it kill
    you Inform wizards to type a handful of characters?!
  - "..."; implicitly returns.  This means that the more adorned
    version print "..."; counter-intuitively does less than the 
    shorthand version.
  - Printing rules like (char), (address), etc.  Again, an entirely new
    notation for representing what function call notation should handle.
  - More unobvious syntax: --> vs -> in array declaration.  Doubly bad
    because it forces the programmer to keep track of something the
    compiler outght to: the size of the elements in the array being
    accessed.  This means that changing an array from one type to
    another requires the programmer to track down every instance
    of (say) --> and replace it with ->.
  - Length byte/word in a string/table is treated like every other
    array entry, even though its meaning is totally different.  (E.g.,
    you can change it and screw up everything without warning.)  It
    is not obvious when you see "a-->0" in the source whether or
    not that means "length of a" or just "0th element of a" unless 
    you know how a is defined.  What's wrong with length(a), which 
    says what it means?
  - More array nastiness:

      Array Doubtful --> 50 10 -20 56;

    is ambiguous, as the DM points out.
  - More superfluous notation: object statements like move <object> to
    <object> use new notation for what could equally well be written as
    move(obj1, obj2).
  - The containment hierarchy and the inheritance DAG are intertwined.
  - object loop complicates the syntax further still by allowing
    a condition inside the parens, as in

      objectloop(x in Mailbox) print (name) x, "^";

    This is a bad approximation of first-class functions, as in:

      (objectloop (lambda (x)
                    (when (in? x Mailbox)
                      (print (name x) #\newline))))

    The difference is that the Scheme version can apply any function
    expressible in the language, whereas the Inform objectloop
    can apply only a limited subset (the exact nature of which is
    not at all obvious). 

    Furthermore, the programmer can define functions like objectloop
    himself in Scheme.   In Inform one is stuck with the hard-wired
    version only.

    The Inform restrictions lead to a preponderance of special
    condition words like "provides," where Scheme subsumes this
    within the normal, nothing-new-to-learn syntax.
  - From the manual, about object properties which are arrays:

    "This must be accessed using two special operators, .& and .#.

           magpie.&name

     means "the array which is held in magpie's name property", so that
     the actual name values are in the entries

          magpie.&name-->0
          magpie.&name-->1
             ...
          magpie.&name-->4

     The size of this array can be discovered with

          magpie.#name

     which evaluates to the twice the number of entries, in this case,
     to 10."

     The sheer evil of this speaks for itself.  Then, soon after, we
     find:
    
     "(... The rule here is anomalous and goes back to the misty origins of
      Inform 1.) If you prefer a consistent style, using single quotes:

           Object magpie "black-striped bird"
             with name 'magpie' 'bird' 'black-striped' 'black' 'striped',
                 wingspan 5, worms_eaten;

     works equally well (except that single-character names like "X" then
     have to be written #n$X)."

     Wait, was that #n$X, or did my modem just get a burst of line noise? 
     Say it ain't so!
  -  Why are object attributes given special status?  Why can't this be
     done with a general mechanism?
  -  A nasty complication thanks to the Z-Machine:

     "The properties used in the chapter above are all examples of
     'individual' properties.  These are properties which any given object
     might provide, or might not.

           A small number of properties can be declared as "common"
     properties, using the directive

           Property <name>;

     which declares that this name will always be a common property.  Under
     Inform 5.5 and earlier, these were the only properties available, so
     that the Property directive is seen fairly frequently in older example
     source code.

           The only point in making such a declaration now is that common
     properties are slightly faster in use and marginally cheaper in memory
     terms than individual ones.  So the library's properties are still
     declared as common properties.  There are about 30 common properties
     left free for the use of programmers after the library has taken its
     share."

     So the language has two separate notions of "property" (the existence
     of which is already a source of pointless non-orthogonality), one
     with an ad hoc magic-number limit.
  -  Lots of random and only elusively documented limitations; e.g.,
     only 236 global variables are allowed.  This is not a hopeless limit,
     but why is there a limit at all?
  -  "Causing an action and then returning true (i.e., causing a new
     action and killing the old one) is so useful that it has an abbreviation,
     putting the action in double angle-brackets.  For example,

               <Look>; <<ThrowAt smooth_stone spider>>;

     will behave as if the player has asked to look around and to throw the
     stone at the spider, and will then return true."

     Oh no, *new* syntax!  But wait:

     "Its possible values can be referred to in the program using the ##
     notation: for example

               if (action == ##Look) ...

     tests to see if the current action is a Look."

     Ah, a new, unnecessary primitive and *three* new syntaxes for dealing
     with said primitive.  Aiieee!  Graham defends himself thus:
    
     "Why have ## at all, why not just write Look?  Partly because this way
     the reader can see at a glance that an action type is being referred to,
     but also because the name might be wanted for something else.  For
     instance there's a variable called score (holding the current game
     score), quite different from the action type ##Score."

     Again I ask, why must actions be a totally separate concept, with
     its own operators and mandatory lexical adornment?  I have no trouble
     representing  this concept in Scheme, Smalltalk, ML, even C.  Why 
     should it be assigned special status, such that one needs to read
     another wordy manual chapter to understand what ##Look is supposed to
     mean?

As a consequence of Inform's design, the Designer's Manual reads a lot like
the TeXbook -- there are so many exceptions, and the complexity of the
semantics is so mind-boggling, that one gets the feeling one is reading
about the mythology of some ancient people rather than a language
specification.

I do not want another vast lore to learn in order to program in a language.
I want a brief manual telling me what the primitives are, and then a
library of source code (hopefully adequately documented).

The Revised Report on Scheme describes the language down to the level of
formal BNF syntax and denotational semantics in *55 pages*, yet it provides
considerably more powerful primitives than Inform.  Why is the Scheme
report so short?  Because Scheme's design emphasizes orthogonality; i.e.,
most things apply generally, rather than with hundreds of unobvious
exceptions.  This is good langauge design!

Inform has evolved into an incredibly complex language that provides only
simple mechanisms to solve problems.  Contrast that with Scheme, which is
an incredibly simple language that provides powerful problem-solving tools.
Do you see why I am critical of Inform?

You can try to write it all off as personal preference, but I claim that
lots of special operators and syntax, reserved object semantics, and many
ad hoc restrictions and semantic variations make a language hard to learn
and hard to use.

Dave Baggett
__
dmb@ai.mit.edu
"Mr. Price: Please don't try to make things nice! The wrong notes are *right*."
--- Charles Ives (note to copyist on the autograph score of The Fourth of July)


From mulveyr@frontiernet.net Mon Dec 30 12:01:10 MET 1996
Article: 20927 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news01.sunet.se!sunic!02-newsfeed.univie.ac.at!newsfeed.de.ibm.net!newsfeed.uk.ibm.net!arclight.uoregon.edu!mr.net!www.nntp.primenet.com!nntp.primenet.com!news.texas.net!node2.frontiernet.net!katy
From: katy@katy.aa2ys.ampr.org (Katy Mulvey)
Newsgroups: rec.arts.int-fiction
Subject: Re: Non-scoring games (was Re: Random competition thoughts)
Date: 29 Dec 1996 23:42:13 GMT
Organization: Complete and Utter Chaoss
Lines: 53
Message-ID: <slrn5cbc18.daq.katy@katy.aa2ys.ampr.org>
References: <yxslob65pjs.fsf@stint.cl.cam.ac.uk> <58m1k8$2nu@bartlet.df.lth.se> <yxsn2vjy8kn.fsf_-_@stint.cl.cam.ac.uk> <5a5bof$f89@reader1.reader.news.ozemail.net> <5a6rrn$jei@news.ccit.arizona.edu>
Reply-To: mulveyr@frontiernet.net
NNTP-Posting-Host: usr4-46.dial.roc.frontiernet.net
X-Newsreader: slrn (0.8.8.4 (BETA) UNIX)

In article <5a6rrn$jei@news.ccit.arizona.edu>, Jason B Dyer wrote:
>James Cole (jrcole@ozemail.com.au) wrote:
>: This is the only style of IF game, that I can see, in which a  score is
>: needed.
>: (Though you might be able to do one of this type without a score)
>
>Try Zork 3.  (An underrated game, in my opinion.)  The score
>is very definitely not meaningless.

Yes, but...

<spoilers maybe... and I've found I don't know how to insert a 
 ctrl-L with jove... grrr>












IIRC, points were given when you *began* a significant puzzle, 
not when you completed it correctly. So it's possible to get to
the end game with seven out of seven points, and still not be 
able to "win" the game.

It wasn't necessarily clear that you'd gotten the game into an 
unwinnable state, either. Take the royal puzzle, for example.
There are (at least) two ways to get out. One involves a hole in 
the ceiling, and the other involves paying to get out with
an item from your inventory. You get a point either way, but 
only one of the ways gets you closer to solving the game.

In retrospect, this may be why I was never able to complete the 
endgame, although I got plenty of hints on BBS's when I was 
playing it for the first time (on an Atari 800, if anyone cares). 
I remember feeling *very* satisfied when I solved the royal 
puzzle, though.

Zork III is the sort of game which people would probably 
complain about it being "unfair" if it were released today.

  Katy

-- 
Katy Mulvey
Home: mulveyr@frontiernet.net  http://www.frontiernet.net/~mulveyr/Katy
Work: ktm@ormec.com            http://www.ormec.com 



From marnix@worldonline.nl Mon Dec 30 13:00:15 MET 1996
Article: 20846 of rec.arts.int-fiction
Path: news.lth.se!solace!nntp.uio.no!www.nntp.primenet.com!nntp.primenet.com!howland.erols.net!surfnet.nl!news.unisource.nl!news.worldonline.nl!usenet
From: marnix@worldonline.nl (Marnix Klooster)
Newsgroups: rec.arts.int-fiction
Subject: Proposed Inform extensions
Date: Tue, 24 Dec 1996 18:29:45 GMT
Organization: World Online
Lines: 174
Message-ID: <32c00f92.30373@news.worldonline.nl>
NNTP-Posting-Host: drdt1-p126.worldonline.nl
X-Newsreader: Forte Free Agent 1.1/16.230

Hello all,

Below are a couple of things I'd like to see in Inform.  Let me know
what you think.

======================================================================
Extensions to Inform
--------------------
Author: Marnix Klooster <marnix@worldonline.nl>
Last changed: 24 December 1996


This document details some possible extensions (and minor changes) to
Inform.  It is in fact a kind of `wish list,' since I do not have the
time to delve into Inform to implement all this.  This document is
based on Inform 6.05.  All feedback is welcome.

I have not included anything on exceptions, since I'm not sure about
the best way to tackle these at the moment.

For clarity, some proposals have been described separately that could
conveniently be lumped together in the implementation.  Also, some
proposals build on others.

[Comments on this document are put between square brackets.]


NULL BUILT-IN

--Proposal--
"NULL" is a built-in Inform constant different from any other value
used, as far as possible.

--Rationale--
"NULL" is currently built into the Inform library, but can be used to
good effect as a special value for other purposes too [specifically,
exceptions].  Also, this allows the compiler to guarantee that all
`symbolic constants' (see below) differ from NULL.

--Implementation--
Treat "NULL" as a built-in constant.  The value $FFFF, used by the
current Inform library, is probably the best: it is odd, so it is not
a packed routine or string address; it is highest in dynamic memory,
so very unlikely to conflicts with a pointer to that area; and it is
not zero (false) nor one (true).


SYMBOLIC CONSTANTS

--Proposal--
If a "Constant" declaration does not specify a value the default value
is not 0, but an arbitrary value such that any two such Constants are
guaranteed to be different.  Also, these values are different from
"true", "false", and "NULL".  [More generally, we could postulate that
these values are different from all built-in and explicitly-valued
Constants.]  It is also possible to declare multiple Constants with a
single declaration, by separating the identifiers by commas.

--Rationale--
This allows the use of Constants as LISP-like symbols, obviating the
need for special return values.  (Judicious use might improve
the readability of library-using functions.)  [Is there current code
that depends on the value of implicitly-valued Constants being 0?]

--Implementation--
This should not be difficult to do.


BLOCKS

--Proposal--
A block "{ <...> }" can be used as a statement.

--Rationale--
A block is really a compound statement, i.e., a way to collect a
number of statements together into one.  Also, this allows the scope
of local variables (see below) to be given.

--Implementation--
This should be trivial to implement.  Note that according to the
grammar in the Inform 6.05 Technical Manual, a statement is a special
kind of block, rather than vice versa.  This proposal effectively
reverses that, making a block into a special kind of statement.


LOCAL VARIABLES

--Proposal--
The declaration "local <ident>, <ident>, <...>;" declares the given
identifiers as local variables from that point to the end of the
current block.  As currently, every local variable is initially zero.
[Perhaps allow "<ident> = <expr>", which initialises the local
variable?]

It is an error for a local variable to `shadow' another (local or
global) variable.

A "jump" from outside to within a local variable's scope initialises
that variable to zero.  [It will be very useful to have a warning
message emitted when such a "jump" is used; perhaps it is even better
to declare this to be an error.]

--Rationale--
Having such a declaration allows one to separate the local variables
>from  the parameters of a routine.  (This also allows the compiler to
check that the number of parameters in a routine header is the same as
in its invocations.  To compensate for the loss in flexibility, I
propose to allow default values to be given for parameters; see
below.)  Another advantage that this makes it possible to declare
local variables where they are actually used, instead of at the
beginning of a routine.

--Implementation--
Local variables can be implemented using the Z-machine local variables
or routine stack.  The former is preferred, but one could resort to
the (very involved) latter if the number of parameters + local
variables exceeds 15.  Local variables with non-overlapping scope can
use the same storage.


DEFAULT ROUTINE PARAMETER VALUES

--Proposal--
Instead of just "<ident>", routine parameters may also be given as
"<ident> = <expr>", where <expr> is an expression which can be
resolved at compile-time.  If the routine is then called with not
enough parameters, the parameter is initialised to the given value,
instead of to zero.

[This allows having a non-default parameter after a default one, and
gives it an initial value of zero.  Should these be allowed?  If so,
perhaps set their initial value to NULL?]

--Rationale--
This extension allows initialisation of parameters that are not
mentioned in a routine call.

--Implementation--
Implementation amounts to reading the number of arguments through
CHECK_ARG_COUNT and initialising if necessary (V5+); or putting the
default values in the routine header (V1-4).


CHECKING THE NUMBER OF PARAMETERS

--Proposal--
Given local variable declarations (and possibly default parameter
values) as described above, the compiler can check whether routine
calls give the correct number of parameters.  A routine may be called
with at most the number of parameters given in its heading.  [Is this
compatible with Inform 6.05?]  A routine must be called with at least
as many arguments as its header has parameters before the first
non-defaulting one.

--Rationale--
This checking potentially prevents a lot of errors.  It can be thought
of as a very weak form of static typing.

--Implementation--
This can be implemented by adding some more compile-time checks.  Only
the case where a routine is called `indirectly' is not so easily
checked.  It might be possible to add run-time checks, but these might
incur unreasonable overhead.  It may be best to simply leave such
calls unchecked.
======================================================================

Groetjes,

 <><

Marnix
--
Marnix Klooster        |  If you reply to this post,
marnix@worldonline.nl  |  please send me an e-mail copy.


From marnix@worldonline.nl Mon Dec 30 13:34:20 MET 1996
Article: 20931 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news00.sunet.se!sunic!news.sprintlink.net!news-stk-200.sprintlink.net!news.ime.net!uunet!in3.uu.net!199.94.215.18!news.bbnplanet.com!cam-news-hub1.bbnplanet.com!howland.erols.net!EU.net!Austria.EU.net!01-newsfeed.univie.ac.at!swidir.switch.ch!swsbe6.switch.ch!surfnet.nl!news.unisource.nl!news.worldonline.nl!usenet
From: marnix@worldonline.nl (Marnix Klooster)
Newsgroups: rec.arts.int-fiction
Subject: Re: Questionable Languages & Compilers
Date: Mon, 30 Dec 1996 12:27:16 GMT
Organization: World Online
Lines: 202
Message-ID: <32c7979c.3998814@news.worldonline.nl>
References: <32b72f97@beachyhd.demon.co.uk> <59cimp$2hf@life.ai.mit.edu> <59uhn6$c0@mamba.cs.Virginia.EDU> <32c42118.5378687@news.one.net> <5a452b$kfh@life.ai.mit.edu> <32c6d623.12304274@news.one.net>
NNTP-Posting-Host: drdt2-p6.worldonline.nl
X-Newsreader: Forte Free Agent 1.1/16.230

wolf@one.net (Roger Plowman) wrote:

> dmb@lf.ai.mit.edu (David Baggett) wrote:
[snipped]
> >A language that lacks first-class functions tends to make the programmer
> >name *everything*.  Hence the absurd number of important names in
> >WorldClass.
> 
> I'm unfamiliar with the concept of a first-class function. Could you
> explain? I'm not sure I see how any function that's nameless could be
> useful. I'm not familiar with Scheme.

The key thing is that it is possible to pass functions as
arguments, and give functions as return values.  This makes it
possible to create new functions by `glueing together' a number
of standard functions, thereby creating the desired
functionality.

Let me use Haskell as an example language, which is hopefully not
too difficult to understand.  (In Haskell a function never has a
side effect.)  Suppose you have a list of numbers, say [1,2,3].
It is not difficult to define a function that adds the numbers in
a list:

   sum []     = 0          -- the sum of the empty list is 0
   sum (x:xs) = x + sum xs -- the sum of x followed by list xs
                           -- is x plus the sum of xs

Then sum [1,2,3] evaluates to 6.  Now assume that we want to
compute the product of a list.  This can similarly be defined as

   prod []     = 1
   prod (x:xs) = x * prod xs

Notice the similarity?  Both functions use the same recursion
pattern.  This motivates the following utility function (never
mind its name):

   foldr f z []     = z
   foldr f z (x:xs) = x `f` foldr f z xs

(Here `f` converts the function f to an infix operator.)  We can
now define sum and prod as follows:

   sum  xs = foldr (+) 0 xs
   prod xs = foldr (*) 1 xs

(Here (+) converts the infix operator + to a function.)  So, the
ability to pass a function to another function allows very
concise definitions.  Essentially, it gives the programmer the
power to create her own control structures.

> I think we're talking from different points of view. As a programmer I
> don't care if a particular function is part of the library or a native
> part of the compiler. What I care about is A) I have to learn to use
> the function and B) how much hassle the function saves me.
> 
> For example, as far as I'm concerned the P() function (for instance)
> is part of the TADS programming language. The fact that it's part of
> the library and I can get to it if I need to is nice, but the point
> is, as a programmer, I don't *want* to get to it. It's a nice black
> box, it does what I want.

But there inevitably comes a day when you, or someone else,
_will_ be concerned, since you want it to do somethiing else.
For example, what if you want to have P() print a line of dashes
to separate paragraphs?  If P() was built into the language, this
wouldn't be possible.  With libraries, this could be replaced.
As we've seen from Freefall, Robots, and Lists of Lists, there
are always people who try to push to the limits.  Having a simple
language with all complexity in the libraries makes this
possible.

You can't separate you-the-programmer from you-the-library-
(re)designer.  Inevitably you will have to modify or extend
existing functionality.  Having all special features in libraries
certainly helps here.

> Making a library that's chock full of functions and classes is all
> very well, but if those functions and classes and prebuilt objects are
> complex, poorly documented, and/or a pain to use I'm not *going* to
> use them. (And no, :) I'm *not* talking about WorldClass here!)

Of course, designing a library is basically designing a language
extension.  This means that the same criteria hold: a library
should be simple (as much as possible), well-documented, and easy
to use.

[on abstraction:]
> Absolutely. You'll get no argument from me that abstraction is the
> best defense against sheer code inundation. Howesomever, I propose we
> take abstraction and meld it with a much more "human" style of
> writing. 
[snip] 
> Or, in other words, making syntax and context work together, just as
> they do in human lanagues. Is such a compiler harder to write?
> Abso-damn-lutely! Would it be easier to program in? You betcha!

What would you consider `more human'?  In my experience the
difficult thing in programming is learning to abstract, and
learning to be precise.  Some people are good at this, others
aren't.  Syntax helps, but making it too `human' makes people
assume the language (or its implementation) is more intelligent
than it really is.

> > And the minimalist lisp
> >syntax can reasonably naturally express all the things you'll invent
> >special syntax to do.  Once you know the lisp rules, you can read any lisp
> >expression.  There's never a new operator to learn, an ambiguity you can't
> >mentally resolve, or operator precedences to internalize.
> 
> ACK! No, no, no, no!!! While I agree that lisp syntax is (in terms of
> numbers of symbols) much easier than (for instance) C, the way lisp
> expresses everything in terms of expressions and especially the prefix
> notation drives me (and others I suspect) absolutely bug-eyed.

I have to agree that Scheme's syntax, while consistent, is not
optimal for human use.  Minimalist is not always best, especially
since we're talking about inexperienced programmers here.  Humans
can adjust to almost any environment, I know -- but that doesn't
mean I'd want to.  There are alternatives: allowing infix
operators, using indentation to indicate block structure, etc.
Have a look at the syntax of, e.g., Haskell
(http://carol.fwi.uva.nl/~jon/func.html), ABC (http://www.cwi.nl
under Research Projects), and Python (http://www.python.org).

[on syntax mistakes:]
> 6) (TADS) The use of := instead of the more natural = for assignment.
> Even using the C+ pragma and having to use == instead of = for
> equality.

Depends strongly on the background you come from.  I certainly
find = confusing, even though := or <- is one more character to
type.  Especially for people with a mathematical background,
x=x+1 looks like nonsense.  Thus = is definitely not `more
natural.'

> 7) (TADS) The if/elseif combination is almost unreadable when
> repeatedly extended. if/else should be limited to *1* if and else, any
> more than 1 and a switch should be used instead.

Not true.  Suppose I want to separate between the cases
(x=0,y=0), (x/=0,y=0), (x=0,y/=0), (x/=0,y/=0).  How would you do
that readably with a switch?  An if/elseif is much more general.

And why is this almost unreadable?

   if (...) {
      ...
   } elseif (...) {
      ...
   } else {
      ...
   }

(If TADS memory serves.)

> Now, how would I design a language syntax assuming I had the skills to
> write a compiler?
> 
> 1) Absolutely keep data types as fluid as possible. TADS properties
> are a wonderful example of this. ADVSYS has similar capabilities
> (despite the fact everything was stored internally with 2 byte
> integers).

I'd be very grateful if you'd still manage to add in some
compile-time type checking.  My experience is that it is easier
to program in a language which do almost all typechecking at
compile-time, because 80% of my programming errors are small
errors which are immediately detected by type checking.

> 2) No limits on sizes of internal lists.

Ditto for numbers and strings.  Especially the former is _very_
non-intuitive for non-programmers.

> 3) No line delimiters (such as a semi-colon). The ending of a
> function, object, statement or whatever is indicated by the beginning
> of the next one or the end of the file. Basic and dBase follow this
> idea.

Look at ABC, Python, and Haskell which have indentation-based
block structure, which removes the need for line delimiters.

> 6) Keep the number of basic syntax elements to a bare minimum.
[snipped]

That's exactly what Lisp/Scheme does, and yet you don't seem to
like it! :-)

> Respectfully,
> 
> Wolf

Groetjes,

 <><

Marnix
--
Marnix Klooster        |  If you reply to this post,
marnix@worldonline.nl  |  please send me an e-mail copy.


From mol@bartlet.df.lth.se Mon Dec 30 13:59:17 MET 1996
Article: 20932 of rec.arts.int-fiction
Path: news.lth.se!news
From: mol@bartlet.df.lth.se (Magnus Olsson)
Newsgroups: rec.arts.int-fiction
Subject: Re: Questionable Languages & Compilers
Date: 30 Dec 1996 13:57:02 +0100
Organization: The Computer Society at Lund University and Lund Institute of Technology
Lines: 102
Message-ID: <5a8e6u$die@bartlet.df.lth.se>
References: <32b72f97@beachyhd.demon.co.uk> <5a452b$kfh@life.ai.mit.edu> <32c6d623.12304274@news.one.net> <32c7979c.3998814@news.worldonline.nl>
NNTP-Posting-Host: bartlet.df.lth.se
NNTP-Posting-User: mol

In article <32c7979c.3998814@news.worldonline.nl>,
Marnix Klooster <marnix@worldonline.nl> wrote:
>wolf@one.net (Roger Plowman) wrote:
>
>> dmb@lf.ai.mit.edu (David Baggett) wrote:
>[snipped]
>> >A language that lacks first-class functions tends to make the programmer
>> >name *everything*.  Hence the absurd number of important names in
>> >WorldClass.
>> 
>> I'm unfamiliar with the concept of a first-class function. Could you
>> explain? I'm not sure I see how any function that's nameless could be
>> useful. I'm not familiar with Scheme.
>
>The key thing is that it is possible to pass functions as
>arguments, and give functions as return values.  

Passing functions as arguments can be done in languages without
first-class functions, such as C. It can be quite cumbersome, though.

As for the usefulness of nameless functions (for clarity, I think we
should separate the concept of nameless functions from that of
first-class functions; they are not necessarilty the same): sometimes
they are useful, sometimes not. Consider an analogy with classes. TADS
has what you could call "nameless classes", since when you declare an
object, you can override inherited members and add new ones. You can
even inherit from the object, as if it were a class. In C++, you can't
do that: you must first create a new class, and then declare the object
as being of that class. 


BTW, is a first-class function the same thing as a lambda form, or is
there some difference?


>[on syntax mistakes:]
>> 6) (TADS) The use of := instead of the more natural = for assignment.
>> Even using the C+ pragma and having to use == instead of = for
>> equality.
>
>Depends strongly on the background you come from.  I certainly
>find = confusing, even though := or <- is one more character to
>type.  Especially for people with a mathematical background,
>x=x+1 looks like nonsense.  Thus = is definitely not `more
>natural.'

Agreed. If your background is in Pascal, you'll find TADS much
more "natural" than C. However, TADS has a big problem, and that is
that it mixes syntactic elements from C and Pascal. It's confusing to
have to use := for assignments when the language is so very much like C
in other aspects.

Also, remember that there is a reason to use different operators for
assignment and comparisons, viz. to make statements like a = b == c
unambiguous.


>> 7) (TADS) The if/elseif combination is almost unreadable when
>> repeatedly extended. if/else should be limited to *1* if and else, any
>> more than 1 and a switch should be used instead.
>
>Not true.  Suppose I want to separate between the cases
>(x=0,y=0), (x/=0,y=0), (x=0,y/=0), (x/=0,y/=0).  How would you do
>that readably with a switch?  An if/elseif is much more general.
>
>And why is this almost unreadable?
>
>   if (...) {
>      ...
>   } elseif (...) {
>      ...
>   } else {
>      ...
>   }

Shouldn't there be a space between "else" and "if"?

Also, how on earth would you desing a language so that the above
construction would be illegal? Remember, an if statement is a
statement like any other, so it is allowed to put an if after an
else...

IMNSHO, it's a hopeless task to make a language design that will make
it impossible to write unreadable code. The best we can hope for is a
language that allows us always to write readable code (far from all
existing languages do). But it's ultimately always up to the
programmer to exert the self-discipline needed to produce correct and
readable code. Which means: if you prefer switches to multiple if's,
then it's up to you to use switches.

>> Now, how would I design a language syntax assuming I had the skills to
>> write a compiler?

The following is probably going to sound very arrogant (So sue
me. I've already been branded a "snotty elitist") but, judging by your
remarks above, I'd strongly suggest that you (Roger, not Marnix) study
the theory and praxis of computer languages a little more in depth
before you even try to design one. 


-- 
Magnus Olsson (mol@df.lth.se)


From daly@PPD.Kodak.COM Mon Dec 30 20:24:28 MET 1996
Article: 20934 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news00.sunet.se!sunic!mn6.swip.net!plug.news.pipex.net!pipex!oleane!nntp.coast.net!frankensun.altair.com!newsserver.pixel.kodak.com!news.kodak.com!newsserver.rdcs.Kodak.COM!daly
From: daly@PPD.Kodak.COM (Matthew Daly)
Newsgroups: rec.arts.int-fiction
Subject: Re: Non-scoring games (was Re: Random competition thoughts)
Date: 30 Dec 1996 16:00:18 GMT
Organization: Eastman Kodak Company
Lines: 39
Message-ID: <5a8oui$64k@kodak.rdcs.Kodak.COM>
References: <yxsn2vjy8kn.fsf_-_@stint.cl.cam.ac.uk> <5a5bof$f89@reader1.reader.news.ozemail.net> <5a6rrn$jei@news.ccit.arizona.edu>
Reply-To: daly@PPD.Kodak.COM (Matthew Daly)
NNTP-Posting-Host: titan.ppd.kodak.com

In article <5a6rrn$jei@news.ccit.arizona.edu> jdyer@nevis.u.arizona.edu (Jason B Dyer) writes:
>James Cole (jrcole@ozemail.com.au) wrote:
>: This is the only style of IF game, that I can see, in which a  score is
>: needed.
>: (Though you might be able to do one of this type without a score)
>
>Try Zork 3.  (An underrated game, in my opinion.)  The score
>is very definitely not meaningless.

Yes, but.

The scoring in Zork 3 is anti-intuitive to a level that was personally
frustrating to me.  To borrow a cryptic crossword term, I think that
the surface of a game is disturbed when you ask yourself "Why did I get
a point for walking into this corridor?"  (I think the I-F term is
mimesis, but I'd rather not misuse the word.)  Even after solving
the game, I didn't know what the scoring meant until I read about it
in a hint book.  Bad sign.

Two things would have saved it, IMO.  First, if you get a point for
seeming inconsequencial acts, then you should have lost points for
inconsequential acts that brought you further from the solution.
(You probably know the sort I mean, and I don't really feel like
spoiling it.)  The other, more obvious solution, is not to have
scoring in the game at all.

>: (think about in games
>: such as Pac Man, the designers couldn't show some FMV when you did 'good'.
>: Scores seem logical for their situation.)

Wha?  Seems to me that Pac Man was the genesis of mid-level movies to
reward players for passing level X.

-Matthew
--
Matthew Daly             I don't buy everything I read ... I haven't
daly@ppd.kodak.com       even read everything I've bought.

My opinions are not necessarily those of my employer, of course.


From graham@gnelson.demon.co.uk Tue Dec 31 09:52:27 MET 1996
Article: 20943 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news99.sunet.se!newsfeed.luth.se!news.luth.se!eru.mt.luth.se!www.nntp.primenet.com!nntp.primenet.com!EU.net!uknet!usenet1.news.uk.psi.net!uknet!dispatch.news.demon.net!demon!gnelson.demon.co.uk!graham
From: Graham Nelson <graham@gnelson.demon.co.uk>
Newsgroups: rec.arts.int-fiction
Subject: Re: Specific Inform criticism (Long)
Date: Mon, 30 Dec 1996 21:32:18 +0000 (GMT)
Organization: none
Lines: 595
Message-ID: <ant3021181cbM+4%@gnelson.demon.co.uk>
References: <59g6p8$grj@bartlet.df.lth.se> <59qffk$eei@news.spies.com> <59sbav$5tc@life.ai.mit.edu> <ant282255313M+4%@gnelson.demon.co.uk> <5a748r$iir@life.ai.mit.edu> 
NNTP-Posting-Host: gnelson.demon.co.uk
X-NNTP-Posting-Host: gnelson.demon.co.uk
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; CHARSET=ISO-8859-1
X-Newsreader: ANT RISCOS Marcel [ver 1.09]

I am going to respond to Dave's post point-by-point, but there's a
danger that the result will look like a tug-of-war match, or for
that matter traditional Christmas pantomime.  So here's my general
response to his views, first:

  (a) Basically I don't agree with you, but I certainly don't
      find your views in any way offensive or untenable.

  (b) Inform is a large language, and in an ideal world I would
      like to remove some of the peripheral syntaxes (anybody
      fancy an update called Inform-- ?).  This is not an excuse
      for poor performance.  But it might be remembered that
      I am not free to redesign the language: large quantities
      of source code must continue to work.  As it is, some of
      the clutter around the edges consists of features still
      supported for the sake of old code, but no longer
      recommended.

  (c) I concede that the Z-machine specification imposes a number
      of minor restrictions: I merely think the gains outweigh
      the losses.

  (d) I do not accept that a "large" language is necessarily
      simplistic, nor that Inform is necessarily simplistic.
      I do accept that a large language is usually less elegant
      than a small one in computing.  But Inform is designed
      for IF, not for general computing.  The complexity of
      Inform language+library is quite high, but this is because
      it provides solutions to a very complex problem.  In
      particular, I do not think you have proved the claim that
      Inform is "an incredibly complex language that provides only
      simple mechanisms to solve problems".  I would say that
      Inform is a large system aimed at the pragmatic and
      difficult problem of modelling a physical world through
      text.  For instance, the Inform parser is much more complex
      than the TADS one in terms of how it can be programmed.
      But this is why it's better than the TADS one, in my view.
      [Please, nobody take this as a sweeping claim that Inform
      is better than TADS!]

  (e) Something like half of the syntaxes which you deplore
      are felt by others (well, me, anyway) to be elegant
      and convenient.  (Of the others, I concede below that
      a few are plain wrong; most of the rest are justifiable
      and harmless.)  My mail folders are full of requests to
      add new ones (especially new operators, incidentally).

  (f) The comparison of Inform with TeX is, I think, apt.
      Your comments on the manifest badness of TeX are more
      questionable.  Yes, TeX is a wretched programming language
      aesthetically, but it is a tremendously useful tool in
      practice, and has benefited a whole generation of
      scientists.  (I don't think Inform is anything like as
      difficult to reach the bottom of, by the way.)  TeX
      is a tool for typesetting mathematics, not a programming
      language for AI research.  Inform is a tool for
      typesetting interactive fiction, not a programming
      language for AI research.

Well.  Here goes, then!  I omit the discussion about LISP-like
languages versus C-like ones, as I think David and I have each
given our views already.

In article <5a748r$iir@life.ai.mit.edu>, David Baggett
<URL:mailto:dmb@lf.ai.mit.edu> wrote:
> So that I'm not just unproductively grousing, here's an uncomprehensive
> list of some things that I think are wrong with Inform, from a language
> design standpoint.  I will try to leave aside the design of the library,
> even though Inform's design makes it hard, in some cases, to separate the
> library from the language.

Fair enough.  (The closeness of library with language is intentional,
and reflects the extent to which Inform is aimed at one and only one
task: interactive fiction.  It would be inappropriate if Inform were
being advanced as a general programming language.)

> These are roughly in the order that the manual reveals them:
> 
>   - 16-bit math only

Indeed.  It's a shame, but this is one of the Z-machine restrictions.
Ideally I would prefer a 32-bit word size used as in the SmallTalk
byte machine: i.e., to hold numbers or object identifiers.  It's seldom
a problem with IF, and one can usually get around it: "Jigsaw"
calculates inverse tangents of floating-point numbers in one of
its puzzles.

>   - print is part of the language instead of a library routine, so
>     it has different syntax than a normal function call. Ditto for
>     quit, new_line, spaces, inversions, and others.  Why not
>     print(...), quit(), new_line(), spaces(20), etc.?

"print" is far more powerful than it could be with a function
call syntax (because of, for instance, printing rules), and it's
important to evaluate printees (is there such a word?) in
sequence.  Besides, it's used incessantly in a text-based milieu.
Brackets are an extra redundancy to type.

"quit", "new_line" and "spaces" all ought to be functions, yes,
or better yet removed altogether.  But they're easy enough to
remember if one wants to, and it doesn't matter if one doesn't
remember them.  Nobody needs to use "quit" at all.  (There are
about six statements I'd remove given a free hand to do so.)

>   - Unnecessarily "new" almost-C syntax: ^ for newline, : to separate
>     expressions in for loop, etc.  At least C's \<char> is somewhat
>     general.  If you are going to derive from C so heavily, why change
>     a few things here and there for no good reason?  This will help
>     no one but will confuse the C programmers.

Actually, Inform allows ; dividers in "for" loops as an
alternative to : ones.  (The essential reason behind the choice
of : is that I didn't like a syntax which allowed the ; character
to occur, unquoted, inside a statement and yet not mark the end
of that statement.)  But I can see this has annoyed a few people,
and for that I'm sorry.

I disagree that ^ and ~ are a bad idea.  They have the virtue of
being quick and easy to use, and take only one character (usefully
when laying out tables of text).  They are needed exceptionally
frequently.  "\"Hello\"" is, I think, less clear than "~Hello~".
In the Inform version, you can at least see where the string starts
and ends.

Relatively few Inform users seem to be habitual C programmers,
incidentally, if my mailbag is anything to go by.

>   - (Unless I'm misreading this one:) Whitespace-dependence (variables
>     declared on first *line* of function)

You're misreading this one.  White space is always contracted, as in
almost all languages.  (I did once see a language in which unnecessary
white space indicated "the rest of this line is a comment"...)

>   - 32-character maximum on identifier names

As in ANSI C and many, many other languages.  There are obvious,
if minor, benefits in terms of efficiency and robustness of the
lexical analysis code in the compiler and linker.  Until now, nobody
has ever complained to me that 32 is too little.  When someone
plausibly does, perhaps I'll up it to 64.

>   - Silent defaulting of missing function args to zero is an evil
>     "convenience" that will surely lead to bugs.

In my experience, it has seldom done so in the past.  But I concede
that this convenience is double-edged and that the language is 
not ideally helpful in making programmers aware of the potential
for problems.

>   - Operator insanity; example: "or", as in 
> 
>       if (x ~= 1 or 2 or 3) return;

"or" is one of the features I am most proud of, actually.  IF code
is absolutely full of selections and comparisons, along the lines of

        if (location == Y2_Rock_Room or Hall_Of_Mists or Soft_Room)
            ...

Do we really think that

        if (location == Y2_Rock_Room
            || location == Hall_Of_Mists
            || location == Soft_Room)
            ...

is intrinsically saner?  I've written code with something like 20
alternatives before...  Besides which, what about

        if (MoveDwarfTo()
            == Y2_Rock_Room or Hall_Of_Mists or Soft_Room)
            ...

where the alternative would be

        x = MoveDwarfTo();
        if (x == Y2_Rock_Room || x == Hall_Of_Mists || x == Soft_Room) ...

a quite unnecessary use of a variable.  "or" is one of the best
shorthand forms in Inform, though I agree that some people would
prefer to abolish shorthands altogether.

>     Inform has *36* different operators.  Only C++ goes further overboard.

(Java and other C-like languages are similar.)  Which would you
like withdrawn?  The bitwise arithmetic operators, perhaps?  The
textual ones, such as "has" or "ofclass"?

>   - [ and ] along with { and }.  Why?  (Your defense of this is not
>     convincing.)

The literal answer to "Why?" is that it's a historical accident,
and therefore indefensible.  On the other hand, it does no especial
harm (in my view) and makes brace mismatch errors slightly easier
to recover from.  Still, I concede this one.

>   - No local variables within { and }; therefore scoping is limited
>     to a single routine.  (No functions declared in functions, either.)

True.  I repeat that Inform is not a general-purpose programming
language.

>   - More ad-hoc syntax: use of "to" to denote ranges in switch statements;
>     label names (targets of jumps) preceded by dot.

In some sense all invented syntax is ad-hoc.  "to" denoting ranges
may be found in Ada, for example, though I somehow imagine you
wouldn't be a fan of Ada.  Label names are often preceded by dots
in assembly languages.

>   - Magic numbers: @@64 to get the "@" character instead of something
>     symbolic like "@at".  Again, why are there *numerous* mechanisms
>     for the same task (escaping characters)?

The magic trick in question is better known as ASCII, and I fear
its Eleusian mysteries may have got out by now.  Yes, there are
four characters best written as @@ plus a numerical code: they
aren't terribly often needed (_unlike_ newline or double-quote)
but can be found in charts of how to type accented and other
oddball characters.

"@at" is quite a nice idea, but then one would want things like
"@backslash" -- or maybe "@ba" -- or "@bs" -- or... and so on.
So, tempted as I am...

As to *numerous* mechanisms, the *number* in question is something
like 4, and most users never need to use 2 of those.  (Java also
has 4, by my count.)

>   - More magic numbers: string variables that must be accessed by
>     number (@00 to get string 0) and set with another special
>     reserved word: string 0 "string";

This allows access to a rather recondite feature of the Z-machine,
which one practically never needs access to.  In that sense, perhaps
it should be deleted from the language.  But I think it does no
harm and in a very few cases it does a lot of good.  It's a feature
that is barely mentioned in the manuals.

>   - rtrue reserved word: more pointless special syntax!  Does it kill
>     you Inform wizards to type a handful of characters?!

...over, and over, and over again...  Shorthand forms make Inform
usefully concise, and you don't have to use them if you don't want to.

>   - "..."; implicitly returns.  This means that the more adorned
>     version print "..."; counter-intuitively does less than the 
>     shorthand version.

This is an unusual feature of Inform and is one of the few counter-
intuitive things that newcomers have to get to grips with.  To help
them, the compiler tries hard to spot code which has forgotten about
the returning.

Why have it?  Again, it's a shorthand form, but it's a very useful
shorthand form.  It enables "before" rules for objects to take
convenient forms like

      before
      [;  Eat: "Your stomach turns at the prospect.";
          Take: "It's too slimy to get a grip on.";
      ];

A fuller syntax would explicate that what's happening here is that
a message is being received and replied to, but the above is quicker
to write, easier to remember and easier to read.

>   - Printing rules like (char), (address), etc.  Again, an entirely new
>     notation for representing what function call notation should handle.

Not quite true: neither "(char)" nor "(address)" cause function calls,
as it happens.  However I accept the point that this is an alternative
form of function call in many cases.  My defence, predictably, is that
it's useful and easy to understand.  As ever, you don't need to use
it if you don't want to, but many people do find

      if (still_befuddled)
          "The ", (Spell) noun, " misfires badly!";

more convenient than

      if (still_befuddled)
      {   print "The "; Spell(noun); " misfires badly!"; }

>   - More unobvious syntax: --> vs -> in array declaration.  Doubly bad
>     because it forces the programmer to keep track of something the
>     compiler outght to: the size of the elements in the array being
>     accessed.  This means that changing an array from one type to
>     another requires the programmer to track down every instance
>     of (say) --> and replace it with ->.

Yes, I sympathise with this view.  However, in a typeless language
which needs both char and int arrays, there is little alternative.
(Actually, in some involved cases it's useful to access an array
using both operators.)  In practice (as the manual stresses) ->
arrays are used only when the entries are single characters,
and it is very rarely that one needs to change an existing array
>from  one to the other.

>   - Length byte/word in a string/table is treated like every other
>     array entry, even though its meaning is totally different.  (E.g.,
>     you can change it and screw up everything without warning.)  It
>     is not obvious when you see "a-->0" in the source whether or
>     not that means "length of a" or just "0th element of a" unless 
>     you know how a is defined.  What's wrong with length(a), which 
>     says what it means?

This is a Z-machine quirk.  I agree that it's not ideal.  Having a
"length" function is quite a good idea, though I don't want to have
to go compiling inefficient code to adjust array indices for such
arrays and, once again, since the language is typeless it would be
difficult to syntax-check usage of "length".

>   - More array nastiness:
> 
>       Array Doubtful --> 50 10 -20 56;
> 
>     is ambiguous, as the DM points out.

Yes, this was a mistake on my part, which I have entirely owned up
to.  The compiler issues warnings in all ambiguous cases.  In the
mean time, the absence of commas makes arrays pleasingly concise
to set up, which is some benefit.

>   - More superfluous notation: object statements like move <object> to
>     <object> use new notation for what could equally well be written as
>     move(obj1, obj2).

Once again, I happen to think

      move lantern to Y2_Rock_Room;

is a useful syntax, especially for beginners.  I concede that several
less-used statements might better be built-in functions (certainly not
called functions: that would be inefficient) but not this one.

>   - The containment hierarchy and the inheritance DAG are intertwined.

Inheritance is relevant to classes, which do not belong to the
containment hierarchy.  (Well, their class-objects do, but that's
an implementation issue.)  I can't see there is an issue here.

>   - object loop complicates the syntax further still by allowing
>     a condition inside the parens, as in
> 
>       objectloop(x in Mailbox) print (name) x, "^";
> 
>     This is a bad approximation of first-class functions, as in:
> 
>       (objectloop (lambda (x)
>                     (when (in? x Mailbox)
>                       (print (name x) #\newline))))

I wonder which I'd rather teach to a group of newcomers to
programming?  "So you want to print the contents of the mailbox...
well, OK, so first a little lambda-calculus..."

Cheap shot, though, since as you rightly say, the point about
Scheme is that once one is over the first high hurdles, the going
is much easier than first appears.  Nevertheless, the Inform
"objectloop" construct is handy and legible:

        objectloop (x)                   (all objects)
        objectloop (x in Mailbox)
        objectloop (x ofclass Coin)
        objectloop (x has door && x hasnt open)

If you want a condition which isn't so straightforward, you can
always use something like

        objectloop (x && MyWierdDecisionProcess(x))

or for that matter

        objectloop (x)
            if (... anything you like...)
                ...

>     The difference is that the Scheme version can apply any function
>     expressible in the language, whereas the Inform objectloop
>     can apply only a limited subset (the exact nature of which is
>     not at all obvious).

As demonstrated above, this is not true.  I agree that Inform does
not support lambda-calculus.  I think looping over the contents of
a mailbox is more what the average IF designer has in mind.

>     Furthermore, the programmer can define functions like objectloop
>     himself in Scheme.   In Inform one is stuck with the hard-wired
>     version only.

Yes, I agree.  Here Scheme has the advantage.

>     The Inform restrictions lead to a preponderance of special
>     condition words like "provides," where Scheme subsumes this
>     within the normal, nothing-new-to-learn syntax.

There are 6 such conditions, yes.  They all test fundamental
states of affairs, intrinsic to the language.  They would have
to be built into Inform even if it were Scheme-like.  For the record,
they are

      has  hasnt  in  notin  ofclass  provides

and although it could be argued that "hasnt" and "notin" aren't
necessary, once again they're good shorthands.

>   - From the manual, about object properties which are arrays:
> 
>     "This must be accessed using two special operators, .& and .#.
> 
>            magpie.&name
> 
>      means "the array which is held in magpie's name property", so that
>      the actual name values are in the entries
> 
>           magpie.&name-->0
>           magpie.&name-->1
>              ...
>           magpie.&name-->4
> 
>      The size of this array can be discovered with
> 
>           magpie.#name
> 
>      which evaluates to the twice the number of entries, in this case,
>      to 10."
> 
>      The sheer evil of this speaks for itself.

Yes, it does, doesn't it?  Fortunately few people use arrays as
property values.  (There are Z-machine reasons.)

>                                                 Then, soon after, we
>      find:
>     
>      "(... The rule here is anomalous and goes back to the misty origins of
>       Inform 1.) If you prefer a consistent style, using single quotes:
> 
>            Object magpie "black-striped bird"
>              with name 'magpie' 'bird' 'black-striped' 'black' 'striped',
>                  wingspan 5, worms_eaten;
> 
>      works equally well (except that single-character names like "X" then
>      have to be written #n$X)."
> 
>      Wait, was that #n$X, or did my modem just get a burst of line noise? 
>      Say it ain't so!

Now you're really prosecutin'.  I consider this much the worst state
of affairs in the Inform language, and deserve blame for it.  I would
dearly like to reform it, but as ever the presence of old code is
inhibiting.

>   -  Why are object attributes given special status?  Why can't this be
>      done with a general mechanism?

It's quick, easy, convenient and rapidly implemented.  On the whole
if I were designing a "mini-Inform language" I might well take out
attributes and then reintroduce them as boolean properties, yes.
(In practice, in a quite sneaky way, attributes tend to be used as
if class inheritance were being shuffled about at run-time.)

>   -  A nasty complication thanks to the Z-Machine:
> 
>      "The properties used in the chapter above are all examples of
>      'individual' properties.  These are properties which any given object
>      might provide, or might not.
> 
>            A small number of properties can be declared as "common"
>      properties, using the directive
> 
>            Property <name>;
> 
>      which declares that this name will always be a common property.  Under
>      Inform 5.5 and earlier, these were the only properties available, so
>      that the Property directive is seen fairly frequently in older example
>      source code.
> 
>            The only point in making such a declaration now is that common
>      properties are slightly faster in use and marginally cheaper in memory
>      terms than individual ones.  So the library's properties are still
>      declared as common properties.  There are about 30 common properties
>      left free for the use of programmers after the library has taken its
>      share."
> 
>      So the language has two separate notions of "property" (the existence
>      of which is already a source of pointless non-orthogonality), one
>      with an ad hoc magic-number limit.

No, I really am not going to beat my breast over this one.  It's an
implementation matter, really.  You just don't need to use "Property":
it's hardly mentioned in the manuals any more.  I think the parallel
is with C, where some variables can be flagged as "register" to ask
the compiler to compile code using them more efficiently.  Of course,
there is necessarily a magic-number limit to the number of registers
in the machine.  In Inform 6, "Property" is a directive used by the
library to improve the efficiency of code, that's all.

>   -  Lots of random and only elusively documented limitations; e.g.,
>      only 236 global variables are allowed.  This is not a hopeless limit,
>      but why is there a limit at all?

"Lots", and "elusively documented": hmm.  There is a chapter on "limits"
in the Designer's Manual, which some might think the obvious place to
look.

They're not wholly random, and as you say not in practice constraining,
and I would say there are "a few" rather than "lots", but I agree that
in an ideal world everything would be unlimited subject to (say) the
size of the output game file.  (I can think of, oh, I think five
such magic limits, none ever reached in practice.)

>   -  "Causing an action and then returning true (i.e., causing a new
>      action and killing the old one) is so useful that it has an abbreviation,
>      putting the action in double angle-brackets.  For example,
> 
>                <Look>; <<ThrowAt smooth_stone spider>>;
> 
>      will behave as if the player has asked to look around and to throw the
>      stone at the spider, and will then return true."
> 
>      Oh no, *new* syntax!

Oh no, *extra* functionality!

>                             But wait:
> 
>      "Its possible values can be referred to in the program using the ##
>      notation: for example
> 
>                if (action == ##Look) ...
> 
>      tests to see if the current action is a Look."
> 
>      Ah, a new, unnecessary primitive and *three* new syntaxes for dealing
>      with said primitive.  Aiieee!  Graham defends himself thus:
>     
>      "Why have ## at all, why not just write Look?  Partly because this way
>      the reader can see at a glance that an action type is being referred to,
>      but also because the name might be wanted for something else.  For
>      instance there's a variable called score (holding the current game
>      score), quite different from the action type ##Score."
> 
>      Again I ask, why must actions be a totally separate concept, with
>      its own operators and mandatory lexical adornment?  I have no trouble
>      representing  this concept in Scheme, Smalltalk, ML, even C.  Why 
>      should it be assigned special status, such that one needs to read
>      another wordy manual chapter to understand what ##Look is supposed to
>      mean?

It is not a priori necessary for actions to have a different name-space
to other symbols.  I have an open mind on whether the language is
better that way or not.  However, the < > and << >> notations are
(as I keep saying) convenient and legible.

> As a consequence of Inform's design, the Designer's Manual reads a lot like
> the TeXbook -- there are so many exceptions, and the complexity of the
> semantics is so mind-boggling, that one gets the feeling one is reading
> about the mythology of some ancient people rather than a language
> specification.

The DM is in some ways modelled on the TeXbook.  In particular, it
is fastidious to include everything you could _ever_ want to know,
much of which is tucked away in smaller type and marked-off passages.
Some find it prolix and annoying, others find it to the point and
annoying.  (Actually, a few people like it.)  The vast bulk of the
book is given over to features of the library and to examples
(which make up, oh, 20% of the book at least).  The language itself
is described in a section of similar length to that of the Revised
Report on Scheme, aimed at total newcomers to computer programming,
which I somehow doubt the Revised Report on Scheme is.

Anyway, by all means dislike the manual too, but it isn't the same
as the language!

>                                                     Why is the Scheme
> report so short?  Because Scheme's design emphasizes orthogonality; i.e.,
> most things apply generally, rather than with hundreds of unobvious
> exceptions.  This is good language design!

I do not say that Scheme is a bad language, of course.  I say
only that there are horses for courses, and that in the Interactive
Fiction Handicap, Inform might get rather better odds than Scheme.

Perhaps I might conclude by pointing out that the much-reviled
Z-machine does offer a safe and dependable memory environment.
I am politely skeptical that a Scheme-like system can assure
good-quality garbage collection across a variety of platforms,
and can therefore be relied on as a robust environment.

-- 
Graham Nelson | graham@gnelson.demon.co.uk | Oxford, United Kingdom



From graham@gnelson.demon.co.uk Tue Dec 31 14:31:04 MET 1996
Article: 20950 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news01.sunet.se!sunic!02-newsfeed.univie.ac.at!01-newsfeed.univie.ac.at!Austria.EU.net!EU.net!howland.erols.net!news-peer.gsl.net!news.gsl.net!news-lond.gsl.net!news.gsl.net!dispatch.news.demon.net!demon!gnelson.demon.co.uk!graham
From: Graham Nelson <graham@gnelson.demon.co.uk>
Newsgroups: rec.arts.int-fiction
Subject: Reply to Marnix Klooster's proposal
Date: Sun, 29 Dec 1996 23:29:05 +0000 (GMT)
Organization: none
Lines: 138
Message-ID: <ant292305b49M+4%@gnelson.demon.co.uk>
NNTP-Posting-Host: gnelson.demon.co.uk
X-NNTP-Posting-Host: gnelson.demon.co.uk
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; CHARSET=ISO-8859-1
X-Newsreader: ANT RISCOS Marcel [ver 1.09]

Here's one response to a detailed set of proposals by Marnix
Klooster for possible alterations to the Inform language.
I think that this is not a good time to further disturb the
language and do not propose serious upheaval in the near
future -- but it's a serious proposal and worth discussing,
even though I mostly disagree with it.

I am abbreviating Marnix's post in places, but I hope fairly.
(In particular I omit the "implementation" suggestions, since
they won't be of much interest except to him and me.)

On Tue 24 Dec, Marnix Klooster wrote:
> NULL BUILT-IN
> 
> --Proposal--
> "NULL" is a built-in Inform constant different from any other value
> used, as far as possible.
> --Rationale--
> "NULL" is currently built into the Inform library, but can be used to
> good effect as a special value for other purposes too [specifically,
> exceptions].  Also, this allows the compiler to guarantee that all
> `symbolic constants' (see below) differ from NULL.

It would be easy to implement this, and even easy to make the
change in a way which would disrupt no existing code, but I
can't see that we gain anything by it.  NULL is a value used
by the library: it has no significance to language features.

> SYMBOLIC CONSTANTS
> 
> --Proposal--
> If a "Constant" declaration does not specify a value the default value
> is not 0, but an arbitrary value such that any two such Constants are
> guaranteed to be different.  Also, these values are different from
> "true", "false", and "NULL".  [More generally, we could postulate that
> these values are different from all built-in and explicitly-valued
> Constants.]  It is also possible to declare multiple Constants with a
> single declaration, by separating the identifiers by commas.
> --Rationale--
> This allows the use of Constants as LISP-like symbols, obviating the
> need for special return values.  (Judicious use might improve
> the readability of library-using functions.)  [Is there current code
> that depends on the value of implicitly-valued Constants being 0?]

Constants can already be used as LISP-like symbols if you define
them with sensible values.  Library 6/3 does this, for instance,
for return values from general parsing routines.

I don't think the proposal gains us anything much, and I have two
doubts about it anyway:

  (a) It would produce unpredictable sets of constant values (you
      might say this is no big deal -- but constants are often
      used in Inform as values which are definitely different
      from, e.g., dictionary words).

  (b) These values would be change if anything else in the
      program were to change (e.g. if the same code were to be
      recompiled with a different version of the Library).
      Potentially, this could make possible time-bomb bugs,
      which would be hard to track down.

> BLOCKS
> 
> --Proposal--
> A block "{ <...> }" can be used as a statement.
> --Rationale--
> A block is really a compound statement, i.e., a way to collect a
> number of statements together into one.  Also, this allows the scope
> of local variables (see below) to be given.

I'll consider this.  At present blocks can't be given
where simple statements are expected because (i) this would
be problematic in the assignment parts of a "for" statement,
(ii) there's never any need and (iii) making such a block
cause an error results in better detection of brace mismatch
mistakes in source code.


> LOCAL VARIABLES
> 
> --Proposal--
> The declaration "local <ident>, <ident>, <...>;" declares the given
> identifiers as local variables from that point to the end of the
> current block.  As currently, every local variable is initially zero.
> [Perhaps allow "<ident> = <expr>", which initialises the local
> variable?]
> It is an error for a local variable to `shadow' another (local or
> global) variable.
> A "jump" from outside to within a local variable's scope initialises
> that variable to zero.  [It will be very useful to have a warning
> message emitted when such a "jump" is used; perhaps it is even better
> to declare this to be an error.]
>
> DEFAULT ROUTINE PARAMETER VALUES
> 
> --Proposal--
> Instead of just "<ident>", routine parameters may also be given as
> "<ident> = <expr>", where <expr> is an expression which can be
> resolved at compile-time.  If the routine is then called with not
> enough parameters, the parameter is initialised to the given value,
> instead of to zero.
>
> [And Marnix goes on to propose that Inform should issue warnings
> when a function call is made with fewer arguments than is the
> maximum number possible. -- GN]

I've cut out the "rationales" because these are obviously rather
good ideas.  I considered making such a change in Inform 6.10,
but held back because it seemed such a horribly large change to
the language to make.  Abstractly, I think the format I'd most
like would be:

  Routine Something(x, y)
  [  local z, w;
     ...
  ];

as opposed to the present textual format:

  [ Something x y z w;
    ...
  ];

However, quite apart from the danger of messing about with the
language in such a drastic way, things are not quite so simple.
The ability to call a function with a variable number of
arguments is useful, and is used extensively in a very large
amount of existing Inform code.  So the notation above is naive.

Unembedded routines are in any event relatively uncommon
in modern Inform 6 code (except for Initialise, of course).
But yes, if I were redesigning Inform from scratch, something
along the above lines would probably emerge.

-- 
Graham Nelson | graham@gnelson.demon.co.uk | Oxford, United Kingdom



From mol@bartlet.df.lth.se Tue Dec 31 14:31:22 MET 1996
Article: 20949 of rec.arts.int-fiction
Path: news.lth.se!news
From: mol@bartlet.df.lth.se (Magnus Olsson)
Newsgroups: rec.arts.int-fiction
Subject: Re: Questionable Languages & Compilers
Date: 31 Dec 1996 12:45:57 +0100
Organization: The Computer Society at Lund University and Lund Institute of Technology
Lines: 207
Message-ID: <5aaudl$t99@bartlet.df.lth.se>
References: <32b72f97@beachyhd.demon.co.uk> <32c7979c.3998814@news.worldonline.nl> <5a8e6u$die@bartlet.df.lth.se> <32c858f1.3711720@news.one.net>
NNTP-Posting-Host: bartlet.df.lth.se
NNTP-Posting-User: mol

wolf@one.net wrote:
>mol@bartlet.df.lth.se (Magnus Olsson) wrote:
>>Agreed. If your background is in Pascal, you'll find TADS much
>>more "natural" than C. However, TADS has a big problem, and that is
>>that it mixes syntactic elements from C and Pascal. It's confusing to
>>have to use := for assignments when the language is so very much like C
>>in other aspects.
>
>Several people have made this point, however I'm more concerned that
>there are two separate syntatic elements for assignment and equality
>testing than I am what those syntaxes are.

But the fact is that in a C-like language, it is *necessary* to have
two different operators. See below.

>Most people (like it or hate it) start with some variety of Basic, 

I'm not quite sure of that anymore. But I really have no idea of what
is the most common beginner's language nowadays. 

>since Basic makes no distinction between assignment and equality
>operators it's my opinion an IF language (generally intended for
>non-programmers) shouldn't either.

There's no reason an IF language should be modelled on Basic either,
especially if it's aimed at non-programmers who may have no experience
of Basic or any other language.

One of the greatest shortcomings of TADS, BTW, is that it requires
some prior knowledge of C. The Inform language is almost as C-like,
but at least the Inform manual tries to explain the basic constructs
to the beginner. 

>>Also, remember that there is a reason to use different operators for
>>assignment and comparisons, viz. to make statements like a = b == c
>>unambiguous.
>
>In a language like xBase or Basic you can achieve the same effect
>with:
>
>a = (b = c)
>
>although using such an expression is somewhat cryptic anyway, you're
>basically storing a true/false value in a  variable, probably for use
>in several tests later. This might be done for speed optimization, but
>I'd bet the majority of people using such constructs are writing speed
>critical pieces of an OS or maybe a compiler. IF programmers don't
>generally need to cram every CPU cycle, and I'd argue that
>readability, not CPU cycle conservation is more important.

Storing logical values in variables has *nothing whatsoever* to do
with optimization. A common situation in IF programming is that you
have flags that tell whether a certain object has some property or
whether it hasn't. For a combination lock, for example, we may have a
logical (Boolean) property called "open" which is true if you gave the
right combination and false if you gave the wrong combination. If I
were to write an adventure in Basic, it would be extremely natural for
me to have some code like

INPUT "Enter the combination: ", comb
open = (comb = correct_comb)

Of course, I could replace the assignment with an if statement. I know
that many people prefer that style; to me, however, it seems slightly
strange - after all, we don't write
IF a = 0 THEN
   b = 1
ELSIF a = 1 THEN
   b = 2
ELSIF a = 2 THEN
   b = 3
ELSIF...

when a simple

b = a + 1

would suffice, do we? :-)

Actually, I suspects it's a matter of what a comparison "really is".
To many programmers, a comparison is something you put inside an if
statement (Inform was like that until recently). There is also the
more "mathematical" view that a comparison operator is an operator
that returns a Boolean value (true or false), and that Boolean values
can be manipulated, stored in variables, returned from functions, etc.
In C, there is no fundamental difference between the == and +
operators, for example.

>Which brings up a general point. In languages that use the same
>operator for assignment and equality, generally the context of usage
>makes the difference between them clear. Assignments happen on their
>own line, equality checking is generally done only for IF tests, loop
>tests, and the like.

Actually, it's not so much a matter of usage as a matter of the
semantics of the assignment operator. See below.

>In languages like C, where the freedom exists to put an assignment
>into an equality test (which always struck me as confusing code) you
>really do need different operators.

It's not just that you're free to put an assignment inside an equality
test, it's that in C, and in Algol (but not in Pascal, for some
reason), the assignment operator actually has a return value. So
you're allowed to write things like 
a = ((a == b) > (a != b) + 1);
(not that it's very useful).

For the benefit of those who haven't seen the reason for having two
different operators in C, 

a = b = c;

means the same thing as 

b = c; a = b;

which is something very different from

a = b == c;

which is the same thing as

if (b == c) a = 1; else a = 0;
   
and there is no way of distinguishing those two statements unless the
= and == operators have different names.
    
Of course, you might question whether it's a good idea to have the
assignment operator return a value; obviously Wirth doesn't think so,
since the feature is missing from Pascal. IIRC, TADS has it, though,
which makes it necessary to have two different operators.


>However, this argument has been brought to bear on nearly every aspect
>of programming, such as naming standards for variables, naming
>standards for sub-routines, etc, etc.
>
>There has always been a holy war between the readibility folk and the
>code-brevity folk, and probably always will be. Just picture an APL
>programmer locked in the same room as a COBOL programmer...

An important point that is often missed is that there are other issues
at stake as well: power of expression, flexibility, extensibility,
orthogonality... People tend to get all worked up on the issue of C's
brevity and/or unreadability, missing the more important questions.

>>The following is probably going to sound very arrogant (So sue
>>me. I've already been branded a "snotty elitist") but, judging by your
>>remarks above, I'd strongly suggest that you (Roger, not Marnix) study
>>the theory and praxis of computer languages a little more in depth
>>before you even try to design one. 
>
>You're right, it does. :)

I'm sorry for being so rude. I don't really know what got into me. 

>Designing compilers is a discipline all its own, just as writing
>operating systems, or CAD systems, or whatever. But having learned
>over 50 or more languages in the course of my career, ranging from
>FORTRAN (my first) to Basic, to RPG II, COBOL, C, Pascal, xBase, Basic
>dialects (two dozen at least!), Lisp, Pilot, and a bunch dreamed up by
>IBM mini-computer wanna-be's, I think I've grasped the fundamentals of
>what works in a language and what doesn't.

I've no doubt you have. I retract my remark about the practice of
computer languages. 

>Designing a *language* (as opposed to a compiler) is a whole 'nother
>kettle of fish. That requires a feel for what works and what doesn't.
>That, at least, I do know. :)

That is certainly a requirement, and you've convinced me that you do
know that.

But, as David Baggett has already pointed out, designing a good
language also requires good knowledge of how a compiler works, and
what it can do and can't do efficiently. That doesn't mean that all
language desingers should be able to write a professional-class
compiler, but I think they should at least have the knowledge to write
a working implementation of the language.

A theoretical background is also necessary. Theory provides the
framework that makes the language work as a coherent whole; the
_vision_ behind the language, if you like. A language without
theoretical foundations is likely to become a hodgepodge of features.
And who'd have thought of adding, say, anonymous first-class functions
to a language without the input from the _extremely_ theoretical
branch of mathematical logic known as lambda calculus?

>Guess you can spot I'm from the readability school, hmm? :)

So am I, actually; I think the ability to write readable code in any
language is one thing that distinguishes good programmers from bad
ones (of course, that doesn't stop good programmers from producing
unreadable code). To me, readability is partly a matter of style
(consistent indentation, whitespace, naming conventions) but as much a
matter of clarity and economy of thought. I've seen code that follows
all the style guides to the letter, yet is unreadable, because the
underlying thoughts are muddled.

 



-- 
Magnus Olsson (mol@df.lth.se)


From marnix@worldonline.nl Wed Jan  1 02:22:16 MET 1997
Article: 20956 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news00.sunet.se!sunic!news.sprintlink.net!news-stk-200.sprintlink.net!www.nntp.primenet.com!nntp.primenet.com!EU.net!howland.erols.net!surfnet.nl!news.unisource.nl!news.worldonline.nl!usenet
From: marnix@worldonline.nl (Marnix Klooster)
Newsgroups: rec.arts.int-fiction
Subject: Re: Reply to Marnix Klooster's proposal
Date: Tue, 31 Dec 1996 18:50:22 GMT
Organization: World Online
Lines: 246
Message-ID: <32c95821.4283051@news.worldonline.nl>
References: <ant292305b49M+4%@gnelson.demon.co.uk>
NNTP-Posting-Host: drdt2-p88.worldonline.nl
X-Newsreader: Forte Free Agent 1.1/16.230

Graham Nelson <graham@gnelson.demon.co.uk> wrote:

>Here's one response to a detailed set of proposals by Marnix
>Klooster for possible alterations to the Inform language.
>I think that this is not a good time to further disturb the
>language and do not propose serious upheaval in the near
>future -- but it's a serious proposal and worth discussing,
>even though I mostly disagree with it.

As detailed below, most proposals are conservative in the sense
that they don't change the meaning of existing code.  Therefore I
don't consider them to be disturbances as such.  They're
extensions, and one can ignore them if one don't want to use
them.

>On Tue 24 Dec, Marnix Klooster wrote:
>> NULL BUILT-IN
>> 
>> --Proposal--
>> "NULL" is a built-in Inform constant different from any other value
>> used, as far as possible.
>> --Rationale--
>> "NULL" is currently built into the Inform library, but can be used to
>> good effect as a special value for other purposes too [specifically,
>> exceptions].  Also, this allows the compiler to guarantee that all
>> `symbolic constants' (see below) differ from NULL.
>
>It would be easy to implement this, and even easy to make the
>change in a way which would disrupt no existing code, but I
>can't see that we gain anything by it.  NULL is a value used
>by the library: it has no significance to language features.

Agreed.  But NULL is so generally useful that one would like to
have it available also when not using the library, or an
alternative one.  Also, the value used for NULL ($FFFF) is so
intimately tied to Z-machine specifics that it is desirable,
IMHO, to build it into the language.  Finally, my idea for Inform
exceptions needs a special value indicating `no exception.'  It
seems best to use NULL for that.  However, that is really only an
issue if exceptions are added.

>> SYMBOLIC CONSTANTS
>> 
>> --Proposal--
>> If a "Constant" declaration does not specify a value the default value
>> is not 0, but an arbitrary value such that any two such Constants are
>> guaranteed to be different.  Also, these values are different from
>> "true", "false", and "NULL".  [More generally, we could postulate that
>> these values are different from all built-in and explicitly-valued
>> Constants.]  It is also possible to declare multiple Constants with a
>> single declaration, by separating the identifiers by commas.
>> --Rationale--
>> This allows the use of Constants as LISP-like symbols, obviating the
>> need for special return values.  (Judicious use might improve
>> the readability of library-using functions.)  [Is there current code
>> that depends on the value of implicitly-valued Constants being 0?]
>
>Constants can already be used as LISP-like symbols if you define
>them with sensible values.  Library 6/3 does this, for instance,
>for return values from general parsing routines.

And that's a good thing, too.

>I don't think the proposal gains us anything much, and I have two
>doubts about it anyway:
>
>  (a) It would produce unpredictable sets of constant values (you
>      might say this is no big deal -- but constants are often
>      used in Inform as values which are definitely different
>      from, e.g., dictionary words).

But if you can guarantee `by hand' that certain Constants are
different from, e.g., dictionary words, then surely the compiler
can?  Do you have examples of code that relies on this
difference, for example from library 6/3?

In that case, implementing this proposal probably comes down to
collecting, for each module, all values that may not be used for
implicitly-valued Constants.  On linking correct values can be
chosen, and backpatched.

>  (b) These values would be change if anything else in the
>      program were to change (e.g. if the same code were to be
>      recompiled with a different version of the Library).
>      Potentially, this could make possible time-bomb bugs,
>      which would be hard to track down.

Hmm.  What do you mean with a time-bomb bug, exactly?  It might
be useful to have a debugging function that prints whether a
given constant exists, and if so, its value.  (This would
probably be useful even without my proposal being adopted.)

Code using implicitly-valued Constants should not rely on the
automatically assigned values, but only on the fact that they
differ from each other and from certain other values (e.g.,
dictionary words, strings, explicitly-valued constants).

>> BLOCKS
>> 
>> --Proposal--
>> A block "{ <...> }" can be used as a statement.
>> --Rationale--
>> A block is really a compound statement, i.e., a way to collect a
>> number of statements together into one.  Also, this allows the scope
>> of local variables (see below) to be given.
>
>I'll consider this.  At present blocks can't be given
>where simple statements are expected because (i) this would
>be problematic in the assignment parts of a "for" statement,
>(ii) there's never any need and (iii) making such a block
>cause an error results in better detection of brace mismatch
>mistakes in source code.

(i) You can rule out blocks there.  (ii) When there are local
variables, one might want to

   {local a;
    <somethingOrOther>
   }
   <somethingElse>
   {local b;
    <yetSomethingElse>
   }

But perhaps this is unlikely.  If people really want to do that,
perhaps you could introduce a statement "block {<...>}".  But
that doesn't look nice.  (iii) Good point.

Considering again, I retract this proposal.  It is more trouble
than it's worth.

>> LOCAL VARIABLES
>> 
>> --Proposal--
>> The declaration "local <ident>, <ident>, <...>;" declares the given
>> identifiers as local variables from that point to the end of the
>> current block.  As currently, every local variable is initially zero.
>> [Perhaps allow "<ident> = <expr>", which initialises the local
>> variable?]
>> It is an error for a local variable to `shadow' another (local or
>> global) variable.
>> A "jump" from outside to within a local variable's scope initialises
>> that variable to zero.  [It will be very useful to have a warning
>> message emitted when such a "jump" is used; perhaps it is even better
>> to declare this to be an error.]
>>
>> DEFAULT ROUTINE PARAMETER VALUES
>> 
>> --Proposal--
>> Instead of just "<ident>", routine parameters may also be given as
>> "<ident> = <expr>", where <expr> is an expression which can be
>> resolved at compile-time.  If the routine is then called with not
>> enough parameters, the parameter is initialised to the given value,
>> instead of to zero.
>>
>> [And Marnix goes on to propose that Inform should issue warnings
>> when a function call is made with fewer arguments than is the
>> maximum number possible. -- GN]
>
>I've cut out the "rationales" because these are obviously rather
>good ideas.  I considered making such a change in Inform 6.10,
>but held back because it seemed such a horribly large change to
>the language to make.  Abstractly, I think the format I'd most
>like would be:
>
>  Routine Something(x, y)
>  [  local z, w;
>     ...
>  ];
>
>as opposed to the present textual format:
>
>  [ Something x y z w;
>    ...
>  ];

I don't propose such a change, which would admittedly be large.
And how would you indicate parameters to embedded routines?
Perhaps using

   Object Whatever "revetahw"
     with something(x,y) [local z,w; ...];

And it is more consistent to replace [...] by {...} in a property
or Routine body.  (Of course, if you make a change like this it
should be optional at first, with a warning when the old syntax
is used.)

>However, quite apart from the danger of messing about with the
>language in such a drastic way,

My proposed changes are not drastic -- they're simple extensions.
As for the above example, I propose to write it as

   [ Something x y;
     local z, w;
     ...
   ]

This can be implemented exactly the same as done currently.  The
only difference is that this allows checking that Something must
be called with at most 2 parameters.  If you want to be able to
call it with 3, you should write

    [ Something x y z;
      local w;
      ...
    ];

>                                things are not quite so simple.
>The ability to call a function with a variable number of
>arguments is useful, and is used extensively in a very large
>amount of existing Inform code.  So the notation above is naive.

You must have misunderstood.  This ability is not taken away by
my proposals.  What they do is enhance the possibilities of
checking calls to such functions.  Note that local variables,
default values for routine parameters, and checking the number of
parameters are in fact three _independent_ proposals.

>Unembedded routines are in any event relatively uncommon
>in modern Inform 6 code (except for Initialise, of course).

Whether a routine is embedded or unembedded, they can have local
variables and/or parameters -- and I find using a keyword like
"local" is clearer than the rule that anything inbetween a "["
and a ";" (except sometimes the first word) declares a parameter
or a local variable.  But maybe that's just me.

>But yes, if I were redesigning Inform from scratch, something
>along the above lines would probably emerge.

Well, given the amount of existing code it is not feasible to
redesign the language.  But I hope to have shown how my proposals
are extensions.

>Graham Nelson

Groetjes, and keep up the good work,

 <><

Marnix
--
Marnix Klooster        |  If you reply to this post,
marnix@worldonline.nl  |  please send me an e-mail copy.


From erkyrath@netcom.com Thu Jan  2 22:06:04 MET 1997
Article: 20971 of rec.arts.int-fiction
Newsgroups: rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news01.sunet.se!sunic!02-newsfeed.univie.ac.at!01-newsfeed.univie.ac.at!voskovec.radio.cz!www.nntp.primenet.com!nntp.primenet.com!su-news-hub1.bbnplanet.com!cpk-news-hub1.bbnplanet.com!news.bbnplanet.com!cam-news-hub1.bbnplanet.com!howland.erols.net!netcom.com!erkyrath
From: erkyrath@netcom.com (Andrew Plotkin)
Subject: Re: Fast lexers/slow hardware/better environments (Re: Questionable ...)
Message-ID: <erkyrathE3CGtC.Gn2@netcom.com>
Organization: NETCOM On-line Communication Services (408 261-4700 guest)
X-Newsreader: TIN [version 1.2 PL1]
References: <59g6p8$grj@bartlet.df.lth.se> <59k5a6$597@life.ai.mit.edu> <n40CB352E@wildebst.demon.co.uk> <59obcq$t2j@life.ai.mit.edu> <59qffk$eei@news.spies.com>  <ant282208bc8M+4%@gnelson.demon.co.uk>
Date: Wed, 1 Jan 1997 19:29:36 GMT
Lines: 73
Sender: erkyrath@netcom2.netcom.com

Graham Nelson (graham@gnelson.demon.co.uk) wrote:
> > >In other words, the Z-Machine as target architecture is
> > >both the coolest and the worst choice Graham made for Inform. It makes the
> > >language design much ickier than it might otherwise be.)

> I don't think it necessarily does make the language design
> "ickier", but it has resulted in some historical accidents,
> and I think I probably would prefer run-time data typing
> and a couple of other tweaks.  Otherwise, I continue to
> think the Z-machine is an excellent design, and the recent
> proliferation of Z-machine games (which are being played
> on machines where other design systems have never reached:
> people _do_ play on hand-held computers, for instance)
> bears this out.

> Have any Inform authors had to seriously compromise their
> games because of restrictions brought on by the Z-machine?
> I haven't, except when working some years ago for restricted
> subsets of the Z-machine.

_So Far_ uses over 60% of the V8 Z-machine for what is really a
medium-small game. If I had written _Jigsaw_, it would have gone past 512K
in size. (And past _Avalon_ in release date, I'm sure.) 

_Lists_ uses about 10K of RAM for its symbol and cons-pair heaps. For the
toy domain of seven programming exercises, you still use up quite a bit of
that -- enough that it garbage-collects more than once. I have no idea how
big an Scheme IF system would be, but if it's only ten times as large, it
will run headlong into the Z-machine's 64K RAM space limit. 

Therefore, anyone who wants to use that kind of dynamic programming, via 
my library or another, is probably fatally compromised right from the 
start. I wanted to create the core of a serious IF tool for the 
Z-machine, but I don't think I succeeded.

> > Oh wow, are you hypothesizing different backends for the same front-end 
> > Inform compiler?  That is, the same source language compiling into Zcode or
> > TADS code or some other virtual machine [such as Java.. dunno if that would
> > make any sense at all]?

I hypothesize this, sure. I want to do it. Preferably before the 
increasing desire for more memory, more flexibility -- even more graphics 
and sound -- produces yet another slightly hacked Z-machine version.

The Java VM seems like a fine virtual machine, and I don't have to write 
the interpreters for it. (It won't run on TRS-80's, but any game that 
will fit on a TRS-80 should be compiled to Z-code anyway, not Java, since 
it *won't* be straining the Z-machine's capacity.)

> As for Java, surely better to wait for the completion of the
> Java Z-machine interpreter?

No, no. I want to add a lot of features which the Z-machine doesn't 
support at all, but are entirely orthogonal to Inform as a language -- 
they would be available as new opcodes, or rather as a library of 
functions which are implemented using new "opcodes" (actually toolbox 
traps for the IF runtime system, which is written in Java -- never mind, 
this paragraph has gotten way off-track. The point is, Inform as a 
language is not limited to 64K of writable memory, or its current inadequate 
set of file operations, or any number of other Z-machine limitations that 
I have notes on How To Do Better As Soon As I Have Time. Java VM output 
coupled with an IF runtime class solves all of that, with no change to 
existing Inform source code.)

> The aim is certainly not to worship the Z-machine!

Oops, gotta run. The incense burners are getting low.

--Z
-- 

"And Aholibamah bare Jeush, and Jaalam, and Korah: these were the
borogoves..."


From erkyrath@netcom.com Thu Jan  2 22:08:58 MET 1997
Article: 20971 of rec.arts.int-fiction
Newsgroups: rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news01.sunet.se!sunic!02-newsfeed.univie.ac.at!01-newsfeed.univie.ac.at!voskovec.radio.cz!www.nntp.primenet.com!nntp.primenet.com!su-news-hub1.bbnplanet.com!cpk-news-hub1.bbnplanet.com!news.bbnplanet.com!cam-news-hub1.bbnplanet.com!howland.erols.net!netcom.com!erkyrath
From: erkyrath@netcom.com (Andrew Plotkin)
Subject: Re: Fast lexers/slow hardware/better environments (Re: Questionable ...)
Message-ID: <erkyrathE3CGtC.Gn2@netcom.com>
Organization: NETCOM On-line Communication Services (408 261-4700 guest)
X-Newsreader: TIN [version 1.2 PL1]
References: <59g6p8$grj@bartlet.df.lth.se> <59k5a6$597@life.ai.mit.edu> <n40CB352E@wildebst.demon.co.uk> <59obcq$t2j@life.ai.mit.edu> <59qffk$eei@news.spies.com>  <ant282208bc8M+4%@gnelson.demon.co.uk>
Date: Wed, 1 Jan 1997 19:29:36 GMT
Lines: 73
Sender: erkyrath@netcom2.netcom.com

Graham Nelson (graham@gnelson.demon.co.uk) wrote:
> > >In other words, the Z-Machine as target architecture is
> > >both the coolest and the worst choice Graham made for Inform. It makes the
> > >language design much ickier than it might otherwise be.)

> I don't think it necessarily does make the language design
> "ickier", but it has resulted in some historical accidents,
> and I think I probably would prefer run-time data typing
> and a couple of other tweaks.  Otherwise, I continue to
> think the Z-machine is an excellent design, and the recent
> proliferation of Z-machine games (which are being played
> on machines where other design systems have never reached:
> people _do_ play on hand-held computers, for instance)
> bears this out.

> Have any Inform authors had to seriously compromise their
> games because of restrictions brought on by the Z-machine?
> I haven't, except when working some years ago for restricted
> subsets of the Z-machine.

_So Far_ uses over 60% of the V8 Z-machine for what is really a
medium-small game. If I had written _Jigsaw_, it would have gone past 512K
in size. (And past _Avalon_ in release date, I'm sure.) 

_Lists_ uses about 10K of RAM for its symbol and cons-pair heaps. For the
toy domain of seven programming exercises, you still use up quite a bit of
that -- enough that it garbage-collects more than once. I have no idea how
big an Scheme IF system would be, but if it's only ten times as large, it
will run headlong into the Z-machine's 64K RAM space limit. 

Therefore, anyone who wants to use that kind of dynamic programming, via 
my library or another, is probably fatally compromised right from the 
start. I wanted to create the core of a serious IF tool for the 
Z-machine, but I don't think I succeeded.

> > Oh wow, are you hypothesizing different backends for the same front-end 
> > Inform compiler?  That is, the same source language compiling into Zcode or
> > TADS code or some other virtual machine [such as Java.. dunno if that would
> > make any sense at all]?

I hypothesize this, sure. I want to do it. Preferably before the 
increasing desire for more memory, more flexibility -- even more graphics 
and sound -- produces yet another slightly hacked Z-machine version.

The Java VM seems like a fine virtual machine, and I don't have to write 
the interpreters for it. (It won't run on TRS-80's, but any game that 
will fit on a TRS-80 should be compiled to Z-code anyway, not Java, since 
it *won't* be straining the Z-machine's capacity.)

> As for Java, surely better to wait for the completion of the
> Java Z-machine interpreter?

No, no. I want to add a lot of features which the Z-machine doesn't 
support at all, but are entirely orthogonal to Inform as a language -- 
they would be available as new opcodes, or rather as a library of 
functions which are implemented using new "opcodes" (actually toolbox 
traps for the IF runtime system, which is written in Java -- never mind, 
this paragraph has gotten way off-track. The point is, Inform as a 
language is not limited to 64K of writable memory, or its current inadequate 
set of file operations, or any number of other Z-machine limitations that 
I have notes on How To Do Better As Soon As I Have Time. Java VM output 
coupled with an IF runtime class solves all of that, with no change to 
existing Inform source code.)

> The aim is certainly not to worship the Z-machine!

Oops, gotta run. The incense burners are getting low.

--Z
-- 

"And Aholibamah bare Jeush, and Jaalam, and Korah: these were the
borogoves..."


From erkyrath@netcom.com Fri Jan  3 13:42:59 MET 1997
Article: 20985 of rec.arts.int-fiction
Newsgroups: rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news00.sunet.se!sunic!news.sprintlink.net!news-peer.sprintlink.net!news.bbnplanet.com!su-news-hub1.bbnplanet.com!www.nntp.primenet.com!nntp.primenet.com!netcom.com!erkyrath
From: erkyrath@netcom.com (Andrew Plotkin)
Subject: Fluid Analogies
Message-ID: <erkyrathE3CtsM.KHs@netcom.com>
Organization: NETCOM On-line Communication Services (408 261-4700 guest)
X-Newsreader: TIN [version 1.2 PL1]
Date: Thu, 2 Jan 1997 00:09:58 GMT
Lines: 49
Sender: erkyrath@netcom20.netcom.com

A note of Very Little Context:

One of the books I found myself suddenly in possession of this season...

(Isn't Winterfair a great holiday? My grandmother told me to buy a nice 
sweater with the check she gave me. Ha indeed.)

...was _Fluid Concepts and Creative Analogies_, by Douglas Hofstadter et 
al. (Basic Books, ISBN 0-465-02475-0.) It's pretty much a collection of 
papers he's written, co-written, or gotten his grad students to write 
over the last 15 years. 

I mention it because most of the work revolves around a rather nifty 
programming architecture for performing tasks that involve many possible 
subtasks. It's rather along the lines of using Prolog to control an NPC: 
a high-level goal can be achieved through many possible approaches, each 
of which is a different subgoals, and the program plans the best approach 
using what it knows about the universe.

The nice thing about Hofstadter's "codelet" approach is that it's 
parallel, trivial to break up into small chunks of processing, and 
very efficient -- it avoids both too-wide processing (looking at a 
combinatorial explosion of possible actions) and too-deep processing 
(exploring long sequences of actions that don't get anywhere.) The price 
is that it is fallible -- it can miss good solutions, and it's 
non-deterministic, so different runs can get different results. 

This may or may not be what people want out of NPCs. I just want to 
mention it as a contrast to logical-deduction approaches of NPC control. 
I thought it was cool.

(For those of you that have read the book, I'm just talking about the 
simplest kind of coderack/codelet system, as in the Jumbo program, 
chapter 2.) (Later chapters get into systems that don't just plan tasks 
based on knowledge, but invent new knowledge -- theories or analogies -- 
to assist in their plans. I'm sure this is also applicable to IF, but I 
don't think we can understand how until we've spent a few years exploring 
the previous step!)

Those of you that think Hofstadter is a poser, forget it.

--Z



-- 

"And Aholibamah bare Jeush, and Jaalam, and Korah: these were the
borogoves..."


From graham@gnelson.demon.co.uk Mon Jan  6 22:13:44 MET 1997
Article: 21011 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news99.sunet.se!newsfeed.luth.se!news.luth.se!eru.mt.luth.se!www.nntp.primenet.com!nntp.primenet.com!cs.utexas.edu!howland.erols.net!news-peer.gsl.net!news.gsl.net!news-lond.gsl.net!news.gsl.net!netcom.net.uk!dispatch.news.demon.net!demon!gnelson.demon.co.uk!graham
From: Graham Nelson <graham@gnelson.demon.co.uk>
Newsgroups: rec.arts.int-fiction
Subject: Re: Fast lexers/slow hardware/better environments (Re: Questionable ...)
Date: Thu, 02 Jan 1997 21:37:01 +0000 (GMT)
Organization: none
Lines: 20
Message-ID: <ant022101d07M+4%@gnelson.demon.co.uk>
References: <59g6p8$grj@bartlet.df.lth.se> <ant282208bc8M+4%@gnelson.demon.co.uk> <erkyrathE3CGtC.Gn2@netcom.com> <32cb6e17.1803132@news.worldonline.nl> <5agpdg$8ub@bartlet.df.lth.se> 
NNTP-Posting-Host: gnelson.demon.co.uk
X-NNTP-Posting-Host: gnelson.demon.co.uk
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; CHARSET=ISO-8859-1
X-Newsreader: ANT RISCOS Marcel [ver 1.09]

In article <5agpdg$8ub@bartlet.df.lth.se>, Magnus Olsson
<URL:mailto:mol@bartlet.df.lth.se> wrote:
> ....and are there Java compilers for all the platforms that can run
> the Inform compiler?

To my annoyance (though possibly through my incompetence in
finding the right place to look), I have been unable to find
even a Java interpreter for RISC OS, let alone a Java compiler.
My Web browser is the nearest to an "official Acorn-approved
browser", having been licensed by them for their NC set-top
boxes, but it certainly doesn't run applets.

There are times when owning an Acorn is like driving the best
car in the world, but which requires a special sort of petrol
only available in Cambridge.  You wouldn't go round the world
in it.

-- 
Graham Nelson | graham@gnelson.demon.co.uk | Oxford, United Kingdom



From whizzard@uclink.berkeley.edu Mon Jan  6 22:19:52 MET 1997
Article: 21021 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news01.sunet.se!sunic!mn6.swip.net!plug.news.pipex.net!pipex!oleane!in2p3.fr!univ-lyon1.fr!howland.erols.net!agate!uclink.berkeley.edu!whizzard
From: whizzard@uclink.berkeley.edu (Gerry Kevin Wilson)
Newsgroups: rec.arts.int-fiction,rec.games.int-fiction
Subject: Getting the last stuff together for SPAG 10.
Date: 4 Jan 1997 00:38:16 GMT
Organization: University of California at Berkeley
Lines: 57
Message-ID: <5ak8po$4p7@agate.berkeley.edu>
NNTP-Posting-Host: uclink.berkeley.edu
Xref: news.lth.se rec.arts.int-fiction:21021 rec.games.int-fiction:19861


Hi Folks,

	Sorry I've been so quiet lately.  I've been busy with Avalon and a
fantasy sourcebook I'm writing for an RPG company.  The .gam file for
Avalon is now pretty big (729,811.)  I'm hoping TADS will hold out just a
little more, cuz I'm gonna be really pissed if it cuts me off in the final
straightaway.  The RPG book is gonna be 88 pages long, and I've finished
18-20 pages right now.  I'll drop the details into a SPAG editorial
sometime after it's finished.

	I've also been putting together resumes for various game
companies, in case the job at Activision doesn't materialize.  My second
pick is Legend entertainment.  They look to be doing some very exciting
things with some of my favorite authors (although I have to say I prefer
to write totally original material, there just doesn't seem to be a lot of
that at any of the big, reliable companies.)

	Anyways, I just got the prize picks sorted out, and I'll be
sending out emails to the various prize donors telling them where to send
the prizes within 1.5 weeks.  I'll also be writing up interviews for the
first 7-8 placing games.  More might follow next issue, but as you can
see, my plate is full to overflowing.  I'll be getting some in-depth
analyses in if I have time, though I'd really prefer to talk someone else
into the job (anyone?) and that'll be enough to get SPAG 10 out the door.
Which is a good thing, since I have enough material to put out SPAG 11
sitting in my email box (You try editing a magazine over the holidays.
HAH!)

	Oh yeah, there was a point to this somewhere....Oh!  Right.  The
point is that the one thing that SPAG 10 is lacking is Contest entry
reviews.  So many folks just posted their notes to the newsgroup that no
one saved any for SPAG.  I think right now I have one or two sets of
reviews, and that's it.  I need some more by the 17th.  I will attempt to
put SPAG 10 out on the weekend of the 18-19th, or at least within 3-4 days
of that.

	By the way, if I haven't said it yet, here's a big thank you to
Colin Turnbull and his friend for counting the votes, and another big
thanks to this year's batch of betatesters, particularly the tireless
Michael Kinyon.  Many thanks to those folks who so generously donated
prizes for the contest, and most of all, a hearty thanks to all the
entrants, who put forth such a tremendous effort and produced the games
that kept us all glued to our computer screens for no more than 52 hours.
;)

	And by the way, as my first New Year's resolution, I resolve to
release Avalon before its 4 year anniversary in October.  Oh yeah, and
everyone cross your fingers for me next Monday.  That's when my final
grades are due in.

	Enough rambling, back to coding on Avalon.
-- 
=  SPAG Magazine  = Issues 1-9 at ftp.gmd.de:/if-archive/magazines/SPAG =
=       All       =  Ratings =     Issue 10 coming soon.  It's the      =
=      About      =  Reviews =        1996 I-F Competition Issue.       =
= Text Adventures =   News!  =        Editor: whizzard@pobox.com        =


From mol@bartlet.df.lth.se Tue Jan  7 09:50:06 MET 1997
Article: 21073 of rec.arts.int-fiction
Path: news.lth.se!news
From: mol@bartlet.df.lth.se (Magnus Olsson)
Newsgroups: rec.arts.int-fiction
Subject: Re: Um, what *is* Prolog?
Date: 7 Jan 1997 09:49:02 +0100
Organization: The Computer Society at Lund University and Lund Institute of Technology
Lines: 73
Message-ID: <5at2lu$a3e@bartlet.df.lth.se>
References: <ant0220230b0c4bn@arnod.demon.co.uk>
NNTP-Posting-Host: bartlet.df.lth.se
NNTP-Posting-User: mol

In article <ant0220230b0c4bn@arnod.demon.co.uk>,
Julian Arnold  <jools@arnod.demon.co.uk> wrote:
>Could Phil Goetz or somebody post a short example of Prolog code, or a
>basic description of the language?  Is it Lisp-like, or C-like, or
>Prolog-like?  What's so good about Prolog anyway?

Prolog is, well, Prolog-like. It is an example of a logical (as
opposed to procedural, functional or object-oriented)
language. Instead of telling the computer what to do, you give the
computer a model of the world (in terms of predicate logic, hence the
name "logic programming") and the computer figures out what to do
itself. Or at least it tries to.

For example, you can give the definitions:

parent(joe, bob).
parent(joe, sue).
parent(bob, carl).


to specify that some people are the parents of others. You can then ask
the computer

parent(X, bob)?

and get the answer

X = joe.

The computer knows nothing about children. So let's define a child:

child(X, Y) :- parent(Y, X).

which means "X is a child of Y if Y is a parent of X".

We can now ask

child(X, bob)?

and get the answer

X = carl.

or even

child(X, Y)?

and get the answer

X = carl, Y = bob.
X = bob, Y = joe.
X = sue, Y = joe.

We can also have compound predicates:

sibling(X, Y) :- parent(Z, X), parent(Z, Y).

i.e. "X is the sibling of Y if they have the same parent Z".

The way the "program" executes is that the user asks a question in the
form of a statement with one or more dummy variables, and the computer
uses a backtracking algorithm to find all values of the dummy
variables that satisfy all the known "facts".

The canonical reference to Prolog is (or at least used to be ten years
ago) a book by Clocksin & Mellish, which is highly recommended.





-- 
Magnus Olsson (mol@df.lth.se)


From gdr11@cl.cam.ac.uk Tue Jan  7 10:44:34 MET 1997
Article: 21065 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news99.sunet.se!newsfeed.luth.se!news.luth.se!erix.ericsson.se!eua.ericsson.se!news.algonet.se!news-feed.inet.tele.dk!insync!feed1.news.erols.com!howland.erols.net!agate!nntpfeed.doc.ic.ac.uk!sunsite.doc.ic.ac.uk!lyra.csx.cam.ac.uk!news
From: Gareth Rees <gdr11@cl.cam.ac.uk>
Newsgroups: rec.arts.int-fiction
Subject: Re: A Couple of Inform Problems
Date: 06 Jan 1997 15:36:37 +0000
Organization: Cambridge University Computer Lab
Lines: 18
Sender: gdr11@stint.cl.cam.ac.uk
Message-ID: <yxsg20e3jei.fsf@stint.cl.cam.ac.uk>
References: <5ahkot$7ha@mtinsc01-mgt.ops.worldnet.att.net>
NNTP-Posting-Host: stint.cl.cam.ac.uk
X-Newsreader: Gnus v5.3/Emacs 19.34

"C.E. Forman" <ceforman@postoffice.worldnet.att.net> wrote:
> How, aside from programming a special parsing routine, does one make
> Inform acknowledge quoted text?

You have to program the special parsing routine, because a double quote
is parsed as a word on its own (like a comma or full stop).  One
approach would be to write a `BeforeParsing' routine that simply deleted
double quotes from the buffers; another would be to use grammar lines
like

    Verb "type" * ConTopic -> Type;

instead of the (deprecated)

    Verb "type" * special -> Type;

-- 
Gareth Rees


From gdr11@cl.cam.ac.uk Tue Jan  7 10:44:54 MET 1997
Article: 21066 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news99.sunet.se!newsfeed.luth.se!news.luth.se!erix.ericsson.se!eua.ericsson.se!news.algonet.se!news-feed.inet.tele.dk!arclight.uoregon.edu!news-peer.gsl.net!news.gsl.net!usenet.eel.ufl.edu!warwick!lyra.csx.cam.ac.uk!news
From: Gareth Rees <gdr11@cl.cam.ac.uk>
Newsgroups: rec.arts.int-fiction
Subject: Re: [Inform] kind of long rambling question
Date: 06 Jan 1997 15:46:35 +0000
Organization: Cambridge University Computer Lab
Lines: 18
Sender: gdr11@stint.cl.cam.ac.uk
Message-ID: <yxsd8vi3ixw.fsf@stint.cl.cam.ac.uk>
References: <32CCA962.15A9@penning.lanl.gov>
NNTP-Posting-Host: stint.cl.cam.ac.uk
X-Newsreader: Gnus v5.3/Emacs 19.34

Russell Glasser <rglasser@penning.lanl.gov> wrote:
> 1. "My" is not a normal word in Inform.

Inform treats "my", "his", "its" and so on specially, so that "my thing"
refers to the thing that the player is currently carrying (this only
matters if there are other things around).  If the player used the word
"my" to refer to the current object, the variable `indef_type' will have
the bit MY_BIT set.  So I suggest you write a `ChooseObjects' routine
that bumps up the score for "my goblet" if (indef_type & MY_BIT > 0).

> 2. Obviously I need to replace the DEFINITE article ... but that gives
> me some distressing problems with capitalization

I suggest you `Replace CDefArt;' with a routine that does the right
thing.

-- 
Gareth Rees


From scythe@u.washington.edu Wed Jan  8 10:56:36 MET 1997
Article: 21113 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news99.sunet.se!newsfeed.luth.se!news.luth.se!erix.ericsson.se!eua.ericsson.se!news.algonet.se!hammer.uoregon.edu!arclight.uoregon.edu!news.sprintlink.net!news-peer.sprintlink.net!uunet!in3.uu.net!140.142.64.3!news.u.washington.edu!scythe
From: scythe@u.washington.edu (Dan Shiovitz)
Newsgroups: rec.arts.int-fiction
Subject: Re: annoying pronouns
Date: 8 Jan 1997 01:55:15 GMT
Organization: University of Washington, Seattle
Lines: 60
Message-ID: <5auuq3$lne@nntp5.u.washington.edu>
References: <Pine.SGI.3.95L.970107093713.14934A-100000@tower.york.ac.uk> <19970107203400.PAA09513@ladder01.news.aol.com>
NNTP-Posting-Host: saul3.u.washington.edu
NNTP-Posting-User: scythe

In article <19970107203400.PAA09513@ladder01.news.aol.com>,
Nulldogma <nulldogma@aol.com> wrote:
>> --
>> > x desk
>>
>> The desk contains a fascinating Widget.
>>
>> > take it
>>
>> You can't do that to the desk!
>> --
>> D'oh!  Surely there's some way of stopping this.
[..]
>Of course, what happens if the desk contains a widget, a doohickey, and a
>thingamabob, I don't know. And then you need to consider that the player
>may have *meant* to try to take the desk.
>
>All reasons why I don't use setit(), and leave the parser to its own
>devices.

One interesting thing to try (which TADS doesn't currently support (well ..
not without a lot of ugly hacking)) would be to set the it object to all
the last objects referred to, not just the last one.  Then, when someone
uses "it" in a sentence, the parser would go down the list and use the
verify method to find the first appropriate one and return that.  On the
other hand, if the person had used "them," it could return the entire
list.  

This would hopefully make things like
> TAKE FISH FROM BOX. EAT IT.
and
> TAKE FISH FROM BOX. CLOSE IT.
both come out right.

I guess my idea for it/them isn't so great, though.  Although
> TOUCH BLUE CRYSTAL TO GREEN CRYSTAL.  PUT THEM IN BAG.
would give correct behavior, these wouldn't really:
> PUT FISH AND CACTUS ON DESK. TAKE THEM. (would try to take desk also)
> PUT FISH ON DESK. TAKE THEM. (ok.. this is weird input anyway)
> PUT FISH AND CACTUS IN BOX. TAKE IT. (probably the user means the box)

Ok.. umm.. how about when disambiguating "them", the parser first tries
to see if they had a list of objects in their command ("THE FISH AND THE 
CAT"), and returns that.  If not, it returns the "it" list.  On the
other hand, when disambiguating "it", it returns the first singular object
it can find.  Which, in turn, suggests that it might be best to handle it/them
with three slots (for noun, direct and indirect object), and each can
contain either an array of or a single object.  
So this is doable, certainly.  Is it worth it?  Not sure, really.  I don't
use "it" very often myself, and never use "them".  But if they were 
implemented this well, I might get into the habit of using them more.

>Neil
--
dan shiovitz scythe@u.washington.edu shiov@cs.washington.edu
slightly lost author/programmer in a world of more creative or more 
sensible people ... remember to speak up for freedom because no one else
will do it for you: use it or lose it ... carpe diem -- be proactive.
my web site: http://weber.u.washington.edu/~scythe/home.html some ok stuff.



From graham@gnelson.demon.co.uk Wed Jan  8 10:57:16 MET 1997
Article: 21110 of rec.arts.int-fiction
Path: news.lth.se!solace!demos!Gamma.RU!srcc!insync!feed1.news.erols.com!howland.erols.net!cam-news-hub1.bbnplanet.com!news.bbnplanet.com!cpk-news-hub1.bbnplanet.com!newsfeed.internetmci.com!btnet!netcom.net.uk!dispatch.news.demon.net!demon!gnelson.demon.co.uk!graham
From: Graham Nelson <graham@gnelson.demon.co.uk>
Newsgroups: rec.arts.int-fiction
Subject: Re: A Couple of Inform Problems
Date: Tue, 07 Jan 1997 23:27:15 +0000 (GMT)
Organization: none
Lines: 37
Message-ID: <ant072315345M+4%@gnelson.demon.co.uk>
References: <5ahkot$7ha@mtinsc01-mgt.ops.worldnet.att.net> <yxsg20e3jei.fsf@stint.cl.cam.ac.uk> 
NNTP-Posting-Host: gnelson.demon.co.uk
X-NNTP-Posting-Host: gnelson.demon.co.uk
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; CHARSET=ISO-8859-1
X-Newsreader: ANT RISCOS Marcel [ver 1.09]

In article <yxsg20e3jei.fsf@stint.cl.cam.ac.uk>, Gareth Rees
<URL:mailto:gdr11@cl.cam.ac.uk> wrote:
> 
> "C.E. Forman" <ceforman@postoffice.worldnet.att.net> wrote:
> > How, aside from programming a special parsing routine, does one make
> > Inform acknowledge quoted text?

There is an example of this in the blackboard object in
the "Toyshop" demonstration game: it parses text like

  > write "mary had a little lamb"

and so on.

> You have to program the special parsing routine, because a double quote
> is parsed as a word on its own (like a comma or full stop).  One
> approach would be to write a `BeforeParsing' routine that simply deleted
> double quotes from the buffers; another would be to use grammar lines
> like
> 
>     Verb "type" * ConTopic -> Type;
> 
> instead of the (deprecated)
> 
>     Verb "type" * special -> Type;

Indeed, the precated (is there such a word?) practice is now

      Verb "type" * topic -> Type;

as long as you have Inform 6.10 or later.  In other words,
ConTopic (or a slightly better version of it) is now built
in.

-- 
Graham Nelson | graham@gnelson.demon.co.uk | Oxford, United Kingdom



From mol@bartlet.df.lth.se Wed Jan  8 11:24:40 MET 1997
Article: 21121 of rec.arts.int-fiction
Path: news.lth.se!news
From: mol@bartlet.df.lth.se (Magnus Olsson)
Newsgroups: rec.arts.int-fiction
Subject: Languages vs. Design Tools?
Supersedes: <5avs4q$3bo@bartlet.df.lth.se>
Date: 8 Jan 1997 11:23:59 +0100
Organization: The Computer Society at Lund University and Lund Institute of Technology
Lines: 68
Message-ID: <5avsjv$46f@bartlet.df.lth.se>
References: <32CC19CC.6DEF@romulus.sun.csd.unb.ca> <32D2A31D.1F72@romulus.sun.csd.unb.ca> <32D30C66.4DEB16D5@welash.xnet.com> <erkyrathE3o6pM.31y@netcom.com>
NNTP-Posting-Host: bartlet.df.lth.se
NNTP-Posting-User: mol

In article <erkyrathE3o6pM.31y@netcom.com>,
Andrew Plotkin <erkyrath@netcom.com> wrote:
>I find that creating the rooms and exits and objects -- the things whose
>Inform code can be generated automatically -- is just a tiny fraction of
>my programming time. That's why I have never wanted one of these tools.
>Making 1% of my job easier is simply not worth it, no matter how much 
>easier that part gets.

Indeed.

It would of course be nice to be able to create new rooms while playing,
or to move rooms and exits around - as some MUDs allow you to do. 

However, like Andrew, I find that room and object creation is the easy
part. What consumes most of the time is getting all those thingies to
interact in the right way; testing all action routines, and debugging
them. It would be nice to get rid of the edit - compile - restart -
recreate-previous-situation cycle (and the tedious part is *not*
recompiling, that takes ten seconds, but making sure that everything
is in the correct place and state ("Hmmm - had I eaten the biscuit
when I pressed that button last time?").

What I'd really like to see would be an incremental development system,
that allowed me to change a piece of code while running the game, 
and without having to change the game state. Such a system is possible,
but it's a few orders of magnitude more difficult than a dynamic room
creator.

(What I mean is something like this:

You are in a boring room.
There is a hungry-looking troll standing here.

> i

You are carrying a rotting dog carcass and a large carrot

> give carrot to troll

The troll doesn't seem interested. "Gimme some food, human!"

[ oops, forgot that though trolls prefer meat, they can eat 
vegetables too ]

> $edit troll.ioGiveTo

[ enter some code for eating vegetables here ]

> give carrot to troll
The troll eyes the carrot suspiciously. "Can I eat this strange
orange thing?" He takes a tentative bite from it, then
wolfs it down. "Not bad."

[ No. Too tame. ]

> undo
> $edit troll.ioGiveTo

[ Rewrite code ]

> give carrot to troll
The troll eyes the carrot suspiciously. "Can I eat this strange
orange thing?" He takes a tentative bite from it, then spits
it out. "Blecch! Gimme some real food! That dog sure looks yummy!"


-- 
Magnus Olsson (mol@df.lth.se, zebulon@pobox.com)


From dmb@ai.mit.edu Wed Jan  8 12:34:49 MET 1997
Article: 21125 of rec.arts.int-fiction
Path: news.lth.se!solace!mn6.swip.net!news00.sunet.se!sunic!news.sprintlink.net!news-peer.sprintlink.net!howland.erols.net!bloom-beacon.mit.edu!ai-lab!lf!dmb
From: dmb@lf.ai.mit.edu (David Baggett)
Newsgroups: rec.arts.int-fiction
Subject: Re: Questionable Languages & Compilers
Date: 8 Jan 1997 06:35:37 GMT
Organization: MIT Artificial Intelligence Lab
Lines: 28
Message-ID: <5avf7p$s9l@life.ai.mit.edu>
References: <59uhn6$c0@mamba.cs.Virginia.EDU> <5aolk9$rku$1@europa.frii.com> <561.6945T25T2564@easynet.co.uk> <5arkav$3sm$1@europa.frii.com>
Reply-To: dmb@ai.mit.edu
NNTP-Posting-Host: lf.ai.mit.edu

In article <5arkav$3sm$1@europa.frii.com>,
John Holder <jholder@frii.com> wrote:

>But I'm looking real hard at Scheme + SCOOPS + Schelog, which is OO Scheme
>with native Prolog)

Could you post pointers for these?

>I feel that every programmer owes it to him or her self to learn at least
>one major language in each of the four programming paradigms.

Excellent advice!  I'd even recommend writing a compiler for a subset of
each of the languages you choose as well.  There's no way to learn as much
about programming languages (and probably programming in general as well).

>I have been prompted to learn as much as I can about these languages
>largely because of Dave Bagget's strong opinions for these languages, and
>to be honest, I'm afraid I'm becoming a convert...

Soon you will *all* be right-thinking individuals like John!

:)

Dave Baggett
__
dmb@ai.mit.edu
"Mr. Price: Please don't try to make things nice! The wrong notes are *right*."
--- Charles Ives (note to copyist on the autograph score of The Fourth of July)


From max@alcyone.com Wed Jan  8 14:22:54 MET 1997
Article: 21117 of rec.arts.int-fiction
Path: news.lth.se!solace!nntp.uio.no!news-feed.inet.tele.dk!enews.sgi.com!news.sgi.com!news.spies.com!nixon.area.com!usenet
From: Erik Max Francis <max@alcyone.com>
Newsgroups: rec.arts.int-fiction
Subject: Re: Z-Machine Graphics & Sound
Date: Wed, 08 Jan 1997 00:06:24 -0800
Organization: Alcyone Systems
Lines: 37
Message-ID: <32D35580.232FC9F1@alcyone.com>
References: <32cbfbcd.18221769@nntp.netcruiser> <1470.6943T19T2864@easynet.co.uk> <5arq4b$79g@bartlet.df.lth.se> <32D1BFBA.1E642D4D@alcyone.com> <5au26i$tkh@bartlet.df.lth.se>
NNTP-Posting-Host: newton.alcyone.com
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
X-Mailer: Mozilla 2.0 (X11; I; Linux 2.0.27 i686)

Magnus Olsson wrote:

> And even before the draft standard started to settle down, the major
> incompatibility problem with C++ compilers was not so much that they
> did things in different ways, but that they implemented different
> subsets of the language. The largest problems seem to be in the areas
> of templates and exceptions, both of which can be hard to
> implement. One important part of the draft ANSI standard is the
> Standard Template Library, which, as you might have guessed, relies
> heavily on templates.

Indeed.  It was frustrating hearing about the new draft standard 2.1
features such as templates, exceptions, and RTTI, and discovering that they
weren't yet supported in the compilers I was using.

Still, the situation is much better now.  There are a few features still
commonly missing (such as a bool data type being a fundamental
construction) in some compilers, but templates and exceptions are now
almost universally supported in the most common compilers.

> This notwithstanding, writing protable C code can be a total
> nightmare, because of things such as subtle incompatibilities between
> the system libraries on different OS's, not to mention the fact that
> SYSV and BSD- derived Unices have parallel version of many system
> calls... This is of course not the fault of the C language in itself,
> but rather of the fact that important libraries are *not* part of the
> C standard. (POSIX has made things better, but IMHO it's not enough).

Agreed.  The key is knowing what standard (if any) the features you are
using are a part of, and documenting them well.

-- 
                             Erik Max Francis | max@alcyone.com
                              Alcyone Systems | http://www.alcyone.com/max/
                         San Jose, California | 37 20 07 N 121 53 38 W
                                 &tSftDotIotE | R^4: the 4th R is respect
     "You must surely know if man made heaven | Then man made hell"


From mol@bartlet.df.lth.se Wed Jan  8 14:24:36 MET 1997
Article: 21127 of rec.arts.int-fiction
Path: news.lth.se!news
From: mol@bartlet.df.lth.se (Magnus Olsson)
Newsgroups: rec.arts.int-fiction
Subject: Re: Specific Inform criticism (Long) / Non-English Inform
Date: 8 Jan 1997 14:21:51 +0100
Organization: The Computer Society at Lund University and Lund Institute of Technology
Lines: 161
Message-ID: <5b071f$o0b@bartlet.df.lth.se>
References: <59g6p8$grj@bartlet.df.lth.se> <5a748r$iir@life.ai.mit.edu> <ant3021181cbM+4%@gnelson.demon.co.uk> <32D2BA7E.58E916EB@post.rwth-aachen.de>
NNTP-Posting-Host: bartlet.df.lth.se
NNTP-Posting-User: mol

In article <32D2BA7E.58E916EB@post.rwth-aachen.de>,
Linards Ticmanis  <Linards.Ticmanis@post.rwth-aachen.de> wrote:
>Graham Nelson wrote:
>> 
>> "quit", "new_line" and "spaces" all ought to be functions, yes,
>> or better yet removed altogether.  But they're easy enough to
>> remember if one wants to, and it doesn't matter if one doesn't
>> remember them.  Nobody needs to use "quit" at all.  (There are
>> about six statements I'd remove given a free hand to do so.)
>
>Why not allow both (function style and "traditional" style) ?

No, please, don't clutter up the language with alternative syntaxes,
especially if they serve no purpose. 

>> >   - Silent defaulting of missing function args to zero is an evil
>> >     "convenience" that will surely lead to bugs.
>> 
>> In my experience, it has seldom done so in the past.  But I concede
>> that this convenience is double-edged and that the language is
>> not ideally helpful in making programmers aware of the potential
>> for problems.
>
>What's "check_arg_count" for, after all ? We could have something like
>
>[ Hello a b c : d e;
>
>Where the : denotes the end of (required) parameters and the start of
>"Real" local variables. Eiter of the two lists could be left out, if not
>needed.

Isn't this basically the same thing as the proposal (I've forgotten who made
it) to declare local variables in a C-like way:
[ Hello a b c;
  local d e;
...
];
which IMHO is much "cleaner" synatx than Linards' proposal above? Again IMHO,
Linards' proposed syntax looks very accident-prone - it's very easy to 
confuse the colon and semicolon.

>
>> 
>> >   - Operator insanity; example: "or", as in
>> >
>> >       if (x ~= 1 or 2 or 3) return;
>> 
>> "or" is one of the features I am most proud of, actually.  IF code
>> is absolutely full of selections and comparisons, along the lines of
>
>How about "and" to complete things ?
>
>if (torch has lit and lifted_up) ...
>or
>if (mouse and cat in cage) ...
>
>could often be useful.

I quite like the "or" operator (which is not entirely without precedent;
in COBOL you can write things like "if a < 2 or > 3"). However, it's
potentially confusing: does "x ~= 1 or 2" really mean "x ~= 1 || x ~= 2"
or does it mean "~~(x == 1 || x == 2)"? I can never recall which...

Linards' proposed extensions could perhaps be useful, but I suspect
at least the second one could be hard to implement in a sufficiently
general way.

>BTW am I the only one who feels you should be able to call "give" and
>"has" instead "make" and "is" ? That would make many statements more
>natural to read.

I sincerely hope so! :-) Please don't confuse things by adding lots of
alternative syntaxes - the language will end up a total mess with
different people using different subsets and getting
confused. Ob. snotty elitist remark: if you want to use a language,
take the trouble of learning that language's syntax, instead of
insisting on changing it to something you think is more readbale, or
whatever (some people abuse the C preprocessor by defining macros
"and" for "&&", "begin" for "{" and so on, so they end up writing code
that looks almost - but not entirely - like Pascal, thus hopelessly
confusing everybody else. Yecch.)

>What exactly, syntactically, are the action name labels e.g. in "before"
>Rules:
>
>before
>[; Eat: "You can't determine if you like the way", (the) inform,
>        "tastes."
>
>What is "Eat:" in this case ? 

They are case labels. Think of the entire before method as being
surrounded by a big switch statement. It's mentioned in the Designer's
Manual somewhere.

>> There are 6 such conditions, yes.  They all test fundamental
>> states of affairs, intrinsic to the language.  They would have
>> to be built into Inform even if it were Scheme-like.  For the record,
>> they are
>> 
>>       has  hasnt  in  notin  ofclass  provides
>> 
>> and although it could be argued that "hasnt" and "notin" aren't
>> necessary, once again they're good shorthands.
>> 
>
>How about "x has ~eaten" instead of "x hasnt eaten" ? or, maybe, allow
>something like "takefrom" or "take" to go along with "give", to round
>things out. Also, see the comment on "give/make" above.

OTOH, what's the point of changing those things now? Of course,
"hasnt" and "notin" could be replaced by "~~(x has eaten)" etc
but IIRC, the ~~ operator is a rather late addition to the language.


>> >      Wait, was that #n$X, or did my modem just get a burst of line noise?
>> >      Say it ain't so!
>> 
>> Now you're really prosecutin'.  I consider this much the worst state
>> of affairs in the Inform language, and deserve blame for it.  I would
>> dearly like to reform it, but as ever the presence of old code is
>> inhibiting.
>> 
>
>Some proposals:
>
>a) Use backquotes (`) for library words.
>b) Or, Use backquotes for single characters.
>c) Or, Use a single backquote in front of a character.

Ulch. Again, this would be *very* error-prone, not to mention the fact
that backquotes are generally quite hard to type on national keyboards.


>> >   -  "Causing an action and then returning true (i.e., causing a new
>> >      action and killing the old one) is so useful that it has an abbreviation,
>> >      putting the action in double angle-brackets.  For example,
>> >
>> >                <Look>; <<ThrowAt smooth_stone spider>>;
>> >
>> >      will behave as if the player has asked to look around and to throw the
>> >      stone at the spider, and will then return true."
>> >
>
>How about 
> do(Look);
>as alternate syntax for <Look>; ?

Wouldn't the most "logical" way of doing this just be to use function
syntax, and call the action routine directly? I.e.,
ThrowAtSub(smooth_stone, spider)? Ideally, there should be no distinction
between the action name, the symbolic action constant (##ThrowAt) and
the actionSub routine. The compiler should be able to keep the uses
apart.

But I'm *not* suggesting that the << >> syntax should be changed: too much
code would have to be changed, and it's not too hard to remember, is it?


-- 
Magnus Olsson (mol@df.lth.se, zebulon@pobox.com)


From jools@arnod.demon.co.uk Wed Jan  8 14:44:30 MET 1997
Article: 21098 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news99.sunet.se!newsfeed.luth.se!news.luth.se!erix.ericsson.se!eua.ericsson.se!news.algonet.se!news-feed.inet.tele.dk!news.radio.cz!voskovec.radio.cz!news.apfel.de!nntp.uio.no!Norway.EU.net!sn.no!news-stkh.gsl.net!news.gsl.net!news-lond.gsl.net!news.gsl.net!netcom.net.uk!dispatch.news.demon.net!demon!arnod.demon.co.uk!jools
From: Julian Arnold <jools@arnod.demon.co.uk>
Newsgroups: rec.arts.int-fiction
Subject: Re: Um, what *is* Prolog? (LONG) (fwd)
Date: Tue, 07 Jan 1997 16:14:10 +0000 (GMT)
Organization: Organisation name, location. Telephone/Fax?
Lines: 183
Message-ID: <ant0716100b0c4bn@arnod.demon.co.uk>
NNTP-Posting-Host: arnod.demon.co.uk
X-NNTP-Posting-Host: arnod.demon.co.uk
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; CHARSET=ISO-8859-1
X-Newsreader: ANT RISCOS Marcel [ver 1.08]

Date: Tue, 7 JAN 97 00:31:23 +0100
From: Torbj|rn Andersson <d91tan@Minsk.DoCS.UU.SE>
Subject: Re: Um, what *is* Prolog? (LONG)
To: jools@arnod.demon.co.uk

I really meant to post this to Usenet, but the local news server
seems to be alamingly short on disk space, so I guess I have to
mail it, instead. I hope that's ok.

Sincerely,

     _
Torbjorn Andersson


Julian Arnold <jools@arnod.demon.co.uk> wrote:

> Could Phil Goetz or somebody post a short example of Prolog code, or a
> basic description of the language?  Is it Lisp-like, or C-like, or
> Prolog-like?  What's so good about Prolog anyway?

I can't pretend to give a full answer to that, as I had tried to
avoid Prolog as much as possible, but one thing which I do
remember is that you do not actually write functions, as such. I
don't know quite how to explain it, so let me give an example. As
an assignment, I once had to write parts of an Othello-playing
program. Part of the program - a simple part, I may add - looked
like this:

   :- use_module(library(lists)).

   square(Row-Col) :-
       member(Row, [1, 2, 3, 4, 5, 6, 7, 8]),
       member(Col, [1, 2, 3, 4, 5, 6, 7, 8]).

(This worked with SICStus Prolog, at least.)

Why not define it in terms of < and >, you may ask. Well, that
should work for some things, yes, but probably not for all the
things I wanted to use it for.

Now, I could have exchanges like this with the Prolog system (the
"| ?-" part is just a prompt).

   | ?- square(5-7).

   yes
   | ?- square(9-3).

   no

Which is pretty straightforward, though there are a few things to
note, such as the fact that 9-3 is a single term -- it's not the
same thing as 6.

Now, it gets a bit hairier ...

   | ?- square(5-X).

   X = 1 ? ;

   X = 2 ?

   yes

   | ?- square(X-7), X < 3.

   X = 1 ? ;

   X = 2 ? ;

   no

Anything (?) starting with a capital letter is considered to be
an uninstantiated variable, which Prolog will try to instantiate.
First it suggested that X = 1, which I rejected by typing a semi-
colon.

In the second case, I added an extra constraint on X, and when I
had rejected both possibilities, Prolog concluded that there was
no satisfactory answer.

   | ?- square(7-_).

   yes

The underscore is an uninstantiated variable, but Prolog should
only check if a variable in that position _could_ be instantiated.

So suppose you don't want just one solution; suppose you need all
of them? One possible way is to use findall(). If, for instance,
you need to find X and Y for all cases where X < 5 and Y < X. You
could write that as

   | ?- findall(X-Y, (square(X-Y), X < 5, Y < X), Z).

   Z = [2-1,3-1,3-2,4-1,4-2,4-3] ?

   yes

The main point is that you define a set of predicates which are
known to be true, and then you can "ask" the Prolog system if a
given fact is true. If any variable in your question happens to
be uninstantiated, Prolog will try to instantiate it.

Of course, since the only way Prolog can see if a possible
solution actually works is to actually test it, you will have
trouble if your predicate has any "side effects", such as
printing to the screen, removing a file, etc. To avoid this, you
can insert "cuts", to tell Prolog not to "backtrack" past a
certain point. The only short example of the use of cuts which I
can remember at short notice is this one:

   not(X) :- X, !, fail.

   not(_).

Which means that if X is true, the first clause will fail when it
reaches `fail'. It will then backtrack in search for a different
solution, but since it reaches the cut ("!"), it will not attempt
the second clause, and the whole predicate fails.

If, however, X is not true, it will reach the second clause (it's
only now I realize that in all my previous examples, I have only
had one clause in my predicate ... Prolog will try each clause, in
the order they are written, until it finds one which is "true", or
it runs out of possible solutions for that predicate, in which
case it will backtrack to some earlier point, if possible) where
the underscore will match anything.

   | ?- not(1 < 2).

   no
   | ?- not(2 < 1).

   yes

Another interesting feature of Prolog is that it is possible (though
we were advised against it, for puristic reasons I guess) to add and
remove Prolog predicates at run-time, for instance like this:

   | ?- assert((foo(X) :- X < 10)).

   true ?

   yes
   | ?- foo(5).

   yes
   | ?- foo(20).

   no
   | ?- abolish(foo, 1).

   yes
   | ?- foo(3).
   {EXISTENCE ERROR: foo(3): procedure user:foo/1 does not exist}

There are quite a lot of predicates for adding and removing
clauses like this. As I recall it, the main difference was where
(first or last) the new clause would be added, if there were
already old clauses by that name, or which to remove. In the
example above, all clauses by the name of "foo" with one argument
were removed.

The main reason for adding/removing clauses like this is, I guess,
to build knowledge databases dynamically.

All this is, of course, very wonderful in a way, but once the
predicates start to add up, and a failed predicate would cause
the Prolog to backtrack to implementors-know-where ... that's
the point where I would start to whimper and wish I were using
some nice, easy-to-understand language like C or Lisp, or maybe
just a swift kick to the head to end my misery.

     _
Torbjorn

-- 
"For small erections may be finished by their first architects; grand
ones, true ones, ever leave the copestone to posterity.  God keep me
>from  ever completing anything." -- Herman Melville, "Moby Dick"



From erkyrath@netcom.com Thu Jan  9 10:32:46 MET 1997
Article: 21141 of rec.arts.int-fiction
Newsgroups: rec.arts.int-fiction
Path: news.lth.se!solace!mn6.swip.net!newsfeed.sunet.se!news99.sunet.se!newsfeed.luth.se!news.luth.se!erix.ericsson.se!eua.ericsson.se!news.algonet.se!news-feed.inet.tele.dk!arclight.uoregon.edu!news.sprintlink.net!news-peer.sprintlink.net!howland.erols.net!netcom.com!erkyrath
From: erkyrath@netcom.com (Andrew Plotkin)
Subject: Re: Languages vs. Design Tools?
Message-ID: <erkyrathE3pEnB.29y@netcom.com>
Organization: NETCOM On-line Communication Services (408 261-4700 guest)
X-Newsreader: TIN [version 1.2 PL1]
References: <32CC19CC.6DEF@romulus.sun.csd.unb.ca> <5ap9ul$a38@news.IAEhv.nl> <32D2A31D.1F72@romulus.sun.csd.unb.ca> <32D30C66.4DEB16D5@welash.xnet.com> <erkyrathE3o6pM.31y@netcom.com> <32D3C669.6AC@romulus.sun.csd.unb.ca>
Date: Wed, 8 Jan 1997 19:11:35 GMT
Lines: 82
Sender: erkyrath@netcom.netcom.com

Brad O`Donnell (s7m6@romulus.sun.csd.unb.ca) wrote:
> Andrew Plotkin wrote:
> > 
> > I find that creating the rooms and exits and objects -- 
> > the things whose
> > Inform code can be generated automatically -- 
> > is just a tiny fraction of
> > my programming time. That's why I have never wanted 
> > one of these tools.
> > Making 1% of my job easier is simply not worth it, no matter how much
> > easier that part gets.


>   Well, what part of your job do you want made easier? 
>  It would help discussion along quite a bit if you'd tell what tools
>  you would like.

If there was a tool I wanted, I would have asked for it. :)

The hard part is A: writing prose (which will not be automated in the near 
future, I damn well hope) and B: writing code. Writing code is, as far as 
I'm concerned, not automatable. The easy parts are already easy (I copy 
and paste, or type simple lines of Inform source) and the hard parts are 
everything else. The dozens of one-time hacks and ad hoc bits of code 
that go into any large game. Which is to say, computer programming. I 
know of no better approach to programming than writing source code in a 
medium-to-high level language.

> (I'm pretty much of the school of thought 
>  where "You get out of a game, essentially, what you
>  program/write/create, and a  fool with a tool is just a
>  well-equipped fool," but I still think that interactive <notice I 
>  didn't say "visual"> tools have some place in the IF author's 
>  desktop, and the ideas about it have dogged me for some 6 years.
>  It would be nice to spread the bug around a bit, and this seems like
>  the place to do it.)

Have fun. I don't have any ideas. 

I *am* sympathetic to the "digging out a MUD" idea, where you are 
issuing both game commands and game-building commands at the same prompt. 
I've done that. It's great -- my objection is (as I said) that it only 
helps with a small fraction of the job. 

Now, an incremental compiler / interpreter combination -- that would be a
tremendous win. You start the game, play a segment, and then edit one
function in the source code and tell the compiler to compile *just that
function*. It does so and changes your game environment on the fly. 
The next command you type in the game executes with the new function in 
place. If you change an object definition, similarly, the object is 
rebuilt in front of you.

This is an extension of the MUD-digging idea (where you can edit text 
properties on the fly, and create objects.) However, it avoids the 
problem making the program generate or edit source code. 

The downside is that you really can't trust the incrementally compiled
code -- I mean, you can trust the *code*, but you can't be sure that your
play-testing-and-editing really verifies that the final product does what
you want. Eventually you have to do a fresh build, turn off wizard-mode,
and play "clean". Nonetheless I bet I'd eliminate 75% of my usual
start-play-quit-edit-compile cycle. You have no idea how often I add a
single line of code, compile and test it, swear and curse, and change an
"if" to an "if not", or a ">" to a ">=". 

Implementation: certainly a pain in the butt. To be at all useful, the 
system would have to correctly perform "undo" or "restore" across 
on-the-fly game changes. The Z-machine certainly won't handle this; I 
don't even know if it's possible for many kinds of game changes. (What 
does it mean to change the *initial* value of a property which has 
changed several times since you started playing? Heh heh.)

Ok, I had an idea. There it is.

--Z



-- 

"And Aholibamah bare Jeush, and Jaalam, and Korah: these were the
borogoves..."


From lpsmith@rice.edu Thu Jan  9 10:32:58 MET 1997
Article: 21137 of rec.arts.int-fiction
Path: news.lth.se!solace!nntp.uio.no!news.apfel.de!news.nacamar.de!howland.erols.net!cam-news-hub1.bbnplanet.com!news.bbnplanet.com!cpk-news-hub1.bbnplanet.com!news.sesqui.net!rice!ural.owlnet.rice.edu!lpsmith
From: lpsmith@rice.edu (Lucian Paul Smith)
Newsgroups: rec.arts.int-fiction
Subject: 'What's a,...' musings
Date: 8 Jan 1997 23:37:09 GMT
Organization: Rice University, Houston, Texas
Lines: 134
Message-ID: <5b1b35$qha@listserv.rice.edu>
NNTP-Posting-Host: ural.owlnet.rice.edu
X-Newsreader: TIN [version 1.2 PL2]

[Note:  There are some very very mild spoilers for 'Zork II' and 'Curses' 
in the following post.  It shouldn't affect your enjoyment of either, but 
I thought I'd warn you anyway.]

obSpoilerSpace,...

















Earlier today it occurred to me that the 'what is' verb, (made famous by 
the "What's a grue?" question in the Zorks and Planetfalls) could be a 
very useful literary device.

The game writer is often faced with a dilemma:  He wants to reveal a 
certain piece of information at a place in the story that would be 
dramatic.  The only problem is that the player character would already 
know that information, and it's considered very bad form to make the 
player discover this information from some other source.

A not-very-good-example-but-it-gets-the-point-across example:  In 
Christminster, at one point, you must discover your brother's last name.  
Of course, being his sister, you (the player character) should already 
know that.  The result is a not very believable process of Christabel 
wandering around asking questions until she finally discoveres her 
brother's last name.

The 'What is' verb could change that.  Properly implemented, it could 
become a meta-verb that would communicate information from the 
player-character to the player at the keyboard.

Here's another example:  the famous Zork II baseball puzzle.  Consider 
the following exchange:

--------------------
>read stick

The name "Babe Flathead" has been burned into the stick.

>Who is Babe Flathead?

Babe Flathead was the younger brother of Lord Dimwit Flathead, and was a 
famous baseball player.

>What is baseball?

Baseball is a sport wherein a player must hit a ball, then run around 
four bases in a diamond pattern before they can score.  The player is 
'safe' (cannot be called out) when standing on any of the four bases, and 
play may continue.
---------------------

While maybe not the best one-line description of baseball around, it can 
at least elevate the puzzle from the level of 'drastically unfair' to 
'needs work' ;-)

This could also be a good replacement for reference works.  Consider 
'Curses', with its 'Book of Meldrews'.  What if, instead, the main 
character had done their own research on their ancestors prior to the 
story?  Once someone's name came up, the player could type, "Who was 
So-and-so Meldrew?" and the game would answer in that context.  I can 
think of at least one scene (when the ghost appears) that would have 
worked better as a dramatic moment had the player been able to type 'Who 
is [the ghost]?' instead of 'Consult book about [ghost]'--especially when 
the ghost is flitting about in front of you, supposedly scaring you to death!

Or maybe the player character knows French:

>What does 'je ne sais quoi' mean?

'je ne sais quoi' means "I don't know."

(Or maybe they know Latin, and could translate all those lines in Jigsaw!)




Maybe the most effective use of this verb would be in something like the 
following situation:

----------------------
>l

Your Kitchen

You're standing in your kitchen, equipped with the standard acoutrements, 
including a fridge, stove, and table and chairs.

Your wife, Mary, is here, glowering at you fiercefully.

Your children are sitting at the table, wide-eyed, their dinners turning 
cold in front of them.

A dish lies broken on the floor where Mary just threw it at you.

>Mary, sit down

"I'll be dammed if I'll sit down!  I'm not taking orders from you!  Maybe 
Alice will sit down when you tell her to, but I won't!"

>Who is Alice?

Alice is your secretary, with whom you've been having an affair for the 
last year and a half.
------------------------

In order to accomplish a certain effect, the game writer may have wished 
to keep that certain piece of information from the game player until that 
point.  However, "Mary, tell me about Alice" would be an inappropriate 
question, especially in front of the children!  Likewise, having your 
diary with you, and typing "Consult diary about Alice" would be an 
inappropriate action in that scene.


Basically, I decided that the 'what is' verb was a powerful literary 
device that has not begun to be used to its fullest potential.  I have 
plans to use it in my Big Game That I May Eventually Write, but thought 
I'd share, if anyone else also thought it was a good idea.

Cheers!

-Lucian "Lucian" Smith


From nulldogma@aol.com Thu Jan  9 15:50:33 MET 1997
Article: 21149 of rec.arts.int-fiction
Path: news.lth.se!solace!nntp.uio.no!news.uoregon.edu!tezcat!news.bbnplanet.com!cam-news-hub1.bbnplanet.com!howland.erols.net!portc02.blue.aol.com!audrey01.news.aol.com!not-for-mail
From: nulldogma@aol.com (Nulldogma)
Newsgroups: rec.arts.int-fiction
Subject: Re: Inform vs. TADS look-and-feel
Date: 9 Jan 1997 14:44:13 GMT
Organization: AOL http://www.aol.com
Lines: 13
Message-ID: <19970109144200.JAA08901@ladder01.news.aol.com>
References: <5avsi0$41i@bartlet.df.lth.se>
NNTP-Posting-Host: ladder01.news.aol.com
X-Admin: news@aol.com

> Has anybody noticed? Does anybody care? And if anybody > cares, do you
> think it's a good thing, or do you prefer the "original" 
> adv.t formatting?

I liked it (the Aayela formatting, I mean). It looks especially nice under
MaxTADS, since the Mac version of TR loses the boldfacing. (Which is one
reason why I now bundle the Mac executable of Lost New York with MaxTADS.)

Neil
---------------------------------------------------------
Neil deMause                            neild@echonyc.com
                  http://www.echonyc.com/~wham/neild.html
---------------------------------------------------------


From dmb@ai.mit.edu Fri Jan 10 09:16:19 MET 1997
Article: 21163 of rec.arts.int-fiction
Path: news.lth.se!solace!nntp.uio.no!news.uoregon.edu!tezcat!news.bbnplanet.com!cam-news-hub1.bbnplanet.com!bloom-beacon.mit.edu!ai-lab!lf!dmb
From: dmb@lf.ai.mit.edu (David Baggett)
Newsgroups: rec.arts.int-fiction
Subject: Re: Special- vs General-purpose languages for IF
Date: 9 Jan 1997 19:35:09 GMT
Organization: MIT Artificial Intelligence Lab
Lines: 67
Message-ID: <5b3h9d$85a@life.ai.mit.edu>
References: <32b72f97@beachyhd.demon.co.uk> <59uhn6$c0@mamba.cs.Virginia.EDU> <59vlb3$8fj@life.ai.mit.edu> <5a1rue$g63@mamba.cs.Virginia.EDU>
Reply-To: dmb@ai.mit.edu
NNTP-Posting-Host: lf.ai.mit.edu

In article <5a1rue$g63@mamba.cs.Virginia.EDU>,
Norman Ramsey <nr@mamba.cs.Virginia.EDU> wrote:

>[kitchen sink languages] Just like Common Lisp :-)

Agreed.  I'm not a big fan of Common Lisp, for just this reason.

>I've never really bought the simplicity argument.  Successful languages
>tend to be big, and often messy.

What about C?  I wouldn't say it's complicated, but it's certainly
successsful. Of course the argument against C is that it's "become" C++, I
suppose...

>I think the special-purpose parser-definition language is worthwhile
>for the same reasons yacc is worthwhile---building parsers by hand is
>a pain in the butt when the vocabulary to be recognized changes
>constantly.

But you still have given no good reason why it should be part of the
language, rather than in a library.  What's so weird about this interface?

  compiled-grammar = compile(context-free-grammar-specification)
  parse-input-with(compiled-grammar)

Then two functions make up the interface to the parser.  The grammar can
specify how to dispatch to the mainline source code.  With lisp macros you
could give the grammar definition nice syntactic sugar without throwing in
a dozen new operators or syntactic idioms.

The advantage of this interface is that one can write a new, better parser
that retains the old interface, to parse Russian, for example.

>If I find a flaw in the parser sublanguage, it's that it's not
>comprehensive enough; one sometimes has to write routines that go grubbing
>around in individual words.  One way to correct that flaw might be to
>support more than one parser in a game [...]

This is the very philosophy I object to.  Put in an insufficiently powerful
language feature, then keep throwing on band-aids to fix this or that
problem.  What you get is everything but the kitchen sink.

The right thing to do with the parser is to implement a parser that can
handle an arbitrary CFG.  Then your parser can handle a broad enough class
of languages that extensions to languages like Russian are straightforward.
(You'll still have trouble with many non-European languages, though.)

>The dynamically typed O-O model fits IF better than it fits anything I've
>seen since the Lisp machine window system.

I thoroughly agree with you on this point.  IF is a perfect domain for OO.
Mike Roberts deserves a lot of credit for formalizing this early on in
TADS.

>There might be gains to moving to a general-purpose language, but if
>the easy exploitation of the library is lost, I don't think they would
>be worth it.  

Why would moving to a general-purpose language necessarily change anything
about the library's ease of use?  I've given example after example of how a
language like Scheme would make library code *more* usabale and re-usable.

Dave Baggett
__
dmb@ai.mit.edu
"Mr. Price: Please don't try to make things nice! The wrong notes are *right*."
--- Charles Ives (note to copyist on the autograph score of The Fourth of July)


From d91frera@ida.liu.se Fri Jan 10 15:32:52 MET 1997
Article: 21177 of rec.arts.int-fiction
Path: news.lth.se!solace!news.ifm.liu.se!liuida!d91frera
From: d91frera@ida.liu.se (FReDRiK RaMSBeRG (WILdcARD))
Newsgroups: rec.arts.int-fiction
Subject: Re: Questionable Languages & Compilers
Date: 10 Jan 1997 13:14:05 GMT
Organization: CIS Dept, Linkoping University, Sweden
Lines: 57
Message-ID: <5b5fat$jni@curofix.ida.liu.se>
References: <32b72f97@beachyhd.demon.co.uk> <59cimp$2hf@life.ai.mit.edu> <59uhn6$c0@mamba.cs.Virginia.EDU> <32c42118.5378687@news.one.net> <5a452b$kfh@life.ai.mit.edu> <32c6d623.12304274@news.one.net> <32cd1d9d.1222125@news.peinet.pe.ca> <32D12DF8.50C8A820@alcyone.com> <32d5942b.11742402@news.peinet.pe.ca>
NNTP-Posting-Host: astmatix.ida.liu.se
X-Newsreader: NN version 6.5.0 #7 (NOV)

tbarrie@cycor.ca (Trevor Barrie) writes:

>Erik Max Francis <max@alcyone.com> wrote:

>>> How on earth are either of those supposed to be more intuitive than the
>>> LISP example?
>>
>>I would say it's undeniably true that to people unfamiliar with computing,
>>LISP is far more hard to learn than a more English-like language like BASIC.

Some of the LISP functions have obscure names, granted. That is probably
because it has more built-in functions than say BASIC. The BASIC I've used
the most is Commodore 64 BASIC, which has about 60 keywords. The Common-LISP
I'm using has about 700 functions. The most basic ones are just as simple as
they are in BASIC. But then, when you want to do something complex in 
Common-LISP, you just find the function that does the job, you usually don't
have to write a lot yourself unless you want to.

Also, LISP has a very simple syntax. You use first paranthesis to say that
a new functioncall is beginning, then comes the function, then its arguments,
and a closing paranthesis to say that the functioncall is complete.
*Everyting* is separated by spaces, never commas, semicolons, colons, curly
brackets, square brackets or any other obscure,
hard-to-remember-when-to-use-what characters. In my experience, beginners
get started with real programming, as opposed to syntax guessing, much faster
with LISP than BASIC.

>>I wouldn't call it a matter of intuitiveness; it's just that BASIC (and even
>>Pascal or C) are more easily readable to people than LISP, particularly
>>without any prior experience with programming languages.

No matter what language you are trying to teach, you must start by explaining
something about the paradigm. The functional paradigm requires understanding
of recursion, which is something some people pick up in 5 seconds, while
others take 5 hours. Once you understand that, and the idea of prefix notation,
you are ready to go.

>Okay, that "particularly" seems pretty questionable to me... if anybody's
>going to have problems with LISP, it's those who _have_ prior experience
>with programming languages.

I definitely agree on this. I've been teaching both BASIC and LISP to
beginners as well as people with some experience in programming. It was
amazing how bad the C and Pascal hackers were doing with LISP at the start,
and how well the beginners were doing. A beginner would often come up with
a solution half as big and twice as elegant as the ones who had been
programming in procedural languages before. Then, after a while, when they got
the hang of it, the procedural programmers could benefit from their previous
experience.

/Fredrik

--
Fredrik Ramsberg, Comp Sci student, Linkoeping,                       SWEDEN
d91frera@und.ida.liu.se, http://www-und.ida.liu.se/~d91frera
----------------------------------------------------------------------------
Proud winner of the 1996 Humility World Championships!!!


From nr@viper.cs.Virginia.EDU Sat Jan 11 09:28:31 MET 1997
Article: 21190 of rec.arts.int-fiction
Newsgroups: rec.arts.int-fiction
Path: news.lth.se!solace!nntp.uio.no!news.uoregon.edu!marlin.ucsf.edu!overload.lbl.gov!agate!howland.erols.net!news.bbnplanet.com!cam-news-hub1.bbnplanet.com!news.idt.net!cdc2.cdc.net!news.texas.net!uunet!in1.uu.net!192.35.48.11!hearst.acc.Virginia.EDU!murdoch!not-for-mail
From: nr@viper.cs.Virginia.EDU (Norman Ramsey)
Subject: Re: Special- vs General-purpose languages for IF
X-Nntp-Posting-Host: viper-fo.cs.virginia.edu
Message-ID: <5b68ef$6jo@viper.cs.Virginia.EDU>
Sender: usenet@murdoch.acc.Virginia.EDU
Organization: University of Virginia
References: <32b72f97@beachyhd.demon.co.uk> <59vlb3$8fj@life.ai.mit.edu> <5a1rue$g63@mamba.cs.Virginia.EDU> <5b3h9d$85a@life.ai.mit.edu>
Date: Fri, 10 Jan 1997 20:22:39 GMT
Lines: 67

In article <5b3h9d$85a@life.ai.mit.edu>, David Baggett <dmb@ai.mit.edu> wrote:
>>I've never really bought the simplicity argument.  Successful languages
>>tend to be big, and often messy.
>
>What about C?  I wouldn't say it's complicated, but it's certainly
>successsful. 

Touch'e.  With a slightly saner syntax (e.g., Sethi's postfix
pointer-dereference proposal), C might have been known for simplicity.

>>I think the special-purpose parser-definition language is worthwhile
>>for the same reasons yacc is worthwhile---building parsers by hand is
>>a pain in the butt when the vocabulary to be recognized changes
>>constantly.
>
>But you still have given no good reason why it should be part of the
>language, rather than in a library.  What's so weird about this interface?
>
>  compiled-grammar = compile(context-free-grammar-specification)
>  parse-input-with(compiled-grammar)

Your proposed interface is fine.  I want to retain the specialized
sublanguage for writing `context-free-grammar-specification'.

>With lisp macros you
>could give the grammar definition nice syntactic sugar without throwing in
>a dozen new operators or syntactic idioms.

Some of us prefer context-free syntax to lisp macros.  For me it's a
religious preference :-)

>The advantage of this interface is that one can write a new, better parser
>that retains the old interface, to parse Russian, for example.

I don't follow you?

>>If I find a flaw in the parser sublanguage, it's that it's not
>>comprehensive enough; one sometimes has to write routines that go grubbing
>>around in individual words.  One way to correct that flaw might be to
>>support more than one parser in a game [...]
>
>This is the very philosophy I object to.  Put in an insufficiently powerful
>language feature, then keep throwing on band-aids to fix this or that
>problem.  What you get is everything but the kitchen sink.

I'm not sure I agree.  I view supporting an arbitrary number of
parsers as `removing a gratuitous restriction,' not as `throwing on a
band-aid'.  I'm afraid I see it as a simplification.

>>There might be gains to moving to a general-purpose language, but if
>>the easy exploitation of the library is lost, I don't think they would
>>be worth it.  
>
>Why would moving to a general-purpose language necessarily change anything
>about the library's ease of use?  I've given example after example of how a
>language like Scheme would make library code *more* usabale and re-usable.

Careful engineering is difficult and time-consuming.  The Inform
library is already carefully engineered to mesh well with the Inform
language.  Doing an equally good job in another language means careful
thought and work.  Without this work, a `better' language might lead
to a worse system.

N
-- 
Norman Ramsey
http://www.cs.virginia.edu/~nr


From mol@bartlet.df.lth.se Sat Jan 11 10:59:35 MET 1997
Article: 21191 of rec.arts.int-fiction
Path: news.lth.se!news
From: mol@bartlet.df.lth.se (Magnus Olsson)
Newsgroups: rec.arts.int-fiction
Subject: [INFORM] Takeable actors?
Date: 11 Jan 1997 00:22:24 +0100
Organization: The Computer Society at Lund University and Lund Institute of Technology
Lines: 34
Message-ID: <5b6ivg$thv@bartlet.df.lth.se>
NNTP-Posting-Host: bartlet.df.lth.se
NNTP-Posting-User: mol

Does anybody know of a simple way of making an actor that can be picked
up (like a small animal)? 

The problem is that there is an if statement buried deep inside the
RTakeSub routine that won't let me take an animate object ("I don't
suppose the cat would care for that."), and the only way of changing
that is to replace the entire RTakeSub routine, something I'm
reluctant to do. What happens, for example, if Graham decides to
change the way the Take verb is implemented in the next release? 

The best solution I've been able to think of is a bit of a kluge, but
it works: give the actor a before routine that pretends it's not
animate after all:

    before [ ;
        Take:
   	    if (self has animate) {
		! Pretend the actor is just any old object. The surrounding
		! if statement is there to prevent an infinite loop.
		give self ~animate; 
		! Now the player can take the actor
  	        < Take self >;
		! Stop pretending we're inanimate.
  	        give self animate;
		! And end processing here
		rtrue;
	    }
    ]

This is, of course, a neat hack, but it's not very transparent, is it?


-- 
Magnus Olsson (mol@df.lth.se, zebulon@pobox.com)


From max@alcyone.com Sat Jan 11 11:00:36 MET 1997
Article: 21201 of rec.arts.int-fiction
Path: news.lth.se!solace!nntp.uio.no!news.uoregon.edu!tezcat!cam-news-hub1.bbnplanet.com!news.bbnplanet.com!su-news-hub1.bbnplanet.com!news.sgi.com!news.spies.com!nixon.area.com!usenet
From: Erik Max Francis <max@alcyone.com>
Newsgroups: rec.arts.int-fiction
Subject: Context-sensitive pronouns (was annoying pronouns)
Date: Sat, 11 Jan 1997 00:30:22 -0800
Organization: Alcyone Systems
Lines: 77
Message-ID: <32D74F9E.478A7B2E@alcyone.com>
References: <Pine.SGI.3.95L.970107093713.14934A-100000@tower.york.ac.uk> <32D312C0.4D4D3332@alcyone.com> <5b3990$11q@linux.cpsc.ucalgary.ca>
NNTP-Posting-Host: newton.alcyone.com
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
X-Mailer: Mozilla 2.0 (X11; I; Linux 2.0.27 i686)

Brendan Lane wrote:

> Hmmmm...It appears to me that there are two different interpretations
> of the IF here.  John seems to view the IF session as a conversation
> between player and computer, whereas Erik seems to be seeing it as a
> series of commands carried out by the computer.

No, I'm not seeing it that way; that's what "Take it" means in plain
English.  Even in this context there's no way that a _human_ could be sure
what the command referred to.  After all, "Examine the desk.  Take it" is
the same as "Examine the desk, and then take it."  This means, in plain
English, tell me something about the desk, and then pick the desk up.
Context-sensitive pronouns are a terribly bad idea for a number of reasons.
For instance, 

-----
> EXAMINE THE BOOKSHELF

The bookshelf is old and dusty.  Contained on it are volumes by Vonnegut,
Clarke, Asimov, Niven, and a strange notebook wrapped in rubber bands.

> TAKE IT

What do you mean, the bookshelf, the volume by Vonnegut, the volume by
Clarke, the volume by Asimov, the volume by Niven, or the strange notebook?
-----

There's no way a human could understand what this would mean, let alone a
computer.  Take an even more mundane example:

-----
> LOOK

On the floor is a paper bag.

> EXAMINE THE PAPER BAG

The paper bag contains a beer can (empty).

> TAKE IT

Taken.
-----

Okay, now what did it take, the paper bag or the beer can?

In plain English, the pronoun _it_ means "the last thing I referred to
directly."  If you say, in English, "The desk contained a widget, but it
wasn't made of wood," do I mean the desk was red or the widget?  I mean the
desk, obviously.

In addition, the contraction case I was talking about earlier, you could
combine them in one sentence:

> LOOK

> EXAMINE THE PAPER BAG.  TAKE IT

The paper bag conatins a beer can (empty).

Taken.
-----

If _it_ refers to the last signficant thing mentioned in a description
(i.e., it's context-sensitive) then you've got a real problem; commands can
change meaning without anything happening, simply by substitution of
pronouns.

This is unacceptable -- pronouns should refer to the last thing that the
player referred to, not the last thing that was described.

-- 
                             Erik Max Francis | max@alcyone.com
                              Alcyone Systems | http://www.alcyone.com/max/
                         San Jose, California | 37 20 07 N 121 53 38 W
                                 &tSftDotIotE | R^4: the 4th R is respect
     "You must surely know if man made heaven | Then man made hell"


From erkyrath@netcom.com Sat Jan 11 11:00:49 MET 1997
Article: 21203 of rec.arts.int-fiction
Newsgroups: rec.arts.int-fiction
Path: news.lth.se!solace!nntp.uio.no!news-feed.inet.tele.dk!enews.sgi.com!news.sgi.com!howland.erols.net!netcom.com!erkyrath
From: erkyrath@netcom.com (Andrew Plotkin)
Subject: Re: annoying pronouns
Message-ID: <erkyrathE3u06s.DzF@netcom.com>
Organization: NETCOM On-line Communication Services (408 261-4700 guest)
X-Newsreader: TIN [version 1.2 PL1]
References: <Pine.SGI.3.95L.970107093713.14934A-100000@tower.york.ac.uk> <32D312C0.4D4D3332@alcyone.com> <32D6B4CB.78D2@soundcraft.co.uk.trim.these.last.five.words> <5b77ig$k9i@news.ccit.arizona.edu>
Date: Sat, 11 Jan 1997 06:47:16 GMT
Lines: 32
Sender: erkyrath@netcom19.netcom.com

Jason B Dyer (jdyer@mustique.u.arizona.edu) wrote:
> DaveK (DaveK@soundcraft.co.uk.trim.these.last.five.words) wrote:
> : > But you asked to TAKE THE DESK, not TAKE THE WIDGET.  Even in normal
> : > conversation this ambiguity would be resolved to DESK not WIDGET.

> : ... in normal conversation......
> : A:  The local cinema is showing a great new film.
> : B:  Let's go and watch it then.
> : A:  Why? It's a pretty dull-looking building that just sits there doing
> :    nothing?

> A: This package has the new fishbowl in it, sir.
> B: Great, put it on the shelf.
> A: But I haven't opened the package yet! You're supposed to do that.

So, what does normal conversation have to do with IF anyway?

On a different note, there *are* times when it's good to set the "it" 
manually. 

* When one object transforms into another
* When you trade one object for another ("You hand the coin to the 
vendor; he places the banana on the counter.")
* When an object is explicitly offered to you ("A genie appears and holds 
out a glowing wand.")

--Z

-- 

"And Aholibamah bare Jeush, and Jaalam, and Korah: these were the
borogoves..."


From avrom@Turing.Stanford.EDU Sat Jan 11 11:01:31 MET 1997
Article: 21202 of rec.arts.int-fiction
Path: news.lth.se!solace!nntp.uio.no!news-feed.inet.tele.dk!enews.sgi.com!news.sgi.com!news.bbnplanet.com!su-news-hub1.bbnplanet.com!news.Stanford.EDU!not-for-mail
From: avrom@Turing.Stanford.EDU (Avrom Faderman)
Newsgroups: rec.arts.int-fiction
Subject: Re: annoying pronouns
Date: 10 Jan 1997 23:25:27 -0800
Organization: CSLI, Stanford University
Lines: 67
Message-ID: <5b7f97$ev1@Turing.Stanford.EDU>
References: <Pine.SGI.3.95L.970107093713.14934A-100000@tower.york.ac.uk> <32D312C0.4D4D3332@alcyone.com> <32D6B4CB.78D2@soundcraft.co.uk.trim.these.last.five.words>
NNTP-Posting-Host: turing.stanford.edu

The fact is, binding pronouns properly is really really hard to
automate.  I'd actually guess it's simply beyond the state of the art
in natural language processing in general;  in fact, IIRC, as of 4
years ago at least, there was not even a feeling in the _theoretical_
linguistics community that a good account of how it worked would come
out any time soon.

Some illustrations of just how hard the problem is, although some
others have already been given elsewhere in this thread:

In article <32D6B4CB.78D2@soundcraft.co.uk.trim.these.last.five.words>,
DaveK  <DaveK@soundcraft.co.uk.trim.these.last.five.words> wrote:
[snip]
>... in normal conversation......
>
>A:  The local cinema is showing a great new film.
>
>B:  Let's go and watch it then.

And points out that "it" is bound to "film," not "cinema."

Now, note 1:  This isn't just because "film" came after "cinema."

A:  There's a great new film playing at the local cinema.
B:  Let's go and watch it then.

Someone earlier in this thread suggested that the _appropriateness_ of
applying the verb to the various possible antecedents was what was
important--they used this to explain why

Put chocolate in box.  Close it.
Put chocolate in box.  Eat it.

Had different antecedents for "it"--one eats chocolates but closes
boxes.

But appropriateness can be disturbingly contextual.  We might think
that "it" in both of the previous cases refers to the movie rather
than the building because, generally, one watches movies, not
buildings.  But consider:

Detective A:  I here the drug deal's going down outside the theater
where they're showing that new film.
Detective B:  Let's watch it then.

It's not simply a matter of what sorts of things generally get watched
and what sorts of things don't.  It's a matter that depends seriously
on the context of use;  what the goals of the individuals
participating (in this case;  other individuals' goals might be
relevant in other cases) would make it reasonable to want to watch.

Unless an IF game can figure this sort of thing out about its player,
I think any expectation that it will deal with pronouns in a diverse
set of cases realistically is one that is unmeetable.  I think that a
convention of the sort we have--where a pronoun is bound to the last
agreeing noun used by the player--is a reasonable convention to use.
It will cause an occasional compromise of fluency of the parser, but
at least it's one that's easily predictable and avoidable by the
player.  Complex attempts to bind pronouns, unless they actually
succeed, will occasionally lead to the parser's acting in apparently
random ways.

Just my belief, of course.  Wouldn't want to be one of those people
being maligned over on r.g.i-f.

-Avrom



From jools@arnod.demon.co.uk Sat Jan 11 16:20:45 MET 1997
Article: 21214 of rec.arts.int-fiction
Path: news.lth.se!solace!nntp.uio.no!news-feed.inet.tele.dk!news.algonet.se!hammer.uoregon.edu!news-xfer.netaxs.com!feed1.news.erols.com!howland.erols.net!EU.net!uknet!usenet1.news.uk.psi.net!uknet!dispatch.news.demon.net!demon!arnod.demon.co.uk!jools
From: Julian Arnold <jools@arnod.demon.co.uk>
Newsgroups: rec.arts.int-fiction
Subject: Re: Um, what *is* Prolog?
Date: Fri, 10 Jan 1997 20:50:20 +0000 (GMT)
Organization: Organisation name, location. Telephone/Fax?
Lines: 36
Message-ID: <ant1020200b0c4bn@arnod.demon.co.uk>
References: <ant0220230b0c4bn@arnod.demon.co.uk> <5b0986$s28@bartlet.df.lth.se> 
NNTP-Posting-Host: arnod.demon.co.uk
X-NNTP-Posting-Host: arnod.demon.co.uk
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; CHARSET=ISO-8859-1
X-Newsreader: ANT RISCOS Marcel [ver 1.08]

In article <5b0986$s28@bartlet.df.lth.se>, Magnus Olsson
<URL:mailto:mol@bartlet.df.lth.se> wrote:
> 
> I'd advise anybody interested in learning more about Prolog to
> check out the comp.lang.prolog FAQ at
> 
> http://fas.sfu.ca/0/cs/people/ResearchStaff/jamie/personal/prolog-faq.1
> 
> Among other things, it contains pointers to more information about
> Prolog, as well as to freeware Prolog implementations.

Thanks for this pointer, and to the other people who posted and emailed
code examples.

That Prolog has potential for IF, though maybe not particularly for the
Infocom-style stuff we're used to, is apparent.  It is also apparent
that Prolog is by no means a beginner's (or maybe even intermediary's)
language.  This is an interesting point in the light of recent
discussion.

What are people's opinions on including a section or two on programming
languages (such as Scheme, Prolog, etc.) and schools of thought in the
FAQ?  This could answer questions such as "why do you guys use Inform
when there's C++?", as well as providing an overview of the pros and
cons of those non-C-like languages out there with respect to IF.

Of course, I don't have the knowledge to write such an overview, so I'd
have to bully someone clever into writing it for me.  Remember that if
you post saying "yeah, go for it!" :)

Jools
-- 
"For small erections may be finished by their first architects; grand
ones, true ones, ever leave the copestone to posterity.  God keep me
>from  ever completing anything." -- Herman Melville, "Moby Dick"



From ctt20@hermes.cam.ac.uk Sat Jan 11 16:21:56 MET 1997
Article: 21211 of rec.arts.int-fiction
Path: news.lth.se!solace!mn6.swip.net!news00.sunet.se!sunic!news.sprintlink.net!news-peer.sprintlink.net!news.bbnplanet.com!cpk-news-hub1.bbnplanet.com!mindspring!cssun.mathcs.emory.edu!news-feed-1.peachnet.edu!usenet.eel.ufl.edu!warwick!lyra.csx.cam.ac.uk!news
From: Chuan-Tze Teo <ctt20@hermes.cam.ac.uk>
Newsgroups: rec.arts.int-fiction
Subject: Re: annoying pronouns
Date: Sat, 11 Jan 1997 13:58:11 -0800
Organization: University of Cambridge
Lines: 76
Message-ID: <32D80CF3.44DF@hermes.cam.ac.uk>
References: <Pine.SGI.3.95L.970107093713.14934A-100000@tower.york.ac.uk> <32D312C0.4D4D3332@alcyone.com> <32D6B4CB.78D2@soundcraft.co.uk.trim.these.last.five.words> <5b7f97$ev1@Turing.Stanford.EDU>
NNTP-Posting-Host: khonsu.trin.cam.ac.uk
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
X-Mailer: Mozilla 2.0 (Win16; I)

Avrom Faderman wrote:
 
> Unless an IF game can figure this sort of thing out about its player,
> I think any expectation that it will deal with pronouns in a diverse
> set of cases realistically is one that is unmeetable.  I think that a
> convention of the sort we have--where a pronoun is bound to the last
> agreeing noun used by the player--is a reasonable convention to use.
> It will cause an occasional compromise of fluency of the parser, but
> at least it's one that's easily predictable and avoidable by the
> player.  Complex attempts to bind pronouns, unless they actually
> succeed, will occasionally lead to the parser's acting in apparently
> random ways.

On the other hand, I think it feels much more fluid if after examining a 
table and finding a piece of paper on it, I can 'read it' and not have 
the parser tell me "You can't read a table" or something of that sort. I 
think the only realistic solution to this problem is for each object to 
be considered and hacked on an individual basis... (very silly transcript 
follows)


(start of game)

Boring Room

You are in a boring room. There is a table here. There is a policeman 
here.

[itobj is set to the table as it's the only sensible object]
[and 'him' is set to the policeman]

>X HIM

He is a policeman. He is carrying a gun.

[itobj set to gun]

>X IT

It's a gun.

>ASK HIM ABOUT TABLE

The policeman offers no reply.

>X TABLE

It's a table.

There is a piece of paper on it. 

[itobj is set to the paper, but make sure this is done only once; 
otherwise we get problems if we want to do X TABLE. PUSH IT later on]

>READ IT

"The table is fragile. This note will self-destruct in five seconds."

The piece of paper disappears in a puff of green smoke.

[itobj is set to the table, since the paper is no longer accessible; if 
it could be picked up, then it would be better to leave it]

>KICK IT

You destroy the table. Unfortunately, the policeman spots you! You are 
summarily shot on the spot for vandalism.

*** You have died ***


On a serious note, I think allowing this sort of use of "it" in clear-cut 
cases does add to a game. I always find the desk example which started 
this thread slightly annoying when I run into it in games.

- Chuan


From jools@arnod.demon.co.uk Sun Jan 12 23:00:37 MET 1997
Article: 21254 of rec.arts.int-fiction
Path: news.lth.se!solace!nntp.uio.no!data.ramona.vix.com!news1.digital.com!news.bbnplanet.com!su-news-hub1.bbnplanet.com!newsxfer3.itd.umich.edu!howland.erols.net!EU.net!uknet!usenet1.news.uk.psi.net!uknet!dispatch.news.demon.net!demon!arnod.demon.co.uk!jools
From: Julian Arnold <jools@arnod.demon.co.uk>
Newsgroups: rec.arts.int-fiction
Subject: Re: [INFORM] Takeable actors?
Date: Sun, 12 Jan 1997 11:23:14 +0000 (GMT)
Organization: Organisation name, location. Telephone/Fax?
Lines: 23
Message-ID: <ant1211140b0c4bn@arnod.demon.co.uk>
References: <5b6ivg$thv@bartlet.df.lth.se> 
NNTP-Posting-Host: arnod.demon.co.uk
X-NNTP-Posting-Host: arnod.demon.co.uk
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; CHARSET=ISO-8859-1
X-Newsreader: ANT RISCOS Marcel [ver 1.08]

In article <5b6ivg$thv@bartlet.df.lth.se>, Magnus Olsson
<URL:mailto:mol@bartlet.df.lth.se> wrote:
> 
> Does anybody know of a simple way of making an actor that can be picked
> up (like a small animal)? 
> 
> [...]

I don't know of a non-hacky solution other than replacing the routine as
you suggest.  Hugo contains the following lines in the DoGet routine:
	elseif object is living and object is static
		{Message(&DoGet, 3)     ! player trying to get character
		return false}

Thus a living (animate in Inform-ese) object can be taken, but a living
static object can't.  Maybe the next Inform library should do the same?

Jools
-- 
"For small erections may be finished by their first architects; grand
ones, true ones, ever leave the copestone to posterity.  God keep me
>from  ever completing anything." -- Herman Melville, "Moby Dick"



From erkyrath@netcom.com Sun Jan 12 23:00:47 MET 1997
Article: 21249 of rec.arts.int-fiction
Newsgroups: rec.arts.int-fiction
Path: news.lth.se!solace!nntp.uio.no!news.apfel.de!news-fra1.dfn.de!news-koe1.dfn.de!main.Germany.EU.net!Germany.EU.net!EU.net!howland.erols.net!netcom.com!erkyrath
From: erkyrath@netcom.com (Andrew Plotkin)
Subject: Re: [INFORM] Takeable actors?
Message-ID: <erkyrathE3wqrL.MAs@netcom.com>
Organization: NETCOM On-line Communication Services (408 261-4700 guest)
X-Newsreader: TIN [version 1.2 PL1]
References: <5b6ivg$thv@bartlet.df.lth.se>
Date: Sun, 12 Jan 1997 18:16:33 GMT
Lines: 47
Sender: erkyrath@netcom9.netcom.com

Magnus Olsson (mol@bartlet.df.lth.se) wrote:
> Does anybody know of a simple way of making an actor that can be picked
> up (like a small animal)? 

> The problem is that there is an if statement buried deep inside the
> RTakeSub routine that won't let me take an animate object ("I don't
> suppose the cat would care for that."), and the only way of changing
> that is to replace the entire RTakeSub routine, something I'm
> reluctant to do. What happens, for example, if Graham decides to
> change the way the Take verb is implemented in the next release? 

You recall my plan from a few weeks ago:

Hack the libraries, and put that if statement inside #ifndef:

#ifndef TAKEABLE_ANIMATES ! my hack
  if (noun has animate) return L__M(##Take,3,noun);
#endif ! my hack

Or even (for the real perfectionist)

#ifdef TAKEABLE_ANIMATES ! my hack
Attribute takeanyway;
#endif

#ifdef TAKEABLE_ANIMATES ! my hack
  if (noun has animate && noun hasnt takeanyway) return L__M(##Take,3,noun);
#ifnot
  if (noun has animate) return L__M(##Take,3,noun);
#endif ! my hack

Then, if you decide to upgrade to a new library release, search through 
for "my hack" and copy the hacks into the new files.

Well, it *is* simple, and a lot easier to understand than the mess you 
came up with. And less fragile, if you understand what I mean. When you 
start swapping flags in and out, it is possible (in theory) that 
something will abort and leave them in the wrong state, or you'll 
accidentally test a flag at the wrong time and get an unexpected result. 
My way hacks the libraries, but at least it says exactly what it means.

--Z

-- 

"And Aholibamah bare Jeush, and Jaalam, and Korah: these were the
borogoves..."


From mol@bartlet.df.lth.se Sun Jan 12 23:01:57 MET 1997
Article: 21260 of rec.arts.int-fiction
Path: news.lth.se!news
From: mol@bartlet.df.lth.se (Magnus Olsson)
Newsgroups: rec.arts.int-fiction
Subject: Inform library criticism (was: [INFORM] Takeable actors?)
Date: 12 Jan 1997 23:01:41 +0100
Organization: The Computer Society at Lund University and Lund Institute of Technology
Lines: 118
Message-ID: <5bbn05$bbo@bartlet.df.lth.se>
References: <5b6ivg$thv@bartlet.df.lth.se> <erkyrathE3wqrL.MAs@netcom.com>
NNTP-Posting-Host: bartlet.df.lth.se
NNTP-Posting-User: mol

In article <erkyrathE3wqrL.MAs@netcom.com>,
Andrew Plotkin <erkyrath@netcom.com> wrote:
>> The problem is that there is an if statement buried deep inside the
>> RTakeSub routine that won't let me take an animate object ("I don't
>> suppose the cat would care for that."), and the only way of changing
>> that is to replace the entire RTakeSub routine, something I'm
>> reluctant to do. What happens, for example, if Graham decides to
>> change the way the Take verb is implemented in the next release? 
>
>You recall my plan from a few weeks ago:

No, actually I don't - either that article didn't reach our site, or my
mind is going... :-)

>Hack the libraries, and put that if statement inside #ifndef:
>
>#ifndef TAKEABLE_ANIMATES ! my hack
>  if (noun has animate) return L__M(##Take,3,noun);
>#endif ! my hack

[...]

>Well, it *is* simple, and a lot easier to understand than the mess you 
>came up with. And less fragile, if you understand what I mean. When you 
>start swapping flags in and out, it is possible (in theory) that 
>something will abort and leave them in the wrong state, or you'll 
>accidentally test a flag at the wrong time and get an unexpected result. 
>My way hacks the libraries, but at least it says exactly what it means.

I can agree that my solution is rather ugly, hard to understand, and
possibly fragile. Your way is preferable, except for one thing: it
requires changes to the library source (or, alternatively, that I
replace the entire functionality of RTakeSub, which is almost as bad).

My point is that I should *not* have to hack the library source in
order to override some default behaviour. This is against all
principles of sound software engineering: ideally, the library should
have a clean, simple interface to the programmer, and its insides
should be a black box. In fact, in large systems (larger by an order
(or two, or three) of magnitude than even the largest piece of IF), it
is considered imperative that a programmer working on one subsystem be
kept from tampering with - or even exploiting knowledge of - the
internals of other subsystems. 

Earlier in your post, you wrote:

>Then, if you decide to upgrade to a new library release, search through 
>for "my hack" and copy the hacks into the new files.

But this is _evil_. Not only do you have to do this *every* time there
is a new library release, but what do you do if the internals of the
library change? My solution, ugly as it is, will at least continue to
work even if Graham makes quite extensive changes to the internal
implementation of "Take".


Now, in this particular case, I can agree with you that there may be
no better solution than hacking the library source. But this fact
leads me to state my main criticism of Inform, which, unlike David
Baggett's, doesn't have anything to do with the Inform language
itself, but with the library:


The thing I like the least about the Inform library is that there are
so many cases of hard-coded default behaviour hidden deep inside the
bowels of the library. 


And this is intimately connected with the fact that the Inform library
isn't sufficiently object oriented. The Inform language is completely
OO, but the library isn't.  Instead of asking an object what should
happen, for example, when the player tries to pick it up, the action
routines contain lots of special cases of the type "if this is an
animate object, then the player shouldn't be allowed to pick it up". 

As a consequence, not only is the library source in many places opaque
and difficult to comprehend, it is also quite difficult to override
all the special cases hard-coded into the action routines.

In an OO design, the action routine would simply ask the object "Is
there any reason why the player shouldn't be allowed to pick you up?",
and an animate object could then reply "Yes, I'm a person". The cat in
my example would override this behaviour and instead reply "No, I
don't mind." 

This is basically how the TADS library works (with its verification
methods), and the Inform language has the mechanisms for implementing
it (message passing, inheritance, overriding), it's just that the
library doesn't use them to a sufficient degree. 

Note that the Inform library's "before" and "after" routines *are*
object-oriented and can be overridden quite elegantly - this works
like a charm. The problem is that a lot of processing takes place
_between_ before and after, in the action routines, and *they* are not
OO. Overriding "before" and "after" is enough in many cases, but not
always.

It should be noted that this is by no means a fatal shortcoming of
Inform. After all, it is perfectly possible to make it do whatever one
likes by hacking the library. It just makes it somewhat less
convenient to work with than it could have been. 

Also, I am aware that there is a perfectly good reason for the Inform
library's design not being completely OO, viz. that the library was
designed before the language was fully OO. I can understand that Graham
doesn't want to redesign the Library from scratch!

Finally, Inform remains a remarkably powerful and (relatively) easy to
use tool for writing IF. I don't consider it flawed; I just wanted to
point out that a better library design would have made it even easier
to use. If we compare the Inform library with the standard TADS
library (adv.t), the OO design of adv.t makes it much easier to
override even complicated behaviour, but there are other points where
Inform is more flexible, more powerful, or just simpler than TADS. The
question which language is the best remains open. 

-- 
Magnus Olsson (mol@df.lth.se, zebulon@pobox.com)


From mol@bartlet.df.lth.se Mon Jan 13 09:43:04 MET 1997
Article: 21277 of rec.arts.int-fiction
Path: news.lth.se!news
From: mol@bartlet.df.lth.se (Magnus Olsson)
Newsgroups: rec.arts.int-fiction
Subject: Re: Inform library criticism (was: [INFORM] Takeable actors?)
Date: 13 Jan 1997 09:35:53 +0100
Organization: The Computer Society at Lund University and Lund Institute of Technology
Lines: 110
Message-ID: <5bcs59$c6l@bartlet.df.lth.se>
References: <5b6ivg$thv@bartlet.df.lth.se> <erkyrathE3wqrL.MAs@netcom.com> <5bbn05$bbo@bartlet.df.lth.se> <erkyrathE3xL4H.1ow@netcom.com>
NNTP-Posting-Host: bartlet.df.lth.se
NNTP-Posting-User: mol

In article <erkyrathE3xL4H.1ow@netcom.com>,
Andrew Plotkin <erkyrath@netcom.com> wrote:
>Magnus Olsson (mol@bartlet.df.lth.se) wrote:
>> This is against all
>> principles of sound software engineering: ideally, the library should
>> have a clean, simple interface to the programmer, and its insides
>> should be a black box. In fact, in large systems (larger by an order
>> (or two, or three) of magnitude than even the largest piece of IF), it
>> is considered imperative that a programmer working on one subsystem be
>> kept from tampering with - or even exploiting knowledge of - the
>> internals of other subsystems. 
>
>> Earlier in your post, you wrote:
>
>> >Then, if you decide to upgrade to a new library release, search through 
>> >for "my hack" and copy the hacks into the new files.
>
>> But this is _evil_.
>
>Of course it's evil. Computer languages are evil. Compilers are a 
>terribly painful hack to get around the fact that computers aren't good 
>enough to interpret English on the fly. The Z-machine is an evil hack to 
>get around our unbelievably stupid policy of making computers that are 
>incompatible with each other. Computer games are an attempt to take our 
>minds off how lonely and miserable we all are because telepathy hasn't 
>been invented yet.

:-) Though I'm not sure the invention of telepathy would eliminate the
demand for computer games. 

>Nonetheless, I hack the Inform source libraries.

OK, you've convinved me: you _are_ evil :-).

Seriously speaking, I didn't really mean that you were evil for
hacking the library source, but rather that it's an evil thing that
one should have to do it.

"Evil" in the hackish sense, of course.

>> Not only do you have to do this *every* time there
>> is a new library release, but what do you do if the internals of the
>> library change? 
>
>I'm going to pretend that question wasn't rhetorical and answer it:

FYI, it wasn't.

> I 
>would elect not to upgrade to that library release. (For the 
>already-existing game.) _So Far_ is built under libraries 5/12 and will 
>remain so.

My problem is that I can't afford to do so: I've decided to go with 
Library 6/3, which, unfortunately, contains a number of bugs. Which means
that I must be prepared either to upgrade or to fix all the bugs myself.

>> My solution, ugly as it is, will at least continue to
>> work even if Graham makes quite extensive changes to the internal
>> implementation of "Take".
>
>I think you're drawing a somewhat artificial distinction between
>"interface" and "implementation" for the Inform libraries. *Because* the
>library is quite old and contains a lot of relic code -- read "handed-down
>brain damage", and Graham is the first to admit it -- I must regard the
>implementation of Take (with RTakeSub and so on) as official library API.

I agree with you there, and this really should be part of my criticism.

>It's too old to change, so it will stay the same. It *should* stay the
>same. 
(...)
>There ought to be a completely new set of libraries, which are not held to
>be compatible with any existing Inform code or the Designer's Manual. I'm
>not volunteering for the job. If you are, I'll talk your ear off about 
>it, starting with Those Goddamn Doors.

Hmmm... well... if you could arrange for my days to be extended to
29 hours for the next six months or so I might be talked into it...

But if David Baggett could find the time to write WorldClass from scratch,
perhaps somebody could do the same thing for Inform.

Let me stress the following:

The purpose of this criticism is *not* to slam Graham or Inform, or to
demand a total rewrite of the Inform library. I'm just pointing out
some things that I think could have been done better. Perhaps
prospective authors of new authoring systems (or of new libraries for
Inform, if anybody should attempt such a task) can save valuable time
by avoiding repeating the mistakes of their predecessors.

For I agree with David (I think) in that there is a real danger here:
Inform and TADS are so much better than their predecessors (not
counting Hugo or other newer languages here, but rather AGT and its
likes) that it's all too easy to elevate them to the norm. It's
important that we point out areas where Inform and TADS can be
improved upon.

Finally: despite what has been said before, Inform is not a
professional product (this refers not on Graham's competence, but on
the fact that he isn't working full-time on Inform and doesn't receive
any money for it).  This also means that we can't demand the same kind
of performance or quality that we would from a commercial product. I
don't expect the Inform libraries to be perfect. But that doesn't mean
that I shouldn't point out deviations from perfection.


-- 
Magnus Olsson (mol@df.lth.se, zebulon@pobox.com)


From graham@gnelson.demon.co.uk Mon Jan 13 09:45:16 MET 1997
Article: 21267 of rec.arts.int-fiction
Path: news.lth.se!solace!eru.mt.luth.se!www.nntp.primenet.com!nntp.primenet.com!EU.net!uknet!usenet1.news.uk.psi.net!uknet!dispatch.news.demon.net!demon!gnelson.demon.co.uk!graham
From: Graham Nelson <graham@gnelson.demon.co.uk>
Newsgroups: rec.arts.int-fiction
Subject: Re: S.P.A.M. (not spam)
Date: Sun, 12 Jan 1997 03:35:53 +0000 (GMT)
Organization: none
Lines: 40
Message-ID: <ant1203531cbM+4%@gnelson.demon.co.uk>
References: <5b1ma9$kt7@tom.unix.amherst.edu> <ant1002450b0c4bn@arnod.demon.co.uk> <5b5or6$vbi@bartlet.df.lth.se> 
NNTP-Posting-Host: gnelson.demon.co.uk
X-NNTP-Posting-Host: gnelson.demon.co.uk
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; CHARSET=ISO-8859-1
X-Newsreader: ANT RISCOS Marcel [ver 1.09]

In article <5b5or6$vbi@bartlet.df.lth.se>, Magnus Olsson
<URL:mailto:mol@bartlet.df.lth.se> wrote:
> 
> In article <ant1002450b0c4bn@arnod.demon.co.uk>,
> Julian Arnold  <jools@arnod.demon.co.uk> wrote:
> >So, my question: is it worthwhile uploading things which have only vague
> >historical interest, or is this just a waste of resources?  Another example,
> >I have 3 Acorn interpreters which aren't on gmd ATM (2 ports of ZIP and one
> >ITF).  They are very primitive when compared to Zip 2000 and Infocom, which
> >are on gmd.  Should I upload, just to preserve history?
> 
> In the case of the authoring system, yes, I think it should be
> uploaded, if only for fututre reference. Even if it doesn't attract many
> fans, there might be some lessons to learn from it.
> 
> As for the Acorn ZIP ports: do they add anything new to the state of
> the art?  If they're just straightforward ports of Zip and ITF, I
> don't think there's much point in making them publically available
> when there are superior ports around.

I agree with Magnus.  I'd rather not have the ports uploaded
(even though, if they're the ones by Edouard Poor, I owe them
a historical debt of gratitude) because they don't work
properly, even on some Infocom games.  And as they're ports, only
the interfaces are of interest.  (Edouard's last version of Zip
for RISC OS wasn't bad at all, though: it might just justify a
place for itself as a fixed-pitch System font interpreter, for
those who like such things?)

Whereas adventure design systems, however minor, are at least
fresh attempts; somebody one day will want to write a history
of them.

Besides which, in the year 2001 when everyone's using
BaggettWorldScheme, it would be nice to think Inform was still
around, albeit in some directory called "misguided".

-- 
Graham Nelson | graham@gnelson.demon.co.uk | Oxford, United Kingdom



From nkg@vcn.bc.ca Mon Jan 13 20:26:55 MET 1997
Article: 21286 of rec.arts.int-fiction
Path: news.lth.se!solace!nntp.uio.no!news.maxwell.syr.edu!hunter.premier.net!feed1.news.erols.com!arclight.uoregon.edu!news.bc.net!unixg.ubc.ca!freenet.vancouver.bc.ca!not-for-mail
From: nkg@vcn.bc.ca (Neil K. Guy)
Newsgroups: rec.arts.int-fiction
Subject: Re: Inform library criticism (was: [INFORM] Takeable actors?)
Date: 13 Jan 1997 18:16:35 GMT
Organization: Vancouver CommunityNet
Lines: 16
Message-ID: <5bdu63$p75@milo.vcn.bc.ca>
References: <5b6ivg$thv@bartlet.df.lth.se> <erkyrathE3wqrL.MAs@netcom.com> <5bbn05$bbo@bartlet.df.lth.se> <erkyrathE3xL4H.1ow@netcom.com> <erkyrathE3xLnA.31z@netcom.com>
NNTP-Posting-Host: opus.vcn.bc.ca
X-Newsreader: TIN [UNIX 1.3 BETA-950824-16colors PL0]

Andrew Plotkin (erkyrath@netcom.com) wrote:
: Andrew Plotkin (erkyrath@netcom.com) wrote:
: > Also, evil lurks everywhere, so keep your Uzi loaded.
: 
: In retrospect, a better conclusion is "...so give in to the Dark Side, 
: buster."
: 
: ("Oh yeah? Well, *your* thoughts betray *you*, dickweed!")

 Whoah, Andrew. What are you *on* today? (and where can I get some of it?)

 - Neil K.

--
        the Vancouver CommunityNet   *   http://www.vcn.bc.ca/
              (formerly the Vancouver Regional FreeNet)


From dmb@ai.mit.edu Tue Jan 14 09:43:29 MET 1997
Article: 21305 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news01.sunet.se!sunic!02-newsfeed.univie.ac.at!news.ecrc.de!news.nacamar.de!news.apfel.de!nntp.uio.no!news.uoregon.edu!tezcat!feed1.news.erols.com!cpk-news-hub1.bbnplanet.com!news.bbnplanet.com!cam-news-hub1.bbnplanet.com!bloom-beacon.mit.edu!ai-lab!lf!dmb
From: dmb@lf.ai.mit.edu (David Baggett)
Newsgroups: rec.arts.int-fiction
Subject: Re: Questionable Languages & Compilers
Date: 13 Jan 1997 19:52:17 GMT
Organization: MIT Artificial Intelligence Lab
Lines: 57
Message-ID: <5be3pi$70c@life.ai.mit.edu>
References: <32b72f97@beachyhd.demon.co.uk> <32D12DF8.50C8A820@alcyone.com> <32d5942b.11742402@news.peinet.pe.ca> <32D93862.79B2A3DF@alcyone.com>
Reply-To: dmb@ai.mit.edu
NNTP-Posting-Host: lf.ai.mit.edu

In article <32D93862.79B2A3DF@alcyone.com>,
Erik Max Francis  <max@alcyone.com> wrote:

>LISP is known for driving people crazy.  The simplicity of its design makes
>it appealing for various artificial intelligence applications, but it does
>not make it appealing to a human being.

There's no denying that lisp code, like mathematical notation, can be
very dense.  However, code that is dense like that usually does
correspondingly more.  Concision can come from abstraction, too.  Lisp
encourages this more than many other languages.  Indeed, abstraction
is what makes it possible to solve a very hard problem with a small
amount of code.  That doesn't mean that lisp is at fault; it's simply
that the problem being solved is more difficult than the code size
might indicate.  There are capable compilers written in under 3000
lines of lisp.  I simply cannot fathom a useful compiler written in
that many lines of C code.

Here's a somewhat silly example.  Recently a friend posed the
following question.  Given nine "9" digits and the operators +, *, -,
/, and parens, what is the smallest positive integer you cannot
represent?  (Note that you're not allowed to put two 9's together to
form 99; you must use operators to combine 9's.)

Resolving this question with a good lisp environment is incredibly
easy; it took me under an hour.  But try doing it in C.  I'm certain
that it will take you much longer and many more lines of code.  You
will have to represent expresssions as trees, for which you manage the
pointers.  Not impossible, but certainly more difficult than using
lisp's built-in list structure to represent trees.

I actually ended up putting expression/value pairs in an AVL tree.
This worked nicely, because the AVL tree, being a good lisp
implementation, allowed me to put any type I wanted in the nodes,
provided I gave an appropriate comparator function.  Another example
of lisp's penchant for re-usable code.

Finally, I don't think lisp deserves its reputation as a language
that's mainly good for AI.  Usually when people think that lisp is
good for AI they are under the misconception that lisp programs
typically manipulate their own code.  These days AI is a lot more
complicated than blocks world, and the only time you'll generally use
that facility in lisp is through the macro system.

I think lisp lives on in AI labs mainly because AI people want to be
abel to experiement easily and broadly within the context of extremely
difficult problems.  Such problems would generaly demand many more
lines of code in most other languages than in a language like Common
Lisp.  Lisp's special treatment of symbols also makes it amenable to
symbolic computation.  (This is one reason why the nine 9's problem is
so easy to solve with lisp, but not with C.)

Dave Baggett
__
dmb@ai.mit.edu
"Mr. Price: Please don't try to make things nice! The wrong notes are *right*."
--- Charles Ives (note to copyist on the autograph score of The Fourth of July)


From svanegmo@undergrad.math.uwaterloo.ca Tue Jan 14 10:17:14 MET 1997
Article: 21296 of rec.arts.int-fiction
Newsgroups: rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news99.sunet.se!newsfeed.luth.se!news.luth.se!erix.ericsson.se!eua.ericsson.se!news.algonet.se!hammer.uoregon.edu!arclight.uoregon.edu!news.bc.net!torn!kwon!watserv3.uwaterloo.ca!undergrad.math.uwaterloo.ca!svanegmo
From: svanegmo@undergrad.math.uwaterloo.ca (Stephen van Egmond)
Subject: Re: How long did it take to write 'Curses'?
Sender: news@undergrad.math.uwaterloo.ca (news spool owner)
Message-ID: <E3yLsD.66D@undergrad.math.uwaterloo.ca>
Date: Mon, 13 Jan 1997 18:24:13 GMT
References: <01bc0032$0175e680$249c45cf@weissinger> <32d98698.79193032@news.gte.net>
Nntp-Posting-Host: laplace.uwaterloo.ca
Organization: University of Waterloo
Lines: 13

In article <32d98698.79193032@news.gte.net>,
Jason Melancon <hraron@gte.net> wrote:
>There are other good articles in XYZZYnews, come to think of it, that
>talk about the design process, and they may mention length of time
>spent.  I think one is even by Graham Nelson.

I am working on developing a subject-oriented "collective knowledge base"
for interactive fiction authorship.  It is on the Web, and much of it
content will come rec.arts.int-fiction archives.

http://www.truespectra.com/~svanegmo

/Steve


From dmb@ai.mit.edu Tue Jan 14 13:54:59 MET 1997
Article: 21305 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news01.sunet.se!sunic!02-newsfeed.univie.ac.at!news.ecrc.de!news.nacamar.de!news.apfel.de!nntp.uio.no!news.uoregon.edu!tezcat!feed1.news.erols.com!cpk-news-hub1.bbnplanet.com!news.bbnplanet.com!cam-news-hub1.bbnplanet.com!bloom-beacon.mit.edu!ai-lab!lf!dmb
From: dmb@lf.ai.mit.edu (David Baggett)
Newsgroups: rec.arts.int-fiction
Subject: Re: Questionable Languages & Compilers
Date: 13 Jan 1997 19:52:17 GMT
Organization: MIT Artificial Intelligence Lab
Lines: 57
Message-ID: <5be3pi$70c@life.ai.mit.edu>
References: <32b72f97@beachyhd.demon.co.uk> <32D12DF8.50C8A820@alcyone.com> <32d5942b.11742402@news.peinet.pe.ca> <32D93862.79B2A3DF@alcyone.com>
Reply-To: dmb@ai.mit.edu
NNTP-Posting-Host: lf.ai.mit.edu

In article <32D93862.79B2A3DF@alcyone.com>,
Erik Max Francis  <max@alcyone.com> wrote:

>LISP is known for driving people crazy.  The simplicity of its design makes
>it appealing for various artificial intelligence applications, but it does
>not make it appealing to a human being.

There's no denying that lisp code, like mathematical notation, can be
very dense.  However, code that is dense like that usually does
correspondingly more.  Concision can come from abstraction, too.  Lisp
encourages this more than many other languages.  Indeed, abstraction
is what makes it possible to solve a very hard problem with a small
amount of code.  That doesn't mean that lisp is at fault; it's simply
that the problem being solved is more difficult than the code size
might indicate.  There are capable compilers written in under 3000
lines of lisp.  I simply cannot fathom a useful compiler written in
that many lines of C code.

Here's a somewhat silly example.  Recently a friend posed the
following question.  Given nine "9" digits and the operators +, *, -,
/, and parens, what is the smallest positive integer you cannot
represent?  (Note that you're not allowed to put two 9's together to
form 99; you must use operators to combine 9's.)

Resolving this question with a good lisp environment is incredibly
easy; it took me under an hour.  But try doing it in C.  I'm certain
that it will take you much longer and many more lines of code.  You
will have to represent expresssions as trees, for which you manage the
pointers.  Not impossible, but certainly more difficult than using
lisp's built-in list structure to represent trees.

I actually ended up putting expression/value pairs in an AVL tree.
This worked nicely, because the AVL tree, being a good lisp
implementation, allowed me to put any type I wanted in the nodes,
provided I gave an appropriate comparator function.  Another example
of lisp's penchant for re-usable code.

Finally, I don't think lisp deserves its reputation as a language
that's mainly good for AI.  Usually when people think that lisp is
good for AI they are under the misconception that lisp programs
typically manipulate their own code.  These days AI is a lot more
complicated than blocks world, and the only time you'll generally use
that facility in lisp is through the macro system.

I think lisp lives on in AI labs mainly because AI people want to be
abel to experiement easily and broadly within the context of extremely
difficult problems.  Such problems would generaly demand many more
lines of code in most other languages than in a language like Common
Lisp.  Lisp's special treatment of symbols also makes it amenable to
symbolic computation.  (This is one reason why the nine 9's problem is
so easy to solve with lisp, but not with C.)

Dave Baggett
__
dmb@ai.mit.edu
"Mr. Price: Please don't try to make things nice! The wrong notes are *right*."
--- Charles Ives (note to copyist on the autograph score of The Fourth of July)


From mol@bartlet.df.lth.se Tue Jan 14 14:52:21 MET 1997
Article: 21325 of rec.arts.int-fiction
Path: news.lth.se!news
From: mol@bartlet.df.lth.se (Magnus Olsson)
Newsgroups: rec.arts.int-fiction
Subject: Re: Questionable Languages & Compilers
Date: 14 Jan 1997 14:52:11 +0100
Organization: The Computer Society at Lund University and Lund Institute of Technology
Lines: 29
Message-ID: <5bg32b$iaj@bartlet.df.lth.se>
References: <32b72f97@beachyhd.demon.co.uk> <32D93862.79B2A3DF@alcyone.com> <5bbmti$afl@bartlet.df.lth.se> <5bc4ve$308@nntp5.u.washington.edu>
NNTP-Posting-Host: bartlet.df.lth.se
NNTP-Posting-User: mol

In article <5bc4ve$308@nntp5.u.washington.edu>,
Clyde Sloniker <puma@u.washington.edu> wrote:
>Magnus Olsson <mol@bartlet.df.lth.se> wrote:
>
>>Erik Max Francis  <max@alcyone.com> wrote:
>
>>>LISP is known for driving people crazy.  The simplicity of its design makes
>>>it appealing for various artificial intelligence applications, but it does
>>>not make it appealing to a human being.
>
>>Hmm. If what you're saying is true, then I'm not a human being, and neither
>>are people like David Baggett, Douglas Hofstadter or Richard Stallman.

(...)

>Hey, Magnus, any chance I can borrow some of your processing power to GM
>an RPG?  

Your request has been queued until load average of node magnus drops below
8.0.

>I've been using Eliza, but it's difficult to get her to stop
>talking about how we feel about killing monsters...  (:3

Does it trouble you that you have to kill monsters? :-)


-- 
Magnus Olsson (mol@df.lth.se, zebulon@pobox.com)


From graham@gnelson.demon.co.uk Wed Jan 15 11:21:15 MET 1997
Article: 21338 of rec.arts.int-fiction
Path: news.lth.se!solace!news.stealth.net!news.ibm.net.il!arclight.uoregon.edu!feed1.news.erols.com!news.bbnplanet.com!cpk-news-hub1.bbnplanet.com!EU.net!uknet!usenet1.news.uk.psi.net!uknet!dispatch.news.demon.net!demon!gnelson.demon.co.uk!graham
From: Graham Nelson <graham@gnelson.demon.co.uk>
Newsgroups: rec.arts.int-fiction
Subject: Re: ?[Inform, Z-mach.] - Cyrillic support?
Date: Mon, 13 Jan 1997 23:03:31 +0000 (GMT)
Organization: none
Lines: 28
Message-ID: <ant1323310b0M+4%@gnelson.demon.co.uk>
References: <32D2589E.487A@cc.krascience.rssi.ru> <5b8in3$593@oak73.doc.ic.ac.uk> 
NNTP-Posting-Host: gnelson.demon.co.uk
X-NNTP-Posting-Host: gnelson.demon.co.uk
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; CHARSET=ISO-8859-1
X-Newsreader: ANT RISCOS Marcel [ver 1.09]

In article <5b8in3$593@oak73.doc.ic.ac.uk>, Martin Frost
<URL:mailto:mdf@doc.ic.ac.uk> wrote:
> A Z-machine alphabet is 3 blocks of 26 characters, with the first two
> characters in the third block ignored. Assuming that each of the
> 32 letters can appear as upper and lower case, you could put the first
> 26 lowercase in alphabet 0, the first 26 uppercase in alphabet 1, the
> remaining 16 in alphabet 2, and fill up alphabet 2 with your choices
> of numerals and punctuation. AFAIK, Inform encodes characters not in
> any alphabet as the equivalent of a @@-escape, so the extra punctuation
> will be invisibly translated.
> 
> I don't know if Inform supports the definition of a new alphabet, so
> you may need to hack the compiler source (although the generated code
> would still fit the Specification).

Yes, it does, at least partially.  (See the Inform Translator's Manual.)

The issue is not so much the contents of the alphabets, though
(that only affects the dictionary resolution and general efficiency
of text compression) but the contents of the entire character set.
The current Z-machine standard is modelled on ISO Latin 1 (loosely)
and does not include Cyrillic.  I will try and find time to think
this one over: it's a very reasonable request, and I'd be pleased
to see a Russian translation.

-- 
Graham Nelson | graham@gnelson.demon.co.uk | Oxford, United Kingdom



From rglasser@penning.lanl.gov Wed Jan 15 22:37:45 MET 1997
Article: 21350 of rec.arts.int-fiction
Path: news.lth.se!solace!mn6.swip.net!plug.news.pipex.net!pipex!oleane!pasteur.fr!jussieu.fr!math.ohio-state.edu!howland.erols.net!worldnet.att.net!ix.netcom.com!news
From: Russell Glasser <rglasser@penning.lanl.gov>
Newsgroups: rec.arts.int-fiction
Subject: Re: Inform library criticism (was: [INFORM] Takeable actors?)
Date: Wed, 15 Jan 1997 12:16:38 -0800
Organization: UCSD
Lines: 38
Message-ID: <32DD3B26.7922@penning.lanl.gov>
References: <5b6ivg$thv@bartlet.df.lth.se> <erkyrathE3wqrL.MAs@netcom.com> <5bbn05$bbo@bartlet.df.lth.se> <erkyrathE3xL4H.1ow@netcom.com>
NNTP-Posting-Host: sdx-ca23-04.ix.netcom.com
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
X-NETCOM-Date: Wed Jan 15  2:18:49 PM CST 1997
X-Mailer: Mozilla 2.0 (Win95; I)

Andrew Plotkin wrote:
> 
> Magnus Olsson (mol@bartlet.df.lth.se) wrote:(regarding hacking the Inform libraries)
> 
> > But this is _evil_.
> 	<facetious>
> Of course it's evil. Computer languages are evil. Compilers are a
> terribly painful hack to get around the fact that computers aren't good
> enough to interpret English on the fly. The Z-machine is an evil hack to
> get around our unbelievably stupid policy of making computers that are
> incompatible with each other. Computer games are an attempt to take our
> minds off how lonely and miserable we all are because telepathy hasn't
> been invented yet.
> 	</facetious>

	Yeesh, get serious Andrew.  Magnus was talking about solid 
programming style, and information hiding is the way good programming is 
done.  It's called modularity (but I'm sure I don't need to tell you that). 
If you write code that way, not just in Inform but in general, you wind up 
having to go back and tinker with every individual snippet of code every 
time you want to make a simple change in the underlying system.
	Sure, it's all very well to say "_So Far_ is built under libraries 
5/12 and will remain so. This means that, sadly, it will never be translated 
into another language using the 6/3 language system."  Speaking ad absurdam, 
does that mean software developers have to dump all their old programs every 
time their company upgrades to a new version of C++?  Does it mean that 
changing a game to support graphics accelerator boards must involve 
rewriting the whole program from the ground up?  I think not.
	(Yeah, I know, any program which needs a graphics accelerator board 
is also inherently evil and utterly unworthy of consideration... right?)
-- 
"The reasonable man adapts himself to the world; the unreasonable one
persists in trying to adapt the world to himself.  Therefore all
progress depends on the unreasonable man."
                                -- George Bernard Shaw

Russell can be heckled at
        http://sdcc8.ucsd.edu/~rglasser


From dylanw@demon.net Thu Jan 16 09:22:44 MET 1997
Article: 21357 of rec.arts.int-fiction
Path: news.lth.se!solace!news.stealth.net!news.mxol.com!news.tbcnet.com!wetware!news.sgi.com!su-news-hub1.bbnplanet.com!news.bbnplanet.com!cpk-news-hub1.bbnplanet.com!worldnet.att.net!ix.netcom.com!netcom.net.uk!dispatch.news.demon.net!demon!news.noc.demon.net!news
From: dylanw@demon.net (Dylan O'Donnell)
Newsgroups: rec.arts.int-fiction
Subject: Re: Kunkel (was Re: [Inform] Mac GUI for V6.x?)
Date: Wed, 15 Jan 1997 14:52:28 GMT
Organization: Spod East
Lines: 111
Message-ID: <32dced59.4448155@news.noc.demon.net>
References: <32DA7DD5.7ACC@greenhouse.llnl.gov> <5be5a1$i87@lex.zippo.com> <32DAC76A.B4B@greenhouse.llnl.gov>
NNTP-Posting-Host: sales7.sales.demon.net
X-Newsreader: Forte Agent .99e/16.227

Kathleen Fischer <kfischer@greenhouse.llnl.gov> wrote:

>Mark J Musante wrote:
>> 
>> Kathleen Fischer (kfischer@greenhouse.llnl.gov) wrote:
>> > Have things changed?
>> 
>> Well, nobody has mentioned the Dreaded Kunkel in a while...
>> 
>>  - Mark
>
>Wow... you have a good memory   :)
>
>I don't suppose you saved any of those posts... "Murphy" showed up and
>saw to it that my saved copies were obliterated from the system. I would
>especially like to get my hands on the one about the Kunkel in the
>kitchen with the Compiler Manual... 

DejaNews comes up with 32 r*if articles containing the word "kunkel"
between mid-June and early July last year, the heyday of kunkelism.
Here's the one you're referring to:

-------------------- begin quoted text --------------------------

Subject:      Re: IF Compiler Manuals
From:         Kathleen Fischer <kfischer@greenhouse.llnl.gov>
Date:         1996/07/02
Newsgroups:   rec.arts.int-Fiction

rgc2@york.ac.uk (Richard G Clegg) wrote:
>Allison Weaver (aweaver@nova.umuc.edu) wrote:
>: 2)  What would make up your ideal IF compiler manual?
>
>  Laminated plastic that didn't show teeth-marks.

Kitchen

Its your typical tract house kitchen with a stove, refrigerator, and a 
stunning set of concrete park benches.

Resting on the table is large book.

> x book
It's a mint condition IF compiler manual.

> eat book
You knaw on one corner... yuk. Laminated plastic.

> x book
It's a mint condition IF compiler manual.

> place book on stove
Done.

> turn on stove
You rub your hands together with glee as you place the book on the range
and
turn it on. Within a few moments the element is glowing cherry red.

> x book
It's a mint condition IF compiler manual resting on a red hot range.

> z

> x book
It's a mint condition IF compiler manual resting on a red hot range.

> touch book
The book cover is as smooth as glass and cool to the touch.

> hit head with book
(picking up the IF compiler manual from the range)
"Donk" "Donk" "Donk"... You smash the book into your head as hard as you
can
but its synthetic padded nalgahide cover prevents you from hurting
yourself.

A kunkel walks in with a look of barely-concealed contempt on his face.
"What's
that?" he asks, pointing the book in your hands.  "A book? How old
fashioned.
How out of date. Hasn't someone made a video out that yet?"

> give book to kunkel
The kunkel takes the book and flips through the first few pages.

"What's this? You CAN have more than two words in a command?" he stutters
nerviously. His face distorts as his mind refuses to accept the
information. A
shudder goes though his body then he bursts into flames. From somewhere far
away you hear the sound of a hollow voice laughing maniacly as the kunkels
body
is quickly reduced to a pile of ash.

> smell ash
Mmmmm... it reminds you of scrapple.

> x book
It's a mint condition IF compiler manual.

-- 
// Kathleen Fischer
// kfischer@greenhouse.llnl.gov
// *** "Don't stop to stomp ants while the elephants are stampeding" ***

------------------------------ end quoted text ---------------------------
-- 
Dylan O'Donnell (dylanw@demon.net)
Demon Internet Ltd, slave deck.
http://www.vy.com/psmith.html
It is pitch black. You are likely to be eaten by a grue.


From nulldogma@aol.com Thu Jan 16 09:23:19 MET 1997
Article: 21353 of rec.arts.int-fiction
Path: news.lth.se!solace!news.stealth.net!news.ibm.net.il!arclight.uoregon.edu!news.bbnplanet.com!su-news-hub1.bbnplanet.com!newsxfer3.itd.umich.edu!portc01.blue.aol.com!audrey01.news.aol.com!not-for-mail
From: nulldogma@aol.com (Nulldogma)
Newsgroups: rec.arts.int-fiction
Subject: Re: TADS 2.2.1 ADV.T
Date: 15 Jan 1997 17:49:18 GMT
Organization: AOL http://www.aol.com
Lines: 75
Message-ID: <19970115174701.MAA11889@ladder01.news.aol.com>
References: <5bhc6n$abq$1@news3.microserve.net>
NNTP-Posting-Host: ladder01.news.aol.com
X-Admin: news@aol.com

Yeah, I pointed this out to Mike back when he first uploaded 2.2.1, and he
promised me he'd fix it. Apparently he still hasn't.

Anyway, here's the missing code in question. If Volker or anyone reading
this would like to upload it to GMD (maybe as NUMBERED.T?), the world
would be much appreciative.

Neil

--------------------


/*
@numbered_cleanup: function
This function is used as a fuse to delete objects created by the
\tt numberedObject\ class in reponse to calls to its \tt newNumbered\
method.  Whenever that method creates a new object, it sets up a fuse
call to this function to delete the object at the end of the turn in
which it created the object.
*/
numbered_cleanup: function(obj)
{
    delete obj;
}

/*
@numberedObject: object
This class can be added to a class list for an object to allow it to
be used as a generic numbered object.  You can create a single object
with this class, and then the player can refer to that object with
any number.  For example, you can create a single "button" object
that the player can refer to with ``button 100'' or ``button 1000''
or any other number.  If you want to limit the range of acceptable
numbers, override the \tt num_is_valid\ method so that it displays
an appropriate error message and returns \tt nil\ for invalid numbers.
If you want to use a separate object to handle references to the object
with a plural ("look at buttons"), override \tt newNumberedPlural\ to
return the object to handle these references; by default, the original
object is used to handle plurals.
*/

class numberedObject: object
    adjective = '#'
    anyvalue(n) = { return n; }
    clean_up = { delete self; }
    newNumberedPlural(a, v) = { return self; }
    newNumbered(a, v, n) =
    {
 local obj;

 if (n = nil) return self.newNumberedPlural(a, v);
 if (not self.num_is_valid(n)) return nil;
 obj := new self;
 obj.value := n;
        setfuse(numbered_cleanup, 0, obj);
 return obj;
    }
    num_is_valid(n) = { return true; }
    dobjGen(a, v, i, p) =
    {
 if (self.value = nil)
 {
     "You'll have to be more specific about which one you mean.";
     exit;
 }
    }
    iobjGen(a, v, d, p) = { self.dobjGen(a, v, d, p); }
;



---------------------------------------------------------
Neil deMause                            neild@echonyc.com
                  http://www.echonyc.com/~wham/neild.html
---------------------------------------------------------


From kfischer@greenhouse.llnl.gov Thu Jan 16 09:41:47 MET 1997
Article: 21359 of rec.arts.int-fiction
Path: news.lth.se!solace!mn6.swip.net!plug.news.pipex.net!pipex!newsxfer3.itd.umich.edu!news.bbnplanet.com!su-news-hub1.bbnplanet.com!arclight.uoregon.edu!enews.sgi.com!lll-winken.llnl.gov!usenet
From: Kathleen Fischer <kfischer@greenhouse.llnl.gov>
Newsgroups: rec.arts.int-fiction
Subject: Re: Kathleen (Was Re: [Inform] Mac GUI for V6.x?)
Date: Wed, 15 Jan 1997 17:12:48 -0800
Organization: Lawrence Livermore National Laboratory
Lines: 68
Message-ID: <32DD8090.41C6@greenhouse.llnl.gov>
References: <32DA7DD5.7ACC@greenhouse.llnl.gov> <5be5a1$i87@lex.zippo.com> <Pine.GSO.3.95.970115095915.17751A-100000@nova>
NNTP-Posting-Host: greenhouse.llnl.gov
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
X-Mailer: Mozilla 3.0 (X11; I; IRIX 5.3 IP22)

Allison Weaver wrote:
> 
> On 13 Jan 1997, Mark J Musante wrote:
> 
> > Kathleen Fischer (kfischer@greenhouse.llnl.gov) wrote:
> > > Have things changed?
> >
> > Well, nobody has mentioned the Dreaded Kunkel in a while...
> 
> Or tasteful park benchs either.
> 
> Allison

Computer Room
You are sitting in front of your trusty computer.

There is a stunning concrete park bench, a puddle, and a pile of ash
here.

> send mail
You click the send button and the following message disappears into the
ether (net that is)

"What is this group coming to?   I leave you unsupervised for
a few months and look what happens - Y'all go to hades in a hot air
balloon (though I'm sure you were bell ringing and candle waving
the whole way there!)

Kathleen"

> read mail
You browse through your mail.

A kunkel walks by and points at the text over his head.
"See... see up there" he croaks a bit hoarsly while ridding himself of
a few months of cobwebs, "Bell ringing and candle waving my <bleep>.
Those r.a.i.f'ers were just typing. *TYPING*. I personally don't see
how they can communicate that way... those endless streams of ASCII
characters are so mundain, so out of touch with todays multi-media
society. Where are the sounds, the pictures of them squinting all
bleary eyed into the camera as they pass along coding tidbits in their
bath robes and bunny slippers?"

The kunkel spies the stunning concrete park bench across the room and
makes his way toward it, carefully avoiding the small pile of ash to his
left and the puddle on his right. He pauses in front of the bench,
staring down at the mint condition IF compiler manual resting there.

"Quite a layer of dust on that thing, Kathleen." he snears as he picks
it up, sending a large cloud of dust in the air. "And look, it's out of
date. This is a Version 5 manual, and Inform is now at Version 6."

The sky opens up and hollow voice laughs manially.  The kunkel jumps off
the bench just in time to avoid being clobbered by a NEW mint condition
IF Compiler manual with the number "VI" emblazzoned on its cover.

"You know if you had a decent graphical game generator you wouldn't
need to read this thing..." quips the kunkel as he quickly retreats to
the safety of the next newsgroup.

Sigh,
Kathleen

-- 
*******************************************************************
*  Kathleen M. Fischer
*  kfischer@greenhouse.llnl.gov
** "Don't stop to stomp ants while the elephants are stampeding" **


From jota@laraby.tiac.net Thu Jan 16 17:02:02 CET 1997
Article: 21368 of rec.arts.int-fiction
Path: news.lth.se!solace!demos!Gamma.RU!srcc!insync!news-xfer.netaxs.com!news.texas.net!news.kei.com!news.thenet.net!uunet!in3.uu.net!199.0.65.182!news-in.tiac.net!posterchild!laraby.tiac.net!jota
From: jota@laraby.tiac.net (Admiral Jota)
Newsgroups: rec.arts.int-fiction
Subject: Re: A temporary lull, or what?
Date: 15 Jan 97 21:00:18 GMT
Organization: The Internet Access Company, Inc.
Lines: 32
Message-ID: <jota.853362018@laraby.tiac.net>
References: <5bj28s$7ns@bartlet.df.lth.se>
NNTP-Posting-Host: laraby.tiac.net
X-Newsreader: NN version 6.5.0 #1 (NOV)

mol@bartlet.df.lth.se (Magnus Olsson) writes:

>Until a few days ago, the traffic here on r.a.i-f was quite high, with
>lots of animated discussion. 

>And now, suddenly, it's been reduced to a trickle. The newsgroup is a 
>mere shadow of its former self. 

>What's going on? Is it a combination of students' terms not having
>started yet and everybody else having gone back to work? Or is there
>some big national holiday in the US? Or is there something wrong with
>my newsfeed?

Actually, "Interactive Fiction Appreciacion Day" is coming up on Friday, 
January 17. Millions of Americans are making the pilgrammge to Cambridge, 
MA for the long weekend. MIT is sponsoring a special *live* recreation of 
Zork I on campus, and their AI lab is demonstrating their latest 
development, which they call 'Perry Simm'. There'll be rides (like the 
dreaded "Andromeda and the Seamonster" ride, and the "Plundered Hearts 
Pirate Ship"), shows (including a presentation of "Rito and Imita"), and 
games (Hukka Bukka Beanstalk anyone? How about some Double Fanucci?)!

>Or, horror above all horrors: have people finally discovered that there
>are things in life more important than adventure games? :-)

Life? What's that?

--
                         /<-= -=-=- -=  Admiral Jota  =- -=-=- =->\
                     __/><-=-  http://www.tiac.net/users/jota/  =-><\__
                       \><-= jota@mv.mv.com  --  Finger for PGP =-></
                         \<-=- -=  -=-  -=  -==-  =-  -=-  =- -=->/


From graham@gnelson.demon.co.uk Thu Jan 16 17:09:08 CET 1997
Article: 21369 of rec.arts.int-fiction
Path: news.lth.se!solace!mn6.swip.net!plug.news.pipex.net!pipex!hole.news.pipex.net!pipex!bowl.news.pipex.net!pipex!tank.news.pipex.net!pipex!netcom.net.uk!dispatch.news.demon.net!demon!gnelson.demon.co.uk!graham
From: Graham Nelson <graham@gnelson.demon.co.uk>
Newsgroups: rec.arts.int-fiction
Subject: Re: How long did it take to write 'Curses'?
Date: Wed, 15 Jan 1997 20:36:56 +0000 (GMT)
Organization: none
Lines: 44
Message-ID: <ant152056345M+4%@gnelson.demon.co.uk>
References: <01bc0032$0175e680$249c45cf@weissinger> <32d98698.79193032@news.gte.net> 
NNTP-Posting-Host: gnelson.demon.co.uk
X-NNTP-Posting-Host: gnelson.demon.co.uk
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; CHARSET=ISO-8859-1
X-Newsreader: ANT RISCOS Marcel [ver 1.09]

> On 12 Jan 1997 02:41:12 GMT, "A. Keyton Weissinger"
> <keytonw@mindspring.com> wrote:
> > Does any one know how long it took for Graham Nelson to complete Curses?
> > It's fabulous and fairly large and I hope to do something about that size 
> > (and bigger) but am an IF authoring newbie and want some idea of how 
> > long such a thing takes for an expert...

I'm not sure myself.  "Curses" has a peculiar design history
and that accounts for some of its random eccentricities.
In particular, it has existed in about two substantially different
forms, with several intermediate states: basically it started out
Zork I-sized and then had about as much added again (about 7
months later).  The original took about a month to write (I was
just overflowing with silly ideas), but even that's hard to nail
down, because some of the time was spent debugging Inform and
the library.

So there you have it.  Any estimate between 1 month and 1 year
will have some truth to it.

"Balances" was written in a weekend (and it shows).  "Jigsaw"
took two years and a month or so, as I recall, but then
that was a project that I came back to and came back to.  (The
result is I think a better game, albeit one that's less fun.)

Angela M. Horns took something like a month to write "The Meteor,
The Stone and a Long Glass of Sherbet" (a three-week orgy of
creation plus a frantic week of tidying-up).  There's
really nothing else to do on the Isle of Eigg of an evening.

The trouble with rapid, random creation is that although it
makes sparky and puzzle-rich games (I think "Zork" and "Curses"
are cases in point), it also makes disconnected, disoriented
and generally amateurish games (I think "Zork" and "Curses"
are cases in point -- both have been tidied up and presented
nicely, but still...).

"Proper" games take longer to research and think through.
"Trinity" took just over a year of almost full-time work,
for instance.

-- 
Graham Nelson | graham@gnelson.demon.co.uk | Oxford, United Kingdom



From erkyrath@netcom.com Thu Jan 16 20:21:16 MET 1997
Article: 21374 of rec.arts.int-fiction
Newsgroups: rec.arts.int-fiction
Path: news.lth.se!solace!news.ecn.uoknor.edu!munnari.OZ.AU!news.mel.connect.com.au!news.mel.aone.net.au!grumpy.fl.net.au!news.webspan.net!ix.netcom.com!erkyrath
From: erkyrath@netcom.com (Andrew Plotkin)
Subject: Re: Inform library criticism (was: [INFORM] Takeable actors?)
Message-ID: <erkyrathE443F1.C13@netcom.com>
Organization: NETCOM On-line Communication Services (408 261-4700 guest)
X-Newsreader: TIN [version 1.2 PL1]
References: <5b6ivg$thv@bartlet.df.lth.se> <erkyrathE3wqrL.MAs@netcom.com> <5bbn05$bbo@bartlet.df.lth.se> <erkyrathE3xL4H.1ow@netcom.com> <32DD3B26.7922@penning.lanl.gov>
Date: Thu, 16 Jan 1997 17:33:00 GMT
Lines: 87
Sender: erkyrath@netcom.netcom.com

Russell Glasser (rglasser@penning.lanl.gov) wrote:
> Andrew Plotkin wrote:
> > 
> > Magnus Olsson (mol@bartlet.df.lth.se) wrote:(regarding hacking the Inform libraries)
> > 
> > > But this is _evil_.
> > 	<facetious>
> > Of course it's evil. Computer languages are evil. Compilers are a
> > terribly painful hack to get around the fact that computers aren't good
> > enough to interpret English on the fly. The Z-machine is an evil hack to
> > get around our unbelievably stupid policy of making computers that are
> > incompatible with each other. Computer games are an attempt to take our
> > minds off how lonely and miserable we all are because telepathy hasn't
> > been invented yet.
> > 	</facetious>

First of all, I did not write the "facetious" tags. I was not being 
facetious. (Zen, maybe. Whap!)

> 	Yeesh, get serious Andrew.  Magnus was talking about solid 
> programming style, and information hiding is the way good programming is 
> done.

That's what I said! Many parts of the Inform library implemenation are 
evil. RTakeSub is evil. Doors are really, really evil. Bad programming 
style is evil. I hate it.

Have I agreed with you loudly enough yet?

> 	Sure, it's all very well to say "_So Far_ is built under libraries 
> 5/12 and will remain so. This means that, sadly, it will never be translated 
> into another language using the 6/3 language system." 

What do you mean, it's all very well? It's *sad*! I just said so. It 
makes me sad.

> Speaking ad absurdam, 
> does that mean software developers have to dump all their old programs every 
> time their company upgrades to a new version of C++?

Wow, that would be *really* sad.

I will restate my point now:

*The Inform libraries are what we have*. They are not the only compromises
of elegance that I have in my life. Standing up and saying "Wait, this 
isn't perfect!" as if it's some vast revelation gets nothing from me but 
a disgusted glare.

Moreover, the *practical* consequences of this imperfection (*not* taking
it ad absurdem, but looking at my actual use of Inform in, y'know, real
life) are just not that big. If I *do* upgrade _So Far_ to libraries 6/3, 
it will be an extra fifteen minutes of work to transplant my hacks (and 
the hack we're arguing about here would be equally easy.) If the libraries 
6/4 involve a total reimplementation of RTakeSub, or some other thing I 
hacked, it would probably be an extra twenty minutes to upgrade to 
*that*. 

Compare this to, say, the effort it takes to port a new IF interpreter to
the Mac. It's just not a significant problem on my plate. It's *evil*,
because fifteen minutes times the number of authors who upgrade their
games will eventually equal a large amount of wasted effort. But it's not
a *big* evil. I choose to compromise my sense of programming elegance in 
order to work on bigger tasks. 

I will restate my point again, quoting from my earlier post:

> The Inform libraries are a pain in certain ways, which you can hack
> around, and this is not news. 
> [...]
> There ought to be a completely new set of libraries, which are not held to
> be compatible with any existing Inform code or the Designer's Manual. I'm
> not volunteering for the job.

(but, I should add, the existing libraries should not go away.)

Graham has posted in the interim saying that this job is more difficult 
than it looks. I certainly believe that. Nonetheless I will be happy if 
someone does it. I would, but I am fully booked with my own crusades to 
conquer evil.

--Z

-- 

"And Aholibamah bare Jeush, and Jaalam, and Korah: these were the
borogoves..."


From mol@bartlet.df.lth.se Fri Jan 17 14:55:38 MET 1997
Article: 21379 of rec.arts.int-fiction
Path: news.lth.se!news
From: mol@bartlet.df.lth.se (Magnus Olsson)
Newsgroups: rec.arts.int-fiction
Subject: Inform library criticism
Supersedes: <5bnvp0$h9v@bartlet.df.lth.se>
Date: 17 Jan 1997 14:54:24 +0100
Organization: The Computer Society at Lund University and Lund Institute of Technology
Lines: 107
Message-ID: <5bo0ag$ib8@bartlet.df.lth.se>
References: <ant152009f7fM+4%@gnelson.demon.co.uk>
NNTP-Posting-Host: bartlet.df.lth.se
NNTP-Posting-User: mol

[ Cc to Graham because of unreliable news distribution ]

In article <ant152009f7fM+4%@gnelson.demon.co.uk>, Graham Nelson wrote:
> In article <5bdu63$p75@milo.vcn.bc.ca>, Neil K. Guy
> <nkg@vcn.bc.ca> wrote:
> >
> > Andrew Plotkin (erkyrath@netcom.com) wrote:
> > : Andrew Plotkin (erkyrath@netcom.com) wrote:
> > : > Also, evil lurks everywhere, so keep your Uzi loaded.
> 
> Evil I may be, but at least I post to the newsgroup these days,
> so I'm not quite so much of a lurker.

I sincerely hope, though, that nobody is going to take out his
frustration with Inform on you with a Uzi. :-)

> The substance of this thread is that the Inform library may be
> practical and highly evolved, but has a few very murky corners from
> a conceptual point of view, and in general isn't what we would
> write if we were going to start all over again.  

Well, yes. In particular: it is excellent as long as one doesn't want
to modify certain behaviour that is hard-coded in the deep core of the
action routines. The fact that animate objects don't like to be picked
up is an example.

Perhaps I should stress here that it's easy to change that particular
fact by modifying the library itself; however, for reasons explained
in previous posts this is generally not a very desirable thing to
do. The "ideal" library should never need to be changed (except by the
author when adding more functionality).

> I think this
> fair comment (though one should distinguish between the parser
> and the verb library: the parser's not bad at all, I think).

So far, the only things that I've wanted to change in the parser have
been in the category of bugs. My criticism was aimed at the verb library. 

> I have occasionally thought that it would be nice to implement
> an entirely new library in a proper object-oriented style.  

Yes, it would be nice. It would be similar to what Dave Baggett did
for TADS with WorldClass.

But my main goal in starting this thread was not primarily to urge you
to change the library, or implement a new one, but to point out some
deficiencies in it so that prospective authors of new libraries or
authoring systems can avoid them. Without analysis, we're doomed to
repeat other people's mistakes. I suppose Dave Baggett's had similar
reasons for criticizing the syntax of Inform (which I feel is not
reasonable to change at this stage).

> But
> I can't find a really convincingly OO way to implement the
> typical problems confronting an IF model.  The classes of objects
> interact too much.  Clashes of priority of different rules
> (some methods in one class, some methods in another, etc.) have
> to be resolved somewhere, and in an explicit way.  

This is a problem. I think the reason that it is hard to model the
world (using _any_ paradigm, not just OOM), is that the world _is_ a
complicated place. I have some thoughts about what can be done about
it in the context of IF, but they aren't really mature enough to
mention right now.

But we must distinguish between OO modeling and OO programming. In
principle, you could use any way of modelling the world you like, and
use OO "only" as a way of ensuring modularity and encapsulation.

> Not only
> that, but objects in Inform basically change class dynamically
> and often (as attributes are roughly used to indicate class
> membership).

With all respect, I think you're confusing the concept of "class" in
OOD, which is a static concept, with something more dynamic, something
which seems more equivalent to "state". Objects in OOD don't change
classes, ever; their state changes, though. Perhaps one of the
problems with the design of the Inform library is that you're using
attributes both to represent "class" and "state"? 

> These are not insurmountable problems.  I'm just not sure that
> I can see the "right" way to object-ify an IF world model.

I'm not entirely certain that there *is* a "right" way. But some ways
are more "right" - or at least more convenient - than others.

> Neither TADS nor Inform entirely convinces me.

Let me hasten to point out that the TADS library certainly has its
problems. There are (a few) cases of exactly the same problem as the
one I've pointed out about the Inform library (the way an object is
listed in an inventory listing, for example, is determined *not* by
any method of the object, but by a big if statement deep inside a
global funtion). And TADS's system of verVerb routines is certainly
very powerful and flexible, but suffers of exactly the problem you
point out when talking about OO modelling of the world: the ver
routines of different objects interact in complex and often
non-intuitive ways, with clashes of priority and resulting in much
gnashing of teeth.

-- 
Magnus Olsson (mol@df.lth.se, zebulon@pobox.com)

-- 
Magnus Olsson (mol@df.lth.se, zebulon@pobox.com)


From 104312.2206@compuserve.com Fri Jan 17 17:47:47 MET 1997
Article: 21380 of rec.arts.int-fiction
Path: news.lth.se!newsfeed.sunet.se!news99.sunet.se!news.kth.se!nntp.uio.no!news-feed.inet.tele.dk!enews.sgi.com!arclight.uoregon.edu!news.bbnplanet.com!su-news-hub1.bbnplanet.com!feeder.chicago.cic.net!compuserve.com!news.compuserve.com!newsmaster
From: Bryan Scattergood <104312.2206@compuserve.com>
Newsgroups: rec.arts.int-fiction
Subject: Re: S.P.A.M. (not spam)
Date: Thu, 16 Jan 1997 06:36:04 GMT
Organization: CompuServe Incorporated
Lines: 18
Message-ID: <VA.0000002f.002b61cc@104312.2206>
References: <5b1ma9$kt7@tom.unix.amherst.edu>
 <ant1002450b0c4bn@arnod.demon.co.uk>
 <5b5or6$vbi@bartlet.df.lth.se>
 <ant121104d07c4bn@arnod.demon.co.uk>
Reply-To: 104312.2206@compuserve.com
NNTP-Posting-Host: ld51-079.compuserve.com
Mime-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit
X-Newsreader: Virtual Access by Ashmount Research Ltd, http://www.ashmount.com

Julian Arnold <jools@arnod.demon.co.uk> wrote:

<< One, a Zip one, is written in assembler, which is unusual.  Now that 
I think about it, I guess it can't be a port as such of Zip, as that's 
C.  Maybe it's "based on".  Anyway, it only runs v3 (maybe v1 & v2), 
doesn't multi-task, but does come with source. >>

That sounds like Frank Lancaster's Zip.  AFAIK it just happened to have 
the same name as the other Zip.  It later evolved into ZipDebug which 
was the first interpreter I saw which even mentioned Z6 games.

I remember it was a lovely piece of code: well worth preserving.  It 
was blindingly fast even on an ARM2: running on a StrongARM it is 
probably the fastest Z3 interpreter on the planet.

    Bryan




