Entry 28 - Game Parameters Balancing

Upcoming game has thousands of different parameters - crafting recipes, enemy health, the amount of experience required for each level, energy spent when using each weapon, and so on. All these parameters must be specified. But if you set them lightly - just put them down at random, game walkthrough may not be interesting: sometimes too hard, sometimes too easy, sometimes boring and slow. All these parameters should be configured wisely. It was this task that turned out to be the most unpredictable for me in terms of time. At the end of Autumn, when I was just starting to balance the parameters, I was sure that I would be able to do everything in a couple of weeks. So I was confident that the game would be released before the end of the year. But since then, more than 3 months have passed, and the work has been done only by about 60%.

 

Why so long? I'll explain on the example of weapons setup. 

At some point, player gets access to 3 types of copper melee weapons - a copper sword, a copper spear, and a copper mace. I wanted to adjust their balance so that none of them was noticeably stronger than the others. So that each has its own pros and cons and players are equally profitable to fight using each of them. Melee weapons have the following parameters: animation duration, idle time after impact until next strike, damage, energy spent, probability of stunning the enemy, number of seconds of stun. The same situation as with sounds - you can't set them individually, only as a group at once. And to do this, you need to be able to look at all these parameters for each weapon at the same time.

 

Tables

In the first part of the game I already faced this problem, and found a fairly simple solution - Google Sheets. In them I entered all the necessary parameters, and also made columns with formulas that helped to instantly calculate such characteristics as damage per second, energy spent per 1 unit of damage, energy spent per second during a continuous attack, and so on. With the help of such a table you can change weapon's main parameters and immediately see how calculated values change. Thus, it's quite easy to achieve that the average damage per second for all weapons is approximately equal. This is how I set up parameters in Force of Nature 1, so the first thing I did was setting up such tables for all objects in the current game: for weapons, clothing, trees, enemies, etc. Setting up these tables is a much more time-consuming task than it might seem. After all the formulas are thought out and set up, you still need to enter all the objects in these tables. And that's hundreds of lines. Very long, monotonous and boring work. Here, for example, is what a table with enemies looks like (and this is only a small part of all monsters):

 

These tables turned out to be much more massive than in the first part. Over time I encountered one very significant drawback of this approach - the need to regularly manually synchronize values in these tables and in the game files. Working with parameters looked like this. First, I set the numbers in the table, focusing on my intuition and my idea of what should be stronger/better/more dangerous for interesting walkthrough. When doing so, I rely largely on the calculated values that the table provides me. Then I need to carefully move all these parameters from the table to the game, without making any mistakes. Then I launch the game itself and begin to walkthrough it, as players will then do. At the same time, I make sure that the weapon behaves exactly the way it was originally intended by me. Of course, there are lots of edits at once. One weapon needs to be made a little stronger, another - a little faster, etc. I immediately make all these changes to the table, so as not to forget about them later. When the edits accumulate quite a lot, I stop the game and start moving them from the table to the game project files. At this stage I have to carefully check all the parameters, not just those I have changed while playing. This is because during the game my attention was focused on the gameplay, and not on remembering which parameters I changed and which ones I didn't. Of course, it's not without mistakes. The head from such work begins to boil very quickly, mindfulness falls and the work turns into a nightmare.

 

My patience didn't last long. The mixer panel for balancing sounds showed itself very well, so I decided to make an analog of such a panel for game parameters.

 

Parameters Mixer

Unfortunately, in Unity there is no simple ready-made solution "out of the box" to make a lot of parameters for various objects and conveniently arrange them in a table on the screen. But there are tools that allow you to create your own editor extensions. I had to spend some time to figure out how to do this. After all, this game is my first experience with Unity. However, in the end, I made a window in which all the weapons are collected. All the parameters that need to be adjusted are located side by side, and all the formulas are neatly transferred from the tables and work exactly the same. In fact, I've got a full analogue of Google tables. But this time all changes are made immediately directly to the project files. Setting up weapons with such a panel turned out to be much easier, so I spent a few more days and made similar panels for monsters, clothing and food. Over time I also set up relationships between different tables. For example, clothing can affect damage and attack speed of a weapon. At the same time, this influence can be different on a particular weapon. For example, if the sword deals 10 damage, and hits 2 times per second, and the mace does 20 damage, but hits 1 time per second, then both the sword and the mace will deal 20 damage per second. But if you wear gloves that add 5 to the damage, then the sword will deal 2 hits per second for 10+5=15 damage, i. e. 30 damage per second, and the mace for the same second only 20+5=25.

 

The ability to manage tables with both weapons and clothing in one window allowed me to set up more complex formulas that take into account both clothing, armor, amulets, and weapons at once. This way I can now balance not only the weapons between each other, but also the overall character build.

All this took a lot of time, but hopefully it will help me achieve a much better balance than in the first part of the game.

Write a comment

Comments: 5
  • #1

    Paul (Monday, 08 February 2021 09:12)

    I cannot tell you how much I'm looking forward to this game. I loved the first one. Keep up the good work!

  • #2

    Biddiss (Monday, 08 February 2021 16:40)

    Great work dude! I'm glad you're keeping tabs on your progress.

  • #3

    Terri (Monday, 08 February 2021 17:31)

    You put so much time and effort into this. Thank you so much for your hard work and keeping us updated :)

  • #4

    Graphiya (Monday, 08 February 2021 21:04)

    This is certainly a labor of love. We appreciate, so much, hearing about your thoughts and decisions as you work through this process of creation.

  • #5

    Dan (Sunday, 21 February 2021 21:26)

    Consider crowd-sourcing the research effort. With a few alpha testers, you could probably more quickly identify useful combinations of settings. If you find that the feedback from a particular tester is not useful, demote their feedback and vice versa. Be clear about what you're looking for and provide a mechanism for reporting (like this one). Just a thought.