Game Parameter and Item Balancing

Our video game development company runs independent projects, jointly creates games with the client and provides additional operational services. Expertise of our team allows us to cover all gaming platforms and develop an amazing product that matches the customer’s vision and players preferences.
Showing 1 of 1 servicesAll 242 services
Game Parameter and Item Balancing
Complex
from 3 business days to 3 weeks
FAQ
Our competencies
What are the stages of Game Development?
Latest works
  • image_games_mortal_motors_495_0.webp
    Game development for Mortal Motors
    663
  • image_games_a_turnbased_strategy_game_set_in_a_fantasy_setting_with_fire_and_sword_603_0.webp
    A turn-based strategy game set in a fantasy setting, With Fire and Sword
    859
  • image_games_second_team_604_0.webp
    Game development for the company Second term
    490
  • image_games_phoenix_ii_606_0.webp
    3D animation - teaser for the game Phoenix 2.
    533

Game Parameter and Item Balancing

Balancing is not "reduce warrior damage by 10% because they seem too strong." It's systematic data work: build a DPS matrix across classes, calculate TTK (time to kill) for each attacker/defender pair, find outliers and explain their cause.

Metrics to Calculate Before Changing Numbers

DPS (damage per second) is the basic attack metric. Calculated with attack speed, crit chance, and crit multiplier: DPS = baseDamage * attacksPerSecond * (1 + critChance * (critMultiplier - 1)). If a mage has DPS = 450 and a warrior DPS = 280, but the warrior has 3x HP—their EHP/DPS ratio needs viewing as a pair.

EHP (effective hit points) is HP with armor and evasion: EHP = HP / (1 - damageReduction). At damageReduction = 0.4 and HP = 1000 we get EHP = 1667. This is honest comparison of different archetype survivability.

TTK is for PvP and encounter design. TTK = EHP_target / DPS_attacker. If TTK for all class pairs falls in the 8–15 second range, fights are interesting. TTK < 3 seconds means one class simply destroys another before its first counteraction.

These three metrics are built into a table for all classes, levels, and key gear sets—updated on any base parameter change.

Item Balancing: From ScriptableObject to Matrix

Each item in Unity is described by ItemDefinition ScriptableObject with stat fields. Balancing work happens not in Unity editor—too inconvenient comparing 200 items. Data is exported to CSV, opened in Excel/Google Sheets, where summary tables and charts are built.

Budget system is the standard item balancing approach. Each item has "budget" stat points, proportional to rarity and level. Common item level 20 has budget 100, Rare—150, Legendary—220. Stats within item spend this budget per table "cost per characteristic unit": 1 damage = 2 budget, 1 HP = 1 budget, 1% crit chance = 3 budget.

This allows quick item check: if Legendary sword level 20 exceeds 220 budget—it's broken. If well below—it's useless. After tuning coefficients, new items are added without individual check—they automatically fit balance.

Generated Items and Ranges

In games with procedural item generation, balance is set not via fixed values but ranges: damage: [min, max] for each level. Spread shouldn't be too wide—item with damage: 10–90 at average 50 gives player too much "lottery" feeling and blurs progression. Spread of ±20–30% from average—working range for most RPGs.

Affixes on random items are also drawn from a pool with weights. AffixPool ScriptableObject holds List<AffixDefinition> with weight each—rarer affix, smaller weight. WeightedRandom sampling on generation. Important: weight sum doesn't need equal 100—algorithm calculates probability as weight / totalWeight.

PvE Encounter Balance

Encounter design is also math. For each encounter, encounter budget is calculated: sum of "costs" of enemies placed by designer. Enemy cost = their HP * (1 + damageModifier) by simplified formula, scaled to DPS of player group for that level.

If 4-player group level 15 DPS totals ~800/sec, and encounter from three enemies has total EHP 12000—that's 15 seconds of combat at zero casualties. Add mechanic with cast interruption or area attack—and group TTK becomes longer. This is designed in table before placing enemies on level.

Tools and Process

Balancing work is always iterative. Standard cycle: fix table → export CSV → auto-import to ScriptableObject via Editor script → playtest → collect data → fix table. Manual digit transfer is excluded from day one.

For online games, hot balance update capability without rebuild is critical. Balance data then lives on server in JSON/CSV and loads at session start. Unity client reads via Remote Config (Unity Gaming Services) or own endpoint.

Timeline Guidelines

Task Timeframe
Balance one class/item type 2–4 days
Full balance 3–5 classes + gear sets 2–3 weeks
Balancing + import tools + analytics 4–6 weeks

Five Things to Check Before Final Balance

  • No TTK pairs with TTK < 3 sec (instant kill situations)
  • Full level range covered with correct budget-value items
  • No stat with zero or negative "utility" (players always ignore)
  • Edge cases tested: max crit stack, max attack speed, zero damage from armor
  • Each class has at least one dominant role in encounters, so none is "strictly worse"