ZpellCatz DevRecap Feb - April '22

April 22, 2022

Hey there, fellow catz! After some technical system adjustments earlier this year, I was able to make some progress with the story of ZpellCatz in the last months. Want to know more? Read on.

Chapter 1 Progress

The story of ZpellCatz will be told via the mandatory main quests. Finishing main quests or clearing main quest related dungeons will reveal some small parts of the story. In addition to this, NPCs have a personality with a distinct welcome dialogue. So talking to them also gives some info on the Isle of Mana (the island where ZpellCatz is played).

NPC Dialogue

In terms of workload, chapter 1 is clearly the most extensive one. But I managed to write all welcome dialogues and default dialogues of NPCs that exist to this day. In addition to this, the early quests now have proper dialogue and we have the first two cinematics / flashbacks finished. Progress!

Dialogue with Colors

When I was working on chapter 1, I noticed that the dialogues looked a bit dull (visually ^^ ). So, I added colored text functionality to dialogues in order to let the NPCs emphasize certain words.

Colored NPC Text

Now you might wonder why colored text is worth mentioning at all... Well, I already used colored text to slowly reveal the NPCs dialogue over time. The revealed text has the default color while the hidden text has color "invisible".

Example, 4 steps:
- The first part is revealed <color=invisible>the rest is hidden.</color>
- The first part is revealed t<color=invisible>he rest is hidden.</color>
- The first part is revealed th<color=invisible>e rest is hidden.</color>
- The first part is revealed the<color=invisible> rest is hidden.</color>

So, if we just add a new tag for emphasize color (e.g. <color=green>), we might get in trouble. Lets have a look at another example.

Example with emphasize color:
- Hey <color=green>you</color>! // full text
- H<color=invisible>ey <color=green>you</color>!</color> // start, only one character shown
- He<color=invisible>y <color=green>you</color>!</color>
- Hey<color=invisible> <color=green>you</color>!</color>
- Hey <color=invisible><color=green>you</color>!</color>
- Hey <<color=invisible>color=green>you</color>!</color> // boom! unparsable text

The solution was to tell the reveal dialogue system how to handle other rich text control characters (e.g. <b>, <i>, </color>). I won't go into implementation details at this point. If you're interested in the code, please write a comment. :-)

Overworld Overhaul

Although the player will spend most of the time in dungeons while playing ZpellCatz, the overworld is still an important part of the game. As a first step to polish the game for one of the upcoming Steam Next Fests, I overhauled the overworld elements. Have a look.


Autumn Hills New


Beach New


Graveyard New

Unity 2021 Upgrade

I started working on ZpellCatz a long time ago. Back then, the scriptable render pipelines (LWRP) used to be slowish, so I decided to use the built-in render pipeline of Unity. I created tons of materials with custom shaders in the meantime, so there's no way back - haha.

With Unity 2021, we finally get shader graph for the built-in render pipeline, yay! I have some very basic understanding of HLSL, but the option to try around different parameters in a GUI will definitively speed up the shader writing process. Lets see if I'm able to enhance the hero spells' visuals in the upcoming weeks.

Steam Deck Polish

My Steam Deck finally arrived. I started up Legends of Pixelia and was surprised that everything works out of the box. When I ran ZpellCatz: Pumpkin Prologue, I noticed a lot of issues. So I spent some time in the last couple of weeks to polish the game for Steam Deck usage. It's nearly finished, you can expect a new version of the Pumpkin Prologue in the upcoming days that runs ultra smooth on the Deck.

That's it for today. Thanks for reading. What do you think about the changes? Are you interested in more hands-on technical stuff like C# code? Join our discord and leave a comment there.
Have a nice day!