Newsgroups: rec.arts.int-fiction
Path: news.duke.edu!newsgate.duke.edu!nntp-out.monmouth.com!newspeer.monmouth.com!news-peer.gip.net!news.gsl.net!gip.net!cpk-news-hub1.bbnplanet.com!news.gtei.net!portc01.blue.aol.com!uunet!ffx.uu.net!world!buzzard
From: buzzard@world.std.com (Sean T Barrett)
Subject: Re: What is an IF authoring system anyway?
Message-ID: <G0Ds7J.C2B@world.std.com>
Date: Mon, 4 Sep 2000 21:11:43 GMT
References: <jDwr5.16128$pu4.1184541@typhoon.ne.mediaone.net> <8omhdh$mf7$1@news.lth.se>
Organization: The World Public Access UNIX, Brookline, MA
Lines: 73
Xref: news.duke.edu rec.arts.int-fiction:78146

In article <8omhdh$mf7$1@news.lth.se>, Magnus Olsson <mol@pobox.com> wrote:
>David Betz <dbetz@xlisper.mv.com> wrote:
>>I've been dusting off my old AdvSys authoring system
>Yay! An old favourite!

AdvSys was the first authoring system I ever tried to use
(my first incomplete text adventure attempt was in BASIC),
but I ran into size limits.

AdvSys was also the first adventuring system I ever implemented
(my first compiler and interpreter), because I didn't know that
source was available and I needed to get around the size limits.
Still didn't finish that game, though.

But I had an actual point here.

>forget the world model. Inform without the world model provided with
>the Library would have been just another programming language.

On the other hand, e.g. with WorldClass, some crazy people are
willing to write a new world model; so it's possible to imagine
a language succeeding without one.  But, as the author of a mud
authoring system that shipped with no world model and was only
used by one totally crazed team (who would have thrown out any
world model anyway) who never finished it, I concur in general.

>As for language features: mostly syntactic sugar to save on typing,
>like Inform's auto-printing strings,
>grammar-productions-as-part-of-the-language and
><< Action Noun Object >>.
>
>But that's just syntactic sugar; it's nice, but not really essential.

Actually, I think I have a deep but never-before articulated
instinct that it's not just nice, it's essential.  Essential
for success (other people won't use your system with out it),
and certainly essential for me if not most people.

My justification for this (entirely off the top of my head)
is that the mental state of composing well-written English
text is nothing like the mental state for doing programming.
While you're trying to write text, you don't want to be
dealing with the vagaries of language syntax.  I suspect
that even dealing with ANSI C's multi-line text solution--
putting quotes around each individual line of the string,
called "ANSI string concatenation"--is more mental effort
than it's worth, although it does allow you to insert leading
spaces in a way that's difficult with Inform.

>I can think of one important feature that's semantically important, and
>that's the ability to override base class behaviour when instantiating
>a class. In Inform, you can have a class definition:
[snip]
>whereas in, say, C++, you'd have to create an explicit class to be able
>to add the new member new_value and override the do_something method,
>and add a constructor to this class to override the value of value.
>
>This may not sound like a big deal, but think of it: most objects
>in an IF game really are singletons; it's relatively rare that you
>have several objects that are identical except for the values of
>attributes. In a C++ adventure with 123 objects you'd have to have
>perhaps 120  classes, each with just one instance. That's awfully
>inconvenient.

This is at the heart of why IF is different from most programming.
Most of IF is about constructing what we might otherwise call data.
Most programs are about working with giant masses of largely identical
chunks of things, and most programming languages are tuned to supporting
that notion.  C++ certainly has mechanisms for created initialized
data, but they're nothing like what you want when 95% of your "code"
is initialized data and exceptions.

Sean
