Newsgroups: rec.arts.int-fiction
Path: nntp.gmd.de!news.ruhr-uni-bochum.de!news-koe1.dfn.de!main.Germany.EU.net!Germany.EU.net!EU.net!news.bbnplanet.com!cpk-news-hub1.bbnplanet.com!feed1.news.erols.com!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..."
