Phantasmal MUD Lib for DGD

Phantasmal Site > DGD > Game Design Issues > In-Game Economies

In-Game Economies and Game Design

From DGD Mailing List  Thu Aug 19 09:10:01 2004
From: DGD Mailing List (Stephen Schmidt)
Date: Thu Aug 19 09:10:01 2004
Subject: [DGD] Object house-keeping and persistance

On Thu, 19 Aug 2004 Birgit Schulte wrote:
> I am wondering about ways to make sure the number of unused / discarded
> objects in a persistant mud doesn't go through the roof.

This is a comment more from the perspective of game design than
of mudlib design, but hopefully the latter follows from the former.

In a persistant MUD, why would there be a discarded object?
Maybe no player is carrying it, but it's got to be lying
around in the game world somewhere. Unless it's actually
been destroyed, but in that case it should be removed from
memory too. Or if it's been destroyed by turning it into
some other kind of object (the monster body turns into a
monster corpse, the Ring of Power turns into a puddle of
slag) then the old object gets deleted from memory and
replaced by the new one.

I think the way to deal with this is by controlling the
creation of new objects very carefully. In a really, really
persistent world, new objects would -never- be created, at
least not without being transformed from old objects. For
example, to forge the sword, you have to have the lump of
iron, and when the sword is created, the lump of iron is
destroyed, leaving total objects in memory unchanged.

Of course, if players are in the habit of leaving swords
lying around the lib, and you can't create new ones, then
the stores may run short. There will need to be some way
to find abandoned objects and return them to circulation
somehow. The old clean_up() type mechanism could be put
to this use in a persistant framework. In any event, I'd
want there to be a system within the game concept of how
items get recycled in this fashion. What that system would
be would depend on your game concept.

Or are we, perhaps, talking not about objects within the
game, but about objects like daemons that are not visible
to the players, but come in and out of existance to handle
certain tasks behind the scenes? In that case, delete the
suckers from memory when their task is complete.

Steve



From DGD Mailing List  Thu Aug 19 10:07:01 2004
From: DGD Mailing List (Stephen Schmidt)
Date: Thu Aug 19 10:07:01 2004
Subject: [DGD] Object house-keeping and persistance

On Thu, 19 Aug 2004 Birgit Schulte wrote:
> [ quoting out of sequence ]
> Also, I am still getting used to the idea of real persistance,
> meaning I am not yet used to code with that firmly embedded in my mind.

I've been thinking about persistance, on and off, for six years
and it still isn't firmly embedded in my mind :)  It is amazing
to me how fundamental a difference it makes.

> Guess when I'm saying unused I somehow think more of objects
> cloned / created by coders when working on some part of the world,
> as opposed to working in their own working-dir.

Fair enough. But in a truly persistant mud, you may not even
have coders anymore. It'll be very awkward to have new areas
opening up in a persistant world. Where do the objects that
fill those new areas come from? I think persistence tends to
work better if the game world is already there, at least in
outline form, and development happens within the context of
the game - quite possibly being done by the players rather
than by the development staff. That is, the job of the
developer is to build an enormous set of rooms saying "You
are in a forest", "You are in open plains", etc. If someone
wants to build a town there, let the players build it
themselves (and give them commands to do it, within
resource limits that are defined within the game system).

That said, that's an long-run vision; in the short run you
are probably still going to have coders. The fix here,
probably, is to mark each room that is not part of the
game world with a flag. Any object left in such a room
gets removed via a traditional clean_up mechanism. You
need not start the clean-up mechanism in any object which
is created in the game world - that would waste a lot of
CPU. Activate it when the object enters a non-game-world
room. You probably also want some way to prevent an object
created outside the game world from entering the game
world, too.

Steve



From DGD Mailing List  Thu Aug 19 11:35:01 2004
From: DGD Mailing List (Jas)
Date: Thu Aug 19 11:35:01 2004
Subject: [DGD] Object house-keeping and persistance

