Howdy and happy Monday!
I’m Casey from the programming team, and one of the things I’ve been working on lately is Umbrella Mondays’ Dialogue System. The programming team’s been hard at work these past few weeks fleshing out the core of the game, including the UI, puzzle mechanics, and player movement, so we haven’t had many cool visuals to show off yet, but the dialogue system is one of the first in-game elements that’s starting to take shape!
This system works in tandem with the scene manager to bring the story that Bob wrote to life. From a user experience standpoint, a player shouldn’t even notice that this system exists; it should just feel like the player is talking to NPC’s (Non-Player Characters) and reacting to the world around them.
This is done, in short, by a 4 dimensional array, but that’s super confusing to visualize in your head. Instead, just think of an array (or a list) where each element contains a list of lists, and each of those lists hold text lines. Much like you could say that a essay is an array of paragraphs, which each has an array of lines, which has an array of words.
The way the system works is that there is a Master Script that holds all of the dialogue, and a trigger box that sits on the character that displays the text. The Master Script is where the dialogue system is stored, and the first array in that system is a list of characters that have an ID value based on their location in the array. The trigger box stored on each character has an input for an ID value. This gets the correct lines for each character.
This works with the game manager to get the rest of the data to have a character talk to you! The reason this system is so complicated is because each NPC’s dialogue varies greatly depending on the time of day, your progress through the game, and your previous interactions with them. In our writer Bob’s own words, “It’s my fault that it’s this complex, isn’t it?” and my answer is yes, but I’m very happy to have this entire system fleshed out and ready to go!
Have a Happy Thanksgiving and see ya next Umbrella Monday!
Shout out to Shane Yach from Small Hours for making it into our game!