Page 1 of 1
Conversation Architecture
Posted: Tue May 09, 2023 9:39 pm
by rloft123
My question is what is a good way to manage branching narratives using Dialogue System? For context, I will have many characters in my "open world" game, and depending on however many variables in the world (previous choices, things you've done, reputation, etc) you will have different potential dialogues with them. For example, if you have done a quest that should not pop up again. I was curious if a "HUB" conversation for each character would be appropriate, and that HUB would have no actual dialogue but would redirect the conversation to the appropriate conversation (based on conditions). To do this I imagine I'd need to set up some custom Lua to redirect the conversation accordingly.
I could be way over thinking this and off the mark, and there may be a much simpler way to do this. Any help would be appreciated. Thanks.
Re: Conversation Architecture
Posted: Tue May 09, 2023 11:54 pm
by Tony Li
Hi,
You're totally on the mark. Write a hub conversation, and link to the appropriate conversation using conditions. Some notes:
- To link from one conversation to another, inspect the originating node. In the "Links To:" dropdown, select "(Another Conversation)". Link to the node after the <START> node, not the <START> node itself.
- Use forward slashes in your conversation titles to group them into submenus such as "NPCs/Adam/Hub", "NPCs/Adam/Blueberry Picking", "NPCs/Adam/Baking Contest", etc.
- Use periods (.) in variable names to group them into submenus. It works like forward slashes for conversation titles and actor names, but since variables can't have slashes in their names you can use "." instead.
- How To: Run a Conversation Only Once
- How To: Use Group Nodes To Reduce Condition Checking Time
Re: Conversation Architecture
Posted: Wed May 10, 2023 10:42 pm
by rloft123
Awesome, thank you.
Another question that's more broad, what would be a good approach to structuring out my story driven game when incorporating skill checks (some may be hidden) depending on what "stats" the player has.
I'm imagining something like Disco Elysium, which coincidentally used this Dialogue System as well.
This is what I was thinking:
Skill Variables: In my Dialogue System variables, define a variable for each skill that a player can have. The value of this variable represents the level of the skill for the player. I can update these variables as the player levels up or improves their skills throughout the game.
Skill Check Nodes: In my conversations, I'll add nodes that serve as skill checks. These nodes will have conditions that compare the player's skill level (the value of the relevant skill variable) with the required level for the check.
Branching Dialogue Paths: If a player succeeds a skill check, the dialogue can branch off into a path that represents success. If they fail, the dialogue can branch off into a path that represents failure.
Lua Scripts and Events: I'll use Lua scripts and Dialogue System events to perform complex skill checks or to update the player's skills. For example, I may decrease a player's health if they fail a certain skill check, or give the player experience points if they succeed.
Does this sound like something that system would have implemented? Just making sure the architecture of what I'm going to do is sound, and I'm relatively new to Dialogue System.
Re: Conversation Architecture
Posted: Wed May 10, 2023 11:28 pm
by Tony Li
Hi,
That all sounds perfectly fine.
In case you haven't seen these already: