Devlog #16- Dialogue


This week, once again, I am working towards the demo and I’m getting oh-so very close! At this point it’s mostly just polishing up menus and systems, as most of the demo content itself is complete.

One of the systems I finished this week is the dialogue system. I don’t usually talk about the nuts and bolts of my game in these devlogs because my code is messy and I always plan to optimise it, but this system is already knotted throughout my entire project and there’s no going back now- so I might as well talk about it here.

------------------------------------------------------------

Event Manager

All dialogue in my game is run via a cutscene, and these cutscenes are all triggered through an event manager object. When a cutscene is triggered, the game pauses and retrieves the current cutscene from the list, where it's stored by a unique cutscene number.

The cutscene itself is then divided into steps- with each step having a number that corresponds to what type of event will occur along with any necessary variables.  e.g. event number 2 = moving the camera, and stores the coordinates to move it to.

I have 28 event types, and I still add new ones every now and then. For any one-off events that would require a lot of steps at the same time, I use a special event type triggered by a keyword.

It's the kind of convoluted system that only I can possibly understand, with strange variable names and spaghetti code galore, but I've got it memorised pretty well and it’s working as planned so far. Everything is modular so changing things is simple and doesn’t affect other parts of the game when I do.

-------------------------------------------------

Dialogue System

For a while now, I’ve had the option for multiple choice answers in dialogue, but it has been limited to 2 or 3 responses only. This week I added a topic based dialogue system that allows for any number of options, mainly for when talking to recruited characters at the base camp.
(I plan on updating the visuals to show the layers of available topics behind the current ones eventually, but that'll come after the demo's done)



Each character now has a list of topics they can talk about that can be updated with new topics at any point throughout the game; If an event occurs in the game, for example a mysterious explosion, then a topic about the explosion will be added to any relevant character's list.

Talking to a character at base-camp will show the available conversation topics in groups of three that can be swapped through.
The first option will always be a general one, in most cases a conversation about that character’s next quest or story motivation.
Any optional topics are one time only conversations that are removed after you have heard them.
Some characters also have additional permanent options, e.g Mila with an option to end the current dream, Yusuke with an option to talk about camp upgrades.




These topic conversations are intended to be optional, for the purpose of fleshing out the characters for players who are interested, so I’ll avoid linking major parts of the game to them. I do plan to add a lot of secret dialogue and events with these though, and maybe some optional quests. I think it'll add a lot of depth to the game for those that want it, without forcing it on any players who are less interested.

-----------------------------------

Final Thoughts

So far, I’m managing with this event system fine, but I wouldn’t be surprised if it blew up at some point. Cutscenes take a long time to make, but it forces me to think them through more as I make them and not bloat the game with unneeded dialogue. The longer the cutscene the harder it is to work with, and this might seem like a negative but I find it actually forces me to make cutscenes shorter and to the point.

---------------------------------------------------

Thanks for reading! Next week will either be a very excited devlog about finishing the demo or a very dissapointed one. Wish me luck!

Leave a comment

Log in with itch.io to leave a comment.