Posted November 03, 2020 by jakefriend
Hi everyone, just posting a general update on how things have been going the past week or two, dev-wise.
Last week's Kickstarter news was really big! About a week went into working on all the art and some other behind-the-scenes stuff, so it was only this past weekend I got back in to some dev tasks.
I have about one more week before I'm in total moving prep crunch lockdown for several weeks. I won't have the Peanut Village update before then, but I'm aiming to do a small cleanup patch in the next week that will include the new dialogue system, just because it's, well, done.
The main non-Kickstarter thing I've gotten done is the new dialogue system. Check out the upgrades in these before/after gifs!
Can you count all the changes? Here they are if not:
So, why this much change? The dialogue system worked okay previously, in that it was serviceable. But there were a few glaring problems that would have been time bombs had I tried to press on without addressing them. Mainly:
One, if I couldn't exert tighter control over their positioning, we'd run into some rough scenarios where it would be impossible to identify who's talking, either because the dialogue was too far from them or physically covering their face.
Two, the "Q/1/2/3/4" system was never really going to survive key rebinding work, much less the controller support work. The icons for each of those keys were just PNG files, and I didn't want to a button per-option, nor did I really want some options to be dynamic - if the player sets their Interact key from Q to Backspace, there's hardly room for all of "BACKSPACE" to fit in each choice bubble. I also knew one-key-per-option wasn't going to last forever since controller support is coming. One key to interact and two keys to shift selections was the way to go, and using a keybind-agnostic icon for "Interact" means I no longer have to worry about the impact of rebinding; I just have to put text somewhere else visible as a remind of what the interact keys are currently bound to.
For those reasons some degree of change was needed, but I didn't originally plan on a refactor. In the end, Godot's automated-positioning Control nodes are very handy for static UI, but in order to place things where I want, the refactor to just manually managing positions was required. Some conversations were already fairly awkward in terms of where the various dialogue bubbles appeared, and most of the QOL changes (as well as the general polish and swooshyness I tried to add in) just wouldn't have been possible - the Control nodes would have prevented me from manipulating them past what they felt comfortable doing.
(Those conversations where the textbox just continually rose higher and higher over the speaker? Also a Control nodes issue.)
I crunched through all of the dialogue tasks basically in one day's worth of effort this weekend, with about 3 hours going into the speech line emitter (due to some frustrations with how Godot's Line2D points are accessed, grr) and 5 into the rest of the refactor. Even split up as 2 hours a night across 4 days, there's no way I could have actually gotten this done in that time broken up like that. I'd lose a lot of time to mentally getting back into the framework each night, and this has reminded me how much faster progress could be if I had the ability to work full-time...
So, once more - if you're interested in supporting the future Scrabdackle Kickstarter, please sign up for the mailing list on scrabdackle.com! It's the main platform I'm using to rally around right now, and it really, really helps if you join it.
Otherwise, as always we'd love to have you on the Scrabdackle Discord!
That's it til next time, thanks and bye!