1999Q2/
<!-- MHonArc v2.4.4 -->
<!--X-Subject: RE: [MUD&#45;Dev] Game Economies -->
<!--X-From-R13: "Ybfgre, Dncu" <exbfgreNbevtva.rn.pbz> -->
<!--X-Date: Thu, 10 Jun 1999 09:14:22 &#45;0700 -->
<!--X-Message-Id: 11A17AA2B9EAD111BCEA00A0C9B417930210C3FA#forest,origin.ea.com -->
<!--X-Content-Type: text/plain -->
<!--X-Head-End-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title>MUD-Dev message, RE: [MUD-Dev] Game Economies</title>
<!-- meta name="robots" content="noindex,nofollow" -->
<link rev="made" href="mailto:rkoster#origin,ea.com">
</head>
<body background="/backgrounds/paperback.gif" bgcolor="#ffffff"
      text="#000000" link="#0000FF" alink="#FF0000" vlink="#006000">

  <font size="+4" color="#804040">
    <strong><em>MUD-Dev<br>mailing list archive</em></strong>
  </font>
      
<br>
[&nbsp;<a href="../">Other Periods</a>
&nbsp;|&nbsp;<a href="../../">Other mailing lists</a>
&nbsp;|&nbsp;<a href="/search.php3">Search</a>
&nbsp;]
<br clear=all><hr>
<!--X-Body-Begin-->
<!--X-User-Header-->
<!--X-User-Header-End-->
<!--X-TopPNI-->

Date:&nbsp;
[&nbsp;<a href="msg00701.html">Previous</a>
&nbsp;|&nbsp;<a href="msg00703.html">Next</a>
&nbsp;]
&nbsp;&nbsp;&nbsp;&nbsp;
Thread:&nbsp;
[&nbsp;<a href="msg00825.html">Previous</a>
&nbsp;|&nbsp;<a href="msg00829.html">Next</a>
&nbsp;]
&nbsp;&nbsp;&nbsp;&nbsp;
Index:&nbsp;
[&nbsp;<A HREF="author.html#00702">Author</A>
&nbsp;|&nbsp;<A HREF="#00702">Date</A>
&nbsp;|&nbsp;<A HREF="thread.html#00702">Thread</A>
&nbsp;]

<!--X-TopPNI-End-->
<!--X-MsgBody-->
<!--X-Subject-Header-Begin-->
<H1>RE: [MUD-Dev] Game Economies</H1>
<HR>
<!--X-Subject-Header-End-->
<!--X-Head-of-Message-->
<UL>
<LI><em>To</em>: "'<A HREF="mailto:mud-dev#kanga,nu">mud-dev#kanga,nu</A>'" &lt;<A HREF="mailto:mud-dev#kanga,nu">mud-dev#kanga,nu</A>&gt;</LI>
<LI><em>Subject</em>: RE: [MUD-Dev] Game Economies</LI>
<LI><em>From</em>: "Koster, Raph" &lt;<A HREF="mailto:rkoster#origin,ea.com">rkoster#origin,ea.com</A>&gt;</LI>
<LI><em>Date</em>: Thu, 10 Jun 1999 10:36:12 -0500</LI>
<LI><em>Reply-To</em>: <A HREF="mailto:mud-dev#kanga,nu">mud-dev#kanga,nu</A></LI>
<LI><em>Sender</em>: <A HREF="mailto:mud-dev-admin#kanga,nu">mud-dev-admin#kanga,nu</A></LI>
</UL>
<!--X-Head-of-Message-End-->
<!--X-Head-Body-Sep-Begin-->
<HR>
<!--X-Head-Body-Sep-End-->
<!--X-Body-of-Message-->
<PRE>


&gt; -----Original Message-----
&gt; From: Ross Nicoll [<A  HREF="mailto:rnicoll#lostics,demon.co.uk">mailto:rnicoll#lostics,demon.co.uk</A>]
&gt; Sent: Thursday, June 10, 1999 6:48 AM
&gt; To: mud-dev#kanga,nu
&gt; Subject: RE: [MUD-Dev] Game Economies
&gt; 
&gt; 
&gt; On Wed, 9 Jun 1999, Caliban Tiresias Darklock wrote:
&gt; 
&gt; &gt; I started thinking about this sort of thing for UU to make 
&gt; up for the
&gt; &gt; open-ended playerbase, but I saw some problems when I 
&gt; really examined the
&gt; &gt; concept:
&gt; [snip]
&gt; 
&gt; Actually, a thought occurred to me. Everyone is assuming that just the
&gt; players and the cities they're in are given an economy. What 
&gt; if you give
&gt; everything an economy? Let's say the players start hoarding massive
&gt; amounts of gold. There are a dragon in a mountain nearby that suddenly
&gt; discovers it has much less gold than it would like, so it flies off,
&gt; attacks a nearby village, and grabs whatever it can.

At the risk of sounding like a broken record, this is what UO's original
design was intended to do.

So let me try to supply some meat on this that's probably of interest to the
list (I may have described this before, but it's certainly been a few
years):

Every object in the game was defined using "resources." These resources
could be materials (WOOD, CLOTH, METAL) or qualities (MAGIC, SPOOKINESS,
EVIL).

Every object in the game has a production rate, a production cap, and an
initial value of at least one resource, and perhaps many more than one. So
for example, a swor is x units of METAL, and never regrows if metal is
somehow chipped away. A sheep on the other hand, is made of X units of MEAT
(likewise, static) and X units of CLOTH (which serves as a standin for
wool--these are abstractions after all) that grows back at a fixed rate
should the sheep be sheared.

The map is covered with invisible objects representing the totals of
resources of various types within a given small section of map ("chunks," we
call them--they are 8 tiles by 8 tiles, and thes screen is 21x31 tiles, so
there are several to a screen). They build their list of resource
productions based off of the literal art in the chunk--so if the stone
texture is in that chunk, then each time represented adds 1 unit of METAL to
the total for the chunk, and if there are trees on the map there, then each
tree adds some units of WOOD, and so on. These objects always regrow their
resources.

Various tools allow basic harvesting of resources. You can use a shovel,
target stone texture, and it will extract METAL from the invisible "chunk
egg" and transfer it to the created pile of ore. Later on, a miner will use
a forge to transmute the ore into ingots. The amount of METAL remains
intact. Then a smith will use these ingots to create armor or weapons, each
of which requires a certain quantity of METAL resource. The process is lossy
because the smith may fail, ruining some of the ingots.

You can also take any sharp bladed object to any non-mobile and cut off
whatever it produces via a generic routine. So dressing a carcass, plucking
the feathers, etc, just check for the presence of MEAT or FEATHERS on the
corpse object...

Creatures have a more complex definition. They all produce resources just
like all objects do. But in addition, they have a basic set of rules
governing AI based around three additional resource rules based on Maslow's
hierarchy of needs.

Spawning of creatures was originally done based on surplus of food. In other
words, if there was an abundance of GRASS, then things that ate grass might
be spawned in the location where the abundance existed.

They have entries for what resources they seek for food, defined with amount
of it takes to meet their need and what minimum "bite size" they must find
it in. At its simplest, these rules simply read "look for something that
produces the food we want, kill it if it's moving, and transfer the
resources to limbo, incrementing their stomach. More complex rules included
"tackle stuff way larger or smaller than our bite size if we're starving and
desperate" etc. So rabbits ate the grass from the chunk eggs, then searched
around for the next chunk with grass, and so on. If they couldn't find
grass, they struck out in a random direction for a long while, then started
local searches again. And if stomach reached zero for a prolonged time, they
died.

They have entries for what sort of resources they seek for shelter. The
definition entry consisted of the resource type sought, the quantity
required, and a simple flag for whether or not the creature would consider
it a permanent home. You could thus make a fox that would consider FOREST to
be shelter, but really wanted CAVE for its lair. Once a home was a
established, looted items would be brought back to the lair and guarded.
Likewise, aggression code &amp; the like was lair-dependent.

Herbivores had an interesting thing whereby they desired what they ate. So
they actually sheltered in GRASS and then ate their home, forcing them to
become migratory herds.

Lastly, the desires field covered non-subsistence stuff. This was stuff like
types of loot desired. This is the stuff that would get carried back to the
lair. A desire for SELF activated the pack behavior code, in which whenever
one mobile desiring SELF found another, the two were treated as one mobile
for the purpose of this AL system, and one of the two was selected as the
"brain."

A toggle flag allowed you to convert desires into aversions. All creatures
have natural aversions to anything that eats them. In addition, you could
specify an aversion to say, MAGIC, as being "stay away" or as being, "hate
this so bad you kill it on sight."

There were also reproduction rules dependent on levels of satisfaction of
the above needs. The regrow of resources on an object was dependent on its
level of satisfaction also. So for a sheep to regrow its wool, it needs to
be fed and sheltered. A cute silly example: you could define an apple tree
as a mobile producing FRUIT and needing HUMAN as shelter--and unable to
move. An apple tree in the woods would be unhappy and therefore not regrow
its productions. An apple tree that was in a park where people walked by
would bear fruit.

&gt; Or, in the case of more sentient monsters (orks, kobolds, 
&gt; whatever), you
&gt; could have a whole economy for them too, and they could 
&gt; organise raiding
&gt; parties against human cities...

Define an orc as desiring gold, weapons, and self. Shelter in forest
(non-lair) and ruins (lair). Eat meat. Aversion to GOOD, or maybe HUMAN, I
dunno, whatever suits your fiction.

The problems:

- orcs rarely lived long enough to form a group. Possible solution: spawning
them in groups to start with.
- spawns of creatures--the method used didn't create populations, it created
lots of individuals. It didn't feel coherent.
- It was all tied into a closed economy of resources. In retrospect, this
was a mistake--living matter should not be in a closed loop.
- It wasn't visible. Yeah, players saw packs of wolves tearing up rabbits.
They saw deer running from people. They saw orcs grab gold from corpses. But
large scale behaviors never seemed to emerge, probably because of all of the
above.

BTW, yes, the game economy proper used this too, obviously.

-Raph


_______________________________________________
MUD-Dev maillist  -  MUD-Dev#kanga,nu
<A  HREF="http://www.kanga.nu/lists/listinfo/mud-dev">http://www.kanga.nu/lists/listinfo/mud-dev</A>


</PRE>

<!--X-Body-of-Message-End-->
<!--X-MsgBody-End-->
<!--X-Follow-Ups-->
<HR>
<ul compact><li><strong>Follow-Ups</strong>:
<ul>
<li><strong><A NAME="00829" HREF="msg00829.html">[MUD-Dev] Different approaches?</A></strong>
<ul compact><li><em>From:</em> Dani Dumitrescu &lt;recuperating#home,com&gt;</li></ul>
</UL></LI></UL>
<!--X-Follow-Ups-End-->
<!--X-References-->
<!--X-References-End-->
<!--X-BotPNI-->
<UL>
<LI>Prev by Date:
<STRONG><A HREF="msg00701.html">Re: [MUD-Dev] Re: MUD-Dev digest, Vol 1 #93 - 27 msgs</A></STRONG>
</LI>
<LI>Next by Date:
<STRONG><A HREF="msg00703.html">Re: [MUD-Dev] Gender and Mud Development (drifting off topic again)</A></STRONG>
</LI>
<LI>Prev by thread:
<STRONG><A HREF="msg00825.html">Re: [MUD-Dev] Game Economies</A></STRONG>
</LI>
<LI>Next by thread:
<STRONG><A HREF="msg00829.html">[MUD-Dev] Different approaches?</A></STRONG>
</LI>
<LI>Index(es):
<UL>
<LI><A HREF="index.html#00702"><STRONG>Date</STRONG></A></LI>
<LI><A HREF="thread.html#00702"><STRONG>Thread</STRONG></A></LI>
</UL>
</LI>
</UL>

<!--X-BotPNI-End-->
<!--X-User-Footer-->
<!--X-User-Footer-End-->
<ul><li>Thread context:
<BLOCKQUOTE><UL>
<LI><STRONG>RE: [MUD-Dev] Game Economies</STRONG>, <EM>(continued)</EM>
<ul compact>
<ul compact>
<ul compact>
<ul compact>
<ul compact>
<ul compact>
<LI><strong><A NAME="00792" HREF="msg00792.html">RE: [MUD-Dev] Game Economies</A></strong>, 
Albert <a href="mailto:thecheezeman#earthlink,net">thecheezeman#earthlink,net</a>, Sat 12 Jun 1999, 20:29 GMT
<UL>
<LI><strong><A NAME="00793" HREF="msg00793.html">Re: [MUD-Dev] Game Economies</A></strong>, 
Jp Calderone <a href="mailto:exarkun#flashmail,com">exarkun#flashmail,com</a>, Sun 13 Jun 1999, 02:44 GMT
<UL>
<LI><strong><A NAME="00821" HREF="msg00821.html">Re: [MUD-Dev] Game Economies</A></strong>, 
Laurel Fan <a href="mailto:lf25+@andrew.cmu.edu">lf25+@andrew.cmu.edu</a>, Tue 15 Jun 1999, 18:02 GMT
<UL>
<LI><strong><A NAME="00825" HREF="msg00825.html">Re: [MUD-Dev] Game Economies</A></strong>, 
Albert <a href="mailto:thecheezeman#earthlink,net">thecheezeman#earthlink,net</a>, Wed 16 Jun 1999, 04:32 GMT
</LI>
</UL>
</LI>
</UL>
</LI>
</UL>
</LI>
</ul>
</ul>
</ul>
</ul>
</ul>
<LI><strong><A NAME="00702" HREF="msg00702.html">RE: [MUD-Dev] Game Economies</A></strong>, 
Koster, Raph <a href="mailto:rkoster#origin,ea.com">rkoster#origin,ea.com</a>, Thu 10 Jun 1999, 16:14 GMT
<UL>
<LI><strong><A NAME="00829" HREF="msg00829.html">[MUD-Dev] Different approaches?</A></strong>, 
Dani Dumitrescu <a href="mailto:recuperating#home,com">recuperating#home,com</a>, Thu 17 Jun 1999, 15:38 GMT
</LI>
</UL>
</LI>
<LI><strong><A NAME="00704" HREF="msg00704.html">RE: [MUD-Dev] Game Economies</A></strong>, 
Koster, Raph <a href="mailto:rkoster#origin,ea.com">rkoster#origin,ea.com</a>, Thu 10 Jun 1999, 17:28 GMT
</LI>
<LI><strong><A NAME="00718" HREF="msg00718.html">Re: [MUD-Dev] Game Economies</A></strong>, 
Greg Munt <a href="mailto:greg#uni-corn,demon.co.uk">greg#uni-corn,demon.co.uk</a>, Thu 10 Jun 1999, 22:18 GMT
<UL>
<LI><strong><A NAME="00736" HREF="msg00736.html">Re: [MUD-Dev] Game Economies</A></strong>, 
Matthew Mihaly <a href="mailto:diablo#best,com">diablo#best,com</a>, Fri 11 Jun 1999, 02:53 GMT
</LI>
</UL>
</LI>
</ul>
</LI>
</UL></BLOCKQUOTE>

</ul>
<hr>
<center>
[&nbsp;<a href="../">Other Periods</a>
&nbsp;|&nbsp;<a href="../../">Other mailing lists</a>
&nbsp;|&nbsp;<a href="/search.php3">Search</a>
&nbsp;]
</center>
<hr>
</body>
</html>