[MUD-Dev] When the interface becomes the challenge.

Andrew Wilson andrew at aaaaaaaa.demon.co.uk
Fri Jun 22 11:51:00 CEST 2001


Koster, Raph:
>> -----Original Message-----
>> From: Alex Kay
>> Sent: Monday, June 18, 2001 10:12 PM
>> To: mud-dev at kanga.nu
>> Subject: Re: [MUD-Dev] When the interface becomes the challenge.

>> What I don't understand is why developers insist on almost always
>> trying something different when it comes to basic control
>> input. Ever since Doom/Quake there has become a defacto standard
>> layout of keys and mouse use. Why change what ain't broke?

> We are running into this right now, actually, and it gets rather
> tangled.

> For me the issue isn't mouselook--it's keyboard use. The
> convention for talking in the cited games is hitting ENTER,
> typing, then hitting ENTER again. They also tend not to have any
> typed commands. Some games use T for talk.

> Muds use a SAY command input at a command line; many abbreviate to
> the apostrophe (').

> IRC is just type to talk, and then you have a prefix character,
> the /, to indicate special commands.

> UO had no command-line commands other than chat and emote. As a
> result, the keyboard was "type to talk" at all times. Extra
> commands were mapped to CTRL key combinations. We also supported
> the common mud abbreviations--hitting ' was actually ignored if it
> was the first character so that mudders would feel comfortable,
> and : was still emote.

> EverQuest uses the ENTER convention, and all the keys are mapped
> to commands instead. If you forget to hit ENTER to talk, you do
> strange things (and early on, you died, since you likely typed "H
> A I L"--you were supposed to "hail an NPC" and the H key was HAIL
> and then the A was Attack, and you died to the shopkeeper you just
> hailed.) On top of that, the chat bar was ALSO used as a command
> line, with the IRC convention used.

> All of this makes for a tangled mess. :)

[snip]

> -Raph

Another option is what I rather lamely term a 'say/do' interface.
If the set of visible commands is known to the client then it can
decide whether or not the words the user just typed are a command
that the server knows about, or something that the user wants to
say.  Users, especially experienced users, know what *they* mean
when they type 'look here' or 'open door' or 'Hey, how did the game
go last night?' and it's quite easy to build a system that can tell
the difference.

I use this approach in the tkMOO-light client, using some MCP
messages to tell the client which commands are visible to the user
at any time (so it's also useful for tab-to-command-completion
tricks).  MOO-server commands are generally of the form ' verb
object [on/to] object ', so it's enough to check that the first word
in the client's input window matches one of the visible commands.
If the word matches then the client underlines the word, as a simple
visual cue, and hitting [enter] sends the window's content to the
server unchanged.

If the first word doesn't match then the client assumes that the
words are to be spoken and sends the window's content preceeded by
'say'.

The tkMOO-light say/do stuff is built using the dns-com-awns-rehash
MCP server package, and the rehash.tcl client plugin, all under:

    http://www.awns.com/tkMOO-light/plugins/
    http://www.awns.com/mcp/

When this feature first turned up in the client, several
unsuspecting users complained - it wasn't what they were used to.
Of course the feature is optional, and the client can revert back to
a simple what-you-type-is-what-you-send approach if needs be.  But
it seems that, whatever approach you take, there'll always be
someone who was educated differently and who is quite comfortable
with the existing setup.  It's almost like having an accent or
dialect, but for typing, and perhaps not something a designer should
strive to normalise.  Perhaps providing a range of input modes is
something worth aiming for.

Some MOOs also have a feature called Do-What-I-Mean (DWIM for
short).  If you type 'open' and the only thing in the room with an
'open' command defined is a door, then the server expands 'open' to
mean 'open door' before executing the command.  Other approaches use
the idea of the most recent object, so a command sequence like 'get
box' 'open it' means that the 'it' is mapped to the last object you
touched or looked at, that box.

Cheers,
Ay.

andrew at awns.com
Cell: 07889 61 61 44                 Voice/Fax: +44 (0) 1865 513 091  
_______________________________________________
MUD-Dev mailing list
MUD-Dev at kanga.nu
https://www.kanga.nu/lists/listinfo/mud-dev



More information about the mud-dev-archive mailing list