KatFS Alpha Devlog #3 (September 2024)


Hello all! Time for the third monthly alpha devlog on the Kalia project. 

First, let's talk about the Twitter elephant in the room. Since August 28th, Twitter has been blocked in Brazil, meaning I haven't been able to post, interact or even view anything in the site for the last month. I could be all doom and gloom about losing my main way of promoting KatFS, but to be frank, that site deserved the block and more. I've put my money where my mouth is and moved permanently to BlueSky, and I don't think I ever want to look back. It's been a much nicer site, I've gotten more genuine engagement (in great part thanks to the jumpstart support of the amazing Brazilian indie dev scene, in particular the work of the Controles Voadores cast) and it's been fun to let my Brazilian side out more and engage in the banter. Even numbers aren't an issue, as the KatFS account on BlueSky has already reached the 700 followers milestone (while the old Twitter account's last milestone had been 800). Maybe I can finally reach the 1K mark, and on a whole other site to boot?

So, what now? While Twitter's infamous owner seems to be finally feeling the burn and has started to bend the knee, there's still no forecast for when Twitter will return to Brazil. If the platform doesn't collapse altogether by the end of the year, it's likely it'll return at some point. But BlueSky is my new online home, and I'm sticking by it. I won't be abandoning Kalia's Twitter altogether out of respect for the following I've gathered over there, but... BlueSky is where the fun Kalia account will be at, with Twitter getting the leftovers. I invite everyone to make the move as well, it may feel lonely at first but I'm certain you'll find plenty of your favorite people are already there, including Kalia obviously.

Follow me on BlueSky: @kaliagame.bsky.social

Come on, give me a reason to post more in English over there. :P

STILL SORTING SOME SPRITES OUT...

In the Alpha Devlog #1, I wrote about KatFS's new sprite sorting technique which makes use of the engine's low-level sorting rather than having scripts that update the high-level sort order to the object's position. It has been serving me well, but recently I thought about a possible scenario where it could prove insufficient. Spoiler alert, it is not and it's actually more flexible than first thought if you know how to play around it.

In KatFS, objects aren't always depicted at the same ground level. Certain objects should appear to hover a certain height above the ground (such as Kalia's firebolts), while others are meant to be placed at a higher level than the one the player is on. For example, the prologue has trees located both at the player level and on the higher ground out of the level's bounds:

The issue? Sprites that are raised above the ground will be placed at a higher Y position than an equivalent ground-level sprite, and therefore get Y-sorted behind objects they should appear in front of. Here's an example, use the shadows as a reference for the placement and elevation of the objects:

One trick to solve this issue is to set the sprite's pivot point underneath it to account for its apparent height. Rather than having the pivot at Y=0, you could have it at Y=-0.5 to have it be positioned as if it were hovering 0.5 units above the ground (and get sorted accordingly). However this solution has limitations. It will mess up sprite rotation (which is important for elements like the firebolt), and fixes the sprite at a specific height globally when you might want it to be variable between different instances and even one object (like a projectile that travels in an arc). 

When KatFS's Y-sorting was still handled via script, this was resolved via setting a "virtual pivot" to the sorting script, which would override the sprite's own pivot for sorting purposes. This way, sprites could still be rotated around their own pivot while being sorted from a different one, and this virtual pivot could even be manipulated independently of the sprite itself. So we just need a way to recreate that concept without sorting scripts...

And there happens to be one: sorting groups! Truly an amazing feature of Unity's 2D suite. Sort groups are normally used to group up several sprites together in the sorting process, such as a character made out of multiple parts that must be sorted as a whole. Sprites within a group obey Y-sorting locally, while the group itself obeys global Y-sorting. So, if you have a sort group parent with a child sprite, and you raise the sprite, it will get sorted as part of the group, and therefore based on the parent's Y-position rather than its own! This allows for raised, hovering and arched visuals once again!

IN THE FOREST

September 2024 marks an important milestone in the KatFS Alpha development: The first fully playable alpha chapter! While the pre-alpha demo has featured three playable chapters for a while, these have been created with the intention of fleshing out game systems, aesthetics and obviously to serve as a demonstration of what the full game would be like. While many elements of these chapters may feature in the full game, the full game's chapters will be rebuilt from the ground up, featuring new and improved assets and design philosophies. And now we have the first one, the Prologue Chapter:

During a day like any other, Kalia decides to take a different route on her foraging walk in the woods. But this walk turns into an investigation when Kalia runs into a zombie roaming her forest! Not one to ignore intruders, the demon girl tracks down the trail left by the zombie, encountering more of them deeper into the forest, and eventually reaching a cave entrance where the undead appear to be pouring out from! Determined to find their source, Kalia enters the cave. Surely it'll be safe in there, right?

While this chapter is significantly smaller than any of the individual demo chapters, it is meant to be a brief introduction to Kalia's journey and basic game mechanics. Regardless, I've decided to go all out with the detailing, creating a lush and dense forest that signifies Kalia's life on Earth. Kalia will not have the Fire Staff at the start of the game and will instead be equipped with a plain quarterstaff during the prologue and first chapter, meaning the player has the chance to get acquainted with the basic melee and dodge-rolling tactics before magical fire is added to the mix.


Another notable detail about this introduction is that the player won't be able to get any potions, since these will be introduced later. The strong nature energy from the forest keeps the player's health regenerating, and a few fruit trees can be harvested for instant health drops. However, once the player reaches the cave, nature's boons stop and they'll be on their own! But that's for next chapter, which I'm hoping I can get done by next month, since it shouldn't be as asset and detail-heavy as the prologue forest.


Finally, I must state that this isn't 100% final, but instead it is "fully playable as intended" meaning all the essential level structures, details, NPCs, scripts and cutscenes are functional. It will have to be playtested in order to squash any bugs that may be present, and I'll also be doing at least another pass on it with additional detailing and polishing. It also lacks an ambient soundscape, which I believe is really important to sell the feeling of being in a deep jungle. My intention is to get at least a significant portion of the game's campaign up to this standard (if not the entire game) before going back and giving it all another pass. It's been a tough couple of months transitioning from pre-alpha to alpha, but I feel I've finally achieved a good pace and can see the light at the end of the tunnel with this project, even if it's still far away.


That will be all for this devlog! Again, make sure to follow me on BlueSky, it's quite nice over there!

Get Kalia and The Fire Staff Pre-Alpha

Download NowName your own price

Comments

Log in with itch.io to leave a comment.

I loved discovering KatFS via BlueSky! The game looks amazing

(+1)

Thank you so much! :D

Looking forward to taking this game far (also happy to see BlueSky taking off)