1998Q2/
<!-- MHonArc v2.4.4 -->
<!--X-Subject: [MUD&#45;Dev] Re: regulating player&#45;created objects -->
<!--X-From-R13: "Penaqba X. Dvpxzna" <nfurfNcp4.mraarg.pbz> -->
<!--X-Date: Sat, 23 May 1998 19:41:45 &#45;0700 -->
<!--X-Message-Id: Pine.LNX.3.93.980523172548.2997A&#45;100000#pc4,zennet.com -->
<!--X-Content-Type: text/plain -->
<!--X-Reference: Pine.SGI.3.96.980518113943.2624B&#45;100000#red,angel.com -->
<!--X-Head-End-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title>MUD-Dev message, [MUD-Dev] Re: regulating player-created objects</title>
<!-- meta name="robots" content="noindex,nofollow" -->
<link rev="made" href="mailto:ashes#pc4,zennet.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="msg00809.html">Previous</a>
&nbsp;|&nbsp;<a href="msg00811.html">Next</a>
&nbsp;]
&nbsp;&nbsp;&nbsp;&nbsp;
Thread:&nbsp;
[&nbsp;<a href="msg00670.html">Previous</a>
&nbsp;|&nbsp;<a href="msg00814.html">Next</a>
&nbsp;]
&nbsp;&nbsp;&nbsp;&nbsp;
Index:&nbsp;
[&nbsp;<A HREF="author.html#00810">Author</A>
&nbsp;|&nbsp;<A HREF="#00810">Date</A>
&nbsp;|&nbsp;<A HREF="thread.html#00810">Thread</A>
&nbsp;]

<!--X-TopPNI-End-->
<!--X-MsgBody-->
<!--X-Subject-Header-Begin-->
<H1>[MUD-Dev] Re: regulating player-created objects</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></LI>
<LI><em>Subject</em>: [MUD-Dev] Re: regulating player-created objects</LI>
<LI><em>From</em>: "Brandon J. Rickman" &lt;<A HREF="mailto:ashes#pc4,zennet.com">ashes#pc4,zennet.com</A>&gt;</LI>
<LI><em>Date</em>: Sat, 23 May 1998 19:40:55 -0700 (PDT)</LI>
<LI><em>Reply-To</em>: <A HREF="mailto:mud-dev#kanga,nu">mud-dev#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>
On Mon, 18 May 1998, Adam Wiggins wrote:
&gt; On Sat, 16 May 1998, Brandon J. Rickman wrote:
&gt; &gt; You can't find that item.
&gt; &gt; % search catalog for axehandle
&gt; &gt; You flip through the catalog to the index...
&gt; &gt; Axehandles .. page 83
&gt; 
&gt; As amusing as this exmaple was, I'm confused as to what you're getting at.
&gt; Are you saying that my socket definition is too vague, or saying that it
&gt; makes sense?

I was just considering how an Industrial Age mud might play.  Having
access to machine tooled and standardized parts is not a normal part
of a medieval mud.  But adding some kind of deviation key in addition to
the socket type could disguise this nicely.  For example:

You are trying to build a garden hoe.  A hoe has three parts: a wooden
shaft, a metal handle, and a hoe blade.  A shaft has two male sockets,
let us say Class C Round Socket, and both the handle and blade have female
Class C Round Sockets.

In a standardized world, putting the hoe together would be
straightforward.  But if each socket has a slight deviation from the
standard (not a statistical deviation, but more like small flaws or
special characteristics - a little split in the wood, not perfectly round
- abstracted into a number) then things won't always fit perfectly.

The shaft has two ends, {male Class C Round, 1138}, {male Class C
Round, 76118}.  A handle with {female Class C Round, 65024} might fit on
the second end ( | 76118 - 65024 | &lt; some minimum fit value) , but not on
the first.

