[MUD-Dev] Resource management

clawrenc at cup.hp.com clawrenc at cup.hp.com
Wed Sep 17 13:47:28 CEST 1997


In <199709122248.AAA19728 at xs1.simplex.nl>, on 09/12/97 
   at 04:03 PM, "Felix A. Croes" <felix at xs1.simplex.nl> said:

>clawrenc at cup.hp.com wrote:
>> In <199709090625.BAA01336 at dfw-ix2.ix.netcom.com>, on 09/08/97 
>>    at 11:27 PM, "Jon A. Lambert" <jlsysinc at ix.netcom.com> said:

>> >You
>> >also mention your desire to be able to run queries into how many of
>> >X where killed by means of Y, etc.  I've always wondered how 
>> >effectively one could administrate a mud without any notion of what's
>> >actually going one inside the world, especially these critical 
>> >resources.  
>>
>> I'll note that I know of no current MUD servers (LP, DIKU, Tiny-*,
>> MOO, Unter, Uber, Yama, DGD, OgHam, Merc, Interlude, Cool, ColdX etc)
>> which have anything along this line of audit facilities.

>DGD, or rather the kernel library (core database) that's included
>with DGD has a generic resource management system.  Also, LambdaMOO
>has object size quotas.

I haven't had a chance to look at DGD's setup.  I'm well familiar with
LambdaMOO's quotas.  What I'm looking for more is an audit system
which allows querying (either directly of the DB, from logs, or
whatever) to locate and fix game flaws (balance etc).  The sample
query I've usually given for this sort of thing is:

  Show me every player which has killed mobile XXX, cross-referenced
with each weapon and spell he used in that fight, listing the amount
of damage done by that item, and crossed with a similar list of other
players/items who assisted in killing XXX within 3 minutes prior to
XXX's death.

>The resource system allows definition of new resources on the fly, as
>well as removal of existing ones.  Anything can be made into a
>resource, including the amount of programmer-defined resources. All
>resources are defined system-wide, so each programmer has the same
>resources, but imposed limitations may differ, and can be adjusted on
>the fly.  The maximum for each resource may be "infinite".

>Per programmer, resource usage measurement can be more fine-grained,
>for instance per object.

>It is up to the admin of the mud to use the resource management
>system where needed, and to ensure that money cannot be brought into
>the game without updating the relevant resources, etc.

I've adopted slightly different key assumptions for my resource sets:

  1) The set sum of all resources for the entire world will always be
zero.

  2) Creation of any resource will always create an equal and opposite
resource to maintain the balance.

  3) Resources of opposite type mutually self-destruct on contact.

  4) Resources may be mutated into other/different types.  Such
mutations are expensive (typically involve the destruction of other
resources), but will always maintain the zero sum.

  5) Actions and objects may consume resource objects only by emitting
other resource types to maintain the balance, or by consuming a
balanced diet of resource objects (may be of different types, eg +ve
mana and -ve life in an appropriate ratio).

One of the key side effects of this is that there are no more
ceilings.  I do make the cost of increasing a local divergance from
zero geometrically expensive (creating 50 mana locally is cheap, the
next 50 are not so cheap, another 50 10,000 particles later is
incredibly expensive).  The keep things fun the mutation costs for
resource particles (transform one resource into another) are cheaper
than the creation costs).  This will hopefully result in a fairly
level resource spread across the world (steady state) with occassional
(not too difficult to create) massive peaks and holes as players do
their thang.

Or, to repeat the mantra:

  Everything is absolutely normal, just like everywhere else, except
where its not normal, in which case its *really* not normal.

I predict that I'm going to have to spend a fair while tinking to get
the system to be suitably aggressive in returning to its steady/null
state without making it too difficult to create the peaks and valleys.

--
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