1998Q1/
<!-- MHonArc v2.4.4 -->
<!--X-Subject: Re: [MUD&#45;Dev]  MUD Economy -->
<!--X-From-R13: Eunja Vnycraal <znynpunvNvanzr.pbz> -->
<!--X-Date: Fri, 09 Jan 1998 21:10:55 +0000 -->
<!--X-Message-Id: Pine.SUN.3.96.980109150911.320E&#45;100000@sun38 -->
<!--X-Content-Type: text/plain -->
<!--X-Reference: 199801081954.MAA16775#user1,inficad.com -->
<!--X-Head-End-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title>MUD-Dev message, Re: [MUD-Dev]  MUD Economy</title>
<!-- meta name="robots" content="noindex,nofollow" -->
<link rev="made" href="mailto:malachai#iname,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="msg00148.html">Previous</a>
&nbsp;|&nbsp;<a href="msg00150.html">Next</a>
&nbsp;]
&nbsp;&nbsp;&nbsp;&nbsp;
Thread:&nbsp;
[&nbsp;<a href="msg00121.html">Previous</a>
&nbsp;|&nbsp;<a href="msg00157.html">Next</a>
&nbsp;]
&nbsp;&nbsp;&nbsp;&nbsp;
Index:&nbsp;
[&nbsp;<A HREF="author.html#00149">Author</A>
&nbsp;|&nbsp;<A HREF="#00149">Date</A>
&nbsp;|&nbsp;<A HREF="thread.html#00149">Thread</A>
&nbsp;]

<!--X-TopPNI-End-->
<!--X-MsgBody-->
<!--X-Subject-Header-Begin-->
<H1>Re: [MUD-Dev]  MUD Economy</H1>
<HR>
<!--X-Subject-Header-End-->
<!--X-Head-of-Message-->
<UL>
<LI><em>To</em>: <A HREF="mailto:mud-dev#null,net">mud-dev#null,net</A></LI>
<LI><em>Subject</em>: Re: [MUD-Dev]  MUD Economy</LI>
<LI><em>From</em>: Shawn Halpenny &lt;<A HREF="mailto:malachai#iname,com">malachai#iname,com</A>&gt;</LI>
<LI><em>Date</em>: Fri, 9 Jan 1998 16:10:48 -0500 (EST)</LI>
<LI><em>Reply-To</em>: Shawn Halpenny &lt;<A HREF="mailto:malachai#iname,com">malachai#iname,com</A>&gt;</LI>
</UL>
<!--X-Head-of-Message-End-->
<!--X-Head-Body-Sep-Begin-->
<HR>
<!--X-Head-Body-Sep-End-->
<!--X-Body-of-Message-->
<PRE>
On Thu, 8 Jan 1998, Adam Wiggins wrote:

&gt; [Shawn Halpenny:]

[ ... ]

&gt; &gt; All vendors could start out quite stupid (i.e. not having any idea
&gt; &gt; whatsoever about what an object is worth):  e.g. trading 1 kg of
&gt; &gt; steel for 1 kg of flour.  Then, as the local demand for steel rises,
&gt; &gt; the vendor would learn that he was initially trading steel for _way_
&gt; &gt; too little and then raise his "price").  Now that price is what needs
&gt; &gt; to be determined.  It's easy to say "You can have that sword if you
&gt; &gt; give me three good milk cows", but where does the frame of reference
&gt; &gt; for the comparison come from?  What makes the sword worth three cows?
&gt; 
&gt; I tend to think it's important for the shopkeepers to have a clear view
&gt; of what they are actually vending.  A few pawn shops/wandering merchants
&gt; can spice things up, but we tended to orient our shopkeepers around
&gt; actual crafts; they convert raw materials into sellable goods.  Thus,
&gt; a shopkeeper knows he needs x lbs of steel in order to make a breastplate
&gt; someone ordered.  If someone brings in steel in any form that he thinks
&gt; he can use, he'll buy/trade for it.  By a similar token, if someone
&gt; brings in a breastplate identical to one that they asked for and he feels
&gt; that it is up to snuff as far as quality, he'll buy it, polish it up, and
&gt; sell it to them, unless he has some sort of policy against selling
&gt; things he didn't craft himself.

