[MUD-Dev] Re: MURKLE: Wot it is

J C Lawrence claw at under.engr.sgi.com
Thu Jun 4 16:52:19 CEST 1998


On Wed, 3 Jun 1998 00:34:42 -5 
Jon A Lambert<jlsysinc at ix.netcom.com> wrote:

> On 2 Jun 98, J C Lawrence wrote:

[snipped decription of mana motion]

> Does your mappings of mana imply a use for a global coordinate space
> upon which youe local coordinate spaces are overlaid?

Yes.

> If so does man pool in space undefined by local coordinates?

No.  That would be far too expensive.  My global coordinate space is a
64bit cube.

Mana doesn't actually pool as its not affected by gravity (sorta --
all else being equal mana will go down, then horizontally), is
repelled by like-signed mana, and is mutually destroyed by opposite
sign mana.  Ergo no pools -- pools repell each other into thin mists.

What I found early on, given that my test world as implemented is a
fraction of a 64bit integer, is that mana dissappeared out into the
undefined spaces never to be seen again.  It also became expensive to
track the mechanics of all the mana outside the known universe.  All
my CPU was spent on mana in undefined space.

So, I compromised.  Mana moves about as previously described, but upon
hitting a border of currently defined space (ie the edge of the parent
domain), it self-destructs and is then available for emission for mana
producers without having to be matched by other opposite-sign mana.
(Actually it goes into a pool which is shared with opposite signed
mana, with the value sum of the pool being available as above).

As such mana physically can't enter undefined space, which resolves
both the effect of infinite space being an endless mana drain for the
defined universe, and it (eventually) being an infinite source of
background mana.  

> My reason for asking is that I've been thinking of mapping flora and
> fauna motions/migrations to a global coordinate system which may
> include points not accessible or defined by local areas.  That is
> until they are properly built or defined.

This centers on the debate I've been argueing with myself.  To date my 
basic model has been of the the server-representated game-world being
a simulation whose contents are defined entirely by the contents of
the game world (that not as tautalogic as it looks).  As such there
are no virtual objects, "swapped out" objects or areas which are later 
computed into their then current state to be instantiated etc.  The
world is exactly as it is in the DB, and the entire DB is animated to
render the progress of the world over time.

There are simplistic if expensive benefits to this approach.  It is
nearly a classically closed system, and it has the huge benefit of the
assurance that everything that happens within the world, originated
within the world (think what a relief that is for economic modelling).
The problem is that the only way to get the "Big World" or the "Big
Picture" effects is to implement the entire Big World, or Big Picture.
That's a lot of work and I'm terminally lazy.

Soo, you could use some sort of virtual or logical objects which are
computed in abstentia and then only rendered and instantiated when
they enter the "real world".  A neat, simple, time honoured technique
that introduces a relly painful side effect: External sources can now
interject erroneously computed results into your game world without
having to satisfy the mechanics of your game world to do so.  Of a
sudden you no longer have a closed system, and you can no longer
guarantee correctness at a global level.  

You can try and extend your game mechanics to the global picture (all
the virtual stuff as well), and then merely have the boundaries of
your defined world instantiate and de-instantiate objects as they are
computed to have entered or left your defined universe (call this the
"global-closed" system).  .

  Look Ma!  I'm a virtual ghost!

  [Takes step to left]

  Look Ma!  I'm a mean vicious monster!

  [Takes step to right]

  Look Ma!  I'm a virtual ghost!

If you go this way you can still guarantee global correctness, but you
can also no longer guarantee that portions of your undefined universe
won't become vast logical resource pits which render your defined
world a desert.  With the closed system this can't happen -- any
resource pits are precisely that: resource pits which can then be
actively mined by the rest of the system, and most particularly, by
players.  Additionally with the closed system, such resource pits are
easily deduced, located and analysed as they exist as physical
instantiated objects.  It is far far more difficult to locate such
resource pits in the global closed system as they are now merely
uninstantiated logical entities, topical numbers plugged into an
equation.  

This latter problem can be resolved thru use of the correct data
structures for the uninstantiated resource web.  I've yet to think of
such a data structure however that does not create more problems than
it solves however.

--
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-archive mailing list