Page 1 of 1
Remembering Dialogue (Branching Narrative)
Posted: Wed May 25, 2022 8:22 pm
by rloft123
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.
Re: Remembering Dialogue (Branching Narrative)
Posted: Wed May 25, 2022 10:07 pm
by Tony Li
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:
- vars1.png (24.41 KiB) Viewed 799 times
When variables are grouped, you can use the Menu to show groups in separate foldouts:
- vars2.png (22.78 KiB) Viewed 799 times
And/or you can use the filter bar:
- vars3.png (17.78 KiB) Viewed 799 times
You can also use
quests to keep track of the player's progress.
Re: Remembering Dialogue (Branching Narrative)
Posted: Thu May 26, 2022 9:23 am
by rloft123
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)
Posted: Thu May 26, 2022 12:43 pm
by Tony Li
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.