[MUD-Dev] Re: Laws of Online World Design

J C Lawrence claw at under.engr.sgi.com
Thu Oct 15 15:44:03 New Zealand Daylight Time 1998

On Wed, 14 Oct 1998 20:04:43 EDT 
ApplePiMan <ApplePiMan at aol.com> wrote:

> At 10/13/98 4:44 AM mud-dev at kanga.nu (claw at under.engr.sgi.com)
> altered the fabric of reality by uttering:

>> A just-good-enough expressive environment implicitly rewards and
>> encourages player-creation.  The current system is good enough to
>> be tolerated, bad enough that the temptation to add or "fix" is
>> strong, and __expressive__ enough to allow the basic medium of
>> multi-player games (communication) to become a function of the
>> expression rather than the parent of the expression (ie you use
>> the expressive features of the environment to process
>> communication rather than using communication to enact the
>> expressive features).
>> Have I lost anybody yet?

> Mmm... I hate to say this, but yes. Try as I might that last
> sentence just doesn't parse. =/ 

Players have two basic forms of expression in a MUD (or any other
world).  They can use the objects and features of the world to
create expressions (ie codified communication), or you can use the
objects and controls of the world to process communication with the
results of that processing being the expression.  To model this out:

  You can have use a word processor to write a document.  This is a
case of using the world features to create an expression.  Nothing
has really been created; a communication has merely been codified
using pre-existent hihg-level building blocks.

  You can use various tools on the same machine to run a Julia
robot, Eliza, or other semi-intelligent text processors.  You can do
contextual and grammatical analysis, cross references with the
Gutenberg texts, etc.  You can have the system intercept
communications, reply inteligently, corrupt intelligently,
intelligently react, do language translation, and in general have
*you* (in the form of your scripted tools) create the communication
medium rather than your merely overlaying your signal on a
pre-provided and pre-defined communications medium.  You can have
your system intelligently create and process the very _medium_ of
communication rather than merely creating the __instances__ of

Or to analogise this pairing again:  

  You're not just restricted to writing on paper, but you can
program, create, and actually define the base laws and modes of
operation of TV, radio, RADAR, telepathy, sign language(s), the WWW,
email, NetNews, etc etc etc yada yada, _and_ automate and interate
all of that.  In essence you can play God with the very medium that
is used for communication rather than being restricted to merely
creating instances of communication.

> Or rather, I understand what you're saying, but don't see how it
> relates to muds (remember, my background is largely paper
> RPGs). What, in mud terms, is an expressive environment, and how
> does one implement it "just good enough"? 

LambdaMOO did it by implementing free user programming, implementing
an internal soft code language which was simple and obvious enough
for generic non-programmers to understand and do useful things with,
and provided all the tools needed to edit the basic definition and
reality of the shared world with that code (which was easy because
the entire world was written in the same soft code and that source
in turn was available to all wannabe LambdaMOO user-programmers).

(Perl has largely accomplished the same feat thru its language
features, CPAN, and other such culural pivots)

