In this tutorial, I’ll explain how to write an interactive discussion between two characters. We’ll have a look at how to let players chose dialog options from multiple possible answers while avoiding duplicating content.
Adding multiple choices to a shadowrun conversation tree
In the previous tutorial, we’ve seen how to create a dialog, write a simple linear discussion and add the interaction to the game. We’re now going to edit this conversation and add more options for the player to chose from.
Add multiple red nodes to the conversation tree
To offer the player multiple choices to answer, select the speech from the non player character you want the player to answer. It should be one of the blue lines Like the one saying “then you can not enter…” in the screenshot. Then when it’s selected (blue highlight background on the screenshot), hit the speech bubble with the green plus icon to add new conversation nodes.
You should see multiple new RED nodes appear saying “End dialogue”.
Type the different answers the player can chose from
In each of them, type one of the possible answers for the player to give. Make sure to add content to all of them.
Troubleshooting : the conversation ends instead of showing choices ?
If any of the RED nodes contains only [end dialogue], it will end the conversation without giving the player the option to give any answer at all. In the screenshot above, all red optinos have text, but no answer.
Adding custom answers based on the player’s choices
If you left the dialogue like that, the player would select an answer and the dialogue would be finished after the choice.
To give a feedback based on the player’s choice, select each of the red nodes and add a new blue node below again using the speech icon with the plus.
Type the answer you want the non player character to give to the player. Notice the [end dialogue] tag now marks the end of the blue line, which means the dialog will be finished after the player got an answer and clicks on the default “next” button.
Test and improve the interactions
If you test this, now, you’ll see the player is able to pick from three different answers.
He gets a different reaction in return based on his choice. For example, here I picked “It’s “the sinless are free”.
With just this, the player won’t actually be allowed to go in or prevented from going inside. We’ll cover how conversations can influence the rest of the game world in an upcoming tutorial.
How to keep conversations easy to manage even when they get more complex ?
Copying, cutting and pasting conversation nodes
You’ll find you soon want to have more than just three options and you don’t want to write a new sentence everytime to basically tell the player he hasn’t got the right password.
At the top of the conversation editor, the four most right icons allow you, in that order, to copy and cut a dialog node, and paste or paste a link to a previously copied dialog node. Sadly, keyboard shortcuts won’t work for this, you’ll have to click those buttons.
Pasting a link to a conversation node to re-use answers you already typed once
Copy pasting seems straight forward. Cutting is useful when you need to move a dialog node to a different location, mostly. Pasting a link to a node is by far the most interesting ption here.
In the screenshot above, I have selected and copied the blue node “You can’t go in without the password, sorry”. Then I have pasted a link to that node by selecting “It’s ‘Copycat’ “. The link appears in grey with an arrow icon in front of it. When this conversation option is clicked by the player, the dialog will follow this link to the node and carry on with whatever follows from there.
If you have one information to give them, you should write it down only once
In this case, it will just tell the player he can’t go in and give him the following option to say “Don’t worry, I’ll find another way in.” If you want to change the text, you will only have to do it once, and the same new text will be displayed when the player clicks either the first or second dialog option.
Multiple choices leading to a single answer is great to give personality to the player character, reduce workload and keep information consistent
This is used a lot in Shadowrun to let the player chose the voice in which he asks a question or accepts a quest. It gives personality and depth to the player character where he doesn’t have any control over the storyline.
Improving the password guessing prototype
How to re-use non player character speech to optimize the discussion tree
In my “guess the password” context, this means you can let the player try a long list of different passwords that are all wrong without adding any extra writing work on your side, unless you really want to for some reason.
If you give the player one question to ask, you should write it down only once
A similar functionality can be used to let players ask the same questions multiple times without having to re-write the questions.
If you wonder what the blue empty line is about in the screenshot above, here’s the story behind it.
Giving the player the same choices multiple times : the tedious manual approach
In my first few dialogs, I wanted the player to be able to ask about a mission’s location, danger to be expected and reward, in any order. My first attempts were tedious because I tried to branch conversations and take in account all possible combinations. This meant I needed to write 9 dialogs, with 3 different descriptions of the same information for each answer. This definitely was a waste of time and might generate inconsistencies in the story during iterations.
Giving the player the same choices multiple times : pasting a link back to the previous node (blue)
My first solution was to link back to the original post where the three questions were asked, but then the previous answer would disappear and in the games, players can ask multiple questions in a row while the previous answer is still visible. So I knew there had to be a better way.
Giving the player the same choices multiple times : linking back to an empty line (blue)
To display the same set of options to the player without repeating them, you create an empty line that you attach all the questions to. Each red question gets a blue child node with an answer. In our password guessing example, it’s a link to a blue node, because the answers are the same.
After the blue answer, you need to add an empty child node (red) and then paste a link to the empty blue line that all questions are linked to. The blue [empty line] will leave the description above the player choices unchanged, which allows to display new dialog options to the player without changing the NPC’s speech content.
Making dialog options easier for players to chose from
Player’s shouldn’t have to remember what they already asked
Usually after a question has been asked, you don’t want the player to be able to ask it again. In our example, it doesn’t make sense to make the same guess twice, I don’t want the player to have to remember which options he tried and failed versus which options he never tried before.
Make the option available only once
To allow players to chose an option only once, there’s two small checkboxes below the typing area that you can use.
Available only once means that once the player has used a choice in a dialog, it will not be usable again.
Hiding or showing options that are not available to the players ?
By default, it will still be there in the choices, but be greyed out. If you want the unavailable option not to be displayed in the dialog anymore, you also have to check the “hide if unavailable” checkbox.
This reduces visual noise, the player will only see the options that are available to them. The only time where it makes sense to show an unavailable option is if you want the player to be aware that he might have new options if he had… a skill, an item or some knowledge. In that specific context, showing unavailable options can highlight the game’s replay value or give hints to the player about how to progress through a puzzle.
Testing the level with many password options that disappear once used
As a result, the dialog would look something like this.
At first, the player sees all the options. As he clicks the different potential password guessesm, they disappear from the list.
This goes on until you pick the right password and the dialog ends.
In our next tutorial, we’re going to have a look at how to let players guess a password by typing it themselves using a keypad or keyboard, for example, to open a door or safe lock !