So it isn't merely a matter of finding all the right parts, but finding
parts that fit together well.  This is a bit on the micro-management side
of things, where every little component has to be manually or otherwise
evaluated to actually put something together.  A good use for a tinker
skill.
 
&gt; &gt; But such an object could /act/ like a table - you could put things on top
&gt; &gt; of it, or seek shelter from the rain under it.
&gt; 
&gt; So?  If you could seek shelter from the rain under it, shouldn't it say
&gt; "You see here a rain-shelther."?  IMO it's not the server's job to list
&gt; out every possible use for a given composite object.  It *is* its job to
&gt; try to consolidate object descriptions by assigning the 'obvious' label to
&gt; something.

Think about scale.  To a mouse, or a mouse-sized man, an "ordinary table" 
may look more like a "rain shelter".  But then in my case it is less
important that the server gets the _name_ of an object correct, more
important for it to get the _implied function_ of the object correct.

&gt; &gt; I would say you do, because you want the game to understand what you are
&gt; &gt; trying to do.  If it doesn't recognize the idea of a table then objects
&gt; &gt; will never "fall off" the table.  (Short of a ridiculous amount of "real"
&gt; 
&gt; Huh?

If an object isn't recognized as a table then it can't behave like a
table.  Perhaps there is a special event when something falls off a table,
a different event than when something falls off a shelf, or out of your
pocket.  (In a traditional MOO setup, tables might "contain" objects, a
particularly horrible but consistent implementation.)

&gt; &gt; physics, which in my opinion would detract more from the game in their
&gt; &gt; misapplication than they ever add in the rare case of an object behaving 
&gt; &gt; "realistically" - an object falling off of a table.)  Players have an
&gt; 
&gt; Hrm, I consider those kinds of physics to be a given.  It's much too
&gt; difficult to model a "real"-seeming world without some basic rigid-body
&gt; physics; in this case, gravity, but also collision and possibly some
&gt; extras like surface friction, angular momentum, and fluid dynamics.  These
&gt; things are particularly easy to implement in a text world where you can
&gt; fudge things quite a bit.
&gt; Figuring out whether an object is going to stay steady on top of another
&gt; object is not difficult.  In the shape-based world that I've been
&gt; describing in this thread, I'd simply say that you can only set other
&gt; objects on top of 'plane' shapes whose size is &gt;= the object's size, and
&gt; their chance of falling off is proportional to the plane's angle relative
&gt; to the angle of a given vector of force, where the main vector of force
&gt; that you are interested in is gravity.

But how can the system be made to recognize specifically when a particular
set of physical characteristics fits into a template?  Hmm, this is going
in circles. 

&gt; &gt; intuitive sense of function: pointy things are weapons, top-heavy things
&gt; &gt; can be pushed over.  How can the game sense that which is obvious to the
&gt; &gt; player?
&gt; 
&gt; Well, that is the idea with templates.  But the labels which templates
&gt; assign are just supposed to help classify the world in a way which is
&gt; reasonable to the players.  This shouldn't preclude them using the objects
&gt; in non-standard ways.  A common example is being able to use any object as
&gt; a weapon.  Generally there are certain things that you'd rather use as
&gt; weapons since they are more effective (in terms of both wieldability and
&gt; ability to do damage), but that shouldn't stop you from beating Bubba over
&gt; the head with your loaf of bread.  However, I don't believe that the
&gt; server should say, "There is a tasty looking loaf of broad here, which is
&gt; also useful for beating people over the head" when you enter the room.

How I'm trying to invert the problem: It doesn't matter what the player
sees, but what the system thinks that the player is seeing.  Because the
system has to decide between:

Bubba is holding a loaf of bread.

or 

Bubba is wielding a loaf of bread.

(Does it matter how Bubba's command was parsed, whether he typed
'hold bread' versus 'wield bread'?  Or that Bubba is a known bastard?
That a metal rod has been baked into the bread?)

