0 votes

Hi! i don't know much about programming, i'm learning from youtube godot tutorials.
I had watched a few dialogue system tutorials (being honest i don't know exactly if they were about dialogues systems or just one dialogue with it's dialogue box? :'D ), but they aren't what i need or i don't understand how to use it or were to download the json file for it! ( From the tutorials i think json files are like dictionarys, or they can serve for that)

I'm making a game kind of click and point , and similar to how games made in rpg maker look!, it has a story , so i need a dialogue system like visual novels, something like what i could do in ren'py!

What i need would be(just in case(?)):

-Box for the name of the character who is speaking
- A personalized dialogue box for the character who is speaking or just a general box! (i'm sorry i hope i'm not saying silly stuff :'3 )
-that i can do a conversation of more than two characters?
-That above the dialogue box appears a sprite ( A drawing of the character), and that i can choose a different sprite each dialogue.
-That there can be different dialogue options that the player can choose, and that each dialogue open a new path of dialogues.

That's all! :D , i'm sorry, i hope i'm not abusing of your kindness! ;w;
Thank you so much for reading my question!,i hope you're having a great day or night! :3

Godot version Godot_v3.2.2
in Engine by (12 points)

1 Answer

0 votes

Hi, CheeseWithWaffles!

In order to make a dialogue system, you need three things:

  1. A way to store the dialogue
  2. A way to parse the dialogue
  3. A way to display the dialogue

Storage

JSON is a way to store the dialogue. It's a type of format, so you don't need to download a JSON file in order to make one. It's not a format that's specific to Godot. But if you're not planning to use the data for other non-Godot stuff you can just use a custom Resource in Godot instead. Or you can just use a text file with a custom parser.

Parser

If you're using JSON or a custom Resource, you won't really need to code a parser, since you can just convert those into stuff Godot can use easily. However, if you're going to do custom parsing you'll have to write your own parser.

Display

Control nodes are a type of node that are used to display UI elements. You should use them to display your dialogue boxes. You can use Labels or RichTextLabels in order to display text. You can use TextureRects to display images. You can use buttons in order let the player choose choices. Your parser will parse the data from the dialogue files and then change your display nodes in order to reflect who is speaking and who is saying what.


I think you should start simple. First, just make a couple of text nodes and a TextureRect and try changing them with code. Then you can add more complicated features like branching dialogue paths.

by (7,190 points)
Welcome to Godot Engine Q&A, where you can ask questions and receive answers from other members of the community.

Please make sure to read How to use this Q&A? before posting your first questions.
Social login is currently unavailable. If you've previously logged in with a Facebook or GitHub account, use the I forgot my password link in the login box to set a password for your account. If you still can't access your account, send an email to webmaster@godotengine.org with your username.