v0.1.2 - Performance & Balance


Another small update for you all today (they won't always be this frequent, but I'm still heavily tweaking things)! The most important thing is I've fixed what I believe to be responsible for all the complaints about late-game performance issues. It's a funny bug actually, due to the way fire spreading is handled.

Any time a mob comes in contact with an active flame, there's a chance it will spread to them. Of course, to avoid infinite reactions, I have to check to make sure they're not already on fire. This is all well and good and seemed to be working, but I did notice the spread in large crowds seemed too quick, and that there were bright illuminations as it spread, brighter than the light source for a single flame should be. What I discovered after some debugging is that bad things were happening when minions die while on fire.

When a minion dies, it was removing the flame effect from them to clean things up, which made sense. The problem is that there is a death animation (the blood splatter on death is actually still the minion's object animating) which plays out, so the minion actually sticks around for a few frames. During this time, it's eligible to be a target of fire spread again, and so the fire that's still on the screen (playing its own fade out animaiton) would spread to the dying minion, and now we have two fires. The minion then clears its effects because it's still dying, and those two fires can both catch it on fire again. One minion dying might result in 3-4 new flames being ignited, which is bad but not too noticeable.

Now when multiple minions are all together, those 3-4 flames each trigger their own spread checks on all surrounding minions. Those minions then end up catching on fire, and of course dying. Now you have an exponentially growing number of flames as they all multiply their own number as well as the number around them. This could result in thousands of fire effects being spawned onto the screen.

So in effect, any minion that died while on fire became a small bomb that could cause havoc in a large crowd! I've fixed the issue now and hopefully the game will run smoother in the later parts. Fire is a little less powerful now, but still spreads quite effectively in crowds!

Additionally, I've rebalance the minions spawns again. The spawn table overall is much more spread out so that the later stronger minions will take some time to start appearing, and in the beginning you'll mostly be fighting the weaker guys. To account for this, I've also made most minions much stronger, with about twice as many hit points as previous.

Files

TowerSurvivorsWeb.zip Play in browser
Sep 11, 2022
TowerSurvivors.zip 51 MB
Sep 11, 2022

Leave a comment

Log in with itch.io to leave a comment.