After closing out my side projects last week, I had my most productive game dev week so far this year. I continued working on map generation content and quality this week, driven by an overall focus of fixing the most obvious issues encountered during play. Level 1 is completely playable but is still rough around the edges.
- Fixed many empty room scenarios. Every time a map was generated with an empty room, I stopped to fix it. The common factor was a missing prefab for a particular room size or type, or room group pattern. I’ve contemplated creating a tool that checks for prefab completeness to ensure that empty rooms don’t occur and save time, but I haven’t worked out how to determine all of the scenarios that need to be checked.
- New room groups: Bandit Outpost and Cultist Outpost. These are smaller versions of the Bandit Hideout and Cultist Compound that contain a subset of the room types found in the larger versions. They are necessary because the larger versions require a minimum of 4 rooms. I could have lowered the room minimum for the larger versions, but that could cause rooms to be added that don’t make sense in a small space such as the Dining Hall.
- New objects.
- Alarm Bell. Found in guard posts, these alert nearby allies when rung. The guard AI hasn’t been implemented yet.
- Training Dummy and Archery Target. These are more cosmetic than functional. Some arrows can be covered from the Archery Target.
- Garbage Pile. Has a chance of containing items but also a chance of causing disease.
- Straw Pile. Bandits sleep on these. They also make less noise when walked on.
- New room types: Melee Training Room, Archery Training Room, Sleeping Quarters.
- New Poisonous Gas visual. The original ugly placeholder sprite was replaced with particle effects.
- Separated Examine command into Info and Examine commands. Previously, the Examine context menu button opened the Examine panel, which contained the description, stats, and inventory for an entity. Now, info and inventory are displayed in separate panels, activated by separate context menu commands. I made this change for a few reasons: the act of examining can trigger actions such as causing disease, the Examine Panel was running out of space, examining can only be done when adjacent to the entity while info can be displayed any time the entity is visible.
- Actor-specific game event responses. The Alarm Bell exposed the need for this feature. Ringing the Alarm Bell caused all enemies to respond – Bandits, Giant Rats, Spiders, etc. The desired reaction was for only Bandits to respond. To achieve this, I created Game Event Response Profiles to define the game event categories that an actor will respond to.
- New damage calculation. Damage reduction is now based on a combination of flat and percentage reduction percentages rather than a single absorption value. I found that the former scales better and is easier to balance.
- Finalized non-magic armor items. There are 6 tiers. Each tier has 3 protection levels: light, medium, heavy. Each tier protection level combination uses a distinct physical material/construction (cloth, leather, steel, etc.) and has 5 items: armor, helm, gloves, boots, shield or robe.
- Unity armor item importer. Reads the armor item CSV file and creates new ScriptableObjects for each item. Saved a few hours.
Next week’s goals include enabling guards to ring Alarm Bells, moving the Combine (crafting) panel out of the Examine panel and into its own panel, and room type refinements.

