RavioliMavioli / malware-slayer

Action platformer and terminal simulator game made in Godot Engine
Apache License 2.0
85 stars 5 forks source link

Dialogue library #17

Closed dfgworm closed 2 months ago

dfgworm commented 2 months ago

I recently looked into Dialogic (it's not in AssetLib, gotta download from site), and it seems to be crazy good. There are a lot of dialogue libs out there, idk if they are all like that or not, but seeing this one really made me not want to do it from scratch. I'd recommend to use it.

Even if you really want to make your own dialogues, I'd suggest at least mingling with Dialogic for a day just to see how their stuff works. They have a singleton to launch stuff from code, and their use of resources and scenes for full customization is pretty clever. They also have a nice editor for dialogues (timelines). Their system is not trivial to understand, might seem complex at first, but i think i would end up doing the same thing if i had to build something like that.

Also, Godot's RichText features are great for colored and even moving text, easy way to do something impressive.

dfgworm commented 2 months ago

I don't mean looking into their code, that would be insane. I just liked their interface facing the end user.

RavioliMavioli commented 2 months ago

I tried Dialogic few months ago and it was really great. The visuals and documentations are also on top with ease of branching and direct code executions. But I am trying to reduce the usage of external assets as much as possible, and since dialogue is not a big part of this game I will try to make it from scratch but some levels of modularity. Using dialogic for this game would be overkill and bloated. By using own dialogue script will also add more customization, pretty much can do anything with it.

RavioliMavioli commented 2 months ago

The dialogue system is now complete with JSON support, variable substitution, and branching. It can be easily controlled by the dialogue controller, and the json formatting is pretty straightforward.