Hi everyone!
I am really excited to share my first plugin with you!
It’s called Godot ASCII Toolkit and, well, I hope the name stands for itself! :'D

It is still in development, I will (hopefully) add new features every now and then.
Quick summary of features
-
Adds an ASCII Godot splash screen!

-
Adds custom Control nodes for building ASCII looking UI using the editor, notably:
ASCIIBox: ASCII Box where the box characters are chosen from a list of types.

ASCIICustomTextBox: ASCII text box with custom margins

ASCIITitledBox(ASCIIBox): A box with a title on the frame.

ASCIIBoxedTextButton: ASCII looking button with text and frame box (cf. the minimal game example GIF).
-
Possibilty to customize your ASCII UI elements through custom
ASCIIThemes!
More information in this README.
Future plans:
ASCIIProgressBar;ASCIISlider;ASCIITabs;- …
External Links
Motivations
One day, I played Candy Box, then Candy Box 2, and they literally blew my mind (especially the second one).
I was fascinated about how good were both the gameplay (I couldn’t imagine an idle game to be so creative) and the atmosphere (the ASCII graphics are awesome and also very creative) while only relying on text (which may be seen as ‘simple’).
More recently, I play their spiritual successor: Stone Story RPG. The scope is even bigger while remaining awesome (the scripting part is just too much) and most importantly: it is the most beautiful piece of ASCII art I have ever seen.
Unfortunately, I read that Stone Story RPG was made using Unity and… Well, do I have to say anything else here? ![]()
So, the question raised naturally: what would it take to create a Stone Story RPG-like with Godot? I did a quick review of existing features, found the ASCII Screen plugin from Nofacer to handle placing objects on a ASCII grid in a very roguelikedev way. It is very cool but it felt like trying to make a game as graphically complex as Stone Story RPG would be a pain as it would require recoding everything from the ground up. While it is very good for learning aspects, I think (or at least hope) that I am past that.
That’s how I ended up learning about tool and made my own plugin!
Main things I would love to have feedback about
I have some very precise questions regarding Godot (especially the editor):
- How can I configure grid size and activate grid snap in the 2D editor through gdscript? I know about EditorSettings, but it does not seem to include it… Other “solutions” I found were more like messy workaround and, when you have to do things like that, it usually means that you’ve missed something (at least in my own experience).
- I am really confused about themes. I didn’t manage to create it from script, so I have to rely on a ressource created from the editor…
However, I am also wondering about other aspect:
- Does relying on Labels to make custom ASCII Controls seem like a good idea to you? Or are you already seeing the limitations of the approach?
- Does this approach seems relevant to you? The main idea was to reuse Godot features at maximum but maybe it is useless…
- What do you think of the code in general? Are there bad practice I should avoid?
