<!-- MHonArc v2.4.4 --> <!--X-Subject: RE: [MUD-Dev] Game Economies --> <!--X-From-R13: "Ybfgre, Dncu" <exbfgreNbevtva.rn.pbz> --> <!--X-Date: Thu, 10 Jun 1999 09:14:22 -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> [ <a href="../">Other Periods</a> | <a href="../../">Other mailing lists</a> | <a href="/search.php3">Search</a> ] <br clear=all><hr> <!--X-Body-Begin--> <!--X-User-Header--> <!--X-User-Header-End--> <!--X-TopPNI--> Date: [ <a href="msg00701.html">Previous</a> | <a href="msg00703.html">Next</a> ] Thread: [ <a href="msg00825.html">Previous</a> | <a href="msg00829.html">Next</a> ] Index: [ <A HREF="author.html#00702">Author</A> | <A HREF="#00702">Date</A> | <A HREF="thread.html#00702">Thread</A> ] <!--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>'" <<A HREF="mailto:mud-dev#kanga,nu">mud-dev#kanga,nu</A>></LI> <LI><em>Subject</em>: RE: [MUD-Dev] Game Economies</LI> <LI><em>From</em>: "Koster, Raph" <<A HREF="mailto:rkoster#origin,ea.com">rkoster#origin,ea.com</A>></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> > -----Original Message----- > From: Ross Nicoll [<A HREF="mailto:rnicoll#lostics,demon.co.uk">mailto:rnicoll#lostics,demon.co.uk</A>] > Sent: Thursday, June 10, 1999 6:48 AM > To: mud-dev#kanga,nu > Subject: RE: [MUD-Dev] Game Economies > > > On Wed, 9 Jun 1999, Caliban Tiresias Darklock wrote: > > > I started thinking about this sort of thing for UU to make > up for the > > open-ended playerbase, but I saw some problems when I > really examined the > > concept: > [snip] > > Actually, a thought occurred to me. Everyone is assuming that just the > players and the cities they're in are given an economy. What > if you give > everything an economy? Let's say the players start hoarding massive > amounts of gold. There are a dragon in a mountain nearby that suddenly > discovers it has much less gold than it would like, so it flies off, > 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 & 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. > Or, in the case of more sentient monsters (orks, kobolds, > whatever), you > could have a whole economy for them too, and they could > organise raiding > 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 <recuperating#home,com></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> [ <a href="../">Other Periods</a> | <a href="../../">Other mailing lists</a> | <a href="/search.php3">Search</a> ] </center> <hr> </body> </html>