top of page

Dialogue System

Over the course of a semester, I developed a dialogue system using Unity scriptable objects. I implemented my own dialogue, built my own level using the Unity Terrain Tool, and wrote my own code to create a simple walking simulator. 

Just me!

September 2025 - November 2025

why am I doing this?

In short, I've always been a bit insecure about my technical skills. So I started this project to get more comfortable in the engine by myself. Just lil ol' me and some C#.

Scriptable Objects

When making the dialogue system, I found that there were a lot of different directions to go. I looked into important dialogue from Google Sheets or from a text file, but the thing that seemed most doable for my experience level was using Unity's Scriptable Objects. That way, I could place all the dialogue in separate objects that I could edit easily. 

​

This image shows one of my finished scriptable objects that I used to test. I can specify which actor is talking for each line, and I can add as many lines of dialogue as are needed in the conversation. 

Following a Tutorial

I followed a tutorial for a robust, scriptable object dialogue system and then modified parts of it to suit my needs. Special thanks to Night Run Studios on YouTube! I added a system for keeping track of which conversation was active so I could switch to a new conversation at the end of a dialogue segment instead of having one loop. â€‹

Keeeping Things Neat

I've always found that my biggest weakness in coding is that I struggle to keep track of what information is being sent where. As I went through these scripts, I was careful to keep things separated into methods and heavily commented my code so it was easier to navigate. 

Screenshot 2025-11-23 154320.png

If you're interested in seeing how to add dialogue and actors using the system, here's a video where I demonstrate. Apologies about my microphone! I don't know why I sound like I have a severe cold. 

Dialogue!
Screenshot 2025-11-23 160400.png

Now that I had the system set up, I could actually start writing the dialogue for the characters. I wrote it in a Google Sheet so I could easily copy it over to the scriptable objects. Since the scope of this project was small, I decided to have 2 characters awkwardly confront each other on a hike after both going off to college and not speaking.

 

Franky, the people pleaser anxious to find out why Sarah stopped talking to him, and Sarah, the steadfast and deliberate decision maker who believes Franky just isn't taking accountability. At the end, both realize there was a miscommunication and that high school was pretty stupid anyway. In this way, the dynamic between the characters can change very quickly since they already have an established history. The game is just focusing on this one small change in their arcs where the confrontation happens at the end of the hike. 

The Level

Since I was now making a small walking simulator game, I needed some kind of level for the player to walk through. I added a small part to my code that has the NPC walk to a specific point after finishing a conversation. This way, the player could feel like they were walking along side the NPC

INspiration

The game was about hiking, so I looked at mountains, specifically ski mountains, for inspiration on how mountain paths work. I wanted a very simple guiding path since I wasn't going to have the time to spend on complex level design. 

​

I used this image to get an idea of the kinds of path variation you could get with a mountain. I needed to be careful not to make the paths as steep, since my player character had some limitations. 

Process
Screenshot 2025-11-23 162818.png
Screenshot 2025-11-23 162923.png

I started by blocking out a path that I wanted the player to take. I also decided on the stopping points, making sure they weren't too close or far.

I then sculpted land around that path, trying to make the curves still feel somewhat natural. I also did a very quick texturing pass.

Lastly, I added props, foliage, and "water". I didn't want to go too in-depth on set dressing since that wasn't my focus for the project.

Final Product (for now)

Reflection

This project was a big step for me in terms of technical implementation. I did everything from start to finish, and I'm very proud of what I did! I won't lie, I want to fix this project up a lot more. I want to shorten the dialogue and make it more impactful. I want to add animations and better UI. But now I feel confident enough to do those kinds of things by myself. I also want to improve in coding. Right now, the system is functional and relatively easy to use but it's also messy and sometimes disjointed. I learned how to research a problem I'm stuck on and how to plan a set of functionality for a prototype. This project gave me the challenge I needed to get my head in the engine. 

bottom of page