In a recent post I said that I'd decided to do the same sort of thing
in addition to the trade of existing items.  Look there for some
thoughts on obtaining that clear view of the item in question as well
(which is complicated when free user programming enters the picture).

&gt; 
&gt; &gt; Perhaps vendors should keep track of what people have come in and
&gt; &gt; asked for but the vendor didn't have.  He doesn't even need to have
&gt; 
&gt; Well, for that matter, he should keep track of everything they ask
&gt; for, regardless of whether he has it or not.

Of course.  I was distinguishing between the things he doesn't have in
stock but are in demand (which should prompt him to modify his trade
practices to procure some if the demand is persistent enough) and the
things he does (or can make, which amount to the same thing, since if he
made it, he is likely selling it in his shop--does not preclude him selling
it to another shopowner elsewhere, though) and can readily trade to other
characters.  I say characters here meaning players and NPCs since I fully
expect the more intelligent mobiles to take advantage of shops as well.

&gt; &gt; any idea that it exists, just that someone asked for it.  This
&gt; &gt; requires that characters be able to walk into a store and ask for an
&gt; &gt; item the shopkeeper doesn't have.  Then the shopkeeper can wait until
&gt; &gt; someone trades him that desired item, or find another method of
&gt; &gt; obtaining some (trade caravans come to mind, amongst other avenues of
&gt; &gt; obtaining goods).  
&gt; 
&gt; A method is needed, of course, to weed out things that they don't want
&gt; to bother selling.  The blacksmith may say, 'Bah!  Why would I sell
&gt; such a thing?' when someone asks for a beanie.

This makes perfect sense but I left it unstated.  I think this shopkeeper
would have to be aware of every item name in the world to know if characters
were requesting something that exists or not.

&gt; This raises the question: could they change trades?  This is what you
&gt; seem to be going for with your stuff, which is, I think, kind cool.

Certainly.  In that same recent post I gave a few simple rules that would
govern a shopkeeper's motivation and the conditions under which he would
perhaps change trades.  Additional rules could determine what sort of trade
he would try, where he would attempt it, etc.

&gt; This depends a hell of a lot on how dynamic your world is.  If you create
&gt; all the characters by hand (traditional builder style) then I would think
&gt; probably not.  If you are going for a completely dynamic world (planting
&gt; the seeds and pressing the GO button, as JC suggests) then I'd think that
&gt; they would have to, in order for them to find their niche in the first
&gt; place.  Maybe different merchants would have different levels of flexibilty
&gt; with new lines of trade?  Ie you've got some that are ready to jump on any
&gt; bandwagon they think will make them cash, others that love what they do
&gt; and will never change, and everything inbetween, just like real life.

