This post might not be quite as interesting as the others unless you’re either a) interested in programming or game development, or b) interested in the math behind Siralim; particularly creature stats. You’ve been warned.
Currently, creature stats are pretty imbalanced. Some creatures flat out have better stats than others all around, and this imbalance becomes even more noticeable as your creatures reach super high (100+) levels. That’s because behind the scenes, creatures not only have base stats (that is, the stats that they start with at level 1), but also their own unique growth rates. A growth rate is the amount of each stat a creature gains when it levels up. For example, a creature might have a base attack value of 30 and an attack growth rate of 20%, so it would gain 6 attack each time it levels up. This growth rate is hidden to players, and in its current form it only creates confusion for the average player, or tediousness for players who care about number crunching. It adds unnecessary complexity to the game. It’s not fun, it’s just math.
An even bigger problem with each creature having a different growth rate is that it creates a massive disparity at higher levels. Therefore, in the next patch, all creatures will have a growth rate of 20% for every stat.
The next step to help balance creature stats is to ensure that each creature is, in general, as strong as all the others. As you might imagine, this is extremely difficult to do for all 228 creatures in the game (or is it 229? Or is it 230? I think there’s still at least one secret creature that no one has discovered yet). Therefore, I decided to write a small program that helps to generate these stats automatically. I simply tell the program that, for example, I want the Lich Priest to have “High” attack, and it’ll spit out a tiny snippet of code that I can paste into the game’s code. Here’s a screenshot of the program in action:
As you can see, I feed the program descriptive words such as “very low”, “low”, “average”, “high”, and “very high”, and it generates a semi-random number for each stat based on this word.
But how does this solve the balance issue that I mentioned at the start of this post? It’s all about the “Points” field that you can see at the bottom left corner of the screenshot. Each stat has a weight attached to it (for example, 1 point of health is less valuable than 1 point of attack), and these weights are multiplied by the value of each stat. Then, all these values are added together to create the total number of “points” for that creature. This allows me to get a general idea about the exact strength of the creature when it comes to looking at all of its stats. In general, I try to aim as close to 200 points as possible.
The end result of this project should be that all the creatures will be much more balanced with each other in combat. While some creatures might have extremely low defense, they’ll likely make up for it with very high health or attack, for example. You’ll also notice that most creatures have far more health, slightly higher luck/speed/defense, and slightly less attack than before. The end result of these stat fluctuations should be more entertaining combat while still ensuring that each battle goes by nice and quickly.
Here’s some bonus knowledge that probably no one knows about: each creature has four hidden stats that you can’t see; one for each type of resource (brimstone, crystal, essence, and granite). This stat determines two main factors: 1) how much of each resource it costs to summon that creature and 2) how much of each resource you’ll receive for defeating that creature in battle. The exact amount of each resource stat is based on a corresponding “main” stat. Creatures with high attack will give more brimstone, creatures with high defense will give more crystal, creatures with high luck and speed will give more essence, and creatures with high health will give more granite. Thanks to the stat rebalance coming in patch 1.2.0, we should see a more even balance of resources earned from winning battles as well.