Weekly Update – December 29, 2023

The year is ending on a high note with Play Test 2 finally occurring this week. This test was originally scheduled for June but I decided to postpone it until map generation improved. It’s a very encouraging milestone. It’s truly the first time that all of the individual parts have been assembled into a complete, playable game. It’s a tiny game in its present state, featuring a single level, a single theme, a single playable class, and a small selection of enemies, items, abilities, and objects. But, it establishes a model that I can now scale up to the full release. 

It was a highly productive week overall. With time off from work, available game dev time quadrupled. Activity centered around the play test – preparing for the test, conducting it, and starting to incorporate the feedback from it.

  • Play Test 2. There were two play testers: my teenage son and daughter. Both of them play games but they have no experience with traditional roguelikes. They each played for 15 minutes. I didn’t provide any instructions about how to play. They started at the title screen and had to figure things out themselves from there, though I did offer a few explanations and hints along the way. I recorded both sessions on my iPhone to capture the screen, keyboard and mouse movements, and comments. There were many interesting takeaways, too many to list in this post. I’ll just say that having others play your game, even when they are just a couple of family members, is invaluable.
  • New content / content improvements
    • Magic items: Magic Short Sword, Magic Leather Armor, Magic Robe, Magic Leather Boots, Magic Leather Gloves. These are generic magic items that do more damage than their non-magical equivalents and boost some stats a bit. I created them to test rumor generation (only special items can be the subject of a rumor).
    • Added room content. Animal Lair, Alchemy Chamber, and Spider Nest room types had more objects added and adjustments to object probabilities and quantities.
    • Destroying a Stalagmite now leaves behind Rubble. This creates a new tactical option in which the player can lure an enemy onto a Rubble cell to give the enemy a terrain-based combat disadvantage.
    • More level rumor types. In addition to rumors based on actors and items placed on the map, rumors can now come from map rooms and locations.
  • Terrain stat modifiers are now shown when inspecting an actor. These modifiers were already being displayed when inspecting the cell that the actor is in.
  • Hotbar improvements. Slot numbers were added to the hotbar to make it easier to tell the keyboard key for each slot. Items that can’t be used by the player’s class no longer automatically get added to the hotbar.
  • Changed log perspective from first-person to second-person. Log entries now use the pronoun “you” instead of “I” to reference the player. I originally used first-person because I wanted the log to sound like a journal written by the player. In practice, it was awkward.
  • Bug fixes
    • Bandit Archers sometimes don’t shoot at the player. This was a nasty bug. It took me a while to reproduce it because it happened in some sessions but not others. The first clue was that the Archers didn’t have their bows equipped when the bug occurred. The second clue was that the log contained multiple responses to the event that fires when an inventory item quantity changes, even though a change only occurred in the player’s inventory. From this clue, I was able to reproduce the bug. When the player’s supply of throwing axes was depleted, every actor responded to the item quantity change event, causing enemies to unequip their ranged weapons. This shouldn’t have been happening because the event listener checks that the inventory object in the event belongs to the player. This logic was incorrect. The inventory object always belonged to the player because the player was generating the event. I fixed the bug by comparing the owner of the inventory object in the event to the owner of the inventory responding to the event. I think a better solution would be to have dedicated listeners rather than a broadcast, but that would require some rework.  
    • “Take All” button doesn’t work when the player is in the same cell as the item container. Walking onto the cell containing the item container was something I never thought to try, but both playtesters tried this.
    • Enemies near the player at the start of the level don’t act until the player moves.
    • Actors (including the player) can be hit when using the Run ability.
    • Consuming resources to perform an ability uses a full game turn.
    • Unable to recover a Throwing Axe after throwing it at a Stalagmite.
    • Bandit Archers don’t cause melee damage.
    • Zombies don’t display a health bar.
    • Bandit Captain can randomly appear on map.
    • Debug Panel doesn’t populate until a game turn passes.
    • A Bandit Hideout can be built inside of another Bandit Hideout.
    • Rumors sometimes don’t generate.
    • Incorrect “to be” verb used sometimes.
    • Log messages displayed for status effects that failed to be added to an object, for example a stalagmite being poisoned.
    • Gold Rings have no value.

Next week, I’ll address the 20+ bugs and improvements identified in the play test and start writing my 2023 retrospective. Happy New Year everyone!





Leave a Reply

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