&gt; &gt; the broken door quest.'
&gt; 
&gt; Nods...again more ambiguity based on the fact that practially any object
&gt; can be used for any function if you try hard enough.  I implemented
&gt; swinging doors on a mud once; the open command gave a message like so:
&gt; 
&gt; You open the door, but as soon as you let go it swings back closed.
&gt; 
&gt; Later, when we had a slightly more advanced character state system, I made
&gt; it so that the open command would just leave you holding the door open
&gt; until you did something else that required your hands or moved you away
&gt; from the door.
&gt; This might be slightly confusing to someone, but the words "door" and
&gt; "open" still make sense in this context.
&gt; The word "door" doesn't make sense, IMO, for a curtain or a window.  Doors
&gt; are almost always hinged planes that block entryways until you open them.
&gt; This is the 'default' behavior for them, so if you see one that is
&gt; behaving this way, you shouldn't get any special message except for "you
&gt; see a door here."  Windows are similar.  If either of these things is
&gt; lying on the ground in the room, they should give special messages, since
&gt; they are NOT behaving in their normal fashion.  Ie, "You see an unhinged
&gt; door lying on the floor here."
&gt; A curtain, on the other hand, is not so well-defined as to its function.
&gt; Normally it covers something, but it can vary - it could cover a window,
&gt; or a door, or a dressing area, or a shower.  It is not implictly known
&gt; that the curtain forms an egress to another location.  Thus, one should
&gt; see "There is a curtain blocking a doorway here." or "There is a curtain
&gt; hanging in front of a window here."

This is a builder problem, and an implementer problem.  Builders can be
notoriously crafty in their descriptions - to know about the runes you
have to look at the altar (sometime the alter), to know about the altar...
- and may not know how to describe something like "an unhinged door".  But
then the implementers rarely provide much in the way of specific style
guidelines for the builders to use.  This problem has carried over into
object based environments, there can generally be only one
name per object, because implementers think that all those messy
exceptions will slow down the code.  ;)

&gt; &gt; In a very homogenous mud world (which is most of them) yes you can sleep
&gt; &gt; just about anywhere.  Is this not absurd?  But what is wrong with being
&gt; 
&gt; Erm, I don't find it very absurd.  When I go camping I sleep on the
&gt; ground.  If it's warm and dry out, I need no extra equipment.  Does this
&gt; mean that the earth qualifies as a bed?  I also have slept at my desk at
&gt; work, the computer lab at UCSD, people's cars, people's floors, lecture
&gt; halls, and a dozen other places.  The only thing that is really necessary
&gt; is that I be able to sit down; I can do that pretty much any place that
&gt; contains a semi-rigid surface.
&gt; 
&gt; I define a 'bed' as being a bedframe with a matress, a pillow, and a
&gt; blanket.  I have never refered to my desk as a bed or my keyboard as a
&gt; pillow, even though they have functioned that way on many occassions.
&gt; 
&gt; &gt; able to find a bed/comfortable place to sleep?  A lake is not a good bed.
&gt; 
&gt; Again, material.  Too pliant, therefore doesn't support your weight.  Good
&gt; fluid dynamics should take care of this well (a creature which can float
&gt; on water could sleep in the lake just fine); if not, a simple test to see
&gt; if the material of the object you're trying to sleep on is not in a solid
&gt; state (meaning liquid, gaseous, or plasma) will do the trick quite nicely.
&gt; 
&gt; &gt; The street is not a good place to sleep.
&gt; 
&gt; It's not a *good* place to sleep for a number of reasons.  One is it's not
&gt; comfortable.  This is a material property, just like the lake.  A street
&gt; made out of matresses is actually a great place to sleep.  The second
&gt; reason it's not a good place to sleep is that it's probably not very safe
&gt; and not protected from the elements.  Both of these things have nothing to
&gt; do with the object templates; if I built a street in my house, it would be
&gt; a perfectly safe place to sleep if not all that comfortable.

