The Dec/Jan devlog!



Happy New Year, all!

What a winter! Like I said in my November devlog, I'd be taking a hiatus between Dec and Jan to move, and merging both half-months into a single devlog. In addition to getting a ton of work done, it's also been super busy in other ways, so let's see what I can recap

These devlogs used to be hosted on Kickstarter, but due to growing concerns with self-serving choices the company's been making plus generally hating their painful and outdated editor, I'm giving up and just linking backers to Itch for now. If you're an Itch follower but haven't seen the KS devlogs, there's seven or eight already available publically over there!


Music, music, music!

I've been on a hot streak with the soundtrack - I've written 18 more minutes of music across 9 tracks! Some are a little bit spoilery to talk about, but I'll share a couple below!

At this point, it looks like the game's soundtrack will be around a whopping 1 hour and 40 minutes - far and away the most I'ver written for a single project before. I'm about 70 minutes in now, with a mostly-locked planned tracklist of 52-53ish songs. The entire first act of the game is nearly done, and most of the rest is either finished or at least started - only a small handful of tracks haven't even hit the concept stage yet.







Again, this is only some of the latest in music progress! Feeling very good about my progress on this front :)

On the sound front, I spent a bunch of time at the beginning of December implementing the new sound effect setup I mentioned last time, and Major and I have been planning out how to tackle footstep sounds in the game. We locked in an approach of choosing about five 'surfaces' (like dirt, grass, mud, rock), then him making a few sound variants per 'size' of creature - so a medium-size creature like Blue will sound heavier than a small Dust Mote, but lighter than a heavy Duck Knight. I'll need to take a little time to implement it later in the winter, but it's going to be pretty cool once it's in place!


Putting the 'fun' in 'functional'

My central focus lately has been slowly but steadily pushing through to having a new demo to release. It's a milestone that will force me to have cleanly landed the release process as well as tidying up, well... pretty much everything! The work done to rebuild a lot of the game under the hood has left plenty of stray bugs here and there, and there's also some longstanding tasks that are necessary to make the game properly functional again still somewhat overdue. In a perfect world, I could be ready for a round of QA testing by the end of Feb, but... we'll see. It's still a marathon - I'm moving as fast as I can sustainably move, but not sprinting.

So, I spent a straight week in December on bugfixes - all sorts of things. Loading issues, camera issues, weird scenarios where the player locks up during a sword attack, having to kiiind of rewrite the NPC controller code, and so on. It was a bit depressing in the moment, but coming out of it, it felt really good to have also tidied up all the things that had been making me feel like my game was, well, an unusable mess of code.

I've also done a ton of minor refactoring and reorganizing core systems that were hastily written to get the original demo out. It isn't particularly exciting to talk about, but very necessary. So, I'm set up now to have a much wider variety of, say, audio volume controls, while also being able to manage the increased level of player control more easily than before. Very compelling, I know, I know. But hey, this kind of cleanup is necessary for supporting a wider variety of possible players, and also unlocks things I've wanted for ages like support for multiple save files!

Speaking of supporting more players, I've gotten started on aim assist and lock-on targeting work, as well as improving the way the 'aim guides' between you and your mouse cursor in the game indicate height and distance. There's still plenty more to do here, but the foundation's in place to build off.

Lastly, I've nearly got to the implementation stage for controller keybinds and key rebinding. Planning the keybinds was a little trickier than anticipated since it's rare for games to have things like, say, dialogue controls that need to be usable at the same time as other gameplay controls - but we got there! Should be testing that out in early Feb.


A fresh coat of paint

In addition to pure function, a lot of things got polished up from "messy/rushed original demo implementation" to something more stylish and long-term! Like, a lot of things!


First up, Blue now actually casts spells. In the demo, their wand simply faces 8 directions depending on the angle to your mouse cursor, but is completely static and doesn't move while magic blasts out of the wand's tip. The wand is now set up to do a small swish every time it's cast, once again supporting 8 hand-drawn directions but also with two cast 'swipe' directions to make it not feel too repetitive while clicking rapidly. And it's suble, but the wand and scryglass actually get put away into Blue's robes rather than just disappearing now


It's pretty hard to accurately describe how difficult this was to implement! So, Blue's arm sprite is separate from their body sprite so that the arm can swing regardless of whether Blue is walking, running, jumping, or standing still. So in the static arm days, I needed to carefully make sure the arm connected to Blue's body no matter what animation frame their body moved in. That's still true, but is now an order of magnitude more complex: Blue is a larger character with more dynamic animations, and I don't just have to make sure eight arm frames animate correctly, but about thirty-forty of them. Some animations were especially tricky to support, like the Pinwheel - Blue uses their dominant hand for hanging on to the pinwheel's tail, so for that animation only, their casting arm has to swap to their non-dominant hand. Tons of considerations at play here, but I'm thrilled at how effective the final (well, in-progress, but you know what I mean) result is!


