Can we use this to increase/decrease some variables depending on the choice made(in combination with the branching dialog tutorial) and let some choices to be available only if certain variables are active/have a specific value? It may sound weird but I hope you understand what I asked:)
@@_danny_idk Sure, probably. It all depends on how you format the JSON between the tags and if your dialog playing can read the JSON. Something like this perhaps: [{"text", "Eat one cake.", "variable": "cake_eaten", "add": 1}, {"text", "Eat two cakes.", "variable": "cake_eaten", "add": 2}] and your second question... [{"text", "I can eat more cake.", "variable": "cake_eaten", "is": 1, "slot": 0}, {"text", "I'm full.", "variable": "cake_eaten", "is": 2, "slot": 1}]
This is genius! Didn't know i could store function references in a dictionary like that. I am borrowing this code for my dialog system :) Thanks for having MIT license. I will soon open source my project too, where I have a bit different approach than you.
Hopefully someone can answer this, but how would you let the dialog call a function with parameters? For example, I want to use my npcs to `give_item(item_reference)`.
Great timing on this questing. In the next video I'm working on, it covers my EXP Command Server, which allows you to do this. In my game, if I want to use a command in the dialog player, the syntax looks like this... [{"reference": "certain_npc", "command": "give", "parameters": {"item": "cookie", "amount": 3}, "yield_signal": "certain_npc:gave_cookie"}] Outside of the dialog player, it looks like this... EXP_CommandServer.exe("certain_npc", "give", {"item": "cookie", "amount": 3})
Hi, I've been following your dialogue tutorials, and I have few questions. I want to make an interactive map of my dialogs, choices, scenes etc, and so far I've been using Twine to do that. Can "story" from Twine exported to Godot easily? Or is there a way to visualize my dialogs in the Godot just like in Twine? Thank you~
To be honest I had no idea what Twine was before now, but there is a "Twine Story Importer" in the Godot Asset Library. Here is the same tool on GitHub: github.com/iamtoaster/twison-godot. It seems that you export your Twine story in JSON format, then use the helper class to access the JSON, in the same way that my Story Reader Class helps you read Godot Story resources.
Can you also make a tutorial of developing EXP registry or just tell me where can i find one? I'm making my own RPG game which needs me to manage a banch of variables, bur i cant find find any tutorial of that registry anywhere.
You're in luck, I'm working on making a few videos about the RPG I'm prototyping. One of the many things I'd like to cover is the EXP_Registry. Probably not every detail of making it, but an overview about why and how it works. It is actually just a very simple global script. I don't have it public on Github atm, but if you email me at davidlipps.dev@gmail.com I can send you the script.
The Assertions make sure the Story Reader functions are protected against erroneous input parameters, which means you're feeding bad data into one of the functions somewhere. The debugger should show you exactly which assertion failed. Take a look at which Story Reader function contains the failed assertion and you'll have your culprit.
@@DavetheDev ahahahhhahahahahahahahahaha okey thank you I've been working from 8pm yesterday and 10am today.thank you i made it.I made a very small mistake ahhaahahahha.thank youuuu
3 ปีที่แล้ว
Oh man, i'm having the same issue. However, i'm using the Debug, and i can't find where i wrote the bad code. I will continue trying to find.
Is it possible, using this system, to check the variables and play different dialogue depending on the value? edit: While I'm asking; Would it also be possible to store multiple lines (or pages) of dialogue in one node for 'linear' parts of a conversation?
1. Yes, next week's tutorial is choice branching, it wouldn't be too hard to go from there to variable based branching. 2. Yes, you can stuff as much information into a single node as you want, as long as your dialog player knows how to read it, but I'd recommend keeping things simple.
@@DavetheDev Thank you so much for the response :). After converting my current dialogue system to your system last night I realized it's probably better to keep each line on its own node.
Hey Ya'll. Today's tutorial comes without background music. Let me know which you like better, with or without background music. Thanks! ^_^
i like it with music
Can we use this to increase/decrease some variables depending on the choice made(in combination with the branching dialog tutorial) and let some choices to be available only if certain variables are active/have a specific value?
It may sound weird but I hope you understand what I asked:)
@@_danny_idk Would like to know this too! It's a feature of interactive text boxes found in most games I'd like to figure out how to add.
@@_danny_idk Sure, probably. It all depends on how you format the JSON between the tags and if your dialog playing can read the JSON. Something like this perhaps: [{"text", "Eat one cake.", "variable": "cake_eaten", "add": 1}, {"text", "Eat two cakes.", "variable": "cake_eaten", "add": 2}]
and your second question...
[{"text", "I can eat more cake.", "variable": "cake_eaten", "is": 1, "slot": 0}, {"text", "I'm full.", "variable": "cake_eaten", "is": 2, "slot": 1}]
@@DavetheDev ok, thanks
Just a regular comment to push the algorithm cause my boy needs more attention
This is genius! Didn't know i could store function references in a dictionary like that. I am borrowing this code for my dialog system :) Thanks for having MIT license. I will soon open source my project too, where I have a bit different approach than you.
Hopefully someone can answer this, but how would you let the dialog call a function with parameters? For example, I want to use my npcs to `give_item(item_reference)`.
Great timing on this questing. In the next video I'm working on, it covers my EXP Command Server, which allows you to do this. In my game, if I want to use a command in the dialog player, the syntax looks like this...
[{"reference": "certain_npc", "command": "give", "parameters": {"item": "cookie", "amount": 3}, "yield_signal": "certain_npc:gave_cookie"}]
Outside of the dialog player, it looks like this...
EXP_CommandServer.exe("certain_npc", "give", {"item": "cookie", "amount": 3})
Hi, I've been following your dialogue tutorials, and I have few questions.
I want to make an interactive map of my dialogs, choices, scenes etc, and so far I've been using Twine to do that. Can "story" from Twine exported to Godot easily? Or is there a way to visualize my dialogs in the Godot just like in Twine? Thank you~
To be honest I had no idea what Twine was before now, but there is a "Twine Story Importer" in the Godot Asset Library. Here is the same tool on GitHub: github.com/iamtoaster/twison-godot. It seems that you export your Twine story in JSON format, then use the helper class to access the JSON, in the same way that my Story Reader Class helps you read Godot Story resources.
Can you also make a tutorial of developing EXP registry or just tell me where can i find one? I'm making my own RPG game which needs me to manage a banch of variables, bur i cant find find any tutorial of that registry anywhere.
You're in luck, I'm working on making a few videos about the RPG I'm prototyping. One of the many things I'd like to cover is the EXP_Registry. Probably not every detail of making it, but an overview about why and how it works. It is actually just a very simple global script. I don't have it public on Github atm, but if you email me at davidlipps.dev@gmail.com I can send you the script.
An error keeps coming up and I don't understand what happened.Assertion failed.
The Assertions make sure the Story Reader functions are protected against erroneous input parameters, which means you're feeding bad data into one of the functions somewhere. The debugger should show you exactly which assertion failed. Take a look at which Story Reader function contains the failed assertion and you'll have your culprit.
@@DavetheDev ahahahhhahahahahahahahahaha okey thank you I've been working from 8pm yesterday and 10am today.thank you i made it.I made a very small mistake ahhaahahahha.thank youuuu
Oh man, i'm having the same issue. However, i'm using the Debug, and i can't find where i wrote the bad code. I will continue trying to find.
Is it possible, using this system, to check the variables and play different dialogue depending on the value?
edit: While I'm asking; Would it also be possible to store multiple lines (or pages) of dialogue in one node for 'linear' parts of a conversation?
1. Yes, next week's tutorial is choice branching, it wouldn't be too hard to go from there to variable based branching.
2. Yes, you can stuff as much information into a single node as you want, as long as your dialog player knows how to read it, but I'd recommend keeping things simple.
@@DavetheDev Thank you so much for the response :). After converting my current dialogue system to your system last night I realized it's probably better to keep each line on its own node.
@@KaptainCube Let me know how it goes. ^_^
Its better without music.