Here is a global feedback about the Dialogue tree Extension after using (torturing it) for the last two weeks.
This is a great extension, with really cool features and i fully implemented it in my Swamp project to replace my homemade dialogue system (for the future full release of the game). Even if it’s “experimental” for now, it’s totally usable, most of the features are already working. Unlike few people who reported it, i didn’t have any problem with the changes introduced by the beta93.
Here are few points i’d like to submit to enhance and extend it:
1) Unable to “unload” Yarn Data (by an action) :
When you load a json file to the memory, it’s loaded as “global” datas (a bit like global variables ?). This allows great usability over internal variables in dialogues and through different scenes.
Same things for internal yarn variables: the variables datas are stored globally and are accessibles from all scenes, wich is great, but can be weird…
You might want sometimes to “unload” some persistent datas :
-
Using different JSon files on different scene, with potentially same branchs names in different JSon files, especially if you use Gdevelop events to parse “incremented” branchs.
In swamp for example, i have branches named (and standardised) “MyObjectName.Description.1”, “MyObjectName.Description.2”, etc. Depending on internal Swamp Engine conditions, different branch could be triggered. Problem: on two differents scenes, i can have the same object (with same name, because it’s a global object), but more or less incremented branches (so it’s why each scene have its own json textfile)). Unloading yarn datas from the previous scene might prevent issue: a branch that should no longer exist in the memory. -
Resetting/deleting all variables (and datas), when for example the user(player of a game using dialogue tree) want to create a new game. Since Yarn variables are declared/created “on the fly” in yarn files, you can’t have a clear view of all variables to reset In Gdevelop. It’s especially an issue when you collaborate on a game creation: the writer use Yarn Editor to write the story, the (g)developer of the game doesn’t want to check all variables he could have created/changed through Yarn. It’s even more important when the writer just edits the JSon files without exporting the game again as html5 (or for game modding purpose ).
=> proposed solution : An action to “Unload all dialogue datas”, wich delete all branchs and variables values from the memory. Or at least an action to delete all variables datas.
2) Support for “If statements and options” just like it’s described in the documentation
Right now, if you try to use “if” statement in options, it just doesnt work. If/else condition can only be used if you repeat the full branch text + Options.
3) Change “load data from Json” action to use a textfield wich support expression :
I know the field in this action is linked to ressources, but making it a classic string expression editor might allow a lot… For example, in case of different languages, and differents JSON to Load ; example: Load data from JSon “/data/text/” + GlobalvariableString(userLang) + “.json”
This is it for a first feedback, i hope @blurymind would read it