Nesting Conversations

Announcements, support questions, and discussion for the Dialogue System.
Post Reply
deisama
Posts: 2
Joined: Thu Apr 09, 2020 12:30 pm

Nesting Conversations

Post by deisama »

I looked at our writers plans for dialogue and it's a pretty intense tree. Often a character is presented with 3 choices, and upon finishing one choice is given a new set of choices that includes the previous unselected 2 choices plus a new choice.

The good news is that your Dialogue System is quite capable of handling this. (He was quite impressed with the flexibility and wished all the games he worked on had used it!)

The bad news is if the choice response has even a few back and forth dialogue lines, the whole tree can get pretty unruly very quickly.

I'd love it if there was a way to have a Master Tree which contained all of the tree logic and than each node linked to a sub conversation to play once it was selected.

I figured I could do this with a custom sequencer command and just launch the new conversation and call Stop when it's done, but I'm not entirely sure how to figure out when a specific conversation ends since DialogueManager.IsConversationActive will always be true and start conversation doesn't return anything to monitor.

Thanks for your help!
User avatar
Tony Li
Posts: 22055
Joined: Thu Jul 18, 2013 1:27 pm

Re: Nesting Conversations

Post by Tony Li »

Hi,
deisama wrote: Thu Apr 09, 2020 1:12 pm I'd love it if there was a way to have a Master Tree which contained all of the tree logic and than each node linked to a sub conversation to play once it was selected.
You can do exactly that. Inspect the origin node. From the "Links To" dropdown, select "(Another Conversation)".

You may also be interested in using a conversation position stack. This lets you record the current conversation state and then return to it later without having to set up explicit links. It's particularly useful for investigative games where the player goes down a branch of enquiry and then wants to return to a question hub.

Also, use forward slashes in your nested conversations' titles to group them all under the same submenu.
deisama
Posts: 2
Joined: Thu Apr 09, 2020 12:30 pm

Re: Nesting Conversations

Post by deisama »

The problem with the Links To is that it doesn't presever the current brances.

So say we had

B1-A
-B
-C

And than A looked like
A -B
-C
-D

I would want the A conversation to load up play, and than when done, give me the options
B,C, or D.

the conversation position stack looks really promising. Does it automatically pop at the end of every conversation chain or would I have to put in a node at the end of every sequence that called the pop function?
User avatar
Tony Li
Posts: 22055
Joined: Thu Jul 18, 2013 1:27 pm

Re: Nesting Conversations

Post by Tony Li »

You need to call PopConversationPosition() yourself in the last node (or whenever you want to return).
Post Reply