1998Q4/
<!-- MHonArc v2.4.4 -->
<!--X-Subject: [MUD&#45;Dev] Re: MUD Design doc (long) -->
<!--X-From-R13: Oqnz Ivttvaf <nqnzNnatry.pbz> -->
<!--X-Date: Thu, 17 Dec 1998 12:14:17 &#45;0800 -->
<!--X-Message-Id: Pine.SGI.3.96.981217115316.1737B&#45;100000#zazu,angel.com -->
<!--X-Content-Type: text/plain -->
<!--X-Reference: Version.32.19981217101607.00e6b600#sendar,prophecy.lu -->
<!--X-Head-End-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title>MUD-Dev message, [MUD-Dev] Re: MUD Design doc (long)</title>
<!-- meta name="robots" content="noindex,nofollow" -->
<link rev="made" href="mailto:adam#angel,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="msg00983.html">Previous</a>
&nbsp;|&nbsp;<a href="msg00985.html">Next</a>
&nbsp;]
&nbsp;&nbsp;&nbsp;&nbsp;
Thread:&nbsp;
[&nbsp;<a href="msg00979.html">Previous</a>
&nbsp;|&nbsp;<a href="msg00985.html">Next</a>
&nbsp;]
&nbsp;&nbsp;&nbsp;&nbsp;
Index:&nbsp;
[&nbsp;<A HREF="author.html#00984">Author</A>
&nbsp;|&nbsp;<A HREF="#00984">Date</A>
&nbsp;|&nbsp;<A HREF="thread.html#00984">Thread</A>
&nbsp;]