Next up: The main menu has been MASSIVELY reworked! This effort is still in-progress, but I've almost finished implementing everything to make the title screen and settings menu much more vibrant and matching the rest of the 'new' art aesthetic, as well as a completely new Save Select screen where Skrine's hands shuffle the cards around while you choose which game to play. 


I've got a static screenshot of the Scrabdackle world from the opening cutscene in the background right now, but towards the end of production when the world map is fully locked in, I'll be revisiting this to make it a bit more lively and up-to-date. The save 'cards' Skrine deals are my take on the classic "three save files you can name and see a bunch of details of" format of late 90s/early 2000s games, set up so that they read save file info and populate the details accordingly. (I don't generally like the 'infinite save slots' thing a lot of modern games do, at least for games like Scrabdackle, so personally three seems like plenty - and restricting the count lets me do a lot more inventive and creative things in my approach, as well).

I'm nearly done with this main menu work at the time of writing, but useer interfaces go slow and Godot's UI approach can be a bit... dramatic... so I think there's still a day or so to go, maybe two. Yet another critical step towards a new demo release, though!

Last thing for this section: "UMS," or the Universal Mob Shader! This... is probably not that big of a deal to any programmers in the audience who use shaders all the time, but I set up a clean holistic system so that basically any character, creature, projectile, you name it in the game can have its visuals manipulated in an easily-maintained way. This does some basic things like make tracking a wide variety of colour swaps simple, or managing more complex colour blending like hue shading and mixing, or even a special mock lighting system! I'll be using that last one for some more dramatic scenes in the game 😉

The UMS shader allows for really easy palette recolouring.


Here's that mock lighting thing I was talking about.

We had some... issues... while testing out the aim assist targeting though.


Some long-term planning

In between big bouts of moving work, I took the occasional break to write up some major planning documents. I've pretty much got everything for the first act nailed down, to a pretty high level of detail. In fact, I went and outlined and categorized every single content task in the game into one colossal production map which is helping me keep track of which things are still missing art polish, code, design, and so on. Not something I can share, but still pretty neat!

Something I can share is my work schedule for the first year (well, 8 months, anyways) of working on Scrabdackle full-time! Over the course of the year, I came to understand my own ideal work style a lot better, and leaned into it, basically finding a way to not really work much more than the stereotypical 40-hour desk job, while making all of those hours very high in productivity and staying creatively fresh and engaged. It won't work for everyone, but if you don't mind a non-traditional schedule, I'd definitely recommend it! My writeup's here on reddit for the interested.

One more planning-y thing is that I’m continuing to try to figure out what a good third ‘main’ attack spell would be. I still want to have something mid-range that fits snugly between the long-range line of Strata Blast and the very-short-range slash of Witchbrand, but I wasn’t happy with the Fangarang ability I prototyped a while back. I’m trying something else out now called Lunarang, which is meant to be extremely strong mid-range (since two separate projectiles can potentially hit for each shot) but also can’t shoot very far and can’t successfully defend the short-range either. I’m hoping it’s kind of a trick-shot ability that can clear out large swarms of weak enemies or potentially plow through boss health if you can use it carefully, but which leaves you dangerously exposed if not. We’ll see! Doesn’t feel great yet, but going to see if it grows on me before either cutting it or fleshing it out more.


The visuals are temporary, but some better way of seeing the attack 'arc' before you cast is probably needed.


(Some) new art

I'm running out of steam on this mammoth devlog. Drew some new things! Here things share!

Four Blustergust Peak enemies/creatures: Crankle the rock monster, Craghopper the mountain goat / praying mantis hybrid, Nimby the little cloudling, and Pupnik the li'l bat. Nimby's fully animated; the rest are still yet to be!



Also! Added some Skrine expressions while I was supposed to be on hiatus, just because it was too fun to resist.


Lastly! That one archaeologist peanut in the demo just before Waking Fossil was always meant to have custom art, so I've finally gone ahead and done it. Not super notable, but eh, here it is!



Misc business stuff and the end

I took a pass on the press kit, main website, and Steam page to update the images to represent the new art style. I’ll need a new trailer eventually, but I’m not ready for that yet, and I’m also not going to redo the itch.io page until maybe closer to the new demo release.

There's a bunch of stuff I can't share happening in the background as always, but I'll end it there for now. As usually, I could easily have gone into two times or three times the amount of detail on some of this stuff, but I can’t spend forever on these devlogs - even this more-high-level-than-usual one took a while. Ask a question if you want more detail, I guess!


Expect an update whenever I know when the demo will be releasing, and otherwise see you in a month for the Feb devlog!

-Jake

Get Scrabdackle

Comments

Log in with itch.io to leave a comment.

(+1)

Kudos! Stoked for you. Thanks for sharing :)

(+1)

Incredible jake! keep up the good work

Amazing! You’re so talented if only my anxiety would let me appreciate it instead of screaming “CHECK YOUR EMAIL YOU JUST NEED TO BE ON THE WALL OF SUPPORTER WIZZARDS”. Writing this I’m getting anxious that this is just annoying.

(+3)

very cool

So cool