I anticipate the world being quite dynamic, but not so much that I just
drop the seeds, press GO and the whole machine chugs along.  I want to
design the very, very basic patterns so that things will run okay without
any tweaking and become more interesting the more extreme the conditions
(cf. the recent post's example of Bubba and the milk and cows).  So I guess
in a sense I'm seeding and then starting the whole thing.  I'm dreading,
though, doing all the stuff that will look behind-the-scenes to the casual
observer...

The thing is, vendors don't make any cash.  At the outset anyway, since I
haven't decided if money should be allowed to evolve (but with the trade of
user-programmed items, is there any way that money wouldn't evolve?).  So
in the case with no money, the shopkeeper has no incentive--he's just
following the rules set out by builders.  He neither cares if he does well
or not, nor even what he trades in.  This stuff could be mimicked, though,
for the benefit of observant players (e.g. Bubba's shop begins failing, his
wife leaves him and takes the kids, his dog dies, he contracts several
nasty diseases and jumps off a bridge).

As for vendor flexibility, it would devolve into writing the desired rules.
If a builder wants a shopkeeper who jumps at the smallest chance of doing
more business (perhaps that should be the metric of success if there is no
money?), he would simply write it that way.  As of yet, I'm not envisioning
a generic system for specifying these rules:  currently, everything would
still be done in the internal language (fine for me, but some builders
might like a more general way of specifying their shopkeeper's behavioral
patterns).

&gt; &gt; Given that, the above sword _could_ be worth three cows because ten
&gt; &gt; minutes before, someone came in and wanted some cows that the vendor
&gt; &gt; didn't have.  The question of what determines that the vendor _would_
&gt; &gt; trade like that still remains.  
&gt; 
&gt; Right.  Players could easily become merchants by making caravans between
&gt; cities in order to buy something that is cheap in one location and sell
&gt; it for a high price someplace it is sought after.  Entire games have
&gt; been based on this - Tradewars was probably the first I played like
&gt; this.

Precisely.

&gt; &gt; This entire economy would be trade-based.  User-created objects would
&gt; &gt; probably have to be untradeable to NPC vendors since the vendor would
&gt; &gt; have no way of gauging the object's utility (it would be too easy to
&gt; &gt; create a completely useless object that the vendor had never heard of
&gt; &gt; and thus get something for nothing).  Of course, if there was no
&gt; 
&gt; This depends how user-created objects work, exactly.  Are we talking
&gt; about new classes of items (ie, different functionality) created by
&gt; builders?  Or a more MOO-like environment where anyone can make anything
&gt; they want?  Or are we talking about some sort of IC creation system
&gt; whereby players can forge a sword with two hilts and six blades?

All objects have to be derived from another object.  Then the attributes
and methods can be changed as the user desires.  There is a cost associated
with this and the derived item will decay over time:  the more it differs
from its parent object, the faster it decays.  Currently, I'm oscillating
between decay forms:  the child object either gradually mutates back into
the same form as its parent (i.e. all attributes return to match those of
its parent and all new and overriden methods gradually disappear), and a
simple timer-based destruction--at time t+dt the thing vanishes.  Each has
its plusses, but I'm particularly attracted to the former because I think
it yields more observational fun:  Bubba with his very own carefully
crafted key to the bank vault, but as he walks to the bank he realizes that
it's turning back into the bag he created it from.

So, any of what you said above is possible.  The sword with two hilts and
six blades could be made and traded, but wouldn't last long once in use,
leading to a possible altercation between the vendor and the sod who
created it.

&gt; It seems to me that all of these except for the completely open-ended
&gt; MOO style thing (which probably wouldn't work anyhow in a system like
&gt; this) would be fine.  If someone makes a new sword, the blacksmith takes
&gt; a look at it and determines its worth based on how well crafted it is,
&gt; what materials its made of, how well taken care of it is, etc.

The methodology behind that is what I'm wrestling with.  Without
user-programming, it's a matter of comparing attributes like what you list
above.  With user-programming, the sword could be made of papier-mache
but does something magical whenever it hits someone.  I can't conceive of a
way for a vendor to determine that without the builder/user who created it
saying so.

                                                                  Assuming
&gt; you have a system this detailed (builders define quality, sharpness,
&gt; method of grip, length, weighting, materials and so forth on new weapons
&gt; they create) this should be no problem at all.  It works exactly the
&gt; same way in a non-builder system such as Orion and I have been gravitating
&gt; towards with our server; a weapon's value is defined by how it is used,
&gt; how well it is made, how sharp it is, etc - regardless of whether these
&gt; numbers were typed in by a builder or generated by the system when someone
&gt; forged it.

Exactly.  Not a problem if those attributes are defined and available to
the vendor.  When people can create objects willy-nilly, one can't be sure
anymore even of the attributes.  That's partly why I think the vendors will
have to, on some level, rely on the fundamental object type:  "Look's like
this sword used to be a hotel bar fridge...what're you trying to pull
anyway?".  I'm not sure, though, that that alone will give sufficient
indication into what that sword is worth when compared to the three cows
Bubba wants to trade it for.

