Resets and repops

claw at null.net claw at null.net
Mon Mar 24 13:07:17 CET 1997


On 21/03/97 at 12:53 PM, Nathan Yospe <yospe at hawaii.edu> said: >On
Thu, 20 Mar 1997 claw at null.net wrote:

>:>That's interesting... you use a free user programming system,
>:>though, don't you? 
>:
>:Yup, altho that can be easily disabled/limited.  As each object and
>:each method on each object metes its own security (who is allowed to
>:call with with what arguments), its *really* easy to bind the object
>:creation/programming methods with a more restrictive security level.
>:And then of course there are little things like quota systems,
>:automatic object recycling, timed object lifespans, etc for the less
>:draconian chaps.

>Hmmm. But nothing to enforce literary consistancy.

True, but once you allow any form of free programming, that's history. 
Heck, even standard monolithic non-user-programmable games with teams
of vigilant admins can't manage that one.

>:> > > Also, "fitted" equipment works in nicely with the limbs list.
>:
>:Arrrrghhh!  This could get very ugly, quickly with the above.

>I'm currently tangling with this problem.

It is an ugly one indeed.

>:I was also
>:thinking of doing a very similar idea for swarm bodies (eg the body
>:consists of thousands of barely intelligent insects which en masse
>:have great intelligence and can manipulate objects via joint action
>:(thousands of bees descend on the boulder, and all buzzing mightily,
>:lift it away!).  In the swarm body case however the player would
>:split off sections off his main body and send them off on seperate
>:paths.

>Now this is seriously cool. And quite possible, too. I'll have to
>allow a player species based on the swarm concept at some point.

For me it was a direct extension of allowing a single character to
simultaneously control multiple bodies (side effect of body stealing). 
Once I had that the instant thought was: "Well, if he can control two
or three bodies, say his own, and a couple mobiles or whatever, why
can't he control a few thousand bodies?  Say a couple hundred thousand
bees blitzkrieging the Fortress Of Impenetrable Custard"...

Ooops.  And thus it started.

>:A point I'm not resolved on is how to handle component differences
>:in the group object.  Yes its a pack of wolves, but all of those
>:wolves are unique in various ways (some wear collars as escaped sled
>:dogs, some have scars, one is the leader, male/female, young/old
>:etc).  It gets more obvious when 20 players get their troll
>:characters together.  Even if they are manipulated as a unit, Does a
>:watcher see a mob of trolls, or does he see:
>:
>:  A troll with red hair.
>:  A troll with green hair.
>:  A troll with bulbous eyes and foot long boogers.
>:  A troll ...you get the idea...

>Hmmm. If these trolls are all individuals based on the same basic
>troll, or if there are more than six of them, in my system, they get
>"bulked" together. See my earlier posts about fighting an army.

What I'd like is something like:

  > l 
  There is a group of trolls here.
  Something catches your eye: one of the trolls is Bubba!

Along with all the other standard vations on group size,
recognisability, etc.  I actually suspect that it can't be handled
gracefully from a textual interface without getting very deep into NL
and persona prediction.  Graphical may well be the way to solve the
area -- as long as all those bodies out there are somewhat visually
unique.

>:I suspect that the real problem is that I implicitly do not support
>:compound types in the internal language.  (Well, nothing more
>:complex than typeless lists/arrays).  If I supported complex types
>:which allowed full objects to be used as components, this would be a
>:LOT easier -- its just that doing that opens up a huge nest of worms
>:(incompleat objects, missing dependancies, etc).

>Hmm. Obviously, we catalogue things differently.

True, but I'm not sure why you comment that.  ??

>:Why have the objects poll?  Why not have the events which provoke
>:reactions in the object be handled by an event processor within the
>:objects?  No more polling.

>Not that kind of polling. An Event triggers reactions in every object
>present, whether they be null or not. The objects poll, in the sense
>of request a response, their potential responses with the Impulse.
>The response, if any, is scheduled on the Event queue.

How do you handle remote reactions then?  cf the old scenario of
Kastle Krak and the Elven Forest.  Even the Cystalline Tree almost
fits.

Lessee, I'll dig up an old quote on the scenario:

--<cut>--
I'll see if I can't remember the scenario that originally took me on
this route.  Do note that this is a fairly complex set that I used as
a proof-case for a whole chunk of ideas, with spoofing etc just one of
the results.


  The GreatGodGooGoo has a number of holy relics.
  Each relic has a non-magical base state, and a magical awakened
    state.
  If more than three of GGGG's relics are simultaneously awakened,
    the GGGG does nasty things.
  Relic #1 is a stone which awakens into the Gem of GGGG.
  The gem turns its bearer into a FireGod only for so long as he
    carries the gem.
  The FireGod is very hot.  Food cooks when in his presence, metals
    get painfully hot, and candles melt.
  Other players near the FireGod are slowly damaged by the heat.
  Relic #2 is the Horn of the GGGG, which awakens only while it is
    blown and then reverts to the base state.
  Relic #3 is a sword which awakens to the sword of GGGG.
  The sword has interesting properties when awakened:
    1) If the GGGG is awake (three relics etc), the the sword
       teleports to GGGG.
    2) If it can detect the MistWraithe it magically teleports to the
       MW and begins attacking him.
    3) If it is carried by a FireGod, then the sword is destroyed.
    #1 happens as soon as the GGGG is awake, and the sword can
    detect him and it can teleport.
    #2 happens as soon as it can detect the MW and can teleport.
    #1 has priority over #2, and #2 has priority over #3.
  There is a Magic Sack of Hiding.
  Anything in the MSH is hidden from the rest of the game.  No
    magical effects can either enter of leave the MSH.  Players, and
    the MW can enter the MSH.
  There is a Wizards Lair.
  Any magical effects, such as an awakening, occuring in the WL are
    hidden from the rest of the game.  No magical effects or spells
    can enter the WL, but they can all leave the WL.  ie in fails,
    out works.
  There is a Magic Cloak.
  Anyone wearing the MC appears to be the MW (more than the real
    MW (ie gets preferentially attacked)).
  Anyone carrying the MC appears to be the GGGG (non-preferentially).

