EZPZ Branching Dialogue – Week 1

What is the EZPZ Branching Dialogue Tool?

Branching dialogue has always been really interesting to me. In game especially, I think it can really help to add a ton of personality or depth to a character. So, I decided to make my own tool to help facilitate this! I’m putting this tool under the EZPZ Tool umbrella that I started with the EZPZ MultiTag tool. I’m hoping I can make a few more tools to help the toolset branch out, and I think this would be a great addition.

I already created a prototype of a branching dialogue tool as well! In my Laika project, I worked on an way to do branching dialogue as a 2D array. It wasn’t perfect, but it helped me learn a lot of lessons about making tools, branching dialogue, and usability. Now, I’m taking everything I’ve learned and I’m going to make something even better!

My project proposal can be found here, but as a TL;DR, this tool, made in and for Unity, will be used to create and implement branching dialogue for games in an easy to understand and use format. The user will use a visual node based editor to create the dialogue, and an add on script will access the dialogue and output information to best fit the users needs. This tool is meant to be used by developers who have little scripting experience and/or who want to use a simple visual tool to implement branching dialogue for their project.

This weeks’s snapshot:

This week I followed a tutorial from Gram Games on how to make a node based editor, link here. It was very informative, and while their code wasn’t commented, I made sure to comment everything I could to make sure I knew exactly what all the functions did. Once I got that working, I started on a saving system.

My goal with this tool is to save all the dialogue data to a Scriptable Object for runtime use. From there, I’ll be able to use another script to read the data from the objects and present it in a string format for the user. The current issue I’m running into with that is how to access the Scriptable Object from the editor code.

I want the user to be able to click on the Scriptable Object in the Project window and have the data automatically displayed in the Branching Dialogue window. However, Unity’s Selection function is geared towards gameObject selection, so while I can tell that the object I’ve selected is a Scriptable Object of my script’s type, I can’t access that object directly. I am, however, able to access the object’s ID, so I’m currently trying to find a way to get an object from the asset database using that ID….wait isn’t there a function for that?

Well cut to 30 minutes later and that’s working. Woohoo!

Up next is to make sure all the data is saving correctly and then get the rest of the project documented!

Next Post:

EZPZ Branching Dialogue – Week 2