Weapon Balance Test

Balancing #

Balancing damage is a problem. I avoided it since starting Raiding.Zone. It is not fun being forced to play the only weapon that does exceedingly more damage than the rest.

My initial plan was to balance everything in the Early Access phase. But this could set a strain on everybody who decides to try the game. I found an alternative way for basic Balancing.

My game server runs with Kotlin. Kotlin has first-class support for concurrency through Coroutines. Coroutines are lightweight threads and allow you to have explicit structured concurrency.

They also have a solid test framework. This framework has with tools that allow you to skip any delay in your code. So when you have a routine that executes every second, you don’t have to wait 10s to execute it ten times.

You can use a test coroutine context and accelerate time.

I used this feature to gather 1000s of damage data for each weapon and calculate an average DPS value.

balance test

These numbers are just the bare configuration of that weapon. I didn’t add any talents, essences, armor, or trinkets. The whole test suite executes in 60s. I plan to add more configurations for talents, essences, and other items.

Tank warning #

I got some feedback that tanking is more confusing than it should be. It is hard to see when you lose aggro to a damage dealer.
I added a warning for that. It will display if you are a tank and a mob attacks someone who isn’t a tank. tank warning

Fire nova particle rework #

I was unsatisfied with the particles of the Fire Nova. It didn’t feel like an expanding wall of flame yet. tank warning

Minor changes #

  • Furious dummies will now deal 10% of your maximum life pool per hit
  • Key combination will not be assignable if there is another already present. Thanks to hboelke for the bug report.
  • Websockets will now reconnect if the connection fails
  • Exceptions occurring in the client get sent to the server for analysis.
steam itch.io indiedb.com gamedev.net discord.gg