Individually designed and implemented a dialogue system and its UI in Unity. Built bottom-up with base dialogue nodes that together form Dialogue, supporting multiple conversation routes. The PlayerConversant tracks the current conversation. Its responsibilities include starting a dialogue with AIConversant and triggering Enter & Exit actions on dialogue nodes. Each DialogueNode can have required conditions that must be true for the node to be displayed, connecting to possible quest, inventory, or relationship systems.

Created an intuitive editor window for non-technical developers to make, edit, delete, and link individual dialogue nodes. The Editor draws bezier curves showing the relationship between nodes. Node color indicates whether the player or AI is speaking. The Editor window automatically expands/shrinks to fit all nodes. You can also click to drag on the background for easy maneuverability. In the inspector, you can pick the enum DialogueActions for onEnter and onExit actions.

I also designed and programmed the UI in the scene, connecting it to the dialogue system. It's responsive and scales to all desktop resolutions. There are layouts for both text and choice-based dialogue. The DialogueUI uses Unity events to know if the conversation updates through PlayerConversant, updating the UI accordingly.