One of the problems of working on your own game is that if things are not perfect, then you continue to rewrite them until they are. Small things that others might not even be bothered by can drive the you up a wall. In this case I’ll point out my recent bout with the condition system. I had spent a good deal of time initially designing a robust system that allowed mobs and players to suffer from an unlimited number of conditions. Only the worst of each type would be used. For example, if a player got poisoned, then were exposed again with another poison condition, it would take the worst of the two and apply that value. Each condition would apply damage once per second. This system was working great…
well for almost everything.
Most conditions are rather easy, burning does fire damage, poisoned does poison damage etc. The problem appeared when I added conditions such as paralyse. Sounds easy enough, if the object is paralysed then don’t allow movement or attacks. That was easy enough to add… until I looked at the code for how conditions were applied. The first condition starts a loop that waits once per second and then applies damage from each condition.
In most cases it wasn’t a problem. You could apply a paralyze hex to a mob and they would stop dead in their tracks. However, I noticed a very small window that sometimes they didn’t freeze right away. It took a bit of testing to locate the problem. If the player or mob was already suffering from a condition, then the new condition wouldn’t get applied until the loop ran again. Most of the time this was so quick you wouldn’t notice. But on rare cases it might take a half second for the target to stop moving. That could be just enough time to get an attack out.
A player might think this is rather trivial half second and not a big deal. But to me, as the designer, it was not acceptable. Looking at my code lead me to the realization that I needed to rewrite the bulk of how conditions were processed. This half second ended up taking me a day’s worth of time to re-factor the entire condition system. Of course, I would have loved to have had the foresight to design it correctly from the start. But at least I can be happy with how it functions now.
I summon the power of the heavens
Hack and slash is fun. But lets be honest, who doesn’t want to hurl fireballs and summon bolts of lightning down on their foes? The skill system has had some large improvements. Currently I have 24 active spells and 8 passive. Each group is broken down into the four base skill attributes.
- Heath – Healing, Poison Damage
- Magic – Energy, Elemental Damage
- Melee – Melee Damage. Fear/weaken shouts
- Speed – Chance of dodge/critical hits, Traps
Here are a few examples of skill effects in the early stages. (subject to change)