Base rule: Any effect on any object must be programmable without
source access to any other objects.

Challenge: Program the above, following the base rule.

Now code the old sceptre/Castle Krak/Elven forest scenario, with the
WL as part of Castle Krak, following the above rule.
--<cut>--

The base principle regarding the above for your implementation is; 
How do you handle remote effects from a very localised event?

>:Outside of that the basic object model is fairly simple.  Every
>:object may accept or refuse any method call.  All objects are
>:required to respond in one of those two manners.  A method call is
>:synonymous with an event from the target object's perspecitive. 
>:From the caller's perspective it is merely a component
>:transaction/event for the event :it is processing.

>I guess this is an implementation difference. I like my
>Impulse/Reaction alternative to method calls, if only because it
>allows a greater degree of low level universal rules control.

cf Bloodstone from Bartle's document.  For the web weary I'll quote
(excuse the formatting, I can't be bothered to re-wrap it):

--<cut>--
4.8     Bloodstone.

Name:                   Bloodstone
Importance:             2
Author(s):              Robert Muir, Andrew Pusey
Location:               none
Pricing Structure:      none

Brief Description:
        Advanced MUD1 clone, fantasy setting.

Historical Notes:
        Muir was originally a Shades player.  With finance from Tony
Cox, he and Pusey designed a transputer-based MUA specialising in
world modelling. Named Bloodstone, it burst on the scene in 1989 in a
flurry of advance publicity, but wasn't launched for almost a year. It
finally went on-line on MicroLink, but disappeared after a few months
with hardware, software and contractual problems.  The cost was
L7/month flat fee (the equipment it ran on cost over L20,000).

Review:
        Bloodstone was the victim of its own arrogance.  Its
specifications were so exciting that, had they been implemented in
full, the authors would have qualified for a Nobel Prize.  It was to
be vast, fast-moving, incredibly detailed, and the MUA to end all
MUAs. In the end, it was brought down by implementation problems and
the cold reality that profit from MUAs in the call-charge dominated UK
market is not great.

        The driving motivation in Bloodstone, which worked in part,
was compositionality. Objects were made up of other objects, and these
of others, and so on until the author got bored.  For example, human
beings were made up of 260 parts, including eyes, finger joints and so
on, but excluding individual hairs on the head. A rose bush was made
up of roots and branches, with thorns and flowers on the branches, the
flowers being made up of a stamen and petals.

Although always present, such details were not always given, however:
"some flowers" or "many petals" would be described. In this respect,
the game was able to ensure that players weren't completely swamped
with information.

        Despite this level of detail, Bloodstone was intended to be
set in a continent with 12 separate countries, in which were towns and
cities and 37 different races of creatures.  All these would work
independently, with players being able to have jobs during the day and
be family men at night. Female personae could become pregnant and give
birth nine months later to a child.

        Mobiles were to have artificial intelligence (AI). Because of
the way bodies were made up of parts, it was possible to get eg.  a
broken arm in a fight. A mobile might be able to figure out it needed
a splint, and proceed to make one. Getting this alone to work as a
general principle would be worth a PhD in AI...

        There were initially 20 spells, including "polymorph" - change
into a different kind of creature.  This, as a side effect, would
allow communication with other creatures of that kind (which seems
unrealistic).

        Everything was interlinked.  If bricks were removed from a
wall, it might collapse, bringing the rest of the building down. 
Small-scale actions could have large-scale effects.  There are,
however, well known problems in the AI field of object representation
concerning this kind of activity. Either the programmer has to list
explicitly all effects of players' actions (which is difficult and
tedious) or the game's interpreter can figure it all out on-the-fly as
it happens. This latter approach, where there are a set of physical
laws that are applied to everything that has moved after a command has
been executed, is workable but vulnerable; there can be long delays as
effects are propagated throughout the universe being modelled, and
some effects may take considerable time to dampen down and disappear.
Pulling a petal off a flower may seem innocuous, but if it makes you
weigh just enough that the snow bridge upon which you're standing
collapses, and this in turn starts an avalanche, there can be
wide-scale devastation that is almost impossible to sort out.

        Bloodstone had a 25,000 word dictionary; this was quite a
