1998Q3/
<!-- MHonArc v2.4.4 -->
<!--X-Subject: [MUD&#45;Dev] Re: (fwd) Re: command parsers: a modest proposal (with apologies to J. Swift) -->
<!--X-From-R13: Quevf Uenl <ptNnzv&#45;pt.UenlEntr.Sqzbagba.OP.QO> -->
<!--X-Date: Wed, 8 Jul 1998 17:56:33 &#45;0700 -->
<!--X-Message-Id: 199807090054.SAA02793@ami&#45;cg.GraySage.Edmonton.AB.CA -->
<!--X-Content-Type: text/plain -->
<!--X-Head-End-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title>MUD-Dev message, [MUD-Dev] Re: (fwd) Re: command parsers: a modest proposal (wi</title>
<!-- meta name="robots" content="noindex,nofollow" -->
<link rev="made" href="mailto:cg#ami-cg,GraySage.Edmonton.AB.CA">
</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="msg00094.html">Previous</a>
&nbsp;|&nbsp;<a href="msg00096.html">Next</a>
&nbsp;]
&nbsp;&nbsp;&nbsp;&nbsp;
Thread:&nbsp;
[&nbsp;<a href="msg00091.html">Previous</a>
&nbsp;|&nbsp;<a href="msg00061.html">Next</a>
&nbsp;]
&nbsp;&nbsp;&nbsp;&nbsp;
Index:&nbsp;
[&nbsp;<A HREF="author.html#00095">Author</A>
&nbsp;|&nbsp;<A HREF="#00095">Date</A>
&nbsp;|&nbsp;<A HREF="thread.html#00095">Thread</A>
&nbsp;]

<!--X-TopPNI-End-->
<!--X-MsgBody-->
<!--X-Subject-Header-Begin-->
<H1>[MUD-Dev] Re: (fwd) Re: command parsers: a modest proposal (with apologies to J. Swift)</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: (fwd) Re: command parsers: a modest proposal (with apologies to J. Swift)</LI>
<LI><em>From</em>: Chris Gray &lt;<A HREF="mailto:cg#ami-cg,GraySage.Edmonton.AB.CA">cg#ami-cg,GraySage.Edmonton.AB.CA</A>&gt;</LI>
<LI><em>Date</em>: Wed, 8 Jul 1998 18:54:10 -0600</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>
[Richard Bartle:]

 &gt; &gt;What are the choices here:
 &gt; &gt;   - drop all of them
 &gt; &gt;   - complain about ambiguity
 &gt; &gt;   - drop some "random" rock
 &gt; &gt;   - allow the user to choose
 &gt;        Of these, the second and fourth get in the way of the game. The real
 &gt;choice is between the first and the third. I chose the first because it fell
 &gt;naturally from the way I was processing adjectives and so on as operators
 &gt;applied to sets of candidate objects. Once players got used to it, switching
 &gt;to another version was not an attractive option.

OK. To clarify, however, I should say that what I meant for the fourth
choice is that the user could set the policy for themselves, choosing
once among the other alternatives. I do have some sort-of question-and-
answer stuff in my game, but I wouldn't want it used a lot - its just
too confusing to users and scenario writers.

 &gt;        Not as surprised as the players who type KILL RAT when there are
 &gt;18 of them in the room...

Hmm. I could get used to that! (My current scenario happens to have
a room that comes equipped with a lot of rats, which aren't really
dangerous. Typing only one command to attack all of them would be handy!)

 &gt; &gt;Dr. Bartle speaks of "compiling", which suggests that his entire system
 &gt; &gt;is a single compiled binary.
 &gt;        Wellll...
 &gt;        It's several compiled binaries. The game itself is written in MUDDLE,
 &gt;which is interpreted by an interpreter written in C. However, the code
 &gt;which is interpreted is an intermediate code, to which the MUDDLE original
 &gt;has to be compiled. If I add new words to the vocabulary, that's where I
 &gt;do it, and that's why it needs to be recompiled. If I change any of the
 &gt;stages up to the parsing stage, I need to change the C code instead.

Sounds similar again. My server is now in C (initially in my own
language called "Draco"), and supports an internal language which the
scenario is written in. The server supplies a bunch of "builtin"
functions to help in parsing, however.

 &gt; &gt;Are there in fact possibilities of adding to the vocabulary at run time?
 &gt;        Yes, there are.

How does that work? Can normal players do it, or is it only available
to administrators?

 &gt; &gt;Either you avoid more abbreviations because they *might* conflict, or you
 &gt; &gt;have to do a lot of searching and checking at runtime, to see what an
 &gt; &gt;abbreviation should refer to.
 &gt;        No, abbreviations aren't created dynamically, I use them as secondary
 &gt;names for specific things. In other words, I add abbreviations manually and
 &gt;state what they point at. If I later add something which could have the
 &gt;same abbreviation, I may decide to switch the abbreviation to it but more
 &gt;often than not I'll stick with the original. Abbreviations which the game
 &gt;figured out on its own and associated with objects at the time of use would
 &gt;be very dangerous, especially if player names were candidates for such
 &gt;abbreviation.

OK, understood and agreed. I've done much the same, but it sounds like
I haven't gone anywhere near as far as you have. It was only recently
that I went and made sure that all NPC's had uniform 3-character
abbreviations. It's all been terribly ad-hoc. Do you have any kind
of human algorithm, etc. that allowed you to decide what abbreviations
to use? Similar for handing misspellings?

Lots of stuff on my system has been in this list before, but I'll mention
one relevant aspect here: I can add/remove any kind of vocabulary at
run-time, simply because the dictionary stuff is all created and
manipulated by "builtin" functions, which any player who has a
"wizard" character can access. However, the main dictionary is owned
by the "SysAdmin" character, so no-one else can directly modify it.
Much of my programming background has been the compilers universe, so
I've approached MUD-building from a programming language bias.



</PRE>

<!--X-Body-of-Message-End-->
<!--X-MsgBody-End-->
<!--X-Follow-Ups-->
<HR>
<!--X-Follow-Ups-End-->
<!--X-References-->
<!--X-References-End-->
<!--X-BotPNI-->
<UL>
<LI>Prev by Date:
<STRONG><A HREF="msg00094.html">[MUD-Dev] OT: Computer History Archive</A></STRONG>
</LI>
<LI>Next by Date:
<STRONG><A HREF="msg00096.html">[MUD-Dev] Re: An Introduction</A></STRONG>
</LI>
<LI>Prev by thread:
<STRONG><A HREF="msg00091.html">[MUD-Dev] Re: (fwd) Re: command parsers: a modest proposal (with apologies to J. Swift)</A></STRONG>
</LI>
<LI>Next by thread:
<STRONG><A HREF="msg00061.html">[MUD-Dev] (fwd) Re: command parsers: a modest proposal (with apologies to J. Swift)</A></STRONG>
</LI>
<LI>Index(es):
<UL>
<LI><A HREF="index.html#00095"><STRONG>Date</STRONG></A></LI>
<LI><A HREF="thread.html#00095"><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: (fwd) Re: command parsers: a modest proposal (with apologies to J. Swift)</STRONG>, <EM>(continued)</EM>
<ul compact>
<LI><strong><A NAME="00081" HREF="msg00081.html">[MUD-Dev] Re: (fwd) Re: command parsers: a modest proposal (with apologies to J. Swift)</A></strong>, 
Richard Bartle <a href="mailto:76703.3042#compuserve,com">76703.3042#compuserve,com</a>, Wed 08 Jul 1998, 15:17 GMT
<UL>
<LI><strong><A NAME="00085" HREF="msg00085.html">[MUD-Dev] Re: (fwd) Re: command parsers: a modest proposal(with apologies to J. Swift)</A></strong>, 
Ross Nicoll <a href="mailto:rnicoll#calmar-mud,com">rnicoll#calmar-mud,com</a>, Wed 08 Jul 1998, 17:35 GMT
</LI>
<LI><strong><A NAME="00087" HREF="msg00087.html">[MUD-Dev] Re: (fwd) Re: command parsers: a modest proposal (with apologies to J. Swift)</A></strong>, 
Richard Woolcock <a href="mailto:KaVir#dial,pipex.com">KaVir#dial,pipex.com</a>, Wed 08 Jul 1998, 18:19 GMT
</LI>
<LI><strong><A NAME="00091" HREF="msg00091.html">[MUD-Dev] Re: (fwd) Re: command parsers: a modest proposal (with apologies to J. Swift)</A></strong>, 
Adam Wiggins <a href="mailto:adam#angel,com">adam#angel,com</a>, Wed 08 Jul 1998, 18:43 GMT
</LI>
</UL>
</LI>
<LI><strong><A NAME="00095" HREF="msg00095.html">[MUD-Dev] Re: (fwd) Re: command parsers: a modest proposal (with apologies to J. Swift)</A></strong>, 
Chris Gray <a href="mailto:cg#ami-cg,GraySage.Edmonton.AB.CA">cg#ami-cg,GraySage.Edmonton.AB.CA</a>, Thu 09 Jul 1998, 00:56 GMT
</LI>
</ul>
</LI>
<LI><strong><A NAME="00061" HREF="msg00061.html">[MUD-Dev] (fwd) Re: command parsers: a modest proposal (with apologies to J. Swift)</A></strong>, 
J C Lawrence <a href="mailto:claw#under,engr.sgi.com">claw#under,engr.sgi.com</a>, Tue 07 Jul 1998, 18:14 GMT
<LI><strong><A NAME="00057" HREF="msg00057.html">[MUD-Dev] Re: Ubiquity Scope &amp; Requirements</A></strong>, 
Greg Munt <a href="mailto:greg#uni-corn,demon.co.uk">greg#uni-corn,demon.co.uk</a>, Tue 07 Jul 1998, 06:39 GMT
<UL>
<li>&lt;Possible follow-up(s)&gt;<br>
<LI><strong><A NAME="00058" HREF="msg00058.html">[MUD-Dev] Re: Ubiquity Scope &amp; Requirements</A></strong>, 
Chris Gray <a href="mailto:cg#ami-cg,GraySage.Edmonton.AB.CA">cg#ami-cg,GraySage.Edmonton.AB.CA</a>, Tue 07 Jul 1998, 14:18 GMT
<UL>
<LI><strong><A NAME="00070" HREF="msg00070.html">[MUD-Dev] Re: Ubiquity Scope &amp; Requirements</A></strong>, 
Vadim Tkachenko <a href="mailto:vt#freehold,crocodile.org">vt#freehold,crocodile.org</a>, Wed 08 Jul 1998, 02:30 GMT
</LI>
</UL>
</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>