I don't want to have to force builders to determine anything directly
concerning the worth of an item.  That worth will be based on variables
specified, so a builder is indirectly specifying the worth, but I
absolutely abhor the thought of "I'll make this 2d6 sword worth
20000 gold...that should be good."

&gt; &gt; demand for that bogus object, the shopkeeper would have no reason to
&gt; &gt; trade for it.  However, a user could then determine what objects the
&gt; &gt; shopkeeper would trade for (i.e. someone had previously come in and
&gt; &gt; tried to trade for something the vendor didn't have) and then go
&gt; &gt; create an empty shell of that object and trade it in, again getting
&gt; &gt; something for nothing.  Another argument can be made, though, that
&gt; 
&gt; I see this as no different from RL.  You *could* try to trade a hollow
&gt; sword, but as soon as the shopkeeper tested its weight he'd know it was
&gt; a fake.  Obviously this gets tougher in a higher-tech world, but I
&gt; still don't see any real problems.  Someone makes something which is supposed
&gt; to be a computer but is actually an empty metal box.  As soon as the
&gt; shopkeeper tries to boot it up, it does nothing, and he won't want to
&gt; buy it from you.  Long story short is that shopkeepers need to test
&gt; out objects given to them just as a player would.  Now, they can still
&gt; be dupped - a player could learn the methods by which they test, and come
&gt; up with something that would pass all the tests but still be a fake,
&gt; resulting in profit for the player.  I have no problem with this.

I've come to agree...see the aforementioned recent post.  And given that
there is an expense in creating an object from another, the entire
definition of profit is not very clear--particularly if it's not money that
it costs to create.

[ more about junk items snipped ]

[ shopkeepers as distributors, vendors, and originators of items ]

&gt; &gt; Given that, is there a requirement for a planned initial distribution
&gt; &gt; of objects to vendors to seed the economy somewhat?  Each vendor
&gt; &gt; would have to at least start with one item, or he'd have nothing to
&gt; &gt; trade (and there's no incentive for a player to trade anything to the
&gt; &gt; vendor if the vendor has nothing or just gives away his object for
&gt; &gt; free).  Is more than one item necessary for each vendor?  The paths
&gt; &gt; of future trade caravans can be started at this stage simply be
&gt; &gt; putting all the flour in one vendor's shop and all the milk and eggs
&gt; &gt; in another.  As long as the object given to the vendor is somewhat
&gt; &gt; desirable by at least one player, would things take off from there? 
&gt; &gt; Or could things just be dumped haphazardly on vendors and the result
&gt; &gt; (a semi-functioning economy) be the same?  Perhaps each would yield
&gt; &gt; something sustainable and interesting.
&gt; 
&gt; An economy cannot sustain based on people just trading things around
&gt; endlessly.  (Or, at least, it would be a fairly stale one.)  At
&gt; some point someone has to produce something, and someone else has to
&gt; consume something.  I think that everything you outline is great as long
&gt; as you already have a system for production and consumption set up;
&gt; your economy just becomes a method of distribution.

Quite true.  And I do have systems in mind, simple, but hopefully workable.
It's building them that takes the time.

-- 
Shawn Halpenny


</PRE>

<!--X-Body-of-Message-End-->
<!--X-MsgBody-End-->
<!--X-Follow-Ups-->
<HR>
<!--X-Follow-Ups-End-->
<!--X-References-->
<UL><LI><STRONG>References</STRONG>:
<UL>
<LI><STRONG><A NAME="00121" HREF="msg00121.html">Re: [MUD-Dev]  MUD Economy</A></STRONG>
<UL><LI><EM>From:</EM> Adam Wiggins &lt;nightfall#user1,inficad.com&gt;</LI></UL></LI>
</UL></LI></UL>
<!--X-References-End-->
<!--X-BotPNI-->
<UL>
<LI>Prev by Date:
<STRONG><A HREF="msg00148.html">Re: [MUD-Dev]  MUD Economy</A></STRONG>
</LI>
<LI>Next by Date:
<STRONG><A HREF="msg00150.html">Re: [MUD-Dev] World Seeding (was Task Parsing)</A></STRONG>
</LI>
<LI>Prev by thread:
<STRONG><A HREF="msg00121.html">Re: [MUD-Dev]  MUD Economy</A></STRONG>
</LI>
<LI>Next by thread:
<STRONG><A HREF="msg00157.html">Re: [MUD-Dev] MUD Economy</A></STRONG>
</LI>
<LI>Index(es):
<UL>
<LI><A HREF="index.html#00149"><STRONG>Date</STRONG></A></LI>
<LI><A HREF="thread.html#00149"><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]  MUD Economy</STRONG>, <EM>(continued)</EM>
<ul compact>
<ul compact>
<LI><strong><A NAME="00146" HREF="msg00146.html">Re: [MUD-Dev]  MUD Economy</A></strong>, 
Marian Griffith <a href="mailto:gryphon#iaehv,nl">gryphon#iaehv,nl</a>, Fri 09 Jan 1998, 18:19 GMT
<UL>
<LI><strong><A NAME="00151" HREF="msg00151.html">Re: [MUD-Dev]  MUD Economy</A></strong>, 
Shawn Halpenny <a href="mailto:malachai#iname,com">malachai#iname,com</a>, Fri 09 Jan 1998, 21:33 GMT
</LI>
</UL>
</LI>
<LI><strong><A NAME="00148" HREF="msg00148.html">Re: [MUD-Dev]  MUD Economy</A></strong>, 
Shawn Halpenny <a href="mailto:malachai#iname,com">malachai#iname,com</a>, Fri 09 Jan 1998, 19:07 GMT
</LI>
</ul>
<LI><strong><A NAME="00121" HREF="msg00121.html">Re: [MUD-Dev]  MUD Economy</A></strong>, 
Adam Wiggins <a href="mailto:nightfall#user1,inficad.com">nightfall#user1,inficad.com</a>, Thu 08 Jan 1998, 19:57 GMT
<UL>
<LI><strong><A NAME="00149" HREF="msg00149.html">Re: [MUD-Dev]  MUD Economy</A></strong>, 
Shawn Halpenny <a href="mailto:malachai#iname,com">malachai#iname,com</a>, Fri 09 Jan 1998, 21:10 GMT
</LI>
</UL>
</LI>
<LI><strong><A NAME="00157" HREF="msg00157.html">Re: [MUD-Dev] MUD Economy</A></strong>, 
JC Lawrence <a href="mailto:claw#under,Eng.Sun.COM">claw#under,Eng.Sun.COM</a>, Sat 10 Jan 1998, 00:29 GMT
</LI>
<LI><strong><A NAME="00196" HREF="msg00196.html">Re: [MUD-Dev]  MUD Economy</A></strong>, 
Jon A. Lambert <a href="mailto:jlsysinc#ix,netcom.com">jlsysinc#ix,netcom.com</a>, Mon 12 Jan 1998, 05:25 GMT
</LI>
</ul>
</LI>
<LI><strong><A NAME="00088" HREF="msg00088.html">threaded servers (was Re: [MUD-Dev] request for comments</A></strong>, 
Mike Sellers <a href="mailto:mike#online-alchemy,com">mike#online-alchemy,com</a>, Wed 07 Jan 1998, 18:37 GMT
<UL>
<LI><strong><A NAME="00113" HREF="msg00113.html">Re: [MUD-Dev] request for comments</A></strong>, 
Miroslav Silovic <a href="mailto:silovic#zesoi,fer.hr">silovic#zesoi,fer.hr</a>, Thu 08 Jan 1998, 13:07 GMT
</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>