Dialog for Godot, Request for Course/Project

In one of the courses, we learn how to create a single dialog box per NPC, but there isn’t an easy/obvious way to extend that system into having back and forth dialog, with each character speaking having their own portrait.

There are some Godot addons that exist to try and give a person a dialog system, but they are not as approachable as GDTV.

A while back GDTV released a Godot character controller that you can just buy and use in your projects, so I don’t even need a course here, so much as, I need the ability to put back-and-forth conversations into my games, and engineering how to add all that to the editor has been daunting. When I was in Unity, I had a very big expensive addon called Adventure Creator, and it had a dialog system that I was dependent on, because I’m a designer, I get zero joy from programming and engineering solutions and debugging, so it’s a huge roadblock to my projects in Godot that there isn’t an equivalent addon that covers basic things like Dialog, Inventory, Saving, that so so so so so many games will use.

That’s fair, largely because once you open up that possibility, you have to start asking other questions such as “do all of the NPCs involved have to exist in the scene / be in view” and “will the camera shift to center on each NPC during a line.” You could make such a system very broad if you wanted to.

Having not really looked into that myself (yet), this feels like a good use-case for custom Resources. I’d probably start by designing a custom Resource that could hold a cinematic sequence, followed by some sort of player that could process the sequence piece by piece. This 2-stage approach is almost exactly analogous to how AnimationPlayers use distinct Animation Resources that can be played at any time. Custom Resources can be a bit of a learning curve, so I can appreciate that it feels daunting. This will get you started if you feel like exploring that: Resources — Godot Engine (stable) documentation in English

Inventory is covered in Bram’s 3D RPG course if you want to check that out. Saving (file I/O) is about as custom-built per project as you can get, but the basic idea behind the recommended approach is to dump everything into a Dictionary and serialize it in one way or another. This covers the basics if you haven’t already seen it: Saving games — Godot Engine (stable) documentation in English. And I realize this isn’t what you’re asking for in this post; this is just me trying to give you as much value for right now as I can! =)

1 Like