feat, but the authors never made apparent which words were actually
functional and which were merely ignored. It is quite difficult to
think of even 1,000 words that could feasibly be of use in a MUA. 
Again, Bloodstone appeared to be going for overkill in an effort to
impress potential customers.

        Originally, the game was intended to run on transputers, but
apparently these slowed it down. It finally ran on a custom-built
80386 machine running at over 6 mips (but rather flakily).

        Although there were plans for graphics-based clients on the
Atari ST and the Amiga, Bloodstone's normal display was rather poor. 
It didn't word-wrap, and the text (built up from object descriptions)
contained such blunders as "a blood" and "it feels has a firm, warm
texture".

        Bloodstone was envisaged as a game of life, yet there lay its
central problem: it had no gameplay to speak of. It was a simulation
to incredible depth, but there wasn't really much that players could
do, it was too open-ended. Even given the extravagant claims its
publicists made, it probably could have been forgiven all but that.

        Bloodstone was a grand concept, but doomed to failure. Its
reliance on compositionality ensured that it would be stuck in a
morass of intricate inter-
relations between its components unless it sacrificed some of its
depth (and thus some of its claim to originality). Some application of
AI techniques may have alleviated the problem (eg.  lazy evaluation -
expand a rose object from a template only when it is actually in use),
but the best approach would probably have been to represent objects at
a higher level of abstraction.  In the end, depth is useless unless
there's a reason for it. Bloodstone's depth didn't pass this "so
what?" test.

        Bloodstone has been included in this review because although
it is currently down, it is not out, and it may return in the near
future. Hopefully, this time it will make less boastful claims, and
advertise only what it does do rather than what it could do given a
team of thirty programmers and a Cray 2 for four years. It's a very
nice idea, but the programmers set their sights too high initially.

Summary:
        Bloodstone is characterised by its almost unbelievable depth,
which dominates every aspect of it completely. It is known, however,
by the conceit of its advertising, the unlikeliness of its features
ever being implemented, and the contempt in which it held other MUAs.

Quotes:

        "I see that Bloodstone has gone down the pan. And just as
MicroLink
         were about to 'start serious promotion'. Pity they didn't do
that
         when it started, or they may have been able to get more than
4
         users on and brought in enough dosh to keep the thing alive."
                Nigel Hardy [Sector 7 author]

        "The game is revolutionary in that it is massive and has huge
         expansion potential."
                Popular Computing Weekly [magazine]

        "If you pull a wing off a fly, that creature will be missing a
wing
         forever and will probably die."
                Popular Computing Weekly [magazine]

        "Mobiles are equipped with artificial intelligence and will
         probably strap a broken arm into a sling."
                Popular Computing Weekly [magazine]

        "It looks set to take the lead in the multi-player game
market."
                Popular Computing Weekly [magazine]

        "Reports from UK-wide testers were proving enthusiastic."
                Comms Plus! [magazine]

        "It combines all the necessary detail and commands to be able
to
         walk all over the opposition and should be sufficient to
convert
         players of Shades and MUD."
                Popular Computing Weekly [magazine]

        "One of the early gripes [with MicroLink] has been about the
late
         arrival of its multi-user games."
                Comms Plus! [magazine]

        "It puts everything else into the shade."
                Derek Meakin [MicroLink chairman]

        "We feel we have a powerful enough parser for anyone."
                Robert Muir [author]
--<cut>--

>Ugh. No, I use a nervous system of sorts, with Impulses being passed
>along the limbs and into the body, to wherever the Character is
>stationed within the body. (In the head, for humans, etc..) Also, for
>example, shock can be passed as an Impulse, allowing a Character to
>be killed by pain, or some such. (but also creating a flinch
>reaction, etc, which is really nice.)

What causes the flinch to pull the hand off a hot plate as vs an
undirected body jerk reaction that leaves the hand there?

>:Cute.  What discourages me from such a tack is that it requires
>:public admin judgement calls which can (and will be) the subject of
>:controversy by "slighted" builders.

>Well, thats true as far as the literary rating and so forth, but not
>the AI practicality factor... its pretty much an impartial measure of
>how much the area makes Players think when they play it. See my post
>to rec.games.mud.admin, etc... I think. Or maybe it was
>rec.games.mud.diku.

Unforunately I don't have newsgroup access right now -- and driving
DejaNews when you don't have an exact idea of what you're looking for
is a bear.  Would you repost here?

>:>...and forcing people to look alive, lest they be
>:>mistaken for a poorly designed TuringAI. 
>:
>:There is a penalty for being mistook?

>Embarrassment.

Oh dear!  You thought I was a mobile?  I shall have to kill you I'm
afraid.  Please stand still and don't struggle too much old chap. 
I'll try and make this painless.

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





More information about the mud-dev-archive mailing list