January 2026 Update

For January I had no contract so I had all the time to only be working on Project Dungeon and oh boy did I make progress. I am very happy with how the the combat prototype has turned out in that time, I even had time to start working on the Dungeon Crawl during this period which was super cool, but we'll talk more about the dungeon crawl in the future.

By Groogy

Published on February 1, 2026, 7:34 pm

Work Done

So during those ~3 weeks of full time work, I did almost 95 hours of work, 251 tasks of varying sizes. The work on combat is complete to start mapping out the fun of it and I had a bunch of people help me out in my discord testing it which showed a bunch of issues that I've already worked out. But there's tons of tech debt now which is probably what I'll be spending the coming weeks on. Besides that I almost finished the dungeon crawl as well in the last week of work.

Combat

So the combat I've been doing is very inspired by Divinity Original Sin 2, I want the player to think spatially and combine together different effects on the board to do more damage/apply effects to their enemies. Make combat a bit of a puzzle to be solved.

Board

A board is made up by two sides, the party side(left) and monster side(right). Each side can be made up by a maximum of 4x4 slots, but they don't have to be the same, so one side can be thinner to represent a narrow corridor leading into a big open room. Each slot can have a character on it and an elemental status applied to it.

Board Example

Pathing

This was the hardest thing for me to explain to the playtesters. I wanted positioning to matter, especially something like front-line vs back-line characters. You put the glass cannons in the back and the tanky heroes in the front. So the concept would be that a character doing an attack would need to be able to path to the slot they wanted to perform their action on. But it seemed to mostly confuse players until I got it rendered on screen, but even then they found it weird that a melee attack could reach around to the back line so easily.

Reach around Pathing Example

So I started working on what I'd end up calling "Straight Pathing" which would be used for normal melee attacks while the old version, now called trace pathing, would be used for things like backstab attack type actions. Straight pathing works by that the character needs to be on the same row as they are standing on or a slot next to that same row. They can not go through another enemy character to reach that slot.

Straight Pathing Example In the example image above, the attacker can only attack the little dude on the row above or the ghostly figure to the right.

Together with this and adding a bonus for defense rolls for each character you pass I feel I've gotten a good "protection" for backline characters. But just to be sure I added a "Raise Shield" action to one of the hero characters that actively blocks the surrounding slots from enemy pathing and effectively making sure only that tanky character can be attacked and no one else.

How do Stats work?

So rolling for things like to hit, damage etc I went with a very D&D inspired method but I lowered the values a bit to keep stats more important over randomness. This might change later but I'll speak about that at the end. As a standard I use a D10 for rolling for values and the attributes do not have a value and a modifier derived from that value like D&D but only basically a flat value that is pretty low. Like +2 Strength. This means I hope that stat increases feel a lot more important and rewarding, you will not be spending 1 attribute point and it feeling pointless.

Attributes

The attributes we have are Strength, Dexterity, Constitution and Magick. Their usage in combat is determined by the weapon the character is equipped with. A wizard type character with a magic rod would potentially use dexterity for to hit rolls while using Magick for damage.

For health every character uses constitution, and each character arche type having a dice associated with that roll, so a tanky character might have a D12 while most having much lower. Health is then calculated by taking 10 as a base and add one dice for each point in constitution.

For initiative dexterity is used, that's a D10 with a flat increase from each point in dexterity. Initiative determines what turn order the characters will go in, higher being first.

To Hit vs Defense

So each character is equipped with a weapon, these weapon determines what attributes are used for to hit, damage and defense.

Defense is determined by taking the defense attribute value, usually constitution or dexterity, and adding, if any, flat modifier from the weapon. This determines the value that the attacker must beat with their to hit roll.

The to hit roll is then done by taking a D10 + the attacker weapons to hit attribute + any weapon flat modifier on to hit. If that value ends up being higher than the defense then that is a hit. If the D10 rolls a 10 then that counts as a critical hit which is a guaranteed hit not matter what.

For damage every weapon has a dice set for damage, a big heavy weapon might have a D12 while a small dagger like weapon would have a D4. You roll this dice and add the damage attribute of the weapon plus any flat modifier the weapon might have and this becomes the damage. If you rolled a critical hit you get a maxed out dice damage plus one extra, meaning you are always guaranteed to make more than maximum damage.

Potential Changes

Every change to the base stats now are always a huge increase. I do like using dices as the basis for the random values as it gives a very tabletop feel to it all. But I can't do something like 5% increased damage bonuses, it's always a flat +1 which I feel will snowball quite quickly.

Elemental Status

Some attacks might apply an elemental status to the slots when being used. These can then interact with each other to cause special effects. It's by combining these together that the player can control the battlefield and achieve success.

Effects of an elemental status is applied when the elemental status is added to a slot or at start of the turn of a character.

These effects are not final but is what I am working with for now.

Oil

Oil will apply a -2 dexterity penalty modifier to anyone standing in it. However that's not the worst, if any slot with oil catches fire, that fire will spread to any connected slot of oil.

Fire

Fire does a D4 damage each turn to characters who stand in it.

Water

Water in itself does not do anything, but if fire is applied to it or water applied to fire it will turn into steam.

Steam

Steam applies a -1 to hit modifier to anyone standing in it.

Ice

Ice applies also a -1 to hit modifier to anyone standing on-top of it. If ice is applied to water it will slowly grow for each turn on any adjacent water though. Fire and Ice completely cancels each other out making the tile cleared.

Electricity

For electricity to stay around it needs a medium like water to be applied to. Otherwise it will only apply it's effect on the one slot the attack is on and then disappear. It has a 25% chance of stunning any character and applies a D4 extra damage. If the electricity has a medium then it will do this every single turn.

Heat

Each character besides health has a heat value. This is determined by taking the character level and multiply it with 10. Some actions will cost the characters heat, especially spells costs heat. It's a precious resource and if you reach zero heat and something would cost you heat at that point, it starts taking off the characters health instead.

Heat can be recharged outside of combat by making camp and spend some resources to get their heat back.

AI

For the prototype I threw together just an AI that randomly weighs what action to take and tries to do the best move from that. It's not that great though as it can't try and counter the player or anything like that, but it is enough to just have something.

You might notice the board you play on is very limited with defined slots rather than having a grid with terrain and similar to other turn based roleplaying games. That's because I am aiming to achieve AI through what's called Minimax. It's at what is the core of AI for games like Chess(they do a lot of tricks though to make it work because Shannon Number is very very large). The Minimax algorithm is a recursive decision-making algorithm which tries to find the optimal move for a player (the "Maximizer") by assuming the opponent (the "Minimizer") is playing perfectly to minimize the player's advantage and does so by exhausting every single potential move.

Now by putting a limitation on the size of the game board and making it very distinct two sides I believe I can look at it as a very small chess board with a very small number of variations of the end result of the board. Even with this limitation though the end number of possibilities does become quite high. If the largest board side is 4x4, we assume the possible actions a character has is on average 4, then that makes it end up being a complexity of 64 per turn. For a full round of 4 vs 4 characters we would be processing through 16 777 216 potential board states. I do think though this is possible with some hacking around. Plus I can set what depth the AI searches to increase the difficulty in exchange for performance.

What Now?

Besides what I've talked about here I've done a bunch of work on the dungeon crawling as well, but also a lot of UX stuff based on the feedback I got from the playtesters on my discord.

If you find this interesting you can find the game at https://groogy.itch.io/project-dungeon And you can join the discord here: https://discord.gg/4f2w6kwrtN

For February I'll be working on dealing with the tech debt I've accrued during this month of crunch. Which is quite a bit. If I do manage to finish the prototype for dungeon crawl I'll include that in the next update as well. But here's a sneak peak for now on how it looks Dungeon Crawl Sneakpeak