• Weekly Update – September 18, 2026

    I didn’t get far into planner playtesting this week. While fighting the Giant Spider boss, I made the decision to support multi-cell enemies. The main motivation was relative scale; it just makes no sense for a bat and a dragon to be the same size. Also, bosses should be bigger than regular enemies. It’s more dramatic! Also, I decided to change how action animations are sequenced, something I’ve been thinking about for a long time.

    Large Actor Support

    The implementation required changes in around 20 files involving movement, visibility, abilities, AI, and actions. I’m not positive I’ve uncovered all of the necessary changes, but it seems to be working. I still need to make bigger blood splatters.

    Action Animation Sequencing

    Previously, actors sequentially selected their actions for the turn and then all action animations were displayed simultaneously. The benefit of this is that the player doesn’t have to wait for all action animations to finish one-by-one. The drawback is that it causes confusing visualizations in some cases. For example, when the player attacks an enemy, and the enemy runs away, the enemy is outside the attack range before the attack animation finishes. I fixed this by identifying dependent actions and sequencing just those animations. This allows independent animations, such as enemies moving toward the player to play at the same time, while dependent animations such as the player and an enemy attacking each other play in a sequence.

    New Abilities (24)

    • Summon Wolf, Bear, Air/Fire/Water/Earth Lesser/Greater Elemental. Summons allies.
    • Make Clay/Bone/Stone/Iron/Flesh Golem. Builds golems.
    • Conflagration: Causes intense fires all around the caster.
    • Banish: Temporarily banishes all entities to another dimension.
    • Enrage: Apply Enraged status to selected target.
    • Telekinetic Move: Move a nearby entity to another nearby location.
    • Make Fire Trap: Make a Fire Trap.
    • Wind: Blows a gust of wind in a selected path. Works like Overrun (pushes actors in the selected path out of the way), but the caster doesn’t move.
    • Purify: Removes Poisoned and Diseased status effects.
    • Swimming: Able to move in Deep Water.
    • Wall of Thorns: Creates Thorns in a line spanning between two walls.

    New Status Effects

    • Enraged: Actor attacks the nearest actor, friend or foe.
    • Banished: Entity is banished to another dimension.
    • Swimming: An actor has this status while swimming in deep water.

    Minor Enhancements

    • Rebalanced item, object, actor weights.
    • Bare fists no longer damage doors. This was achieved by modifying attack damage based on the relative hardness levels of the attack weapon and target.

    Bug Fixes

    • Invisibility broken. I’ve been putting off this one because changes to various systems kept breaking it. In the process of fixing it, I realized I was using the same flag, isVisible, for two purposes: whether an actor appears on the screen and whether an actor is visible to other actors. This was the source of most, if not all, of the bugs.

    Next week, I’ll carry over my goals from this week: complete playthroughs of the first four levels with each of the three starting classes and bug fixes.

  • Weekly Update – September 11, 2026

    The first four levels of the dungeon are now complete. Enemies, items, and abilities progress each level and there’s a boss at the end of level 4. I could release a demo at this point. It would be buggy, imbalanced, and filled with mismatched stock art. I need to find an artist, playtest more, and hunt for bugs.

    New Enemies

    • Giant Spider: This is the boss of the dungeon level 3. It was originally created probably 5 years ago, but its logic and abilities were hard-coded. It was refactored to take advantage of the systems that now exist. The AI still has some hard-coding for behavior unique to this enemy.

    New Abilities

    • Observant: Increases chance of detecting hidden doors and traps.
    • Mass Slow: Slows all enemies in a 5×5 square.
    • Spark Bolt: Like Chain Lightning, but only hits one additional target and damage is lower.
    • Steam Cloud: Causes a 3×3 square of Steam.
    • Farshot: Increases accuracy of shots more than 4 cells away.
    • Overrun: Runs through enemies, pushing them to the side and temporarily stunning them.
    • Spellweaver’s Focus: Reduces Sorcery ability cooldowns by 1.
    • Teleswap: Swap positions with a selected nearby target.
    • Pick Lock: Unlock a locked door or chest. Requires Lockpicks. 
    • Oil Puddle: Creates an Oil Puddle
    • Oil Spill: Spreads Oil from an existing Oil Puddle to nearby Oil Puddles.
    • Shaky Ground: Knocks down enemies near the player.
    • Escape to Stairs: Teleport to the stairs at the beginning of the level.
    • Shocking Grasp: Causes electrical damage to an adjacent enemy.
    • Levitate: Temporarily ignore ground effects.
    • Silence: Prevent the selected target from casting spells.
    • Hold Breath: Temporarily immune to gas effects.

    Dungeon Level 4

    My initial thought was to place the Giant Spider boss at the end of a dungeon level 3. That would have required placing a very large room just before the final room. The map structure generator isn’t designed for this and would have needed extensive modifications. It was easier to create a new map structure generator on a separate dungeon level for the boss fight.

    Minor Enhancements

    • Bump into a locked door now unlocks it if the player has the matching key.
    • Improved auto-explore messages. A message is displayed when there’s nowhere left to explore except both locked rooms and hidden rooms. The message appearing when a dungeon level is fully explored now suggests using the go to end of level key.

    Bug Fixes

    • Knocked down enemies don’t get back up.
    • Can’t click cells under the message log.

    Next week, I’ll look for bugs and complete playthroughs of the first four levels with each of the three starting classes.

  • Weekly Update – September 4, 2026

    With the 11 abilities added this week, there are now 95 abilities in the game. Only 505 more to go!

    New Abilities

    • Slow: Causes Slow status on the target.
    • Blood Offering: High damage attack at the cost of HP.
    • Blade Storm: 3 melee attacks in one turn against a single opponent.
    • Precision: A passive ability that slightly increases critical hit chance.
    • Pack Hunter: When a target is adjacent to an enemy of the same type, extra damage is dealt.
    • Shadow Hunter: Extra damage is dealt when attacking an inactive enemy.
    • Multi-Shot: Shoot at three nearby targets at once.
    • Piercing Arrow: Shoot through a line of enemies.
    • Web Spray: Shoot a group webs. Used by the Giant Spider.
    • Web Walker: Able to walk on webs without getting stuck and at twice the normal walking speed. Used by the Giant Spider.
    • Corrosive Engulfment: Causes Corrosion status on all objects and actors in the same cell. Used by the Green Ooze Cube.

    New Objects

    • Caustic Gas: Causes Corrosion status.
    • Metal Door: An indestructible door.
    • Prison Door: An indestructible see-through door.

    Minor Enhancements

    • Disengage now picks the default cell based on danger level. This addresses an issue where the player would press Enter when prompted to select a cell and move toward enemies instead of away.
    • Death messages no longer appear for insignificant objects such as Debris.
    • Debug console: pressing the up/down arrow keys cycles through previously used commands, pressing tab auto-completes, new commands for adding and clearing status effects.
    • Added debug console command to inactivate visible enemies. This is handy for testing scenarios requiring inactive enemies such as the new Shadow Hunter ability. Without this (and without stealth being implemented yet), it’s difficult to encounter enemies still in an inactive state.
    • Adjusted some enemy damage and evasion values. Mini Blue Slimes in particular were OPd.
    • Potions no longer have splash effects (they always create puddles in the cell where they land).
    • Cause of death shown in the game over panel.

    Bug Fixes

    • Errors when examining gasses.
    • Door health resets when opened/closed.
    • Light passes through walls.
    • Puddle palette swaps no longer work. This was caused by making the base puddle translucent. The source colors on the palette swaps no longer worked.
    • Projectiles sometimes can’t reach cells shown as potential targets.

    Next week, I’ll focus exclusively on content for dungeon levels 1-3, including the first boss in the game, the Giant Spider.

  • Weekly Update – August 28, 2026

    I had extra time this week. All the patterns and data configuration capabilities built over the years are helping to create new content quickly.

    Fun with Fire

    Implemented several new interactions between Fire and other objects:

    • Oil: the Fire instantly spreads to all connected Oil cells and is converted to Intense Fire.
    • Puddle: Steam is created.
    • Explosive Powder: Intense Fire created in a 5×5 square.
    • Oil, Water, Explosive Powder Barrels: Barrel burns up, and the material inside reacts with the Fire.

    New Objects

    • Intense Fire: Burns longer, causes more damage than Fire.
    • Steam: Causes Scalded status effect.
    • Powder Keg: A barrel containing Explosive Powder.
    • Explosive Powder: Causes explosion when it comes in contact with Fire.

    New Abilities

    • Drain: Causes Drain status.
    • Frost Touch: Causes Ice damage and temporary slowness.

    New Status Effects

    • Drain: Decreases max HP by 50%.
    • Scalded: Reduces Sight, causes mild damage.

    Hearing System Fully Functional

    I built the framework for the hearing system a few years ago, maybe longer. I haven’t touched it since. While troubleshooting a bug this week where enemies acted as soon as the player opened a door, I realized the sound of the player was alerting them. The hearing system was more functional than I remembered! There was a hard-coded placeholder that gave enemies extraordinary hearing; I’m surprised they weren’t leaving their rooms. There must be some other logic preventing that. Anyway, to fix the bug, I properly configured the enemy hearing values and object sound dampening values, and coded the dampening logic.

    Minor Enhancements and Bug Fixes

    • Bats now can perform three actions per turn. When possible, they attack once per turn and fly away. This made them more interesting to fight.
    • Minimum number of health, stamina, and magic potions now appear on each dungeon level, based on level size.
    • Lowered Charge ability’s damage multiplier from 2.5 to 1.5. After giving Chair Monsters the Charge ability, they were one-shotting me.
    • Enemies using Charge occasionally choose the wrong target in a cell (for example, an open door instead of the player).
    • Knock Down animated. It’s ugly but it’s now clearer what happened when an actor gets knocked down.
    • When an enemy has multiple status effects, only the first status effect appears above the enemy. This used to work. I think it broke the last time I modified the saved game loading code.
    • Hotbar icons appear above the tooltip when greyed out.
    • Hotbar icons sometimes stay greyed out when they become usable again. 
    • The game locks up when the player is shoved.
    • Floating text damage appears when Fire and Gas die.
    • Trap effects repeated in the message log.

    Next week, I’ll add more abilities, fix bugs, and start working on the city map generator.

  • Weekly Update – August 21, 2026

    Attributes Wired Up

    The stat modifiers affected by attributes (Might, Agility, Insight, etc.) were fully configured, but never wired into the game. Attribute scores now determine many stats such as HP gained per level, maximum pushing weight, trap detection chance, and base evasion.

    New Abilities (10)

    These were a lot of work because half of them required new archetypes (custom coding).

    • Chain Lightning: Lightning bolt strikes multiple nearby targets.
    • Ricochet: The equipped arrow or thrown weapon strikes multiple nearby targets.
    • Anchor Stance: Immune to Push and Pull.
    • Double Jump: Jump twice in one turn.
    • Long Run: Like Run, but increased distance.
    • Quick Recovery: Stun status reduced by 1 turn.
    • Combat Acrobatics: Moving 2+ cells in one turn applies temporary Nimble status.
    • Knock Down: Applies Knocked Down status to target.
    • Parry: Applies Parrying status to self.
    • Giant Slayer: Hit chance and damage bonuses when attacking larger sized enemies.

    New Status Effects (3)

    • Knocked Down: Actor can’t move until performing the Get Up action.
    • Nimble: Evasion bonus.
    • Parrying: Next attack is blocked.

    New Combinations (3)

    • Potions + Arrows (Fear, Slowness)
    • Cure Poison + Poison Puddle

    Minor Enhancements and Bug Fixes

    • The screen now shakes when destroying walls.
    • Furniture monsters got more dangerous. Chairs have Charge ability, Tables have Shove.
    • Terrain modifier values are now good/bad color-coded.
    • Enemies not using all available abilities.

    Next week, I’ll continue adding new abilities and room types.