Players were not only able express themselves, but they were able to
create and customise new forms of expression.  Legba is a glaring
and obvious case here with her robots, character morphs, sexuality
and body language changes, etc.  (Read the Dibbel articles IIRC --
he interviews Legba extensively in one of them (hope I have right

> Sounds like a fascinating topic in and of itself, but I'm not
> following it well enough to comment further...

Allow your users to create edit, and define your world.  Forget
playing god with the implacable doctrine and the deistic mandates.
Your job is to provide fertilizer and convice enough of the players
that they can and want to grow things.  Its whats going to happen
anyway in the long term (your users will play your world, create
their own new visions, go create them somewhere else, new people
will play there, create new visions, go create them somewhere else,
etc), so you might as well encourage the process and try to branch
over at least a few generations.

>> This makes the idea of producing a game which is __deliberately__
>> unfinished and full of half-way-dones and almost-dones tempting.
>> Make some bits fine and polished to whow what can be done.  Make
>> other bits pretty grotty and annoying.  Balance carefully.  Make
>> sure the environment is expressive enough to lock in the player
>> base and they'll do they rest for you.
>> One translation: I'm thinking 3D rendered game where only a small
>> fraction of the world is fully rendered, some is not rendered at
>> all (beyond a glowing wireframe), and the rest in the middle is
>> of various qualities.

> The Metaverse from _Snow Crash_. =) 


> My background is different from that of most of you (and so my
> spec'ed software is not "exactly" a mud to begin with), but I view
> this as essential, in one form or another. Players must be able to
> make the world "theirs" in some way, by personalizing their corner
> of it. 

I'm looking more at having the users actually define and create the
world at a very fundamental laws-of-the-universe level far more than
pick out new colour schemse for the paint jobs on their tract

> Whether I allow, as in your example, building the world from a
> wireframe up, or just players making their customizing marks on a
> pre-built shell, the customization is a vital element; ...

Agreed.  (Actually I'm looking at having them editing the wire-frame 
as well).

> I think the alternative (a "finished" world) is a bad idea in that
> it is not a strong stimulus to player imagination. And if we
> manage to involve the player's imagination, we've got them
> "hooked" for as long as we manage to *keep* it involved.


While I forget the attribution, 98% of sex occurs between the ears.
Ditto for our worlds and games.  Its really not what happens on
screen, in the channels, what is emoted etc that matters.  Its what
happens inside the players own mental universe, the one they
occassionally peek out of to check on that status of reality.  Or,
to get back to a previous post of mine: The basic medium and the
basic value is communication.  Take that out and you have less than

>> Two translation: Design of the internal programming language, and
>> class/object heirarchy.

> This is where I'm missing your boat altogether. =( How are you
> tying this to "expressiveness"? (I'm certain I'm just being
> incredibly dense... I never cease to amaze myself with just how
> dense I can occasionally be for a basically intelligent
> fellow. <g>)

Implement the entire world, every last teensy bit of it in soft
code.  Allow your players to edit and write that soft code.  Allow
them to define, redefine, and create the world in their own image.
Allow them to communicate whatever than can manage to create.  

If your softcode is good enough, they'll use it.  If its use in the
game and gameworld is bad enough, they'll fix and extend it and
immediately become partial owners and evangalists for their project.

The object heirarchy is merely the expression of the above in code
in the game world.  Its the instantiation.

>> Three translation: Don't strive for perfection, strive for
>> expressive fertility.  You can't create utopia, and if you did
>> nobody would want to live there.  You can howver create knee-deep
>> cow patties and semi-implement admobe construction.

> Amen, brother! Preach on!! <g> (I still didn't quite parse
> "expressive fertility", but I *strongly* agree with the contextual
> sentiment of letting PCs "fend for themselves" whenever
> possible...)

The "expressive fertility" bit is the really a re-working of the
perl mantra.  Just why is perl so popular?  Why didn't Python,
Tcl/TK, or any of the very large host of other scripting and text
processing languages out there not take that crown?  Python
certainly ia faster...  Simple really: perl is incredibly expressive
in exactly the same way that Inuit can talk about snow formations
with extremely flexibility and precision, or the French is called
the "Language of Love".  Not only can you say damn near anything
with it, but you can say any one of those damn near everythings in
(seemingly) a near infinite number of ways, all of which both work
and communicate succssfully.

Its expressive.  It allows free and multi-formed and finely nuanced
and carefully connotationed communications without restricting *how* 
that thing is said.

How many ways are there to say "Hello!" in colloquial english?
"G'day!"  "Lo!"  "Hail fellow traveller!"  "Howdy!"  "How ya doin'?"
"Lookin' good!"   And the list goes on for miles.

_That's_ expressiveness.  

Now take your standard programming language, say our good friend C.
How many ways are there to assign a string to a variable?

  char *string = "this is a string";
  char string[] = { 't', 'h', 'i', 's', ' ', 'i', 's' ...etc};
  strcpy (char *string, "this is a string");
  memcpy (string, "this is a string", strlen ("this is a string") + 1);
  memmove (string, "this is a string", strlen ("this is a string") + 1);
  sprintf (buffer, "this is a string");

Most of which you'll note aren't really synonymous with each other.
Now count the number of ways you can do the same thing under perl
(you can stop when you get to 20).  

Programming languages are not historically expressive.  Instead they
are logical, orthogonal, and orderly, have well defined and
ligically consistent grammars, and generally encourage
single-best-approaches for common problems in their problem area.
Perl takes the opposite approach in many ways.  Its disorganised,
full of special and corner cases, ultimately non-orthogonal, very
disorganised, has a regularly inconsistent grammar, and generally is 
very organic in nature.

<<I should note at this point that I *really* don't like perl.>>

J C Lawrence                               Internet: claw at null.net
(Contractor)                               Internet: coder at ibm.net
---------(*)                     Internet: claw at under.engr.sgi.com
...Honourary Member of Clan McFud -- Teamer's Avenging Monolith...

More information about the MUD-Dev mailing list