Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dialog Tree View/Dialog Nodes #2081

Open
wardhale opened this issue Feb 8, 2024 · 4 comments
Open

Dialog Tree View/Dialog Nodes #2081

wardhale opened this issue Feb 8, 2024 · 4 comments

Comments

@wardhale
Copy link

wardhale commented Feb 8, 2024

This is a big feature request, I understand that. I think it would make this the de facto dialog plugin for Godot for any dialog heavy game, especially when the writer is not a programmer.

I'd like to propose a separate view for the dialog called, "Dialog Tree View," or "Dialog Nodes." I spoke to Emi and they liked the idea, so they told me to post here.

3cfDmqj
This is essentially what I'm talking about. This is the Dialog System for unity. It's basically the gold standard over there... and us refugees are looking for similar options.

I believe the current functionality could be adapted to work in a similar way, but it is a slightly different workflow that is generally better for those with less development experience (artists and writers). It's also an (arguably) cleaner way to see the different sections of the branching conversations.

You create trees out of nodes. Most of the nodes are dialog fragments. The details (actor, conversant, menu text, dialog text, animations, and variables) are checked or defined in the inspector when you select a fragment. Then the labels for different parts of the conversation are areas that you draw on the canvas. Any nodes that you place into that labeled area can be moved as a whole unit when you move the labeled area.

This makes it much easier to jump to any individual piece of dialog... and you can create chaotic spiderwebs like this, that are still manageable by crazy writers (though my dev tell me this looks like a nightmare to her, lol!):
image

I think there would need to be some auto-magic formatting happening behind the scenes. For instance. If you have a dialog node from an NPC and you want to have a multiple choices, you can create multiple new dialog nodes beneath the NPC's dialog node then connect them. We would have to automatically turn those into choices, since there are multiple replies to the same parent.

I'm sure there will be other issues, but I am not a programmer... I'm just a writer/composer/pixel artist who is working in Godot.

Is anyone interested in exploring this? I do not code, but I am willing to hire help (if that's inappropriate, I apologize. It's very important for the games I plan to make in Godot.)

There is a dialog node system for Godot, but Dialogic has better features, is more organized, has a bigger community, and I think will become the standard in the future. Here's the node system: https://godotengine.org/asset-library/asset/1197

Dialog System for unity features that work well with these nodes:

You can create variables by clicking on any node, then going to the inspector. For a new variable, you simply click the + to create one, give it a name, and choose a type from the drop menu. This is converted into Lua (GDscript would be better imo).
image

Then you can assign variables to any node. They appear in a drop menu after being created. The nested menus are created by placing dots in the variable names. for instance, this variable is "AngeRoom.HasPhone"
image
Once you click create, it writes out some Lua... I think GD Script would be better for this, but they use Lua.
image

Again, I know this is a big ask and a big task. Is anyone else interested in this?

@Jowan-Spooner
Copy link
Collaborator

Hey @LoganRTW Thank you for the proposal. It is certainly something people have asked for before, so this is kinda a duplicate of #626 but this has a lot of useful information, so I'm okay with having both open for now.

I think noone is really against adding something like this, especially if it is a concept that people are already used to/that has been tested elsewhere.

However as you already guessed, this is not a simple feature to implement. Because of that it will VERY likely not happen for dialogic 2.0 which we are trying to finish as soon as possible. Because this process has been taking us very long already, we've not really planned beyond that. If the community interest in this is big-enough, it would be a possible goal for the following versions, which I hope don't take as long.

@CakeVR
Copy link
Collaborator

CakeVR commented Feb 8, 2024

Alongside what Jowan said, I would recommend to try Dialogic 2's visual and text editor first.
Many huge visual novels were written using text views, nodes easily become a mess and require a lot of clicking around.
Text is very version-control-friendly too.

@wardhale
Copy link
Author

wardhale commented Feb 8, 2024

Hey @LoganRTW Thank you for the proposal. It is certainly something people have asked for before, so this is kinda a duplicate of #626 but this has a lot of useful information, so I'm okay with having both open for now.

I think noone is really against adding something like this, especially if it is a concept that people are already used to/that has been tested elsewhere.

However as you already guessed, this is not a simple feature to implement. Because of that it will VERY likely not happen for dialogic 2.0 which we are trying to finish as soon as possible. Because this process has been taking us very long already, we've not really planned beyond that. If the community interest in this is big-enough, it would be a possible goal for the following versions, which I hope don't take as long.

AH! Thanks for posting that. I did some searches but missed it. I was searching for nodes, trees, and dialog fragments rather than the RoadMap. If you want, you can close this and I can simply post this stuff over there. If leaving it open is OK, then I'll just leave it here.

I totally don't expect to see anything like this in 2.0 (and I can't wait for the full release), but I've limited myself to smaller dialogs because I tend to go insane and it's hard to keep track of.

Alongside what Jowan said, I would recommend to try Dialogic 2's visual and text editor first. Many huge visual novels were written using text views, nodes easily become a mess and require a lot of clicking around. Text is very version-control-friendly too.

I have been using the text version a bit and it does work for me since the first game isn't going to have huge dialog trees. However, if a team were making a large RPG, I think it would be overwhelming to a writer with little programming experience. I understand that Godot is mostly coders and programmers at this point... but I do hope it becomes the go-to engine for just about everyone. However, some of my dialog trees are nightmare fuel for most people with a logical developer brain, but work perfectly for me with my insane writer/artist brain...
image
I wouldn't want to try anything this insane in Dialogic... I'm sure it's doable, but I tend to like to have secrets that allow you to jump to little side trees of dialog... then all the way back. So, I'd end up with variables, jump to, and labels everywhere. It's a lot for my little brain, lol. At any rate, Dialogic is forcing me to be a little more concise and organized.

@bhiltune
Copy link

Just commenting to also express heavy interest in this, as a fellow previous user of the Unity Dialogue System. There's something about a node view that just makes it possible to understand dialogue structure at a very quick glance, and for me, personally, the current visual editing mode can be a little bit confusing because of all the nesting going on.

A lot of the main games that got me into gamedev, chief among them Disco Elysium, have reported on how the node view was instrumental in being able to relatively quickly write a massive amount of dialogue ideas, as it's just very easy to jump from node to node without worrying about formatting.

Dialogic already implements an option to switch from the visual editor to the text editor, so I think something like this will fit right in. Also, AFAIK Godot is getting a new/rebuilt graphEdit, which would probably make a feature like this even smoother and more intuitive.
Nagi's Dialogue Nodes could be a good reference to study how the logic could be implemented.

However, I do absolutely agree that this would take way too long to implement and thus should not be a priority until the Beta is already launched. Devs have enough on their plate already.

But if somebody wants to undertake this and look into building something like this, maybe as an add-on module or something similar, I would be interested in helping out with what skills I have.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants