Rakugo Project 3.3 Devlog #5 : RakuScript
A bit of explanation first
Hi everyone, here is the 5th devlog of Rakugo Project 3.3. Sorry everyone, that I was calling last devlogs as “Rakugo 3.3 Devlog”, but I should to call it “Rakugo Project 3.3 Devlog”. As there is no more Rakugo in the way as it was before as Rakugo 3.x. Now there is Rakugo called also Rakugo.Core, that upcoming version is 1.0.0, it implements core of Rakugo:
- dialogue system
- save/load system
- history system
- preferences system
- global variables system
- etc.
And rest of Rakugo previous features now are implemented in addons.
RakuScript
Its finally happened that I decided to make RakuScript a dialogue scripting system for Rakugo.
Why and what with dialogues as GDScript functions ?
We have to abandon support for dialogue as GDScript functions, because it wasn’t a good way to write dialogues. This approach to dialogue steps turn out to be problematic, and could lead to performance problems and messy in memory after closing game. This mostly by the way how threads works in Godot, we can’t kill them we must finish them - so we should execute whole dialogue each time. It is more explained here, if you are curious. So we decided to create dialogue scripting language for Rakugo - this solution don’t have this issue, as with interpreted dialogue. Instructions are read “line by line”. And we can quit without read all file.
How this RakuScript will look ?
We try to model our langue RakuScript after Ren’Py one, but it wouldn’t be 100% compatible as:
- Ren’Py has support for only one markup - in RakuScript this is customable as for example AdvancedText adds support for 3 in markups in our langue
- Ren’Py has build in ui sub-langue - no need for this in Rakugo case
- Ren’Py has
python
block and lines we for oblivious reasons will havegdscript
ones - RakuScript can and will be expendable by other Rakugo addons
- We have few ideas of our own for this scripting langue
Here are examples of some statements:
# Create character
# character [character_tag] [character_name]
character em "Emily"
# Say narrator
"Hello, world !"
# Character say
# [character_tag] "Here is dialogue text"
em "Hi, I'm <em.name>!" # em.name will be changed to Emily
# Jump
# jump label_name
jump emily_talk
# Dialogue/Label
# label_name:
emily_talk:
# Menu
# menu: or menu label:
# [indent]"text" or [indent]"text" > label (with label it jump on label)
menu:
"talk to emily" > emily_talk
"wait"
# Ask
# [variable_name] = [question] ? [default_answer]
answer = "Are you human ?" ? "Yes"
# You can get answer in GDScript with:
# Rakugo.get_current_stock().get("answer")
We want to know your opinion
We have few ideas of our own for this scripting language, but we need your opinion, as we are not sure if we should implement them or not. Here are links to these ideas issues on GitHub when we can discuss them:
Get Rakugo
Rakugo
Project (inspired by Ren'Py) for story driven games in Godot
Status | In development |
Category | Tool |
Authors | Jeremi, playBitke |
Genre | Adventure, Role Playing, Visual Novel |
Tags | Godot, Point & Click, rakugo, Ren'Py, Story Rich, Text based, Twine |
More posts
- Rakugo Project Devlog #22: Finally RDS Docs 2.2!Mar 05, 2024
- Rakugo Project Devlog #20: Rakugo Dialogue System 2.2!Nov 01, 2023
- Rakugo Project Devlog #19: Rakugo Dialogue System 2.1.1!Sep 25, 2023
- Rakugo Project Devlog #18: Material Design Icons and Emojis are ported for Godot...Aug 17, 2023
- Rakugo Project Devlog #17: Rakugo Dialogue System 2.1 is out!May 17, 2023
- Rakugo Project Devlog #16: Bugfix for Rakugo Dialogue System and Examples update...Apr 06, 2023
- Rakugo Project Devlog #14: Rakugo Dialogue System 2.0.1 is out!Mar 16, 2023
- Rakugo Project Devlog #14: Rakugo Dialogue System 2.0.1 is out!Mar 14, 2023
- Rakugo Project Devlog #13: Rakugo Dialogue System 2.0 for Godot 4 is out!Mar 09, 2023
- Rakugo Project Devlog #12: Show/Hide keywords in VisualNovelKit, Rakugo Core v...Jan 24, 2023
Leave a comment
Log in with itch.io to leave a comment.