[MUD-Dev] Hard Sci-fi muds was Character evolution

clawrenc at cup.hp.com clawrenc at cup.hp.com
Tue Sep 23 16:20:32 CEST 1997


In <199709220651.XAA04735 at pc4.zennet.com>, on 09/22/97 
   at 08:18 AM, "Brandon J. Rickman" <ashes at pc4.zennet.com> said:

>On Fri, 19 Sep 1997, clawrenc at cup.hp.com (no alias on file) wrote:
>>In <199709180303.UAA32639 at pc4.zennet.com>, on 09/17/97 
>>   at 08:16 PM, "Brandon J. Rickman" <ashes at pc4.zennet.com> said:

>>What do you define as "strange"?

>I trailed off there because I was avoiding any further definition.
>Strange depends on the rules for the world.  In a realistic world,
>corpses that decay in five minutes and eventually turn to dust are
>"strange", but in an lp mud this isn't so strange.  I'm assuming for
>the purposes of this discussion that, since we are talking about all
>sorts of little things (the details), the gross obliteration of 
>details is counter to our design goals.  Hence the notion of a
>carrion consumer creates strange behavior if it doesn't take  "detail
>physics" into account.  In other words, this is strange:

>  The is a dead bunny here.
>  A small scavenger appears and carries off the corpse of the dead
>  bunny. 
>  > kill scavenger
>  There is no scavenger here!

The key to this strangeness appears to be the facts that the scavenger
entered the location, collected the object, and left again in one
transaction, suggesting that it is an implied object which doesn't
actually exist -- eg an artifact of the server which merely spits
messages about a scavemger while is destructs the corpse under the
covers.

Were the scavenger to be a real object, or at least better simulated,
then this would seem less strange:

  > l
  There is a dead bunny here.
  A small scavenger appears and carries off the corpse of the dead
  > kill scavenger
  There is no scavenger here!
  > follow scavenger
  You follow the scavenger who dissappeared into the brush to the
east.
  There is a small hole in the ground here.  You can hear the sound of

  chewing and crunching bones.

Best of course would be if the scanvenger were a real object, which
did make a practice of consuming corpses.

>and this is the real problem:

>> kill scavenger
>...
>There is a dead bunny and a dead scavenger here.
>A vulture has arrived.
>> kill vulture
>...

>We eventually arrive at the room containing a thousand corpses (from
>a post not quoted here).

Yes, the newbie area with the zillion bunny corpses.  However, given
the existance of scavengers, the corpses will "dissappear" as soon as
they cease being maintained (scavengers killed).  Why is this a
problem?

