plato - a library to manage dialogues in point & click adventure games and other dialogue-driven genres
Posted: Tue May 28, 2024 8:15 pm
Hello everyone,
I just released the code that I've been using to manage dialogues in my LÖVE point & click adventure games as a library. You can find it here.
It also includes another library I made, strands, that's a wrapper around Lua coroutines that allows to easily start parallel sequences of actions that can wait without blocking the game execution. I'll write a separate post about that since it's also available on its own.
Features of the library:
I just released the code that I've been using to manage dialogues in my LÖVE point & click adventure games as a library. You can find it here.
It also includes another library I made, strands, that's a wrapper around Lua coroutines that allows to easily start parallel sequences of actions that can wait without blocking the game execution. I'll write a separate post about that since it's also available on its own.
Features of the library:
- dialogues can be divided in sections that can connect to each other, allowing for
recursive behaviour and backtracking - dialogues can save their own internal state
- utilities to show some dialogue options and/or perform some steps only once
- an easy way to present mutually exclusive options with less conditionals using weights
- sections of dialogue are run in a non-blocking way using the strands library and can be used
to perform sequences of actions (such as characters talking, or moving around) with waits in between.
This allows `plato` to be used as a way to manage cutscenes—after all, what's a cutscene if not a dialogue without
dialogue choices? - UI-agnostic: the library only manages the dialogues, you can draw things to the screen in your preferred way.