Dialog System

0 views
Skip to first unread message

Zebedeo Konig

unread,
Aug 3, 2024, 5:21:18 PM8/3/24
to klasattehmang

The elements of a dialogue system are not defined because this idea is under research,[citation needed] however, they are different from chatbot.[1] The typical GUI wizard engages in a sort of dialogue, but it includes very few of the common dialogue system components, and the dialogue state is trivial.

After dialogue systems based only on written text processing starting from the early Sixties,[2] the first speaking dialogue system was issued by the DARPA Project in the US in 1977.[3] After the end of this 5-year project, some European projects issued the first dialogue system able to speak many languages (also French, German and Italian).[4] Those first systems were used in the telecom industry to provide phone various services in specific domains, e.g. automated agenda and train tables service.

What sets of components are included in a dialogue system, and how those components divide up responsibilities differs from system to system. Principal to any dialogue system is the dialogue manager, which is a component that manages the state of the dialogue, and dialogue strategy. A typical activity cycle in a dialogue system contains the following phases:[5]

"A Natural Dialogue System is a form of dialogue system that tries to improve usability and user satisfaction by imitating human behaviour" [6] (Berg, 2014). It addresses the features of a human-to-human dialogue (e.g. sub dialogues and topic changes) and aims to integrate them into dialogue systems for human-machine interaction. Often, (spoken) dialogue systems require the user to adapt to the system because the system is only able to understand a very limited vocabulary, is not able to react to topic changes, and does not allow the user to influence the dialogue flow. Mixed-initiative is a way to enable the user to have an active part in the dialogue instead of only answering questions. However, the mere existence of mixed-initiative is not sufficient to be classified as a natural dialogue system. Other important aspects include:[6]

Although most of these aspects are issues of many different research projects, there is a lack of tools that support the development of dialogue systems addressing these topics.[7] Apart from VoiceXML that focuses on interactive voice response systems and is the basis for many spoken dialogue systems in industry (customer support applications) and AIML that is famous for the A.L.I.C.E. chatbot, none of these integrate linguistic features like dialogue acts or language generation. Therefore, NADIA (a research prototype) gives an idea of how to fill that gap and combines some of the aforementioned aspects like natural language generation, adaptive formulation, and sub dialogues.

Some authors measure the dialogue system's performance in terms of the percentage of sentences completely right, by comparing the model of sentences (this measure is called Concept Sentence Accuracy[8] or Sentence Understanding[4]).

I am currently trying to build my first ever game. I had some great progress in the first few weeks, but now I want to improve some things that are annoying me. My major pain point right now is the dialog system.

I would like to have a simple dialog system in my game, and i really have tried several times to. So far the example by Laura_D is probably the closest to it, However anytime I try and tinker in it, it breaks down completely and stops working even just by changing the regular text to sprite text and nothing else.

The issue is, That's it, no plugins or help of any kind, anytime I try and find solutions its the same two things. Maybe its just a lack of people using CS3, but I feel there should be some simple way to get branching dialog in a construct game. If anyone has more resources to put in this discussion that would be great.

I am interested in what you find out for your dialogue system. I have the same problem, but I am trying to put the quests system into as well since dialogue generally leads to quests and includes collecting rewards etc. There are some systems over at Godot you might want to look at to get ideas.

I put together a rough json-based dialogue system that uses chatmapper exports a while back. I gave up around the time it came to implement complex condition handling. I did manage to get basic logic down (check condition, hide/show option, etc.) but it quickly became clear that what I wanted was possible but would take a hell of a lot of work to get running.

I plan to use a more stripped down version to handle basic dialogue but sadly I think the Disco Elysium style deep dialogue system I dreamed up will have to wait. Ashley has made it pretty clear that a built-in dialogue system is way beyond scope and I think it would be one hell of an undertaking to rustle up a plug-in for this purpose. But like I say, not impossible. The moment someone does, they have my download.

These are relatively outdated, given that the Flowchart system is probably the most viable route for this now. I've built a prototype dialogue system using it and it's powerful, just limited by how young its feature set is as of now.

