3 ms·
If live chat responses were auto-saved as new nodes, that would meet my requirements. The goal would be that any new input could be either manually directed to
by jmhnilbog 13y ago
If live chat responses were auto-saved as new nodes, that would meet my requirements. The goal would be that any new input could be either manually directed to an old node or auto directed to a new node.
Imagine a 'choose your own adventure' book that accepted arbitrary input and could create new paragraphs on the fly. If your input maps to an existing paragraph, you're texted it immediately. If the book never heard of someone trying your input before, you're told to wait a bit and get a response once the book writes it. A very few commands do something special. 'inventory' spits out your current inventory state.
There are a few levels of game state. Characters carry around a small amount of state (alive, healthy, ugly, etc.). Locations carry around some state. (on fire, dark) Other state might be held in a calendar (May 1st, 9:00 am, the world will end) or the world itself. Each 'paragraph' in the imaginary book should be able to look up and/or update any of those states when entered.
Ideally, any input that comes in would be autocorrected and analyzed for parts of speech. If a new noun comes in, it could be compared to nouns mentioned in previous 'paragraphs' to figure out what the user meant. 'get brown tote' and 'get brownish bag' should resolve to the same thing.
My third bullet boils down to allowing a user to:
You are standing before a door.
> open door
The door resists your furious pushing and pulling. What's that thing people open doors with? A....key?
> get key
Who said anything about a key? There's no key here.
...later, after finding a key...
You are standing before a door.
> open door
The door rattles, but appears to be locked.
> use key on door
*click* The key fit, the door unlocked.
without having to add hundreds of similar nodes at different points in the tree. You'd just make the 'standing before a door' node check 'player.inventory.hasKey' and have it send you the correct 'paragraph'. (Also, 'use key on door' would update 'rooms.boring.door.locked'.)
- zekenie 13y agoVery interesting. We already track "errors" (responses that don't have connections) and we could make a real time error corrector. Let's say you have a yes/no question and someone says "nah." If you didn't want them to recieve a text saying "the options were yes and no," we could maybe make it so you could click on the node you wanted it to go to... But, I'm not sure if there's much demand for this type of feature in general. I think most users won't want to have real time people sitting in the trext app. I'd be interested in talking about it more though!
- jmhnilbog 13y agoRight, mine is a pretty specific use case. However, if a thesaurus lookup can figure out that nah is close enough to no that it should just normalize the response to no, that's a win for the user. (Scraping urban dictionary to act like a thesaurus would be a decent way to decipher txt spk and euphemisms as well.) Yes/No questions could be special cased to accept more oddball responses off the bat..'for sure', 'totally', 'no way', etc.
- zekenie 13y agoAgreed. I'm not a natural language expert by any means, but from the research I did a little while ago, it seemed like the thesaurus apis matched "yes" to "affirmative" and not to "yeah." Maybe I haven't found a good one?