<!--X-TopPNI-End-->
<!--X-MsgBody-->
<!--X-Subject-Header-Begin-->
<H1>[MUD-Dev] Re: MUD Design doc (long)</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: MUD Design doc (long) </LI>
<LI><em>From</em>: Adam Wiggins &lt;<A HREF="mailto:adam#angel,com">adam#angel,com</A>&gt;</LI>
<LI><em>Date</em>: Thu, 17 Dec 1998 12:14:05 -0800 (PST)</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 Thu, 17 Dec 1998, Emil Eifrem wrote:
&gt; I'm pretty ambivalent on this issue. It's a 'flexibility vs consistency'
&gt; matter for me: I want the flexibility of letting a builder add the verb
&gt; "smell" to a mob's (or character or any Living) vocabulary when the mob
&gt; picks up a flower. But I strongly dislike the fact that if I drop the
&gt; flower and walk into another room, "smell" would give a "Huh!?".
&gt;
&gt; The other consistency problem (which that thread opened my eyes to) is the
&gt; case when you have a zillion buttons in the world which all add the verb
&gt; "push" to your vocabulary and respond accordingly, except one tiny little
&gt; one built by NewbieJoeBuilder, which responds to "press." No fun.
&gt; 
&gt; The last problem can be solved administratively. One approach is to
&gt; maintain a list (a physical document, not a data structures list) of
&gt; different types of objects and the verbs they shall use for different
&gt; actions. (Such as "buttons: if a character push it, add the 'push' word to
&gt; its vocab".) 
&gt; 
&gt; That approach would soon get unreasonable -- both for the NewbieJoeBuilder
&gt; who needs to look through a monstrous file for every lil object he builds
&gt; and for ExperiencedJackMaintainerOfTheList who has to maintain the dang
&gt; thing and update it as new object types come along in the game.
&gt; One could also have a head builder that walks through all areas to check
&gt; the dynamic vocabulary but that does tend to hamper productivity.
&gt; Admittedly, quality assurance of areas is something that needs to be done
&gt; no matter what, but I believe checking the standard stuff (correnct
&gt; englihs, appropriate setting and theme, etc) is way different from checking
&gt; the dynamic vocabulary as it's easy to have the standard check done by a
&gt; staff of 4-5 experienced builders, but vocabulary review would have to be
&gt; done by one person per se.
&gt; 
&gt; What solutions are there for #1? I had some thoughts along the line of
&gt; instead of removing the verb from vocabulary, just cancel the action and
&gt; replace it with a can't-find-it message. So typing smell in the other room
&gt; (w/o a flower in it) would give you a "But you've dropped your flower!" or
&gt; whatever message.
&gt; 
&gt; Or maybe just for every character (/mobile/etc) object keep track of the
&gt; item last associated with a dynamically added verb. So "smell" with an
&gt; absent flower would give a "You don't see a flower here." message.

It seems to me that 'smell' is a pretty general purpose command.  I
would be quite confused if I typed "smell shirt" or "smell corpse" and
got the response, "but you've dropped your flower!"

We've discussed this a couple times before; do an archive search for
"push" and "press", as a matter of fact.  I'm very much in favor of
keeping a master command list, tightly controlled by a small number
(maybe one) of maintainers.  Builders latch their special items to
these commands; it's a simple matter for the command list maintainer
to examine all the requested new-object command latches.  They
might get a list like:


Creator: Bubba, Area: Castle of Frooz
   Object 'a small red button', command request 'push'
   Object 'an unstable boulder', command request 'push'
   Object 'a golden lamp', command request 'rub'


Occassionally, but hopefully only very rarely, a builder would
request a command that didn't exist.  Of course, if you start
with a nice, full command list (at the begining, many of the commands
might not do much) this should be pretty rare.

When it comes down to it, there are hardly any verbs that can only
apply to one object.  Sure, when you first start out 'draw' might
only refer to drawing a weapon, but later on someone might make
a deck of cards ('draw card'), or a pencil and sketchpad ('draw a picture
of bubba on pad'), a well ('draw water from the well'), or a syringe
('draw blood from bubba's arm').

&gt; [snip JC doesn't limit player actions with time delays]
&gt; Ack. Haven't your players heard of tintin?
&gt; 
&gt; Surely you must have some way to delay a player's queing commands while
&gt; they're busy doing something else. For example, say you have a spell that
&gt; causes damage. According to the above, a fight between two people with this
&gt; spell would basically be a fight between their clients and connections --
&gt; whomever gets through most "cast my damagespell" messages would win.

No, not necessarily.  It's game balance.  A direct player delay is not
always necessary in order to ensure that combat itself gets drawn out for
more than 3 seconds.

Consider:

- Buffy the mage has a damage spell, 'fireball'.  It costs her 100 mana
  to cast the spell.
- Buffy has another, weaker damage spell, 'chilling touch'.  It costs
  her 50 mana to cast the spell.
- Buffy has a really kickass damage spell, 'nuke'.  It costs her 200 mana
  to cast the spell.

- Buffy has 120 total mana.
- Buffy's mana count can go negative, up to her total negated: -120.
- Buffy gets back (((N + n) / 8) + 1) mana per second, where N is her max
  (120) and n is her current mana level (which could be between -120 and
  120).


Buffy's current target, Boffo, can be killed by two nukes, four fireballs,
or eight chilling touches.  What spell(s) should she cast at him to
kill him as quickly as possible, and when?  Does tintin really help out
here?  How long does combat last?

Now throw in that Boffo has spells and mana of his own, including neat
mana-twiddling spells such as limiting the targets regen or temporarily
increasing your own.

Now what's the wisest course?  Does #10 cast 'fireball' boffo seem
to be the best way for Buffy to start combat?

&gt; [snip: players age based on time played]
&gt;
&gt; This is the approach used by most DIKU-derivatives. Your character's age is

I'm not sure I'd say "most".  I forget what the original diku did, but
Circle (which has a large chunk of the diku 'market', as it were) keeps
track of the time_t your player was created, and the character ages
based on that, independant of how much you play.  SillyMUD, on the other
hand, ages you based on time played.


Adam W.




</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="00979" HREF="msg00979.html">[MUD-Dev] Re: MUD Design doc (long)</A></STRONG>
<UL><LI><EM>From:</EM> Emil Eifrem &lt;emil#prophecy,lu&gt;</LI></UL></LI>
</UL></LI></UL>
<!--X-References-End-->
<!--X-BotPNI-->
<UL>
<LI>Prev by Date:
<STRONG><A HREF="msg00983.html">[MUD-Dev] Re: Graphic design, client questions</A></STRONG>
</LI>
<LI>Next by Date:
<STRONG><A HREF="msg00985.html">[MUD-Dev] Re: MUD Design doc (long)</A></STRONG>
</LI>
<LI>Prev by thread:
<STRONG><A HREF="msg00979.html">[MUD-Dev] Re: MUD Design doc (long)</A></STRONG>
</LI>
<LI>Next by thread:
<STRONG><A HREF="msg00985.html">[MUD-Dev] Re: MUD Design doc (long)</A></STRONG>
</LI>
<LI>Index(es):
<UL>
<LI><A HREF="index.html#00984"><STRONG>Date</STRONG></A></LI>
<LI><A HREF="thread.html#00984"><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><A NAME="00952" HREF="msg00952.html">[MUD-Dev] Re: MUD Design doc (long)</A></strong>, 
Benjamin D. Wiechel <a href="mailto:strycher#toast,net">strycher#toast,net</a>, Fri 11 Dec 1998, 18:36 GMT
<UL>
<LI><strong><A NAME="00964" HREF="msg00964.html">[MUD-Dev] Re: MUD Design doc (long)</A></strong>, 
Thinus Barnard <a href="mailto:thinus_barnard#bigfoot,com">thinus_barnard#bigfoot,com</a>, Mon 14 Dec 1998, 07:51 GMT
<UL>
<LI><strong><A NAME="00975" HREF="msg00975.html">[MUD-Dev] Re: MUD Design doc (long)</A></strong>, 
J C Lawrence <a href="mailto:claw#under,engr.sgi.com">claw#under,engr.sgi.com</a>, Thu 17 Dec 1998, 03:31 GMT
<UL>
<LI><strong><A NAME="00979" HREF="msg00979.html">[MUD-Dev] Re: MUD Design doc (long)</A></strong>, 
Emil Eifrem <a href="mailto:emil#prophecy,lu">emil#prophecy,lu</a>, Thu 17 Dec 1998, 11:00 GMT
<UL>
<LI><strong><A NAME="00984" HREF="msg00984.html">[MUD-Dev] Re: MUD Design doc (long)</A></strong>, 
Adam Wiggins <a href="mailto:adam#angel,com">adam#angel,com</a>, Thu 17 Dec 1998, 20:14 GMT
</LI>
<LI><strong><A NAME="00985" HREF="msg00985.html">[MUD-Dev] Re: MUD Design doc (long)</A></strong>, 
Mik Clarke <a href="mailto:mikclrk#ibm,net">mikclrk#ibm,net</a>, Thu 17 Dec 1998, 20:27 GMT
</LI>
<LI><strong><A NAME="01049" HREF="msg01049.html">[MUD-Dev] Re: MUD Design doc (long)</A></strong>, 
J C Lawrence <a href="mailto:claw#under,engr.sgi.com">claw#under,engr.sgi.com</a>, Thu 24 Dec 1998, 07:57 GMT
</LI>
<LI><strong><A NAME="01054" HREF="msg01054.html">[MUD-Dev] MUD Design doc - Combat</A></strong>, 
Jon A. Lambert <a href="mailto:jlsysinc#ix,netcom.com">jlsysinc#ix,netcom.com</a>, Tue 29 Dec 1998, 08:28 GMT
</LI>
</UL>
</LI>
</UL>
</LI>
</UL>
</LI>
</UL>
<UL>
<li>&lt;Possible follow-up(s)&gt;<br>
<LI><strong><A NAME="00980" HREF="msg00980.html">[MUD-Dev] Re: MUD Design doc (long)</A></strong>, 
Koster, Raph <a href="mailto:rkoster#origin,ea.com">rkoster#origin,ea.com</a>, Thu 17 Dec 1998, 15:15 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>