Game balance of the Tower Defense genre on the case of Crush Link TD

Gabriel Vanegas Kobets
12 min readMay 29, 2023

--

In March 2023, the first game of the indie team 4TEAMGB, Crush Link TD, was released on Google Play. Crush Link TD is an unusual Tower Defense strategy game with new mechanics in a virtual setting about online dating.

In this article I will tell you how the balance in our game was built. Let me start with a disclaimer: it was the first game for the team, and for me, as the lead game designer, it was the first experience in creating balance; therefore, the balance was based on the common sense, logic, my experience as a player in the TD genre and my knowledge of Excel modeling.

The essence of the genre is to protect a base from waves of attackers by building defenses or, in simple words, a fighting between monsters and towers. Therefore, the balance in the game can be divided into four groups:

  1. General balance assumptions
  2. Balance of game entities (towers and monsters)
  3. Level balance
  4. Meta gameplay balance

My task was to think over the numerical values of each element of the game, create a system of interdependencies that would make it easy to change these values based on test results, and display the results in an easy-to-analyze and correct form, and think over a system of balance checks.

Below is a diagram of the interdependencies of balance tables, some of which I will describe in this article.

Interdependence of balance tables

Before that, I must introduce the reader into the context of the game to understand the terminology. The Player’s job is to defend the Base by keeping spam out of the inbox and build towers to remove the spam. Therefore, we do not have monsters or enemies, but spam. We do not kill or destroy anyone, but we remove spam.

The new mechanic is that the spam path changes, the level configuration changes during waves of spam and the Player has to change the defense strategy. Within the team, we called this the “turning crossroads”. Creating this mechanics, I was inspired by the revolving stairs at Hogwarts.

There are two currencies in the game: one at the levels as a resource for building and upgrading towers, and the second — scarce one — for meta gameplay.

General balance assumptions

Main assumptions

The general assumptions are about core gameplay and economics. The balance table with main assumptions contains the following information:

  1. Wave countdown — waiting time for a new wave, or how much time passes between removing the last spam from the previous wave and the start of a new wave
  2. Wave early call — the amount of rating given to the Player for an early wave call
  3. First turn — the amount of rating given to the Player for the first turn of the crossroads. This amount is the same for all levels and equals the cost of building the three towers with which the Player starts the game
  4. Upgrade ratio — coefficient of increase in the cost of leveling up towers (relative to the cost of the previous level)
  5. Selling ratio — tower selling price ratio (relative to the amount of construction and all level ups)
  6. Dopamine ratio — the ratio of the amount of dopamine from spam (relative to the amount of rating from spam removal)

Moreover, the first wave on each level is called by the Player. There is no cooldown, and no rating points are given for its call. The time before the first wave is given to the Player to familiarize himself with the level configuration, think over the Base defense strategy and build towers. It is important to note that selling towers before the first wave starts will refund the full cost of construction and level ups. This allows the Player not to restart the level if they decide to change their defense strategy.

Content plan (extract)

The above is part of the content plan for introducing spam into the game. The content plan also relates to general assumptions, as it affects when and what game entities and mechanics appear. On the one hand, it is necessary for balancing interest and difficulty curves, and on the other hand, it is necessary for balancing levels, what we will discuss below. In our case, the content plan also served as the basis for narrative design since Crush Link TD has a narrative component.

Balance of game entities

The balance of game entities is logically divided into attackers and defenders. In this article I will focus on the attackers.

To begin with, we need to highlight the main characteristics:

  1. Attack type. Melee, ranged, other. By other I mean spam that has no attack or knocks out defenders on contact, so there is no attack value to compare
  2. Damage type. Physical, laser, thermal and electro. This will diversify the combat, as we introduce the parameter “defense”
  3. Defense. Spam can have resistance, vulnerability, or be neutral to different types of damage. If vulnerable, then the damage is multiplied by a factor of 1.2, if it has resistance, then the factor is 0.8
  4. Spam type. Ground, flying or boss. This marker is needed to consider which towers deal damage to which types of spam. In addition, bosses have immunity to special abilities, so it is convenient for the developer to use these markers in the code when creating rules for the interaction of game entities and elements.

