Announcement

Collapse
No announcement yet.

[OPEN SOURCE] Dialogue System Plugin

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

    [PLUGIN] [OPEN SOURCE] Dialogue System Plugin

    Hi, my team and I while working on our upcoming game Warriorb has developed yet another Dialogue plugin, because we thought the current Dialogue plugins on the market did not fit our needs. So here we are today releasing this awesome (we hope so) Plugin to everyone who wants to use it.


    Features:
    • 100% free, source code included
    • Full Blueprint and C++ support
    • Events and conditions
    • Branching based on different node types and conditions
    • Well structured runtime and editor modules
    • Full editor support including:
      • Graph Editor
      • Search window
      • Dialogue Browser to get a good overview of all the dialogues
      • Customized blueprint nodes to handle certain events and conditions in Blueprint easily
      • Settings panel in Editor Preferences to modify the layout
      • Option to import from and export to plain text formats (e.g. json)
      • Real time display/edit functionality of the Dialogue runtime data.


    License: MIT

    Plugin Source Code repository: https://gitlab.com/NotYetGames/DlgSystem

    Example project that uses the Plugin: https://gitlab.com/NotYetGames/DlgSystemExample

    Plugin Wiki/Documentation: https://gitlab.com/NotYetGames/DlgSystem/wikis/home

    Discord: https://discord.notyet.eu

    Marketplace (binaries are paid since 27 October): https://www.unrealengine.com/marketp...ialogue-system

    Contribution, feedback and constructive criticism are appreciated and we would be really happy to hear about your game using our tool.
    Should it prove useful to you, the best way to say thanks is to mention us and our game to your own audience.


    Feature showcase https://gitlab.com/NotYetGames/DlgSy...ature-Showcase:

    - Easy to use graph editor:


    - Local and global search and jump to node functionality:

    - Customized details panel where your FName identifiers are cached for auto-completion:


    - Dialogue Browser to have an overview of the system related data:


    - Preferences panel to change editor layout and behavior:


    - The feature we always missed from the animation state machine
    Last edited by leyyin; 10-27-2018, 04:01 AM. Reason: marketplace binaries are paid now

    #2
    This honestly looks amazing. I am downloading the source now to compile it

    Comment


      #3
      This is amazing! thankyou!
      Matt Walton: Programmer and owner for WireLiteSoft Games.

      Comment


        #4
        A quick update, we just implemented a new feature that allows you to modify the runtime data of the Participant Actors that implement the IDlgDialogueParticipant interface. This is very useful if you want to test the Dialogues easily at runtime or just to cheat in your game .

        Showcase video from the Example project:


        To open the runtime editor you just need run the console command Dlg.DlgDataDisplay.
        OR
        After running the game in the editor you can open the DlgDataDisplay window by going to: Window -> Dialogue Data Display

        Before you can use the DlgDataDisplay Window you need to register the console commands of the Plugin. An example is provided in the project here.


        In the showcase video above you can see that at runtime only two actors Implement the IDlgDialogueParticipant interface: TopDownCharacter_C_0 and MrCube_182.

        The Character can talk with the cube to change the color of the cube, but every time a color is changed the int variable ColorChangeRequest is incremented (up to 4 times).
        The Cube is changing the color by using some events: ColorToRed, ColorToGreen, ColorToBlue.
        You can change the color of the cube by simply talking to it or by triggering the events in the DlgDataDisplay window.


        This of course works in every project with any amount of actors that implement the IDlgDialogueParticipant interface properly, see the example project for a reference .

        Happy Hacking.
        Last edited by leyyin; 02-14-2018, 03:01 PM.

        Comment


          #5
          Hi,
          Quick update, you can also find the Plugin on the Marketplace

          Comment


            #6
            Cool and thank you again guys!

            Comment


              #7
              An Update regarding branches, we plan to remove the master branch and instead use branch names depending on the version of UE they support. (e.g. for UE 4.18 the branch name is 4.18).
              The default branch would be the UE version we are using in our project at any time (it is 4.18 at the time of writing this post)

              If you are using or plan to use the Plugin as a submodule in your project please update/add the git submodule with the branch name you want it to track.

              NOTE: That some old branches are no longer maintained, please read the README for that branch first

              Comment


                #8
                Really awesome.. thank you.

                Could you add a Typewriter effect? That would be really cool.

                an example:
                 

                Comment


                  #9
                  This looks like a decent project, since I am still tinkering to what extent dialogue will play a part in my game (maybe huge), planning to test it out.
                  LEGENDS OF EPICA | CS - SPACE ALPHA

                  Comment


                    #10
                    This looks amazing! Is it possible to use this to call functions, such as opening a shop widget?

                    Comment


                      #11
                      Originally posted by Savagee25 View Post
                      Really awesome.. thank you.

                      Could you add a Typewriter effect? That would be really cool.

                      an example:
                      The plugin does not have any UI logic (we considered the UI to be too game specific to include it).


                      Originally posted by ComposingCoder View Post
                      This looks amazing! Is it possible to use this to call functions, such as opening a shop widget?
                      We have events for that. Your trader implements the interface, then you can call an event with e.g. name "OpenShop" on him/her/it.
                      In your trader code/blueprint you can implement the event handler function, and you can open the shop from there.

                      Comment


                        #12
                        Is there any way to check which node you're on (by like, number or something) and jump back to it later? Like if I was to make a visual novel, I'd want to save which node i'm on when I save, and when I load, I'd want to jump straight there after loading all my variables and stuff.
                        YouTube channel: https://m.youtube.com/channel/UC1qaQM1VnY441J5lCLCPMwg

                        Comment


                          #13
                          Unfortunately not yet, saving during dialogue is something we did not need.


                          It is rather easy to do (all I need to do is to write a getter function for a protected variable and a function which starts a context with a given node index), I am going to add that tomorrow.
                          You will be able to get the newest version from the gitlab repository right away. Unfortunately doing a marketplace update takes unpredictable time, I can't really tell how long it will take to include this in that version as well.

                          Comment


                            #14
                            Alright, thanks man, looking forward to it. Great plug-in btw, thanks for sharing it for free.
                            YouTube channel: https://m.youtube.com/channel/UC1qaQM1VnY441J5lCLCPMwg

                            Comment


                              #15
                              Any chance you guys could add a couple of things? I know some of these might be a pain to add because you'd probably have to redo your branches in your project but I think they would make the plug in a lot better.

                              1. Enter requirements check against another participant's value. For example, the node can be entered if the main character has less strength than their ally. So if there is no other participant, it would just check against the given value like it does now. I know this can be done by checking a custom bool but that would get pretty annoying to do if you have to do it a lot.

                              2. Check if the child has been entered or not. So if you're playing a choice based game who's options loops back, you can tell the player they've chosen a choice already by graying out the text or something, but it's still enterable. As far as I can tell, it's not possible to do in blueprints atm

                              3. Get all choices, even the ones that can't be entered. I know in one of the .h files you said that it's a todo thing, so if it was really easy to do, you probably would have done it by now. But ultimately, I believe it's player friendly to allow them to choose if they see unpickable choices or not, so while it's not really necessary, it would be really nice.
                              YouTube channel: https://m.youtube.com/channel/UC1qaQM1VnY441J5lCLCPMwg

                              Comment

                              Working...
                              X