mud grammar

Adam Wiggins nightfall at inficad.com
Tue Mar 11 21:48:12 CET 1997


> I agree that some commands should not be useful in all parts of the mud. It
> seems unfair to the player to have the mud simply refuse to recognize your
> news command when not in the post office. For a consistant interface with
> the player shouldn't the mud recognize the syntax of the command as valid,
> but simply deny the command's execution (tell them that the command doesn't
> work here as opposed to pretending the command doesn't exist). A agree

Yup.  Of course, the reason this works like this is for two reasons
I can think of right offhand.  First is that frequently these specialty
verbs come from scripts attached to objects which you may have on your
person or whatever.  The mud (of course) doesn't want to search every
object in the game for that script in order to figure out if it's valid,
it only checks the 'normal' verbs.  But I've already expressed why I
don't think objects should have this kind of freedom.
The other one is that usually if you don't have the proper permissions
for a command (ie, a player typing "system.shutdown") you don't say, "You
can't do that", you pretend it doesn't exist.  This is fine...but one
mud I played had the god command "stat" for stating objects, and the
mortal command "stats" for getting your statistics.  Thus typing "sta"
brought up the stats screen as well as "stats", but "stat" reported
"Huh?" due to no fall-through on the permissions checking.

> wholeheartedly with the lament about whether to use "push" or "press" for
> the damned button (that may or may not respond to the keyword "button", but
> that's another issue entirely). It is the grammar that is context free;

Is it?  That's still mud consistency.  I don't allow builders to specify
keywords, because I got so fed up with people making "a jade-hilted katan"
which answers to "green" and "sword."  Gimmie a break.  We just assume
every token in the short description is a possible keyword.

> The point about using a natural language processor is also well taken, but
> I don't think that's what you've implemented there. If you allowed natural
> language, I should be able to use any synonym of shoot and purple
> dinosaur...
> 
> Let's consider when the user tries:
> 
> "use gun on purple dinosaur"
> 
> This is an example of context sensitive grammar. What does "use" mean?
> Shoot the dinosaur? Whack him over the head with it? Scratch his tummy with
> the butt of the rifle? It's ambiguous. Natural language processors try to
> do the "right thing" in these situations (is the dinosaur friend or foe? Is
> the rifle loaded? Are you a decent shot? Does his tummy itch?).
> If, however, you allow exactly one meaning for "use" (let's say it means
> "shoot") then the sentence is unambiguous and the grammar context free.

Nod...I don't mind the system assuming some things, for instance if I
just fired three shots at the dinosaur and I type "shoot" it will fire
at the dinosaur again.  But I like systems which are obvious in their
workings; the user is never left guessing as to what is going to happen
when she types a given command, knowing the context.  For which I think
the "<verb> <object0> ... <objectn>" works pretty well.  Only rarely
do I even find use for connecting verbs, one of those cases being
"look helm on joe"; otherwise you can usually infer from the type of
object what the connecting verb should be.  "get sword bag" is the same
as "get the sword from the bag", and "put sword table" is the same as
"put the sword on the table".





More information about the mud-dev-archive mailing list