No announcement yet.

Dialog System - What do you think?

  • Filter
  • Time
  • Show
Clear All
new posts

    Dialog System - What do you think?

    Hello guys, first post in the community

    Anyway, to the point: I've wandering around with the *best method to create a dialog system for my project using blueprint. I've seen all the known systems to do it, but none of this really convinced me, and then I came up with the idea of using Enum to store and choose sentences in the dialog.

    *Where best I mean the best for MY case, just to be clear .

    A few days ago I built a system using this, and the result was almost perfect for me, the only thing I can't make at the moment is that if I want to, for example, change the color of a certain word, I can't make it (at least I didn't figure out a properly way).

    For this example, I built a simplified version of the system.
    Click image for larger version

Name:	5ts4MWP.jpg
Views:	1
Size:	108.1 KB
ID:	1149617

    Of course as you might notice, there are a lot of things not implemented (for example: reset the variables value each time you press F), but again, I built that simple network just to show the "system" and keep things simple, in other words; what matters is the concept .

    So! At this point, I would like to introduce some unknowns:

    1) The only big negative point of this system I can see, is that I don't know a way to change the color of a desired word in the same final sentence. With an example:

    Click image for larger version

Name:	gohju2K.jpg
Views:	1
Size:	19.1 KB
ID:	1149618

    As you see, we set the Enum, then get the result, convert to string and Append with a String Variable, in this case, a Name. So the result will be "Just a test Tiz", for example.
    The thing here, is that a didn't figure out a way to stand out the name. I mean, of course there are way, but the name is supposed to be right after the sentence "Just a test", you know, like a unique sentence. And due to the dynamic nature of the sentences (could be more or less lengthy), is complicated as you imagine.

    So I post this to check if anyone get a workaround for this and also, check if anyone see a big negative point of this system that something I have not thought yet.

    I think that's all!
    Last edited by ivanrosadev; 05-10-2015, 12:42 AM.

    The way they do the Name is usually by some sort of unique format like %t%. So "Just a test, %t%." You use a Replace Substring to change %t% to your nameofplayer variable. You can set a variable up for your GET Array, and trigger a set on the variable when you want to switch to a new part of dialog. You could use a DoN to replace the pressed button count and a modified version of the counter to affect your get array, like counter + arraystartposition, get array. Your DoN would be controlled by how many dialog boxes you want to print out, and you would use a custom event to reset the counter.

    Last edited by DEDRICK; 05-09-2015, 10:34 PM.


      Hey Dedrick, I didn't know the existence of the replace node, awesome, indeed it's way more useful than the append for this case.

      I just tested this quickly (I know, EDialog start with 0 and DoN with 1 -error-, but this is just an example... ) and seems great and more optimized

      Click image for larger version

Name:	WvmMjCp.jpg
Views:	1
Size:	42.2 KB
ID:	1076062

      Anyway, the "bad" point of this system (for me of course), is that you can't see the sentence, or that if you want to mix sentences for a dialog or from different enum, then this becomes messy. This is another reason I use the enum for dialog: you can go to the content browser and see all your enum dialogs conveniently arranged; this is very useful for translation for example, as you do it much quickly.

      Even with this, I still can't change the color or other property of a desired word (like the name) in the final sentence. Let's see if anyone figure out a way.

      So! One thing I'll really keep is the Replace node, very very useful for me, thank you!
      Last edited by ivanrosadev; 05-10-2015, 12:43 AM.