Target Disambiguation (World Interaction) #144
DavidRieman
started this conversation in
General
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Eventually we landed a solid base design for target disambiguation, as detailed in the World Interaction User Story. This thread can serve as a place to discuss further refinements/clarifications. To kick things off, here are some relevant clips from previous forums archives, for context.
This thread contains restored content from prior forums; see #134 for details.
[May 2009]
Yes, generally, for technical simplicity, the only times you tend to see such a dramatic change in what the commandline expects to receive is during login/character-creation sequences, maybe during pagination, or things like in-game message writing or room building (editing descriptions) or so on where that spans multiple lines of input. I'm not sure the benefits outweight the dev costs, especially considering the number of edge cases and weirdness we are likely to encounter. Take for instance, a user has "a large blue potion" and a "large bag", now they're thinking of that large potion that they want to refer to with keyword 'large' and put it into a bag:
> "put large bag"
- What do we do here?Put the large bag in what?
- Uh oh, the user doesn't even know how to cancel.> no
You put the large bag in the small nook.
Or do we detect the possible conflict of the "large" keyword even though there is one object with both keywords "large" and "bag"? That particular example may be a little far fetched... I dunno, but my gut feeling is that the tip of the iceberg is here, being just a few of the problems that occur with just one command's single possible sentence structure. IMO we shouldn't try to fix such ambiguous input by altering it with more input, but instead have our error texts help the user discover and utilize correct and/or context-appropriate syntaxes. Shy of having an expert in AI-computer-interpreted-linquistics or whatever you want to call a relevant research field to spend some real thought and time on the matter, keep-it-simple design might be better to strive for here?
Here's a couple additional complicated situations:
(Note the user may or may not slap the "in" there as it may feel natural. Also note that we can have two or more problems in one command.)
(Note the user may be confused here, lets say they type 'w' here to follow west but Bob hit a dead end and came right back at a bad moment.)
To be clear though, I am agreed that done right this would be very awesome, but yeah I think it's something we should just plan on being able to come back to later.
I think that the User Experience is not studied carefully enough where MUDs are concerned. For those of us with the nostalgia and the historic experience with playing MUDs and using command-line interfaces like DOS, sure, there are literally thousands of MUDs which are 'accessible' to us - but for a MUD to be attractive to a new user in the face of ever-increasing quantities and qualities of even free-to-play graphical MMOs and such out there, serious thoughts should be given to breaking the barriers of entry.
Here's a dramaticized recreation of one the most frustrating recollections in my MUD history; something IMO we should provide better mechanisms to help avoid:
Suppose you have a wicked sword, 6 weird swords, a rusty sword, a hat, a stick, ..., a switchblade, a plain sword, ..., ubersword of doom, ...
Tell me that whole block of nonsense isn't a frustrating usability disaster...
That said, we shouldn't make the codebase disproportionately more complicated than the gains of the supported usability scenario. Complexity vs benefit should be carefully balanced. The ideas expressed in this post are so far just ideas, none have been started in implementation, and shouldn't be until much further design/discussion/agreement. Potential solutions range in complexity, such as temporary IDs to assist with disambiguation, to multiiple-pass command processors being able to restructure the overall command as you clarify...
ATM I would personally lean Against having multi-line parameters for restructuring commands on the fly. However, the occasional well-placed, well-designed Y/N prompt (which if implemented correctly, does NOT block the next command you had queued up since it'll forward on anything except Y/N or whatnot) could improve usability quite a bit, and might occasionally be worth the complexity of deferred-completion.
As is, one big intent for the command system is extensibility. Commands won't necessarily all be known/defined at compile time, as MEF may bring in additional commands at startup-time based on what extension DLLs you have present. Additinoal commands may be 'context-sensitive' such as, for example, when you're in the same room as a room-bound 'blackjack card table' object which gives you the special commands to 'hit', 'stay', etc, which would take precedence over global commands of the same name. (In this example, the blackjack table could be housed entirely in its own DLL and added to the game mainly through MEF, though an object instance would still have to thereafter be added by an admin or builder).
[ed 2021] We eventually designed World Interaction User Story which IMO solves most of the discussed issues from these threads.
Beta Was this translation helpful? Give feedback.
All reactions