When a player types "sleep", shouldn't that be interpreted as "if there is
a comfortable place try to sleep here, otherwise get confirmation"?  And
back to templates and object function, is there not a greater benefit from
sleeping in a bed-template?  Do people only sleep in actual beds, in
actual houses, to avoid being attacked by random monsters?  [If so, do you
not realize how condemning this is of the mud industry?  Hm, I don't have
time to go into an anti-testosterone rant here, and Adam's post certainly
doesn't justify one.]

&gt; &gt; We need to be able to find that
&gt; &gt; functionality, or perhaps recognize its lack.  Hmm, that is something to
&gt; &gt; think about.
&gt; 
&gt; The whole idea with the template system I have been describing is to
&gt; *avoid* defining as much functionality as possible.  Leave that to the
&gt; players.  We were trying to generalize to avoid garbage like:
&gt; 
&gt; &gt; wield hammer
&gt; The hammer is a tool, not a weapon.
&gt; &gt; sleep on table
&gt; The table is not a bed!
&gt; &gt; put sword on bed
&gt; The bed is not a table!

So you _do_ want to allow players to sleep on a table?

&gt; &gt; good shelter from the rain.  And the knight a computer?  Something that
&gt; &gt; sparks and fizzes when you smash it.  The destruction of objects is tied
&gt; 
&gt; So he sees, "You see something that sparks and fizzes when you smash it
&gt; here."?  No, I think he'd see a several strange metal boxes, one of which
&gt; is large and has a colorful piece of glass on the front, another which has
&gt; many small boxes on it with strange markings.  This is the advantage of
&gt; templates - builders define objects by their components and then give them
&gt; general descriptions, so breaking it down into a description of the
&gt; objects it is made of is quite easy.

"quite easy," he said.
 
&gt; &gt; This is the illusion of 3d: it is easier to make something look like an
&gt; &gt; object than to make it behave like an object.  Building things
&gt; &gt; quickly loses its charm when the objects don't develop their own
&gt; &gt; behaviors.  I have seen enough super-high-tech 3d game engines (object
&gt; &gt; oriented! with behaviors!) to say that this is a major problem, that
&gt; &gt; these simulations lack any kind of large commercial appeal.
&gt; 
&gt; Which ones do you refer to?
&gt; And yes, I'd say this is a major problem with games these days in general.
&gt; People make the artwork and don't bother to make the thing function well,
&gt; if at all.  Players get excited when they see it, then quickly bored when
&gt; they try to manipulate it.

Some of the latest generation engines.  But I'm also trying to draw some
conclusions about the general trend of high-tech game engines.  The 3d is
blindingly fast (if you use pathetic lighting) but ... there ... is ...
no ... content.  There is no audience appeal.  3D is easy, given the
present computing power.  Perhaps if we even took some of the features out
of the 3d engine and applied that cpu to some kind of usable interface...

- Brandon Rickman
What kind of future was that?




</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="00814" HREF="msg00814.html">[MUD-Dev] Re: regulating player-created objects</A></strong>
<ul compact><li><em>From:</em> Adam Wiggins &lt;adam#angel,com&gt;</li></ul>
</UL></LI></UL>
<!--X-Follow-Ups-End-->
<!--X-References-->
<UL><LI><STRONG>References</STRONG>:
<UL>
<LI><STRONG><A NAME="00670" HREF="msg00670.html">[MUD-Dev] Re: regulating player-created objects</A></STRONG>
<UL><LI><EM>From:</EM> Adam Wiggins &lt;adam#angel,com&gt;</LI></UL></LI>
</UL></LI></UL>
<!--X-References-End-->
<!--X-BotPNI-->
<UL>
<LI>Prev by Date:
<STRONG><A HREF="msg00809.html">[MUD-Dev] Plug:  Got my java client to work using the java-plugin.</A></STRONG>
</LI>
<LI>Next by Date:
<STRONG><A HREF="msg00811.html">[MUD-Dev] Re: OT: Java multithreading test source</A></STRONG>
</LI>
<LI>Prev by thread:
<STRONG><A HREF="msg00670.html">[MUD-Dev] Re: regulating player-created objects</A></STRONG>
</LI>
<LI>Next by thread:
<STRONG><A HREF="msg00814.html">[MUD-Dev] Re: regulating player-created objects</A></STRONG>
</LI>
<LI>Index(es):
<UL>
<LI><A HREF="index.html#00810"><STRONG>Date</STRONG></A></LI>
<LI><A HREF="thread.html#00810"><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>[MUD-Dev] Re: regulating player-created objects</STRONG>, <EM>(continued)</EM>
<ul compact>
<ul compact>
<ul compact>
<ul compact>
<ul compact>
<ul compact>
<LI><strong><A NAME="00636" HREF="msg00636.html">[MUD-Dev] Re: regulating player-created objects</A></strong>, 
Brandon J. Rickman <a href="mailto:ashes#pc4,zennet.com">ashes#pc4,zennet.com</a>, Sat 16 May 1998, 22:29 GMT
</LI>
</ul>
<LI><strong><A NAME="00609" HREF="msg00609.html">[MUD-Dev] Re: regulating player-created objects</A></strong>, 
Adam Wiggins <a href="mailto:adam#angel,com">adam#angel,com</a>, Fri 15 May 1998, 19:56 GMT
<UL>
<LI><strong><A NAME="00639" HREF="msg00639.html">[MUD-Dev] Re: regulating player-created objects</A></strong>, 
Brandon J. Rickman <a href="mailto:ashes#pc4,zennet.com">ashes#pc4,zennet.com</a>, Sun 17 May 1998, 00:08 GMT
<UL>
<LI><strong><A NAME="00670" HREF="msg00670.html">[MUD-Dev] Re: regulating player-created objects</A></strong>, 
Adam Wiggins <a href="mailto:adam#angel,com">adam#angel,com</a>, Mon 18 May 1998, 19:26 GMT
<UL>
<LI><strong><A NAME="00810" HREF="msg00810.html">[MUD-Dev] Re: regulating player-created objects</A></strong>, 
Brandon J. Rickman <a href="mailto:ashes#pc4,zennet.com">ashes#pc4,zennet.com</a>, Sun 24 May 1998, 02:41 GMT
<UL>
<LI><strong><A NAME="00814" HREF="msg00814.html">[MUD-Dev] Re: regulating player-created objects</A></strong>, 
Adam Wiggins <a href="mailto:adam#angel,com">adam#angel,com</a>, Sun 24 May 1998, 10:36 GMT
</LI>
</UL>
</LI>
</UL>
</LI>
</UL>
</LI>
</UL>
</LI>
</ul>
</ul>
<LI><strong><A NAME="00482" HREF="msg00482.html">[MUD-Dev] Re: regulating player-created objects</A></strong>, 
Nathan F Yospe <a href="mailto:yospe#hawaii,edu">yospe#hawaii,edu</a>, Sat 09 May 1998, 07:38 GMT
<UL>
<LI><strong><A NAME="00483" HREF="msg00483.html">[MUD-Dev] We're Tiny, we're Toonie, we're all a little Loonie!</A></strong>, 
Ling <a href="mailto:K.L.Lo-94#student,lboro.ac.uk">K.L.Lo-94#student,lboro.ac.uk</a>, Sat 09 May 1998, 14:22 GMT
</LI>
</UL>
</LI>
</ul>
<LI><strong><A NAME="00481" HREF="msg00481.html">[MUD-Dev] Re: regulating player-created objects</A></strong>, 
Nathan F Yospe <a href="mailto:yospe#hawaii,edu">yospe#hawaii,edu</a>, Sat 09 May 1998, 07:24 GMT
</LI>
</ul>
</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>