>[meta: This whole thing has resulted from a type of discussion where
>the proposed situation was absently denied as "unlikely".  I will
>admit it takes work to justify a situation that was completely
>contrived as the above, but we were not talking about the merits of
>the situation, rather the consequences.

Understood.  I fail to see that the consequences of being able to
create a location containing tousadnds of corpses is a problem.  It is
an artificial situaion which the system can be easily set to devolve
at the soonest opportunity.

>>I haven't done a scale test with my server for a while.  I'm in no
>>shape to do one now alas -- my last three redesigns and re-writes of
>>the DB layer all had severse performance/bottleneck problems.  Once I
>>get things back running (now working on dsign #9) I'll try them out on
>>my standard 20 million room DB.  I don't expect them to be troublesome
>>as they are quite efficiently implemented.
...
>You have a 20 million room db.  A good number, I would say.  No one
>really has a chance of ever mapping the whole thing out.

Note that this DB was created by writing a quick script in my editor
to spit out an endless series of rooms arranged on a rectangluar grid,
1000 rooms tall and configurably long with (configurably) all borders
circularly linking to their opposites.  I just set it running over
night and awoke to a 20M room DB consisting of an utterly featureless
rectangle of identical rooms.  

I use a similar script to create instances of various types of objects
(mobiles for example) which I then drop randomly into the land and let
loose.  This allows for easy, if simplistic, scaling tests.

>If a "remembering" creature visits 200 locations a day, and there are
>1000 such creatures, you have 1000 times more rooms than all the 
>creatures can explore in a day.  It might take three years for every
>room to be explored, which is a pretty good amount of time.  Your 20M
>room db might be on the lowest end of Big Universes.  But I think my
>calculations are very conservative.  And if you were to ask me how
>many rooms were in my dream db I would say I don't know, somewhere
>between 10 and 100,000.  But it would be a Big Universe.

Its also worth considering the memory depth of those wandering
objects.  300,000 rooms later, does it still recall the 129th object? 
Would you?

>>Because the definition of "interesting" and "uninteresting" is both
>>subjective and hidesously variant.  In the general case I don't see
>>that it can be safely determined by the game on a macro scale, only on
>>a micro scale.

>Right, there is no guarantee that any detail will prove to be
>interesting.  So we have to keep track of an enormous amount of
>potentially useful information that determine the probabilities of 
>something "interesting" happening.  But we already keep track of, and
>spend a lot of time figuring out how to get rid of, an amazing amount
>of junk (rabbit corpses, empty bottles, stomped-on patches of grass).
>The long range solution (it really isn't good for short range 
>problems, you'll still have to manage a giant db of dead bodies,
>candy wrappers, etc) is to keep track of artifacts on some level of
>pure probability.

My temptation would be to classify objects ito two categories:

  1) Ones with a known/defined state.

  2) Ones with an unknown/undefined state.

Examples of the first case would be objects in a player's inventory,
objects in a location which has been visited by an object which
queried the item's state, etc.  

Examples of the second case would be objects whose existance is
questionable.  The canonical example might be the Sword of  Great God
GooGoo when its ship foundered at sea.  The state and location of ths
sword at that point is indeterminate.

The key is determining the transfer state between #1 and #2, as well
as the probability mask for #2->#1.

What *could* get really fun is making determinate objects
indeterminate.

Consider:

  Bubba has a sword.  

  Boffo has a sword.

  Bubba's sword is actually the Sword of the GGGG.  However none of
the GGGG methods have ever been queried, and thus the sword has never
been identified as the Sword of the GGGG.  Ergo, the details of the
sword's state can be classified as indeterminate.

  Boffo's sword is merely a lump of dumb iron, nad has never been
asked if it is GGGG's.

  It would be quite reasonable if at some point Boffo's or Bubba's
sword were revealed as the GGGG's.  Which really doesn't matter.

While this is intellectually attractive (Oooo! Isn't that neat!), I
doubt its worth the effort of tracking probabilities at that
granularity.

>Compare this exercise with the junk scavenger situation.  If all
>corpses are automatically consumed/collected/organized you will never
>_accidentally find_ a corpse lying around.  And the consequence: if
>you ever *do* discover an old but unscavanged corpse you will assume
>it has been artifically placed there (as a puzzle, part of a quest).

No.  You are assuming that the existance of a corpse will
automagically prompt a scavenger system to handle that corpse.  That
is not necessarily true.

Make scavengers an ecology.  They are populous to the extent that
there are corpses to consume.  Corpses can be created by players
killing things, or by mobiles dieing by various actions (killing each
other, walk off a cliff, old age, starve to death, etc).  Thus the
steady state is for scavengers to exist at a fairly steady level
across the land.  Were a player to make the mountain of 10,000
corpses, then after a while, the local scavenger population would
boom, the corpses would be eaten, the scavengers would starve to
death, they'd cannibalise, and finally return to the steady state.

Of course any corpse which never gets eaten is now suspicious -- as it
should be.  Equally suspicious is any location which always contains a
corpse, even if the current corpse is removed (what is creating
them?).

--
J C Lawrence                           Internet: claw at null.net
(Contractor)                           Internet: coder at ibm.net
---------------(*)               Internet: clawrenc at cup.hp.com
...Honorary Member Clan McFUD -- Teamer's Avenging Monolith...




More information about the mud-dev-archive mailing list