Stephen Schmidt wrote:

>Fair enough. But in a truly persistant mud, you may not even
>have coders anymore. It'll be very awkward to have new areas
>opening up in a persistant world. Where do the objects that
>fill those new areas come from? I think persistence tends to
>work better if the game world is already there, at least in
>outline form, and development happens within the context of
>the game - quite possibly being done by the players rather
>than by the development staff. That is, the job of the
>developer is to build an enormous set of rooms saying "You
>are in a forest", "You are in open plains", etc. If someone
>wants to build a town there, let the players build it
>themselves (and give them commands to do it, within
>resource limits that are defined within the game system).
>
>  
>

Personally, I would see the job of the developer(s) of player-alterable 
persistent worlds mostly the way you describe it, with one slight 
modification:  all of the physical resources (versus objects) that will 
EVER exist in the game should exist in the game from the beginning of 
time, in the form of natural resources to be harvested, refined or 
processed, or utilized in the creation of player-manufactured 
objects.... OR, and here's where things get fairly complicated, consumed 
as fuel to create energy.

"Matter and energy is neither created nor destroyed."

Keep chanting that mantra, and everything in the game should have a 
matter or energy value.  The formula for the combined matter and energy 
values should remain a constant throughout the duration of the game.

So, a player mines coal, harvesting a specific matter value.  The coal 
is used as fuel source in an engine which converts the specific matter 
value to a specific energy value during the buring process, but ALSO 
requires a specific energy value to combust the matter in the first 
place.  The burning coal then drives an engine that uses that energy to 
refine another raw material for player use.  No engine runs at 100% 
efficiency, so some energy is converted to heat loss from the engine, 
which enters the atmosphere and returns to the cycle eventually.

So, matter gets converted to energy, which is then used to convert 
matter.  All the while, the value of the formula of all existing matter 
and energy in the universe has not changed.

Yes, this gets painfully complicated in a hurry, but it can be done.  It 
helps if you understand physics and quantum mechanics, but this is where 
I see possibilities for (mostly) "hands off" management of a persistent 
world.

>You probably also want some way to prevent an object
>created outside the game world from entering the game
>world, too.
>
>  
>

This no longer becomes a problem, once you make sure that matter and 
energy is neither created nor destroyed.  As long as the value of the 
formula for all of the existing matter and energy in the universe 
remains constant, no matter and/or energy spent = nothing produced.

Of course, all of this looks great on paper, but engineering the game 
library to do this no trivial matter.

If you CAN do it right, basically if you can get the formula for all of 
the combined matter and energy in existence tuned well, you should never 
have to worry about managing the game's creation process again.

And, if you happen to not like a structure a player has built using the 
matter and energy they had in their possession, use some of your own 
matter and energy (bulldozer = matter, diesel fuel = converts to energy) 
to change the landscape to your liking.

There's nothing written anywhere I can find that says a game 
administrator can't stockpile some of the universe's matter and/or 
energy for their own purposes (to use to maintain the peace or rule with 
an iron fist, your choice of course ).  World leaders have been doing 
that for thousands of years, and it seems to work quite well!

>Steve
>
>  
>

Cheers,
Jason D. Bourgoin
aka Katmandu


From DGD Mailing List  Thu Aug 19 11:50:01 2004
From: DGD Mailing List (Stephen Schmidt)
Date: Thu Aug 19 11:50:01 2004
Subject: [DGD] Object house-keeping and persistance

On Thu, 19 Aug 2004, Jas wrote:
> [A]ll of the physical resources (versus objects) that will
> EVER exist in the game should exist in the game from the beginning of
> time, in the form of natural resources to be harvested, refined or
> processed, or utilized in the creation of player-manufactured
> objects.... OR, and here's where things get fairly complicated, consumed
> as fuel to create energy.
> "Matter and energy is neither created nor destroyed."

Hm. But the second law of thermodynamics? Should one allow
for entropy, that is, the quantity of -usable- energy in
the game universe to decrease?

