Dialogue System

Got the dialogue system working in the game! I’ve been meaning to implement this for a while, but I kept getting sidetracked by other features… also it felt more daunting to make than other things for me. This is the first time I’m working with a node-based dialogue system with choices and multiple characters.

I actually built a prototype of a node-based dialogue tree system a few months back, just for fun, but it was very basic and it would’ve taken some time to polish it up. I’m kinda new to the whole custom editor thing, though I’ve been writing more and more editor code to speed things up…

For this game I thought it would be better to purchase an asset that’s widely used by other Unity users. I really should rely on the asset store more to save time… Anyway, the one I picked is the Dialogue System for Unity by Pixel Crushers.

This asset is great. Lots of features, compatibility with other assets, etc. But the UI templates are kind of finicky to use and not what I need for this project. I’m not knocking the asset at all, it just didn’t allow me to display text in ways I want it to because I have specific needs. So basically I’m only using the node dialogue editor UI from this asset. I wrote my own code for parsing and fetching text from its conversation system, as well as a different UI system that let’s me do what I want it to do.

One reason I hate using Unity assets for anything related to code is that I have to read other people’s code when I’m using it or modifying it. Working with poorly documented code written by others is THE WORST. I think every programmer will agree with me there. Luckily, Pixel Crushers has the best documentation for a Unity Asset Store product I’ve seen. It wasn’t too hard to figure out how to fetch and parse text from the dialogue database file that is generated by this plug-in.

Also, it’s very easy to export a .csv file to upload to Google Drive, so I can collaborate with others on localization. Importing a .csv file and turning it into a dialogue database is super easy too. When I was working on Maruta Escape, I put off localization code till the last minute and it was SUPER PAINFUL to figure out how to do all that AFTER all of the English text had been put into the game. Yeah yeah, I wasn’t being smart. This plug-in makes localization much more streamlined, so I’m happy that I went with this asset.

I still have some work to do to polish up the dialogue system in this game, but I think the hardest parts are done. Thanks Pixel Crushers!