AnidemDex / Godot-DialogPlugin

🗨️ A Dialog Node for Godot Engine
MIT License
211 stars 11 forks source link

New features #42

Open AnidemDex opened 2 years ago

AnidemDex commented 2 years ago

Just an issue to discuss and keep track of new features planned or that could be cool to be included in the plugin. Gonna open https://github.com/AnidemDex/Godot-DialogPlugin/discussions/ if I see that'll be something necessary (and will note every idea from discord).

None of those ideas will be included in the plugin until someone needs it, and a related issue about the implementation of that specific feature will be created.

not to fix an existing problem, just to add new problems to the road 🤪 /j

New features

Write based (script-like) timelines

  • [ ] Write based (script-like) timelines:

Something like:

[CharacterJoin GodoBot]
GodoBot: Oh, hi mark!

[EmitSignal "do_this"]

[CharacterJoin Godette]
[ChangeExpression Godette "Anger"]
Godette: Do you have to make the same joke everytime we meet?
 ...

Why?

Because we can! Sometimes is easier to keep and mantain timelines this way, feels more natural than making it through the timeline editor

How?

With dark magic Resources can be imported in many ways. Actually, timeline resources are text-based resources, saved as a Godot Text-Based Resource (*.tres) resource. You can tell Godot what and how can it import (literally) any file with any extension (dealing with the FormatLoader/Saver).

ChoiceEvent Yarnn-Spinner like

Do you know nights in the woods? Well, that game have an amazing choice system that I want to replicate (since Yarn Spinner is a Unity thing). image

Here's a link to the repository https://github.com/YarnSpinnerTool/YarnEditor Note that I don't want to steal that choices idea and say "Hey, I made this, so it's MINE". Steal is bad. I just liked the design of the spinnable choices and want to replicate it.

Edit: Someone managed to use Yarnn in Godot (https://github.com/kyperbelt/GDYarn)

Compatibility with other text-script based formats or other plugins in timelines

Do you know ink? What about renpy? Scrips made in json? What if we read those formats and transform them into a timeline usable by this plugin? We're using Godot Resource, sure we can do that! Take a look to write-based timelines.

Video tutorials

I have no idea about video editing or about being a celebrity on internet, but video resources about how to use the plugin and where can be implemented is not a bad idea.

AnidemDex commented 2 years ago

Update: Hey, @kyperbelt managed to integrate Yarnn to Godot. Take a look here https://github.com/kyperbelt/GDYarn

We will need to contact him in the future to integrate its stuff

Jeremi360 commented 2 years ago

@AnidemDex I wrote to you on twitter. I'm making a similar project that is also a collection of godot plugins that crate modular Dialogue System with GUIs for VN, RPG or Point&Click Adventure games it's called Rakugo: https://github.com/rakugoteam

Inspired by Ren'Py, Rakugo is a project aiming to provide a way to make narrative-based games on Godot easily. Simplify your project, if it is a visual novel, point and click, RPG, interactive text game or many other styles and blends of styles.

Features:

Maybe we will join forces?

AnidemDex commented 2 years ago

...collection of godot plugins that crate modular Dialogue System with GUIs for VN, RPG or Point&Click Adventure games it's called Rakugo

The main goal of this plugin is just being an easy tool to add dialogs in games, something more complex than that is EventSystem, wich only adds a kind of script sequences in game.

Features:

  • Save/Load system
  • Funcs, Objects and Vars like in Ren'Py
  • Dialog system <- This is what textalog can be
  • Ability to Rollback <- This is EventSystem
  • History <- EventSystem too
  • Skipping <- I think EventSystem can do this too

Maybe we will join forces?

@Jeremi360 what do you mean with "join forces"?

I mean, this plugin uses MIT license, has a code of conduct and contribution guidelines to try to follow an open source path. This only means that you can use it as you want, and can contribute to make it better for everyone so, technically when you commented, we already "joined forces" (not as Rakugo, but as user).

That's why I want to know more about your definition of "joining forces". Please, use this issue to discuss about adding features to this plugin.

You can always send me a private message in twitter (@AnidemDex) or send me a private message on discord (AnidemDex#6740), there's a Discord server too, to discuss about your definition of "joining forces" and what we can do

AnidemDex commented 2 years ago

@Jeremi360 are you still interested on your idea? I'm curious about what happened

Jeremi360 commented 2 years ago

@Jeremi360 are you still interested on your idea? I'm curious about what happened

You surprised me a bit with your answer and I got a bit scared 😅 Yes, I'm still interested on my idea of joining forces. I just see that there are many projects for Godot that are Dialog Systems, on most of them work one person or in better scenarios few people. So I thought it would be better to combine these projects, efforts and experience into one project. Now Rakugo is becoming modular, collection of plugins, so everyone can add something from each other in a flexible way, how about that? Now only @TheLudovyc and me are working on Rakugo.

Jeremi360 commented 2 years ago

@AnidemDex Today I just saw that you gave my idea :+1: reaction. If I didn't check this issue manually, I would still though that you don't respond for some reason to my comment. I understand that :+1: reaction, means you agree with me, yes ? Then how you think we can start to joining our projects ? I think first you can see code for Rakugo core and say what do you think about it and how we can improve it. https://github.com/rakugoteam/Rakugo

AnidemDex commented 2 years ago

@Jeremi360 for now, I'm still working on this plugin. When I saw a feature that can be integrated in rakugo, I'll try to do it. Take a look at EventSystem, maybe that can be useful there.

Jeremi360 commented 2 years ago

@Jeremi360 for now, I'm still working on this plugin. When I saw a feature that can be integrated in rakugo, I'll try to do it. Take a look at EventSystem, maybe that can be useful there.

Okay, I see. I will look at your EventSystem. How you made that you can connect different scripting ways of dialogues ?

AnidemDex commented 2 years ago

@Jeremi360 that's because textalog is agnostic to the way you store dialogues. It was developed with "this must work in any kind of game that needs dialogues" in mind