Zone 1 Work and Player Feedback


Overview

- Began prototyping zone 1

- Adding beautification features with floating text

- General Bug Squashing/Smaller Features

Zone 1 Prototyping

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.

Beautification with Floating Text

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.

Damage Text Shown in Red


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.

Healing Text Shown in Green

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.

General Bug Squashing/Smaller Features

  • Noticed last selected item isn’t saved or loaded so I added that functionality for quality of life
  • Found a bug that would allow a player to regain an item by saving/loading. This occurred because the save system relied on names of items in an item_name list that was not updated when an item was used, so if the player used all the items, the name of the item would stay in the list.
  • Added in crouching to allow player to dodge, the crouch state will be used to allow the player to drop through floor (if I implement floors that allow that)
  • Coded in new hidden items (permanent boosts like health booster, energy booster, regen booster, spell power, armor)
  • Coded in a new “enemy”. To the player it will really be an in game puzzle object, but I coded it as enemy so that spell interactions would be simple
  • Added a pacifist enemy, please don’t kill them

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:

RSS Join our Discord!

Leave a comment

Log in with itch.io to leave a comment.