Posted November 26, 2023 by Sleepy Geese Studios
- Began prototyping zone 1
- Adding beautification features with floating text
- General Bug Squashing/Smaller Features
To start off I spent a fair of time working on prototyping the rooms for the first zone. Initially, this just meant creating each one and creating the proper connections between them and ensuring that the player could actually navigate to any of the rooms. This left me with an empty labyrinth that I found difficult to navigate due to my own unfamiliarity with it as well as a lack of interesting features in each room. We will remedy this later, but the moment I had them all connected. Next I started work on creating second drafts of each rooms. This will likely be an ongoing process and the rooms will be updated/upgraded as we replace the game's stand in assets with our own. We are mostly focusing on enemies and items. The foreground and background objects will likely be added a little later, but I see them as important navigation tools.
As of current, thirteen rooms have gotten a thoughtful first draft.
In general working on the floating text was a little painful as the default arcade.text object didn't have a simple on_update function on it like I was used to when working with sprite objects. I tried working with the arcade.create_text_sprite() which did most of what I was looking for but I didn't have a way to modify the text sprite's update function. So I went back and created the FloatingText subclass of arcade text object. This gave me an editable object to spawn in with variable text. This is such a simple sounding solution, but it took me forever to implement this. From here I created basic concept and modified the update function to increase the y position of the text object by 2; so that on every tick, the text will move upwards by 2 pixels.
During testing I ran into the issue where the damage numbers were difficult to read if there were a lot of them in a small area. One cause was I wanted the text to be a little more interesting so I also implemented a timer system that would change the color back and forth between red and orange, but this of course hurt readability and was honestly quite an eye sore. I had a few potential solutions that attempted to alleviate the issue. The first that I attempted was making the text appear at a random point within a range of the x-axis of the entity taking damage. This helped spread the text out so if there was only a couple instances it wouldn't have been much of an issue. The next attempt was trying to find a way to outline the text. I start really digging into both arcade's and pyglet's APIs to a good solution. Unfortunately, I couldn't find one that I liked; the arcade outline was just a pointer to the pyglet outline which outlined the text object and not the text. This created a rectangle around it and wasn't really helpful for what I needed. The solution that finally fixed the issue more or less was to assign a random integer within a range to the r-value of the text's RGB hex values. This created some contrast between the different numbers and although the numbers overlap each other, the player can still read some which will still tell them how much damage they are doing. Last bit I changed for readability, was that I removed the color flashing because the before mentioned reasons and replaced it with a color fade towards black. Which I felt still gave the text some life but wasn't as horrid.
After working the floating text some more, I made it a little more open so that it can be used to show healing or energy gains as well as the damage values.
If you want to stay up to date with the game you can follow the game to get updates, join our Discord server, or subscribe to the devlog RSS feed: