Using Dialogue Manager in Godot 4

แชร์
ฝัง
  • เผยแพร่เมื่อ 5 ก.พ. 2025

ความคิดเห็น • 43

  • @serghonest9
    @serghonest9 10 วันที่ผ่านมา +11

    I don't know if this is the best Dialgue Manager tutorial ever or it's just that I can finally understand it after a year of working on my own Dialogue System (barely knowing about anything) because I didn't understand other tutorials. Whatever it's, thank you! It's very well explained despite being so short!

  • @shomykohai
    @shomykohai 10 วันที่ผ่านมา +9

    Best dialogue addon in my opinion! Proud to be using it since v2 was still in beta❤
    Love the addition of match statement

    • @nathan_hoad
      @nathan_hoad  10 วันที่ผ่านมา +1

      Glad to hear it 😎

  • @petethorne5094
    @petethorne5094 10 วันที่ผ่านมา +3

    This is amazing! Such an excellent intro to the plugin. Even tho I’ve used it before i still learned loads

  • @johannbrahmss
    @johannbrahmss 10 วันที่ผ่านมา +3

    Perfect timing for my visual novel :) this is awesome help

  • @CodeAikawa
    @CodeAikawa 18 ชั่วโมงที่ผ่านมา

    Thanks bro. I needed this. I also spent some time reading the documentation. This add-on is truly great.

  • @NikolaiCarpathia
    @NikolaiCarpathia 9 วันที่ผ่านมา +2

    Thank you for all the work you've put into this plugin. I'm having a blast using it so far. It's been fairly easy implementing a skill check system a la Dungeons & Dragons using it.

  • @aliceeee9145
    @aliceeee9145 4 วันที่ผ่านมา

    Thanks Nathan this is a great plugin! Looking forward to Bravest Coconut dropping on steam!

  • @lilianahategan7939
    @lilianahategan7939 2 วันที่ผ่านมา

    everything you haven't said until now you said here, including the elusive END! - thank you

  • @5naf_plushies482
    @5naf_plushies482 10 วันที่ผ่านมา +2

    This is my number 1 plugin! It's so useful and I love its flexibility.

  • @GameUnionTV
    @GameUnionTV 10 วันที่ผ่านมา +1

    How am I still not subscribed. Thanks for the plugin!

  • @pichitosmalltown3239
    @pichitosmalltown3239 7 วันที่ผ่านมา

    thanks a million, your addon is a godsend

  • @Tomorrow_For_Sure
    @Tomorrow_For_Sure 7 วันที่ผ่านมา

    I was about to make my own dialogue scripting language, but this looks really good and has almost all the features I need!
    I may edit it a bit to make it easier to work with my project!

    • @nathan_hoad
      @nathan_hoad  5 วันที่ผ่านมา +1

      What features would you say are missing?

    • @Tomorrow_For_Sure
      @Tomorrow_For_Sure 4 วันที่ผ่านมา

      @nathan_hoad nevermind, they were three things that I already resolved
      The first one was something I called metadata in my language that worked something like this:
      ```
      @char:hero, expression:flabbergasted
      Woah!
      ```
      But that can be replicated with tags.
      The second one was using the Godot's special syntax for accessing nodes (`$Node`, `%Node`) but it still works with `get_node`.
      And the last one was local variables, but I think accessing a dictionary from an autoload or the current scene is enough.

    • @Tomorrow_For_Sure
      @Tomorrow_For_Sure 4 วันที่ผ่านมา

      There were more features, but they are super specific for my game, so they don't matter

  • @btarg1
    @btarg1 7 วันที่ผ่านมา

    I'd love to see more indepth tutorials for adding voice acted lines and translations for both the audio and text with POT!

    • @nathan_hoad
      @nathan_hoad  5 วันที่ผ่านมา

      I'll do a video on it at some point. In the meantime the example project on my itch.io page demonstrates the basic idea.

  • @togashi-azul
    @togashi-azul 10 วันที่ผ่านมา +1

    Nice

  • @TheFilipFonky
    @TheFilipFonky 9 วันที่ผ่านมา

    Tags look very interesting, could you please elaborate more on them and how to call them from the scene's code? Great video and great plugin as always.
    Edit: NVM I'll check out your example project!

  • @ShatterFall
    @ShatterFall 3 วันที่ผ่านมา +1

    It says there is an error in this code Line 6:Identifier "dialouge_resorce" not declared in the current scope.func _unhandled_input(event: InputEvent) -> void:
    if event.is_action_pressed("ui_accept"):
    DialogueManager.show_dialogue_balloon(dialouge_resorce, "start")
    how do I fix it
    PLEASE HELP

  • @serghonest9
    @serghonest9 10 วันที่ผ่านมา +2

    Something I don't understand (and is where all dialogue tutorials never explain) is how do you apply progression to the dialogue?
    Do you just run the same dialogue every time and depend on conditions and GameState to offer a different conversation? But that would mean having to check every variable until one matches your condition. And you need to do that every time?
    For expample: if first_dialogue is flase: - Nathan: Nice to meet you!
    But then you would need to check "first_dialogue" (even though you know you already had the first dialogue) every time you talk to Nathan for the rest of the game? Is there not a better approach to this?

    • @mysteriousguy7966
      @mysteriousguy7966 10 วันที่ผ่านมา

      I imagine that before running the DialogManager, you could do some conditional statements so you can change and load a different dialog (using a counter, and as the number advances, the dialog changes). If your problem is having useless data like the "first_time" var, then you could have a component for your Manager in that scene, checking how many times you started a dialog and switching for the next dialog script. When you reach a point where the dialog will no longer change, you can simply release the component and its manager, checking that the component no longer exists, will follow a normal dialog script from then on. But of course, this is ONE idea (as far as I understand the plugin)
      Pardon my English. Good luck

    • @serghonest9
      @serghonest9 10 วันที่ผ่านมา

      @mysteriousguy7966 how would I go about having and releasing that component? I though maybe some kind of container that gets generated at startup with only the needed dialogues and deletes them from the container when they are not needed. This may work?

  • @megalukes
    @megalukes 9 วันที่ผ่านมา

    Is there a way to make each character have their own balloon? In my game, sometimes there are three characters speaking, and all the "idle" balloons wait for the next text for that character (something similar to Final Fantasy Tactics, Romancing Saga, and so on). As far as I understand your balloon code, everything happens inside just one balloon, right? Anyway, amazing work, mate. I'm seriously considering using this for my own project!

    • @nathan_hoad
      @nathan_hoad  5 วันที่ผ่านมา +1

      The example balloon is just an example. The idea is that you'd make your own balloon that suits your game and has whatever functionally it needs for that.

  • @nikitanikiforov2380
    @nikitanikiforov2380 10 วันที่ผ่านมา

    The plugin is simply amazing. I can’t stop discovering its vast capabilities. I have a question:
    I want to use uppercase text in my game. To avoid writing all dialogues in caps, I used this line in the Balloon script:
    next_dialogue_line.text = next_dialogue_line.text.to_upper().
    It worked well: "hi Nathan" became "HI NATHAN".
    However, when I wrote "hi [wave amp=25 freq=5]Nathan[/wave]", the result was as expected: "HI [WAVE AMP=25 FREQ=5]NATHAN[/WAVE]".
    Is there a proper way to make the font uppercase while preserving BBCode functionality?

  • @ElGhost-p6t
    @ElGhost-p6t 9 วันที่ผ่านมา +1

    Dude, your plugin is really good, it greatly reduces the progress time of my game. However, could you tell me how to make the dialogue appear only once?

    • @Softcustomer2
      @Softcustomer2 8 วันที่ผ่านมา

      Var DialogueHasShown = false
      If CharacterIsSpokenTo
      DialogueManager.thing
      DialogueHasShown = true
      Elif DialogueHasShown = true
      Pass

  • @raidev_
    @raidev_ 10 วันที่ผ่านมา

    oh there is a version 3 now? i wonder if i can migrate to it

  • @Ozgur-op3zs
    @Ozgur-op3zs 8 วันที่ผ่านมา

    I have a game where I load a specific camera shot per dialogue, similar to that of the Class Trials in Danganronpa. How can I import this system within the Dialogue Manager?

    • @nathan_hoad
      @nathan_hoad  5 วันที่ผ่านมา

      I've never played Danganronpa but just guessing from your description it would either be implemented in your custom balloon or through a mutation.

  • @stephanste1n
    @stephanste1n 5 วันที่ผ่านมา

    How do you update from version 2 to version 3? Do I overwrite the files during installation?

    • @nathan_hoad
      @nathan_hoad  5 วันที่ผ่านมา

      Make a git commit. Then delete the dialogue_manager folder in addons and replace it with a fresh copy from GitHub or the AssetLib.

  • @DarkDao
    @DarkDao 10 วันที่ผ่านมา

    Does it work for 3d projects out of the box?

    • @nathan_hoad
      @nathan_hoad  10 วันที่ผ่านมา +1

      There's already heaps of people building 3D games with it.

    • @DarkDao
      @DarkDao 10 วันที่ผ่านมา

      @@nathan_hoad Awesome!

  • @danielmtpbr
    @danielmtpbr 10 วันที่ผ่านมา

    Does it work well with C#?

    • @nathan_hoad
      @nathan_hoad  10 วันที่ผ่านมา

      There's a C# wrapper 👍

  • @just_a_normal_person5819
    @just_a_normal_person5819 5 วันที่ผ่านมา

    The best dialogue addon in godot so far. I got a problem though. I store my characters name inside an array thats inside an array.
    When I try to call it through {{G.Player_Character_Resource["Characteristics"]["Race"]}}
    I get an error that leads me to the dialogue manager script on line 958 if index >= 0 and index < value.size():

    • @nathan_hoad
      @nathan_hoad  5 วันที่ผ่านมา

      Can you raise an issue on GitHub for that?