Now we can move on to spam.

General table with spam stats (extract)

The general table with spam stats is divided into three parts: general information that will be used for level balance, combat and defense information.

Since spam has a defense parameter, it would be incorrect to compare its base hit points. Therefore, I calculated the health index to take this factor into account.

To compare and balance spam, you need to choose a “ yardstick”, the base unit against which the rest will be compared. For this unit, I took the basic spam — Spidey.

Spam comparison table (extract)

The goal of this table is to balance the reward for removing spam with the difficulty of the removal. In other words, to make the spam removal reward reflect the severity of the spam.

To do this, I compare the spam removal reward and three other stats relative to the base unit: hit points, DPS, and speed. These are the general and most important stats because they affect how much effort you need to spend to remove spam, how effectively spam takes down defenders, and how fast it moves to the Base.

Next, I calculate the spam danger factor. I give weight to spam stats: 2 for hit points, 1 for DPS, and 2 for speed. DPS has less weight since the Player can play without towers that summon defenders, and some spam does not have this stat at all. I adjust hit points by the health index, which I wrote about above. As a result, I calculate the weighted average. On the one hand, this is a rather subjective calculation, on the other hand, it contains logic. After that, I compare the reward coefficient and the calculated difficulty coefficient. If these coefficients are quite different for a particular type of spam, then I make adjustments to the general stat table. These adjustments may cover the reward for removing spam or certain stats. To make a decision, I analyze how my adjustments affect the overall balance in the check tables.

Note that for some spam I left a significant difference between the coefficients, for example, for the Smile and the Piggy bank. This is because both of these types of spam have special abilities that are not considered in the table but make the life of the Player much harder.

As for the balance of towers, I can only say that the logic is similar, but the tables are more complex due to the greater number and variety of stats. Strengthening towers by leveling them up correlates with its cost.

Level balance

The balance of levels has a two-tier structure: it is a local tier of each level and a “top view” tier for analyzing the progression by levels and the main indicators in dynamics. These tiers are interdependent and transmit information to each other.

Let’s look at the local tier using the example of the fourth level in the game. Let’s start with a table with general information.

Table with general information on the level
  1. Start rating — the amount of rating that the player receives at the beginning of the level. The amount is adjusted according to the results of the balance tests
  2. Rating total — the maximum amount of rating the Player can get on the level. It is important to clarify here that there is a range of possible values, as the Player may not call every wave in advance or remove all spam. Nevertheless, this is an important indicator that helps to balance the economy in the tables, which I will discuss below
  3. Dopamine — calculated indicator, which can also deviate if you miss spam to the Base
  4. Tower spots — the number of places to build towers. To balance the economy, it is important to understand the total number of such places and the number of active places on the level map after the last turn of crossroads
Level scenario (extract)

The level scenario is the basis for calculating the balance of the game. It contains information about what spam, when, from which exit and in what quantity will appear on the level, as well as when the crossroads turn. This is where the calculations take place, which are further aggregated and transferred to check tables, which help you to see the vulnerabilities in the balance.

The wave scenario is created empirically. First, I set forecast values for the composition and number of waves, and then I correct these values based on the aggregated information in the test tables. After that, I input the information into the engine and make adjustments directly in the engine based on the tests. I reflect these adjustments in the tables to make sure that they have not led to imbalances in other places.

I want to note that the tables do not contain information in what order and after what period of time spam groups come out within the same wave. This is configured in the engine based on test results. I play each level literally a hundred times so that the wave scenario creates challenges for the Player but is not impassable.

In the far right column you can see the code. This code shows which exit the spam group comes out of and which path it takes. This is needed because of our path changing mechanics. Here we must touch a little bit about level design in our game, using the first level as an example for simplicity. The first level has only one entrance, but there are two paths. Depending on the position of the crossroads, spam will follow the path 1–1 or 1–2. What does it bring to balance? I wanted to avoid situations where the Player’s attention is focused on one place on the map, and to make the game more interesting, so that the Player experiences balanced pressure on all parts of the map. Otherwise, it would be possible to build strong defense in one place and have little or no attention or resources spent on most of the level map.

