Godot-proposals: Making an in-engine system for making complex dialogue trees . .

Created on 4 Mar 2020  路  5Comments  路  Source: godotengine/godot-proposals

Describe the project you are working on:
A Tomb Raider, an RTS also . .

Describe the problem or limitation you are having in your project:
Making a big dialogue tree is often complicated, right now I do it from code . . I've been watching AnimationTree tutorials, and one can make a nice tree, that sort of does it, for the game makers . . . But, I don't know if there's such an official one, a node one could add to NPC's, where one could drag and drop node boxes, and create a dialogue tree, that calls different game resources, like images, text, so on, and helps one do it . .

Describe the feature / enhancement and how it helps to overcome the problem or limitation:
A feature where one could add a ' DialogueTree ' to any object, or NPC, like a standard node, that opens an editor, that is fast, intuitive . . .

Describe how your proposal will work, with code, pseudocode, mockups, and/or diagrams:
Well, something like the node system, in AnimationTree, or shader graph, where one can set it up, and it works with some basic things, calling text from txt documents, or images, to be put in a part, of the UI, or game play area, like text boxes . . . :( <3

If this enhancement will not be used often, can it be worked around with a few lines of script?:
Not really, making a big braching dialogue tree in code, is sort of hard to overview, and make changes to, as game grows . . .

Is there a reason why this should be core and not an add-on in the asset library?:
I think it's something many games use, not all, but quite a few, and a good implementation could make the feature more accessible . . I don't know if other people have asked for it before, but it's so universal to games, that it needs to be a feature, of engine :) <3

archived core

Most helpful comment

This could be easily implemented by using classes extending Node, and making the dialog tree as a scene tree you load then visit. I don't think such systems should be made within the engine itself, it's too specific, and to make it flexible enough it will become way too generic and will imply the same amount of work as just using the SceneTree or another method.

All 5 comments

Issues with this are making it flexible. You could have anything from a "Sierra-style"/"LucasArts-style" dialogue, to VN-style, or anything in-between; never mind 2D or 3D. Any kind of base dialogue system would need to be very generic.

I think this is meant to be more about just a dialogue tree support (i.e. Player says A, NPC says B, Player can say C, D or E, NPC says X to C Y to D and Z to E, etc) and not the graphical part.

This could be easily implemented by using classes extending Node, and making the dialog tree as a scene tree you load then visit. I don't think such systems should be made within the engine itself, it's too specific, and to make it flexible enough it will become way too generic and will imply the same amount of work as just using the SceneTree or another method.

I agree. Once the asset library is refactored, publishing, discoverability, and maintenance of addons that can do this will be easier, and it is far too generic to be worth maintaining in the engine. Better to just have a large variety of specialized tools for handling different types of dialogue frameworks in addons. If we added a base level one in the engine, it would put constraints on what other people are able to accomplish on their own.

I'll close this per the above comments. A dialogue system would need to be very generic (and therefore complex) to actually make sense in Godot's context. This feature can be provided by modules or plugins (here are some examples).

Was this page helpful?
0 / 5 - 0 ratings

Related issues

PLyczkowski picture PLyczkowski  路  3Comments

wijat picture wijat  路  3Comments

regakakobigman picture regakakobigman  路  3Comments

KoBeWi picture KoBeWi  路  3Comments

davthedev picture davthedev  路  3Comments