nathanhoad / godot_dialogue_manager

A powerful nonlinear dialogue system for Godot
MIT License
2.19k stars 169 forks source link

Ink "thread" jumps #693

Open lorbog opened 2 weeks ago

lorbog commented 2 weeks ago

Is your feature request related to a problem? Please describe. I'm working on a text based game where dialog can vary quite a bit based on the current situation. Implementing ink's thread logic would allow for a much more dynamic use of text while keeping variable and title bloat low.

Describe the solution you'd like Essentially a thread would work like a snippet and display dialog lines as normal. When responses are reached they are not displayed immediately, but are instead gathered up and displayed at a later point chosen by the author.

Describe alternatives you've considered Using many more snippets and variables instead.

Additional context Example Syntax

# Threads are marked with <= syntax

~ bedroom_investigation
You enter the bedroom.
<= wardrobe
<= bed

- Leave. => END!

~ wardrobe
An old wardrobe sits in the corner, its door slightly ajar.

- Open the wardrobe.

- Look behind the wardrobe.

~ bed
An old bed rests against the wall.

- Check under the mattress.

- Look under the bed.

Player would see

You enter the bedroom.

An old wardrobe sits in the corner, its door slightly ajar.

An old bed rests against the wall.

> Open the wardrobe.
> Look behind the wardrobe.
> Check under the mattress.
> Look under the bed.
> Leave.
nathanhoad commented 5 days ago

I'll have to have a think about this one. My initial thoughts are that this will have to introduce state which I'm against but maybe there's a way to do it without it.

In the mean time I'm happy for anyone that needs the complexity of Ink to just use the Godot Ink addon - there are a few dialogue addons for Godot and each has their strengths.