“Threaded Conversation” is the extension I used to build Alabaster: a large and complex piece of work implementing a lot of my ideas about conversation modeling for use with Inform 7.
Threaded Conversation is capable of handling several styles of interaction: old-school ASK/TELL, something closer to menu conversation, or (the default) a prompted ASK/TELL similar to the default TADS 3 conversation system. It dovetails with some of Eric Eve’s conversation extensions to automatically handle greeting and saying goodbye to characters. Without implementing anything as rigid as a dialogue tree, it has a concept of conversation topics, recognizes when the player significantly changes the subject, allows for NPCs to direct conversation towards areas of their own interest, and is capable of tracking character knowledge separately from the way the character might choose to express that knowledge. I’ve successfully used it for both two-person and multiple-person conversation modeling.
It does not include any built-in features for artificial intelligence on the part of the NPCs, but because it has a concept of “things the NPC wants to say urgently/at some point in the future” that can be freely adjusted, it dovetails reasonably well with author-designed code to determine what the NPCs should want to say next.
The intention had always been to polish and revise this extension and its documentation, then release it for use by the rest of the community. In practice, what happened was that I got it a good way towards the finish line and had an extension that I myself was happy to use, but that was probably incomprehensible to other humans. Occasionally someone would ask me for a copy and I would send it off… and never hear anything more about it, presumably because the people receiving the code weren’t able to do much with it.
Then I changed careers and life paths into one that leaves me a lot less spare time (and where I’m doing enough coding in my day job that my energy when I’m done winds up in other places). The good news, however, is that Christopher Conley stepped forward and volunteered to do the work needed to adapt Threaded Conversation into something other people could use.
He’s revised the code and documentation, and is now looking for volunteers to beta-test the extension and its documentation. If you’re interested, check out his posting on the intfiction forum for contact details.
Great! I enjoyed Alabaster immensely, hope to see more conversations of this type in if.