Dialogue ?= Debug Log

I've been taking a serious look at dialogue. I've built dialogue systems before, and I had an idea as to how to approach it. But I also knew a problem I would face was trying to manage the shear amount of content. And while I felt good about the architecture in general, I had not come up with a visual concept I was happy with. So I did what has worked out well in the past. I asked questions, and ended with a great concept that is very fitting.

Source: https://pixabay.com/illustrations/question-mark-pile-questions-symbol-2492009/

So I started asking questions. In my meetup group, RE: Game Dev, I asked to hear about other people's experience. I also searched for existing articles and tutorials, and came across a great one from the GDC, "Dialogue Systems in Double Fine Games".  This proved excellent, as I kept pausing and rethinking my decisions. But still ended up really close to my original intentions.


That video was great, but it also referenced several other videos, on related systems, so I checked out those as well. I didn't want to find one way to do things, but multiple. And then select from what I had seen based on what seemed to be the best option for Codavore. This lead me to an architecture that was almost identical to what I built for the NASA Kennedy Space Center's simulation management for Shuttle Launch and Mars Base

It used a string based event  and variable system, which made it very easy to trigger events and state changes as well as have the next scripts wait on particular game states, from JSON or XML. Of course that system was VERY linear, with little flexibility, and this will need an upgrade to manage the more intended openness of this game. So I still have a little consideration left to go, but the majority of mentally solidified.

At this point, I'm still missing a UI, "How will it look?" Fortunately, I had a conversation at my local meetup, RE: Game Dev, a group of game developers in Redmond, about how other people have approached dialogue in their games. Aside from some architectural direction that furthered my designs, Ben made a suggestion of something like a debug window. (Ben works on Unity regularly, and is a recruiter in the games industry.) 

RE: Game Dev (Redmond East side Game Developers)
Source: https://www.meetup.com/Redmond-Eastside-Game-Developers/photos/28430424/#489162907
The debugger window, or console in Unity is an excellent starting point. I'm making a game about programming why not tie the typical IDE into it. Then I can actually cross code errors into the conversation more meaningfully.  

This does mean that the lines that show up need clear separation between code messages (info/warning/errors) and the dialogue that shows up as well. I haven't fully fleshed it out yet, but this is a rough initial markup.

Source: https://docs.google.com/document/d/161FaajqSeqEsEKu-tqxoDDaDSDdBhB0OjFC4su-q7G0/edit?usp=sharing

Above is a mocked up example of how the dialog will work. The source is from a google doc I have on the IDE. I shared it out read only, so you are welcome to review it. It also discusses the basic needs I was looking for, and example IDE's and their general setup.

You can also see that the ducky is one of the line items. Its got dialogue to share, and expects a response. This will need more work, as I need clear identification of code sourced messages, and conversation. Conversation and questions.  With edge cases like, do we allow more error messages to happen while waiting on a response? Do we allow conversation to be interrupted? Do we need to?

Each of those things will affect the final architecture of this and so I will be spending time considering that, and minimal operational proof. What is the first thing I need?



Comments

Popular posts from this blog

C# Parser and Code View

A Momentary Lapse of Passion

How to Setup a Multi-Scene Unity Project for Startup