I'm looking to create a 2D story driven game using Dialogue System as the base of the social aspects of the game. I have down the basic conversations and barks from the asset, however I haven't gotten too deeply into the lua stuff, which seems to be where a lot of the power is.
My question is, how would you go about having the game and individual characters remembering what you've said, or having certain states of the game change based on decisions made and triggering certain events or other dialogues based on those decisions made (I'm thinking about the Telltale games, or Disco Elysium). I can imagine a solution with a lot of boolean flags based on chosen dialogue and actions done in the game, but I'm uncertain how to even approach this and want to avoid some messy and poorly scaling solution.
Any advice would be greatly appreciated.
Remembering Dialogue (Branching Narrative)
Re: Remembering Dialogue (Branching Narrative)
Generally speaking, Boolean flags (variables) are the way to go. To keep them organized, group them by using "." in the variable names. (See examples below.)
This tutorial covers variables and conditions: Conversation Conditions Tutorial
You'll note in the tutorial that you don't have to type any Lua. Just use the "..." dropdown menus.
Another example of using variables is in: How to: Run a Conversation Only Once
Here's an example of grouping variables in "Villagers" and "Castle" groups:
When variables are grouped, you can use the Menu to show groups in separate foldouts:
And/or you can use the filter bar:
You can also use quests to keep track of the player's progress.
This tutorial covers variables and conditions: Conversation Conditions Tutorial
You'll note in the tutorial that you don't have to type any Lua. Just use the "..." dropdown menus.
Another example of using variables is in: How to: Run a Conversation Only Once
Here's an example of grouping variables in "Villagers" and "Castle" groups:
When variables are grouped, you can use the Menu to show groups in separate foldouts:
And/or you can use the filter bar:
You can also use quests to keep track of the player's progress.
Re: Remembering Dialogue (Branching Narrative)
Thanks, I've been looking into those and it's been helpful. My one other question is, what's the standard for controlling which conversation is being used? Is it best practice to make a whole different conversation for each different conversation you can have with an NPC, or should you branch out based on logic/flags/triggers in a single "Conversation"? Like lets say, the first time you are introduced to the NPC, so NPC.introduced is now true, then you can do that check in the conversation flow. Would you just expand on that kind of logic within that same Conversation? Because triggering different Conversations looks like you need a new Dialogue System Trigger for each, which would explode in the amount of components the NPC object would have.
Re: Remembering Dialogue (Branching Narrative)
Hi,
The second part of How To: Run a Conversation Only Once covers two ways to do that:
1. Use multiple Dialogue System Triggers, or
2. (My preference:) Always start the same starting conversation, and branch from there to other conversations using cross-conversation links.
The second part of How To: Run a Conversation Only Once covers two ways to do that:
1. Use multiple Dialogue System Triggers, or
2. (My preference:) Always start the same starting conversation, and branch from there to other conversations using cross-conversation links.