Game Programmer

By: James Keats | January 28, 2018

Node-Based Narrative Dialog Tool - Unity

For this project, my plan is to create a node-based editor for building a complicated, branching narrative dialog in Unity. The long-term goal for this project is that it will be well-documented and extensible, allowing users to easily hook it up into their games and projects without major modification to their existing codebase. It will have support for localization and dynamic substring replacement, branching based on player choice and dialog system variables, and the ability to call arbitrary functions in the codebase as long as they have simple parameters.

The ability to create complex tools that make sense and are easily used by non-programmers is an important skill to have. This project will show off my ability to create complex data structures in Unity, as well as write complex Editor and EditorWindow scripts that use proper serialization techniques. I also want it to look pretty and be user friendly; hopefully, it will be in a state where it can go on the Asset Store by the end of the semester, so it must be well documented as well.

There are several resources out there on how to create node-based editors in Unity, some more valuable and thorough than others. On of the primary sources for that aspect will be this one (https://web.archive.org/web/20170719091249/http://gram.gs/gramlog/creating-node-based-editor-unity/), as it uses modern Unity techniques and produces a good-looking result. This will have to be expanded upon significantly to get every feature that I want.

This plan also includes some low-level narrative parsing, or at the very least, interfaces that users can access or extend to get the data that they need and display it how they would like. In order to be displayed on the Asset Store, this would require, at the very least, a working sample of how the system fits together, with the user code kept as simple as possible.

One of the upsides to this project is that it doesn’t require any outside resources or equipment, but the risks include the amount of time we have before it is complete. To get all the desired features of the project in and working in the amount of class time that we have will be difficult, but I love writing tools and I am excited by narrative-focused games, so I am confident I’ll be able to do it.

Rough Schedule

Week 4: Basic node-based editor working and functional. Document overview of exact narrative functionalities complete.

Week 6: First half of narrative-specific nodes finished with complete serialization and editors.

Week 8: All narrative nodes finished with complete serialization and editors.

Week 10: Public narrative execution/interpretation interfaces complete with example implementations.

Week 12: Complex functionality such as function execution and internal state/variable management complete.

Final: All public-facing interfaces and documentation complete and prepped for Asset Store launch.

Category: Uncategorized 

Tags:

Comments:

Be the first to comment ...

Post a Comment