Tohm Command Line Features - Please share your opinions!
- BigScary
-
Topic Author
- Offline
- New Member
Less
More
- Posts: 12
- Thank you received: 1
07 Dec 2013 01:02 #1
by BigScary
Tohm Command Line Features - Please share your opinions! was created by BigScary
We've just recently added several features to Tohm's command line parser! Please share any opinions or ideas you have in this area so that we can make Tohm better. 
Read more here: tohm.wikia.com/wiki/Command_Processing
Key points:
- Suggestions when a verb isn't recognized.
- Flexible syntax.
- Streamlined common verbs, like "go" not requiring a direction when there's only one direction.
- Several commands may be combined into one command line with a natural sentence structure.
- Punctuation and capitalization won't confuse the parser.
- Optional abbreviations to an extreme.
- Automatic logging of all failed command lines to inform creation of aliases and syntax requirement adjustments.
All criticisms and suggestions are very much appreciated. Thank you!

Read more here: tohm.wikia.com/wiki/Command_Processing
Key points:
- Suggestions when a verb isn't recognized.
- Flexible syntax.
- Streamlined common verbs, like "go" not requiring a direction when there's only one direction.
- Several commands may be combined into one command line with a natural sentence structure.
- Punctuation and capitalization won't confuse the parser.
- Optional abbreviations to an extreme.
- Automatic logging of all failed command lines to inform creation of aliases and syntax requirement adjustments.
All criticisms and suggestions are very much appreciated. Thank you!
Please Log in or Create an account to join the conversation.
- Kinaed
-
- Offline
- Junior Member
Less
More
- Posts: 33
- Thank you received: 3
13 Dec 2013 22:50 - 13 Dec 2013 23:01 #2
by Kinaed
Implementor of The Inquisition: Legacy
ti-legacy.com
Replied by Kinaed on topic Tohm Command Line Features - Please share your opinions!
Well, in one way, that's pretty cool and a very interesting project... unfortunately, some of the parsing is not what I'd pursue for game commands though. There is the possibility that I'm just set in my ways, so please take what I say with a grain of salt.
I like truncating commands to act on the only thing they can act on, but your system feels incomplete to me. It's also worrisome that people might accidentally mis-target when they're not aware that there is a valid target they didn't perceive... eg, go to punch the zombie, but accidentally punch the friend following you because the zombie is actually a zombie poster on the wall and your team mate is the only valid punch in the room. Still, I do truncate commands on my game, I just don't attempt to assume the intended arguments (eg, target). So, I can still type "g i" to "go inn", but I'd never drop an argument completely. Your system will probably work 98% of the time, but the 2% of the time when a player's avatar doesn't do what they want it to for no reason other than command parsing will be frustrating.
I also would not try to give people multiple ways to enter the same command, then try to parse what people wanted. I think it's better to teach them a one true way to achieve actions on my system because it's a quick learning curve. It is both harder to learn and harder to teach ambiguity. Regardless of how much effort you put into parsing, there's a good chance your system will never be good enough to completely understand human language. The more command synonyms that you add, the more complexity you have for a given command too. Depending on how far you go, I also see it as being more complex to support.
I do like the fact that you can link multiple commands together (we call that piping on TI), but it's far easier to do that with something like a ";" or "|" symbol than it is to parse English grammar because the latter is inconsistent. Humans are built to assimilate new language, so telling them that ";" means "and" in your system is readily accepted, and even typed subconsciously when entering commands once the syntax is understood... In fact, players who are grammatically poor will find just being told a certain symbol means piping will probably be easier. So, again I view that as adding unnecessary complexity and supportability issues. It's a cool thing to do, but I wonder if there's any value beyond exploring how cool it could be.
I guess I personally view that the purpose of the command line is to enter commands, and having the commands be common English compared to syntax-based doesn't add much value, especially taking the programming complexity. In fact, a final note is that syntax-based commands are often shorter than using English grammar to write a command that would be parsed, so that's at war with your desire to truncate input.
Like I said, I hope my response is helpful rather than harmful, and it's entirely possible that I'm just a stick in the mud.
I like truncating commands to act on the only thing they can act on, but your system feels incomplete to me. It's also worrisome that people might accidentally mis-target when they're not aware that there is a valid target they didn't perceive... eg, go to punch the zombie, but accidentally punch the friend following you because the zombie is actually a zombie poster on the wall and your team mate is the only valid punch in the room. Still, I do truncate commands on my game, I just don't attempt to assume the intended arguments (eg, target). So, I can still type "g i" to "go inn", but I'd never drop an argument completely. Your system will probably work 98% of the time, but the 2% of the time when a player's avatar doesn't do what they want it to for no reason other than command parsing will be frustrating.
I also would not try to give people multiple ways to enter the same command, then try to parse what people wanted. I think it's better to teach them a one true way to achieve actions on my system because it's a quick learning curve. It is both harder to learn and harder to teach ambiguity. Regardless of how much effort you put into parsing, there's a good chance your system will never be good enough to completely understand human language. The more command synonyms that you add, the more complexity you have for a given command too. Depending on how far you go, I also see it as being more complex to support.
I do like the fact that you can link multiple commands together (we call that piping on TI), but it's far easier to do that with something like a ";" or "|" symbol than it is to parse English grammar because the latter is inconsistent. Humans are built to assimilate new language, so telling them that ";" means "and" in your system is readily accepted, and even typed subconsciously when entering commands once the syntax is understood... In fact, players who are grammatically poor will find just being told a certain symbol means piping will probably be easier. So, again I view that as adding unnecessary complexity and supportability issues. It's a cool thing to do, but I wonder if there's any value beyond exploring how cool it could be.
I guess I personally view that the purpose of the command line is to enter commands, and having the commands be common English compared to syntax-based doesn't add much value, especially taking the programming complexity. In fact, a final note is that syntax-based commands are often shorter than using English grammar to write a command that would be parsed, so that's at war with your desire to truncate input.
Like I said, I hope my response is helpful rather than harmful, and it's entirely possible that I'm just a stick in the mud.
Implementor of The Inquisition: Legacy
ti-legacy.com
Last edit: 13 Dec 2013 23:01 by Kinaed. Reason: grammar and an additional thought
Please Log in or Create an account to join the conversation.
- Kinaed
-
- Offline
- Junior Member
Less
More
- Posts: 33
- Thank you received: 3
13 Dec 2013 23:08 #3
by Kinaed
Implementor of The Inquisition: Legacy
ti-legacy.com
Replied by Kinaed on topic Tohm Command Line Features - Please share your opinions!
Oh, I suppose I should be a bit clear, I do like some items as below:
Key points:
YES - Suggestions when a verb isn't recognized.
NO - Flexible syntax.
NO - Streamlined common verbs, like "go" not requiring a direction when there's only one direction.
MAYBE - Several commands may be combined into one command line with a natural sentence structure.
YES - Punctuation and capitalization won't confuse the parser.
YES - Optional abbreviations to an extreme.
YES - Automatic logging of all failed command lines to inform creation of aliases and syntax requirement adjustments.
I'd also add a spell checker if you can.
Is this intended to be a MMO, or more like a Zork? Can you meet other players in game?
Key points:
YES - Suggestions when a verb isn't recognized.
NO - Flexible syntax.
NO - Streamlined common verbs, like "go" not requiring a direction when there's only one direction.
MAYBE - Several commands may be combined into one command line with a natural sentence structure.
YES - Punctuation and capitalization won't confuse the parser.
YES - Optional abbreviations to an extreme.
YES - Automatic logging of all failed command lines to inform creation of aliases and syntax requirement adjustments.
I'd also add a spell checker if you can.
Is this intended to be a MMO, or more like a Zork? Can you meet other players in game?
Implementor of The Inquisition: Legacy
ti-legacy.com
Please Log in or Create an account to join the conversation.
- BigScary
-
Topic Author
- Offline
- New Member
Less
More
- Posts: 12
- Thank you received: 1
16 Dec 2013 21:00 #4
by BigScary
Replied by BigScary on topic Tohm Command Line Features - Please share your opinions!
Hi again Kinaed, and thanks very much for your thoughtful feedback! It's not our goal to make everything someone types work as they intended - I totally agree with you that it's impossible or prohibitively expensive (lots of PhD's are working hard in the natural language space, and none of them are on the Tohm team). If we can get say... 90% of command lines working for 90% of players, that's good enough, and we don't expect to be there on day 1 (that's what the detailed logging is for).
You're right about it being very difficult to teach ambiguity, but what we're going for is not teaching at all - the goal is to have command lines "just work", maybe with a small amount of in-game help text delivered to clarify usage in case of failures. This is because nobody reads instruction manuals anymore, and we don't want to put that barrier in place for new players. In seriousness, if we fail to deliver a command line that just works for most new players, then we're more likely to replace it with a hyperlink-driven "command line builder" approach than to insist players climb the learning curve.
Also remember, each player only needs to find one way of accomplishing a task, and then stick to that one, so there's no need to learn all the variations on a verb. There's no requirement to use the "long form", it's just a convenient option for new players who haven't picked-up any abbreviations yet.
As for complexity, the strategy is "deliver as much awesome as possible while keeping implementation cost down and automated testability up". We'll land somewhere in between "perfect" and "meh", and I hope that landing point is somewhere around the 90/90 I mentioned above.
On the piping, thanks for that terminology.
We won't insist on special characters because doing that will push our command line from a natural language input into an old school input prompt, which fewer and fewer players will have previous experience with (especially non-tech types which are in our target demographic, but also including younger tech types who encounter old school command lines less and less these days). Yes, it can be taught, but if we have to teach something entirely new, I feel like many of our potential new players will just throw up their hands and go play something they're familiar with. At any rate, this isn't a feature we think will be heavily-used, we just want it to work for a few cases where new players may try it on a whim. It's not necessary for it to work all the time (or even most of the time).
I would really like to add a spell checker.
Will have to look into that at some point.
This is a multiplayer game (one world for all players).
You're right about it being very difficult to teach ambiguity, but what we're going for is not teaching at all - the goal is to have command lines "just work", maybe with a small amount of in-game help text delivered to clarify usage in case of failures. This is because nobody reads instruction manuals anymore, and we don't want to put that barrier in place for new players. In seriousness, if we fail to deliver a command line that just works for most new players, then we're more likely to replace it with a hyperlink-driven "command line builder" approach than to insist players climb the learning curve.
Also remember, each player only needs to find one way of accomplishing a task, and then stick to that one, so there's no need to learn all the variations on a verb. There's no requirement to use the "long form", it's just a convenient option for new players who haven't picked-up any abbreviations yet.
As for complexity, the strategy is "deliver as much awesome as possible while keeping implementation cost down and automated testability up". We'll land somewhere in between "perfect" and "meh", and I hope that landing point is somewhere around the 90/90 I mentioned above.
On the piping, thanks for that terminology.

I would really like to add a spell checker.

This is a multiplayer game (one world for all players).
Please Log in or Create an account to join the conversation.
- plamzi
-
- Offline
- Administrator
Less
More
- Posts: 285
- Thank you received: 42
16 Dec 2013 21:30 #5
by plamzi
If your client is running in a browser, adding a spell-checker takes about 10 min
Replied by plamzi on topic Tohm Command Line Features - Please share your opinions!
BigScary wrote: I would really like to add a spell checker.
Will have to look into that at some point.
If your client is running in a browser, adding a spell-checker takes about 10 min

The following user(s) said Thank You: BigScary
Please Log in or Create an account to join the conversation.