1998Q4/
<!-- MHonArc v2.4.4 -->
<!--X-Subject: [MUD&#45;Dev] Re: MUD Design doc (long) -->
<!--X-From-R13: [vx Qynexr <zvxpyexNvoz.arg> -->
<!--X-Date: Thu, 17 Dec 1998 12:27:18 &#45;0800 -->
<!--X-Message-Id: 36797871.3532BBB9#ibm,net -->
<!--X-Content-Type: text/plain -->
<!--X-Reference: thinus_barnard#bigfoot,com -->
<!--X-Reference: 3674C665.832CE7E2#bigfoot,com -->
<!--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:mikclrk#ibm,net">
</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="msg00984.html">Previous</a>
&nbsp;|&nbsp;<a href="msg00986.html">Next</a>
&nbsp;]
&nbsp;&nbsp;&nbsp;&nbsp;
Thread:&nbsp;
[&nbsp;<a href="msg00984.html">Previous</a>
&nbsp;|&nbsp;<a href="msg01049.html">Next</a>
&nbsp;]
&nbsp;&nbsp;&nbsp;&nbsp;
Index:&nbsp;
[&nbsp;<A HREF="author.html#00985">Author</A>
&nbsp;|&nbsp;<A HREF="#00985">Date</A>
&nbsp;|&nbsp;<A HREF="thread.html#00985">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>: Mik Clarke &lt;<A HREF="mailto:mikclrk#ibm,net">mikclrk#ibm,net</A>&gt;</LI>
<LI><em>Date</em>: Thu, 17 Dec 1998 21:32:33 +0000</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>
Emil Eifrem wrote:
&gt; 
&gt; At 04:31 AM 12/17/98 , J C Lawrence wrote:
&gt; &gt;Thinus Barnard&lt;thinus_barnard#bigfoot,com&gt; wrote:
&gt; &gt;&gt; Should NPCs and players have different command sets?
&gt; &gt;
&gt; &gt;Should there actually be *ANY* distinguishing features between NPC's
&gt; &gt;and players other than the source of their actions?  There are good
&gt; &gt;reasons for both approaches and reasonable design methods to salve
&gt; &gt;most of each other's problems.
&gt; 
&gt; What good reasons are there for separating NPCs and PCs?

A lot of a Muds work is done with smoke and mirrors.  To acheive the
desired effect with a Mob it is quite often necessary to have it perform
some 'slight of mud' that the players cannot.  Examples might be mobs
that create items, mobs that need to update control variables and mobs
that need to either relocate the player or summon other mobs.  Other
than the special effects and game control commands, there shouldn't be
any difference.
 
&gt; &gt;A well defined inheritance model can do wonders as can a good
&gt; &gt;grammar, which brings up the questions:
&gt; &gt;
&gt; &gt;  Central grammar and vocabulary?
&gt; &gt;
&gt; &gt;  Standardised grammar at all?
&gt; &gt;
&gt; &gt;  Per-object dynamic vocabulary?
&gt; 
&gt; Per-object dynamic vocabulary was quite extensively discussed in an earlier
&gt; thread that I read up on in the archives. Did you guys reach a conclusion
&gt; on a reasonable design? It may be too game specific a problem for a generic
&gt; solution, I guess.
&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.
&gt; 
&gt; Any other ideas?

I think the only way to do it properly is to have a defined (fixed) set
of commands that the player can execute (the players capabilities, a
limited subset of what they should be capable of) and to be able to
interrorgate each object to ask it if it supports each particular
command.  For example, the code flow for smell might be...

  if target object not specified, 
    emote is in dire need of a bath
  else
    locate target object
    if not found,
      send_to_char "Sorry, can't find one of those."
    else
      if (!object-&gt;can_you_be(CMD_SNIFFED)) 
        send_to_char "It smells of nothing in particular."
      else
        object-&gt;you_are(CMD_SNIFFED, char)
 
This lets the object decide how to handle the command while giving
central (and consistent) command parsing and handling.  Any command can
be used on any object and will give a sensible response.  It also
support inheritance (so your food class might response with "It smells
delicious" which would apply to all food items unless they overwrote it
and a mob class might response with "slaps you!" by default.

My challange for 1999 is to persuade a son of a ROM to work this way (ie
rewriting 90% of the command processing)...

Mik
-- 
<A  HREF="http://www.geocities.com/SoHo/Cafe/2260">http://www.geocities.com/SoHo/Cafe/2260</A>


</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="00964" HREF="msg00964.html">[MUD-Dev] Re: MUD Design doc (long)</A></STRONG>
<UL><LI><EM>From:</EM> Thinus Barnard &lt;thinus_barnard#bigfoot,com&gt;</LI></UL></LI>
<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="msg00984.html">[MUD-Dev] Re: MUD Design doc (long)</A></STRONG>
</LI>
<LI>Next by Date:
<STRONG><A HREF="msg00986.html">[MUD-Dev] Re: DIS: Client-Server vs Peer-to-Peer</A></STRONG>
</LI>
<LI>Prev by thread:
<STRONG><A HREF="msg00984.html">[MUD-Dev] Re: MUD Design doc (long)</A></STRONG>
</LI>
<LI>Next by thread:
<STRONG><A HREF="msg01049.html">[MUD-Dev] Re: MUD Design doc (long)</A></STRONG>
</LI>
<LI>Index(es):
<UL>
<LI><A HREF="index.html#00985"><STRONG>Date</STRONG></A></LI>
<LI><A HREF="thread.html#00985"><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: MUD Design doc (long)</STRONG>, <EM>(continued)</EM>
<ul compact>
<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>
<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>
<LI><strong><A NAME="00988" HREF="msg00988.html">[MUD-Dev] Re: MUD Design doc (long)</A></strong>, 
Caliban Tiresias Darklock <a href="mailto:caliban#darklock,com">caliban#darklock,com</a>, Thu 17 Dec 1998, 23:12 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>