Of course, that could be problematic from a player standpoint.
"Welcome to Heat-Death MUD! See if you can make level 20 before
the universe achieves a uniform distribution of energy!"

:)

> There's nothing written anywhere I can find that says a game
> administrator can't stockpile some of the universe's matter and/or
> energy for their own purposes (to use to maintain the peace or rule with
> an iron fist, your choice of course ).  World leaders have been doing
> that for thousands of years, and it seems to work quite well!

True, although for testing purposes (which is what I think
the original question was about) you might need to have a
separate stash. Otherwise you would have to do warning
messages like:

** All Players: The Wizard Oppenheimer is about to test his new
** object, "Nuclear Pile". He is requisitioning 74% of the world's
** available energy to test this object. Please lie down and don't
** move until the test is complete.

That is, things which are happening outside the game world
(ie, in the wizard's workroom) should not use the game world's
matter and energy; either they should bypass the matter/energy
rules or they should have an independent source (which can
be increased as needed).

Also, one probably needs to have some ability to increase the
world's supply of matter/energy as the player database grows;
that violates the persistance idea to some extent too, but
if one doesn't allow new players to join, what's the point?
Eventually the player base would probably reach a steady
state, solving the problem, but in the growth phase prior
to that steady state, adjustments would be needed.

Steve




From: DGD Mailing List (Jas)
Date: Thu Aug 19 12:27:00 2004
Subject: [DGD] Object house-keeping and persistance

Stephen Schmidt wrote:

>Hm. But the second law of thermodynamics? Should one allow
>for entropy, that is, the quantity of -usable- energy in
>the game universe to decrease?
>

My take on entropy is that the word "usable" should be replaced with the 
phrases "we're not entirely sure how we can tap into it, at this point 
in time and with our existing technology and with our current 
understanding of the universe, so it's currently not usable to us."

Nature finds a way of recycling.  I believe that if human beings manage 
to survive as a species for a few zillion more years, we might just 
witness some of that "unusable" energy trickling back into circulation.

But that's a bit off topic, so we'll leave that to debates between grad 
students.

For the sake of *relative* simplicity while talking about game 
mechanics, let's temporarily assume that all matter and energy is available.

>Of course, that could be problematic from a player standpoint.
>"Welcome to Heat-Death MUD! See if you can make level 20 before
>the universe achieves a uniform distribution of energy!"
>

And that is a bad thing... how exactly?  Oh, you WANT people to survive 
in your universe.  Uh, okay.  Never mind, heh.

Semi-seriously, as it can be argued that all human beings are world 
citizens each responsible for doing our part to save our shared 
ecosystems, so it could be argued that every player in your mock 
universe has a role to play in reversing whatever impending cataclysm 
you have in store for them (or that are a natural consequence of poor 
resource utilization and/or environmental management).

Something like that could easily be worked into the game much like a 
quest, but on a grander scale.  Make finding a prevention or cure for 
whatever current environmental disaster is ravaging (or planning to 
ravage) the universe be the final task to complete before giving the 
player additional powers and/or responsibilities upon reaching levels 
traditionally reserved for wizhood and coding access.

If they get nothing else from completing the quest, they'll gain a 
better understanding of how the matter and energy in your simulated 
universe is tied together in a delicate balance.  That might not be a 
bad lesson for your up-and-coming developer/management staff to comprehend.

Of course, I still don't know if I'd let people code; just because they 
can macro the crap out of your mobile programs, doesn't mean they can't 
also bring your game to its knees once you give them an editor and the 
ability to load objects.  This is all in the context of a 
player-alterable persistent universe where we'll assume that matter and 
energy can neither be created nor destroyed, of course.  And that 
entropy is (temporarily) ignored or overlooked, for relative simplicity.

>True, although for testing purposes (which is what I think
>the original question was about) you might need to have a
>separate stash. Otherwise you would have to do warning
>messages like:
>
>** All Players: The Wizard Oppenheimer is about to test his new
>** object, "Nuclear Pile". He is requisitioning 74% of the world's
>** available energy to test this object. Please lie down and don't
>** move until the test is complete.
>

The solution to that "problem" is easy:  make your game universe large 
enough at the get-go to provide enough matter and energy for players AND 
developers for the entire anticipated lifetime of the game.

>That is, things which are happening outside the game world
>(ie, in the wizard's workroom) should not use the game world's
>matter and energy; either they should bypass the matter/energy
>rules or they should have an independent source (which can
>be increased as needed).
>

Instead of giving your developers a traditional 
workroom/castle/whatever, give them a planet or a star or some other 
cosmic object (physically separate from the players) to maintain their 
source of matter and energy.  Let them be so many trillion years more 
technologically advanced than the players in your universe, so they've 
developed ways of tapping into the previously-unusable energy from entropy.

Human beings are always talking about how life from other planets or 
solar systems is likely so much more advanced than we are, 
technologically, so it wouldn't be that much of a leap of faith for your 
game management staff to fall into one of those categories.

>Also, one probably needs to have some ability to increase the
>world's supply of matter/energy as the player database grows;
>that violates the persistance idea to some extent too, but
>if one doesn't allow new players to join, what's the point?
>Eventually the player base would probably reach a steady
>state, solving the problem, but in the growth phase prior
>to that steady state, adjustments would be needed.
>

And the solution for that would be.... ?  Don't start your universe with 
a tiny source of matter and energy to begin with.  Make planets and 
stars and entire galaxies available to provide matter and energy.

Granted, you don't want your players to necessarily have immediate 
access to ALL of those resources, so make them difficult to reach beyond 
the planet they're currently on.  Much the same as we can't seem to keep 
a Mars rover from tipping over or losing communications with our 
scientists and engineers here on Earth, players in your simulated 
universe might encounter problems of their own while attempting to 
explore or colonize planets or systems beyond their own.  Terraforming 
should not be made easy, if you want your game to have any decent shelf 
life.

>Steve
>

Cheers,
Jason D. Bourgoin
aka Katmandu

From: DGD Mailing List (Stephen Schmidt)
Date: Thu Aug 26 11:20:01 2004
Subject: [DGD] GurbaLib

On this subject, one might wonder why it is that DGD doesn't
have a mudlib that offers more than mudlibs for other drivers,
since DGD offers so much more than other drivers. A few musings
on that subject follow.

The biggest thing DGD offers, from a game perspective, is
persistence. A game world can be altered by players and
the alterations will remain. This is not the only feature
in which DGD outstrips other drivers, but I think it's the
one most visible to players of games running on DGD.

Unfortunately, for the typical fantasy adventure, this is
a drawback rater than a gain. After the player kills the
goblin king, the game is over until the game resets and
the goblin king magically springs back to life. Similarly
for recovering lost treasures, rescuing princesses, and
so forth. It is bad for the game, not good, if these
things are permanent achievements.

One can try to design features into the game to "explain"
resetting of the game world, but that approach is counter
to the idea of persistence. What's the use of using a
persistent driver if all you're going to do is put
non-persistent behavior back in via the game design?
Also, the mechanisms needed to explain the resets within
a consistent story line are complex.

What DGD needs (needs in the public domain, anyway; Skotos
is outside the scope of my comments here, and I'm not
terribly familiar with it anyway - if someone who is
wanted to comment on its relation to this topic, I think
that'd be great) is a "killer app", a game concept that
isn't traditional fantasy adventure and that uses persistence
as a fundamental of the game design. DGD ought not try to
compete on the tradition grounds of LPMud - its feature
set inherently pulls it in a different direction.

The reason traditional fantasy adventure works with resets
is that the players are a small part of the game world
anyway; they don't have important roles in the society
in which the game is set. Thus, if their acts are
impermanent, it doesn't matter much.

The DGD "killer app" game should reverse that. Players
should be important people in the society of the game
world, capable of taking acts which alter that society,
which are then reflected in the game world through the
persistence of DGD. For example, building a castle
which would then attract NPCs to form a town around it.
Or destroying a castle and dispersing the town. Or
something similar in whatever setting you do like, if
you don't like fantasy adventure.

Steve

|The DGD "killer app" game should reverse that. Players
|should be important people in the society of the game
|world, capable of taking acts which alter that society,
|which are then reflected in the game world through the
|persistence of DGD. For example, building a castle
|which would then attract NPCs to form a town around it.
|Or destroying a castle and dispersing the town. Or
|something similar in whatever setting you do like, if
|you don't like fantasy adventure.
|
|Steve

Very nicely written!

I'd like to add my two cents to this thread by saying that you don't
have to have things as black or white.  The traditional mud is based
around resets and a facet/drain economy -- one where players "harvest"
mobs for gold, which is then drained away again by equipment,
training, and other in-game perks.  The ultimate result of this kind
of structure is the "level grind", where players are forced to kill
hundreds or thousands of the same kind of creature until they are
powerful enough to move on to the next area, and repeat the process
until they reach the plateau where no further content is available to
them.

A fully persistent world with NO resets and a fully closed economy
would, as Steve points out, require a constant staff of admins to
create new content on the fly, else the players would exhaust what
exists in the world and discover a virtual "heat-death" of the game.

To find a middle-ground, we need to try something new.  One idea I had
ages ago (and I'm sure many others have through of this too) is to
allow mobs to spawn and evolve in reaction to each other as well as
player activities.  That is, when you start the clock, the orcs in the
mountains will gradually start wandering, as will the goblins in the
forest.  At some point, they may encounter one another.  If they do,
they can either fight one another over resources, or ally themselves
for some other (coded) goal.  Maybe they both worship the same deity
and team up to further those ends.

In any case, when players start running into mobs, and killing them
for loot, the mobs shouldn't just die and reappear... but neither
should they be forever destroyed until a game master creates new
ones.  Allow for the idea that the event was witnessed.  If a band of
orcs gets killed near a city, perhaps a straggler watched and reported
back to camp.  Maybe the orcs will mass and attack the town if it
happens often enough, or maybe they will pick up and move further
away... allowing the city to expand, or a new enemy to move in.

Thus, persistence is maintained in the sense that if there was a
goblin camp near the city, that camp remains until it is destroyed or
packs up and moves away... and that it doesn't just reappear if
something happens.  But at the same time, nothing prevents new mobs
from moving into the area, either by the hand of a game master, or by
some code that decides a new tribe or orcs might be needed (as the orc
population is now too low, and the human population hasn't filled the
void).

I also totally agree that the players need to be more than cogs in the
wheel.  If the best you can hope for is to kill stuff to get more
equipment, to kill more stuff... you're in level-grind land, and may
as well toss out persistence.  In that respect, I think players need
to grow and shape the world alongside the game masters.  They should
be able to spend their wealth to build housing, and expand the city
borders.  Work to establish a new village somewhere, and set up trade
routes that need to be patrolled so the merchants (both NPC and
player) don't get ambushed by bandits (both NPC and player!).  Perhaps
players can engage in competition for nation-building as they (and
their guilds or other organizations) become really powerful (I'm
thinking along the lines of the old text game conquer, or empire).

So, the big question then is... how can we build a mudlib that allows
and encourages that kind of thing?  A persistent world that can still
evolve and populate itself without constant GM handholding, but which
can be micro-managed by a staff who wants a tight storyline to
develop?  I'm too much of a n00b at LPC to have any answers here, but
I 'd love to hear what other people think.

PS:  Sorry if this gets double-posted.  I didn't realize I had subscribed
under my old email address and tried to post it from my new one.  Since it
hadn't shown up yet, I figured I'd just repost as it's not THAT long. :)

-- From: Dread Quixadahl (sp?)