Level 1 scheme

Let’s move on to the test tables at the level.

Economic balance test (extract)

The first test is the economic balance test. I check if the Player can get enough resources for removing spam to build and level up towers. By analogy with the rating, here we see a range of values, how many towers and what level can be built on the received rating. I compare these figures with the number of places for towers on the level from the table with general information.

Level scenario balance test

The second test is the level scenario balance test. As I wrote above, the idea was that the danger came from different directions and did not have a dominant path where the Player could concentrate the defense. In this picture, you can see that at the fourth level, all paths are balanced in terms of the number of spam, the rating generation, and the “live mass” in terms of spam hit points. When analyzing this table, you need to check with the level design of the level. What may seem as an extreme may turn out to be a logical result of the level plan, for example, if a new exit appears on the last wave. In other words, the goal is not to achieve similar numbers, but to balance the tension for the Player on all paths, given the configuration of a particular level.

Spam diversification test

The final test is to make sure that the scenario takes into account the diversity of spam in three ways: quantity, removal reward, and “live mass.” Yes, in Crush Link TD we fight for inclusivity of even spam 😊. This and the previous table also help to assess the effect in changing the stats of spam on the balance of levels.

Level curves graph

Next, I make a technical table to build this graph. It shows curves of the “live mass” and generated rating from removing spam by waves. Essentially, these curves were my proxy for the difficulty curve on the level. Based on the data from all levels, I build a similar graph, where instead of waves on the x-axis are levels, and I get a proxy for the difficulty curve in the game.

Information from the local level tables is transferred to the general “top view” table. Basically, I was interested in seeing the dynamics of the scarce currency — dopamine, but all the key parameters are also shown separately for each level and in the dynamics of the accumulated total. Let’s see what this table looks like.

Summary table by levels (extract)

Here I can change the amount of starting rating on the levels. Next, I take into account all the sources of dopamine that are revealed to the player as they progress through the levels, and intentionally separate the accumulated values from the core gameplay and meta gameplay. According to the results of internal tests, I enter the average values of the level completion time into the table — this is a guideline and a basis for calculating how many hours of gameplay there will be in the game, as well as a marker whether it is necessary to make changes to the level scenarios in order to speed up or slow down the game.

It may not seem clear why the accumulated values of waves and spam are needed — it is needed for making decisions on classic achievements like “survive X waves” or “remove Y spam”.

Meta gameplay balance

Here I am referring to the balance of tower upgrades, which are provided in the Tower Menu, the balance of talents, which the Player can buy in the Update Tree menu, the balance of achievements and the balance of the Player’s special abilities.

I will not describe each table, as the logic and approach fully reflect what is written above for the other parts of the balance.

Conclusion

What conclusions can be drawn from the balance structure in Crush Link TD?

  1. Decompose each game element and define its characteristics
  2. Create a multi-level table structure: local and global levels
  3. Create a working structure of interconnection and data exchange between table levels
  4. Create a system of check tables and markers that identify extremes and errors
  5. Choose a base unit against which you will build a progression or compare game entities
  6. Test and make adjustments

What would I change in working with balance? Now the data and changes in the balance are entered manually in the engine, this is an archaic practice. It would be nice to agree on the shore with the developer about the format of automatic data transfer. For example, using JSON. So, after each change, I could update the JSON file, pass it to the developer, who would update the data in the engine with one click. But this, as they say, is a lesson learned.

It will be interesting to hear from the experienced game designers how my approach differs from what happens in game studios, what can be improved and what can be simplified. On the other hand, I hope it will be an interesting case study for those new to game design in terms of the thought process and structuring of such an unstable game system as the balance.

Thank you for reading to the end. If you have any questions, please write in the comments.

https://play.google.com/store/apps/details?id=com.a4TEAMGB.CrushLinkTD

--

--