Page 1 of 1

[Conceptualizing]ZScript Dialogue System

Posted: Thu Nov 26, 2020 7:50 am
by Sarah
I'm having a hard time forming an engineering concept, that is "seeing" how a system functions in my mind, regarding NPC dialogue. Usually if I can "see" it, I can program it, and since I can't "see" it, I'm stuck.

What I'm trying to create is a NPC dialogue system - yes I know there's USDF, I thought a native ZScript solution for ZScript Windows would be a neat addition. With my window objects actually being actors, a dialogue system makes perfect sense.

But I'm having a hard time coming up with a concept in my head as to how this should work under the hood. Plus there's more than one way to handle NPC dialogue - at the end of the day, player clicks button, corresponding dialogue response is played, but there are plenty of features/options. For example, should topics be chained? That is, you must use one option before a second will appear, i.e. topics. What about topic filtering? My kneejerk reaction has been to allow filtering by skill level, i.e. the arms dealer calls you a sissy when you buy ammo on easy, but calls you hot shot on ultra violence.

So I'd like to invite the community to give me some input on this subject, especially regarding features. What kind of behaviors would you like to see supported? A behavior is something the system does that does not impact the core functionality, for example, options fade out rather than just blip out of existence when you click on them. Or the selected option remains and the others vanish (Skyrim?). As I've also described, I'm stuck on that core functionality. Have you ever coded a conversation system? Got any tips? Suggestions? I'm all ears, or eyes I guess, I have to read your response :P.

So here's what I need:
  1. Pointers, tips, suggestions, ideas, any help at all on creating the core internals of a conversation system.
  2. Feature requests. I'd like to hammer out a specific set of features that should allow for flexibility in what kind of conversation system gets created. I can't support everything, so I'm looking for what's absolutely necessary, but also ease of access - if it's something that'd be a pain to do yourself then it should be a feature of the system.
Thanks in advance, I hope everyone is staying safe, and Happy Thanksgiving!