Weekly Update – January 5, 2024

Many issues from last week’s play test were fixed this week. I again had more availability than usual due to time off work, and again had a more productive week than I usually do. There’s great momentum going into the new year. I’m spending more time in the Unity editor and the design tools configuring and less time coding. When I do go into the code, I’m making small changes rather than building new systems.

  • New content
    • New enemy: Stalagmite Monster. The Stalagmite Monster looks like an ordinary stalagmite. When the player walks near it, it reveals its true monstrous form.
    • New items: Food (Apple, Bread). I had to put something to eat on the table in the Bandit Hideout Dining Hall.
  • Player stops moving when a new enemy is spotted. Both of last week’s playtesters unintentionally ran into a group of enemies and were quickly slaughtered. They clicked a cell to move to, and as they moved, enemies outside of the field of view appeared and closed in on them. Now, the player will stop moving as soon as a new enemy appears. This prevents the player from running into the enemy and gives the player the opportunity to change plans. This was implemented by borrowing some of enemy AI functionality.
  • Added shadows to actor sprites. This was easy to do because actor sprites are already nested in GameObject prefabs. I simply had to add another child sprite for the shadow and slightly adjust the actor sprite positions so that the shadow appears directly underneath the sprite.
  • Improved target selection for abilities. Targets for the Charge ability are now limited to the closest cell containing an attackable entity in each direction. Targets for the Heavy Strike ability are now attackable entities in the eight cells adjacent to the player.
  • Tooltips now indicate if equipment can’t be used because it’s above the player’s maximum equipment tier.
  • Bug fixes
    • Corpse disappears when an enemy dies from poison. This was an amusing bug. It turned out that the enemy’s corpse was being poisoned and would disappear after the poison killed it because the corpse didn’t leave behind a corpse. I fixed this by creating a new Physical Material, Dead Flesh, that is immune to poison, and using this Physical Material for all corpses. No coding needed.
    • InvalidOperationException when stationary enemies start to act.
    • Armor duplicating when equipped.
    • Heavy Strike ability radius too large.
    • When the player performs the Charge ability, the target enemy walks into the player’s target cell.
    • The game locks up when
      • using Charge against an enemy using a ranged attack.
      • using Charge with a wall as the target.
      • using Heavy Attack with a non-adjacent target.
    • The Run ability can be used to run past blocking objects.
    • Gold is added to Chests each time they’re opened.
    • The Treasure Room guard is sometimes missing or not standing next to the door.
    • Take button doesn’t appear for items in the Inspect Panel.
    • Inspect Panel doesn’t update when changes occur to an entity being inspected, e.g. opening a closed chest.
  • Got rid of silver and copper coins. I originally made three types of coins to limit quantities of money exchanged in the game, and for a bit of variety and novelty. The player would find mostly copper coins early in the game. The more valuable silver and gold coins were more common later in the game, after the player had accumulated some wealth. In practice, multiple types of coins didn’t pay off (pardon the pun). I had to write utility methods to calculate the value of the coins (and vice versa) and extend the actor design tool to support multiple coin types and inventory. As I was about to fix a bug involving multiple coin types (the text displaying the value of a stack of obtained coins overlapped when there were multiple coin types), I stopped and asked myself, is this worth it? The choice to have multiple coin types created extra work for me but didn’t add anything to the game of real value. In fact, it detracted from the game experience because it added complexity. And, it violated one of my design tenets, which is to only have meaningful variety. So, I pulled the copper and silver coins out.

Next week’s activities will be similar to this week’s. I’ll be back at work full-time and will see my availability drop again.





Leave a Reply

Your email address will not be published. Required fields are marked *