It's very easy to create a simple dialogue system in C3, but as you add more complexity (conditions, tags, variables, etc.) it tends to fall apart. I got as far as the ability to change and read variables from a dictionary and enable basic conditions, but the whole thing felt extremely unstable and I wouldn't feel safe committing to an entire game built on it.

I agree with OP that a plug-in to handle those more complex features would be ideal - but it's also hard to know whether it would be a waste of time or not, since Ashley and the team have been very hush hush about the roadmap for Flowcharts and how much more they intend to develop it. I - like a lot of us atm - am just waiting on more info before I continue any branching dialogue heavy projects.

I am curious just what you think is the easiest dialog system for godot is. My current game is almost 70% dialog and I would love a simple easy system to save me time as I am lazy. And I know this is just your opinion as everything has pros and cons.

I picked it because it's popular and has been updated recently. There are others around, but it's a little scary if they haven't been updated recently. Especially with Godot 4 coming out. Who wants to update someone else's code?I don't know how much weight it's carrying for like a phone game or something. That might be something to think about.I think this one might be lighter weight and you can code it yourself. -DialogPlugin

I have written several dialog systems over the years. And this method is similar to what I have done. You are correct in that dialogic has a couple of bugs that has not made me happy. (animation, random crash, and naming bugs) I have found several more systems I will look at them as well.

BUT it did please my wife sufficiently that I was able to write up the opening scene and after she played it created about 4 pages of mock ups. SO whether or not I continue to use it, the scene I made in dialogic succeeded in my books. :)

Yeah, I would love to have used it, but it's no big deal either way. The other trouble is they don't have a forum or anything. Good tutorial. You can post questions there but I don't know how long before they get around to answering. I really just need options and signals. The nice thing about trying things like that is it gives you ideas for your own code if it doesn't work out.

@fire7side said:Yeah, I would love to have used it, but it's no big deal either way. The other trouble is they don't have a forum or anything. Good tutorial. You can post questions there but I don't know how long before they get around to answering. I really just need options and signals. The nice thing about trying things like that is it gives you ideas for your own code if it doesn't work out.

one of the issues i dealt with is the addon changes the file name of json of the timeline but does not change the file pointer name in some of the functions. Because of that it created multiple copies with same meta name but different filenames and varying degrees of missing data.

And text colors do not update till after they a user input when they load- this can mean that the text color of a new choice can be the same color as the previous character color until you make a choice.

I guess it's up to whether you value how easy it is to use, or how easy it is to set up. I didn't know there were dialog systems and just started making my own. My way is probably not as easy but it is giving me a ton of programming experience and once I'm done, I have a system tailored to what I need. Hopefully.That being said, as you said, you're lazy. I don't recommend making your own. It's pretty hard. I'm hallucinating pretty regularly from the coffee and no sleep and not seeing the sun in almost a week. I don't want to complain, I want to share my experience of building an "alternative dialog system".

I left a comment in there and apparently I needed to use version 1.4 dev to get the signal calling I was trying to use. Kind of wish I hadn't seen the problems you are having, but I'm going to play around with it some more if it works with the dev version. I think a lot of the problems you are having are 2d related. I'm just calling 3d animations with signals, plus I imagine I'll be changing inventory, etc. There's still a lot of work done there that would come in handy. I can always write my own if it doesn't work out. Having someone answer a question kind of made me feel a little better about it.

I used to write everything from scratch myself. With that DX11 engine I tried to make, I basically didn't even use any libraries. I made my own math library, model importers, culling code, input handling, windowing, etc. It was all from scratch. I learned a whole lot, and I am grateful, but I wasted a lot of time. My versions were super basic, and I could have downloaded an open source library for free and had more features, less bugs, and saved months of effort. But it was a learning experience, so that is why I did it. If you actually want to finish anything, then download plug-ins, libraries, buy art or music, whatever you have to do.

c80f0f1006
Reply all
Reply to author
Forward
0 new messages