Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Account Cart Search

Dev Journal: The Challenge of Balancing an RTS

Published on Wednesday, May 2, 2018 By GGTheMachine In Ashes Dev Journals


Balancing an RTS is difficult. It’s a long, iterative process and, inevitably, there will be mistakes along the way.

Today, I'll be exploring what makes balancing an RTS such a challenge, and explain my intentions for some of the changes I've made throughout my time with Ashes. In a previous Dev Journal, I discussed why balance matters, so read that first for additional context.


Many Variables & Context

The main reason why RTS games are so difficult to balance is the abundance of variables that need to be taken into account. For example: let’s assume the Athena and Mauler cost the same resources. Imagine you make them fight, only to find that the Athena wins with 20% of its health left. Does this mean the Athena is overpowered and should be nerfed by 20% to compensate? The Athena might overperform in this one specific case, but does the same thing happen if you get 5 Athenas against 5 Maulers, or 50 against 50? Factors such as reload, burst, and projectile speed can make a massive difference when looking at the scalability of an interaction. Let’s assume even in the 50 v 50 scenario, the Athenas win with a 20% advantage. Is it now safe to say the Athenas are OP? Unfortunately, it’s never that simple, you can’t just test things in a vacuum and compare them by their direct interactions, you need to look at matchups in their totality and the only way to include the known and unknown factors is in regular matches. Other factors to take into consideration include the type of production and economic management for each faction, the synergy with other unit types and abilities, and additional mechanics such as energy and shields.


Let's take a real example: one of the balance mistakes I made was the gunship buff back in 2.2. Previously, gunships were never used because the Advanced Sky Factory was locked behind the Dreadlaunch, and the gunships themselves were weak. I both buffed the gunships and made them more accessible, which made rushing them out overpowered. I tested the performance of Gunships against anti-air in the unit spawner and thought “Well anti-air is very cost efficient against these so it should be fine.” However, having air units attack anti-air and seeing how it performs is a very inaccurate simulation of a real game. The strength of gunships came from the ability to rush them out and surprise your opponent who may lack anti-air, or even if enemy anti-air was present you could just avoid them and fly around sniping extractors to weaken their economy.

 


Managing Bias

Testing regular games is time-consuming, and it’s difficult to replicate every situation. You need to test the late game, multiple game types such as 1v1 and 4v4, different maps, play styles, and skill levels. To adequately test this full range of scenarios, you need to outsource the playtesting, but doing so can water down the quality of the feedback if the people offering it lack the context, skill level, or are unable to eliminate their bias. Bias can take many forms; it could be the preference for a particular faction and playstyle, or it could be a designer’s own bias that an idea is great and it’s the community’s fault for not understanding it yet. I mitigate my personal bias through the following ways:

 

  • Lots of varied play testing

Not much of a surprise, but the importance can’t be overstated. Lots of playtesting is essential in order to develop the game knowledge and mastery required to see through the bias and false claims of other people. As a designer you need to have the confidence and expertise to say, “No, you’re wrong, and here’s why.” Feedback from community members can be fickle, and you'll only hear from a vocal minority, especially when they're not happy. An RTS needs the stability of an expert designer who has a clear direction in mind.


To avoid my own bias, I continuously alternate between both factions. I play a variety of maps and try to play team games, despite my preference for 1v1. Playing against a variety of players is also crucial, as different players have varying play styles and there may be something unbalanced that some players don't utilize.

 

  • Watching replays and observering

This is similar to the idea of playing lots, but is even better. When you’re observing a match, the emotional investment of winning or losing is thrown out. Better still than just passively watching is Shoutcasting, because when broadcasting and communicating the raw game to live viewers, it’s unavoidably clear when things are unfair or not fun.

 

  • Variety of feedback

Taking feedback from a variety of people is incredibly helpful, whether it’s from players or other team members who may observe an "out of the box" factor. For example, "You probably shouldn't make the Assembly cost Radioactives because it may trip out the AI." It helps to identify some people you can trust with the quality of feedback and assemble them into beta testing groups. People will suggest things that may have occurred to you but never articulated, or may call you out on an oversight that you never considered.


Many players offering feedback may not have good suggestions, but if enough people are pointing towards the same issue, then it’s worth investigating. Feedback is a safeguard against making bad decisions, but you have to be critical about the feedback you are getting because their vision for the game may differ from yours.

 


Find The Root Problem

Often, the perceived balance problem isn’t the actual problem; players will typically only report issues at a surface level, but fixing the underlying cause is necessary to allow for maximum strategic diversity. Let’s take a recent case which has now been fixed as of the 2.75 update. There were several claims of the PHC being stronger than Substrate in the late game, which on its own is not helpful. Pressing for more information led to reports that the Leonidas is overpowered because Substrate lacks an answer, since it duels both Substrate juggernauts and crushes dreadnoughts.


I initially dismissed this as players not respecting the counter system; the Leonidas is intended to duel other Juggernauts since it lacks the area of effect damage of the Substrate equivalent, making it vulnerable to masses of cruisers and air units with armor-piercing. I mostly play 1v1 games, which rarely go for long enough to field Juggernauts, so I hadn’t much experience trying to counter the Leonidas in a real scenario. In theory, Substrate had counters to the Leonidas, but I then played several team games and free for alls as Substrate where juggernauts became prevalent and noticed my assumptions didn’t hold up.


I tried building Air Harbingers to counter Leonidas Juggernauts, but even with my own buffer of mobile anti-air to protect them, I was helpless as the Harbingers reliably got picked off by the Fury air fighters. Likewise, trying to rely on mass Eradicators to counter the Leonidas was flimsy as one small mistake and I’d lose my Orbital Jamming so an Orbital Strike would decimate my entire army. I worked out what the underlying cause was; it wasn’t just that the Leonidas was overpowered, or that the units designed to counter it were under-powered, it was that the counters to the counters of the Leonidas were too strong.

 


In 2.75, Substrate got heavier mobile anti-air in the form of the Overmind rework while Furies also received a reduction in their missile attack, allowing Harbingers to engage the Leonidas more efficiently. The “Nuke” Orbitals also received a substantial cost increase while Mobile Nullifiers received a range increase so that cruisers are harder to shut down with Orbitals. Despite these, I still thought a nerf to the Leonidas itself was justified, but rather than toning down its main weapon, I weakened its secondary weapons so it’s specifically more vulnerable to cruiser armies but still deadly versus other Juggernauts. Accurately diagnosing balance problems is only half the challenge; working out the best solution can be more difficult. When investigating how I will fix a balance issue, I'll generally pursue the path of what will best foster strategic diversity.


Had I not followed the rabbit hole to its origin and instead just nerfed the Leonidas or buffed the Eye of Darkness, then the factions may be balanced in the late game, but it would result in just throwing Juggernauts at each other - the late game wouldn’t be as strategically diverse with functional counters. With cruisers and air units becoming more useful in the late game, the previously neglected Agamemnon is now more desirable. Asking if the game is “balanced” is the wrong question; it should instead be asking if the game is fun, challenging and strategically rich. If faction A has an overpowered thing, the solution isn't to give faction B their own overpowered thing to compensate.


The Leonidas was overdue for a nerf, but it didn’t get one for so long because late game stuff is really hard to test. Let’s say Juggernauts only get used 1 in 30 matches I play; how many of those matches can be used to draw conclusions? Most of the times Juggernauts get fielded in my games is when somebody gets a big lead so they sit back and rush out a Juggernaut, which then is promptly used to crush their opponent and end the game. I deliberately had to pick huge maps with similarly skilled players in 4+ player games to try and naturally create situations that would showcase the relative performance of Juggernauts. Anything situational or only available in the late game will be difficult to test, but the Leonidas' over performance was prolonged by my initial dismissal of the players just not using the right units to counter it.

 


Map Design

The more asymmetric factions and units become, the more their performance varies on different types of maps. StarCraft 2 is praised for its meticulous balance while maintaining vast asymmetry between the factions, but this is only possible because of how formulaic its maps are. There are many strict rules that every StarCraft 2 map needs to follow, otherwise it breaks certain matchups; if there were no ramps into the main base Terran would be helpless against Zerglings. It’s not as pronounced in Ashes, but certain assets such as the Artillery Post vary in performance depending on the map layout.


Air units are always going to be stronger on large maps because their mobility is more significant, and relative range of anti-air is smaller. Similarly, base defenses are stronger on choke point centric maps because there's less room to maneuver around them. A designer needs to decide on a loose format for the maps to adhere to, else it will be impossible to balance asymmetric content. It’s okay if unconventional maps are a part of the game, but they should not be used in standard play such as automatch. There are several rules that I design and rework Ashes maps to adhere to, but that's a topic for a separate Dev Journal.


Reconciling Single Player & Multiplayer

Unlike most RTS, Ashes uses the same stats for its single-player campaigns and its multiplayer. Sharing stats has the advantage of ensuring consistency so that learning the game via single player better prepares you for multiplayer and prevents you from making false assumptions about units. The downside of this, is that sometimes decisions for skirmish and multiplayer get held back by the needs of the single player campaign. For example, I had the idea of making Orbital spawns such as Saboteurs and Incursion only work in friendly territory, which is how the Emergency turrets now function. Unfortunately, there are multiple missions that require the use of these Orbitals in enemy territory so my hands are tied. The missions can be changed, as much work as it’d be, but the voice over for them can’t be.

 


Technical Limitations

Most balance changes are easy for me to implement, involving just a simple tweak of files. However, many things instead require a programmer to implement, such as changing the dreadnought experience or what units are spawned in the Incursion Orbital. It’s not necessarily time-consuming for a programmer to adjust these, but it still takes away from their crucial time of what would otherwise be fixing bugs or adding new features. Code limitations also mean I can’t just freely tinker and experiment. Some balance changes require an artist, Orbital abilities such as Plasma Storm can’t have their radius reduced because doing so would require the video effect to be redone to sync up with the adjustment.


An artist would also be required if I wanted to put juggernauts in a separate production structure from dreadnoughts. That would require a whole new 3d model, texturing and a programmer to set up in the game. Performance can also be a factor; if I wanted to triple the number of drones spawned by Drone Hives, then players may get frame rate drops if they have too many of them on screen. Even for just balance changes, a designer always has to operate within a limited framework and sometimes has to settle for compromises. 


Game Knowledge

I pride myself on being one of the top Ashes players in the community and having an incredibly deep understanding of the game. Despite this, I have made embarrassing mistakes due to lacking game knowledge about a particular thing. One example of this involves the Overmind and Nest of the Queen which spawn drone swarms which are capable of engaging air targets. I intended these units to be Substrate’s late game answer to heavy air units such as Strategic Bomber, but there was one significant oversight. The drones work great for shooting down most air targets, but the Strategic Bomber’s massive payload also destroy them.


If you have multiple Strategic Bombers you can chain kill all the drones from the Overmind and Queen as fast as they spawn, preventing most of the anti-air capabilities. Strategic Bombers blowing up drones is unintuitive and doesn’t make much sense visually, so I had no reason to think it would. I had over 1000 hours on steam, and yet I didn’t realize this until I discovered it the hard way during a game. The antidote to missing game knowledge is obviously just more and more playtesting and getting feedback from other people who may notice things like this before me, but it’s important to be modest and avoid thinking “I know everything about the game” even after having spent an enormous amount of time on it. I’m still learning things about the game and the development side of it to this day, and I try to assume that maybe other people might know something that I don't. 

 


Foresight of Changes

Balance changes need to be done carefully to prevent them going overboard and flip something from underpowered to overpowered. It's essential that a balance designer has the game knowledge and foresight required to predict the consequences of changes and preemptively make adjustments to compensate. In the 2.75 update, frigates and many cruisers received an increase to their movement speed.


This frigate speed buff made the Hades and Strategic Bombers weaker as their bomb projectiles don't track moving units or attempt to lead their targets. I was okay with the indirect nerf to the strategic bomber, but I wasn't okay with it for the Hades, so it received a projectile speed increase to compensate. The knock on effects of balance changes is the context that community members tend to lack, so if a designer doesn't understand their game well enough and is basing their changes mostly off community feedback, there will be a perpetual state of playing catch up for new balance issues that arise each update.


Intuitive Design

Aside from balancing, there are other ideals to aim for such as making the game more intuitive. Certain changes may make the game more balanced, but if it’s a contrived and visually unintuitive change, then that’s something you want to avoid. For example, the Strategic Bomber and Air Harbinger could initially only target buildings; I dislike these contrived targeting limitations because it artificially limits player choice and makes no sense, a new player's initial reaction would be to assume these units are bugged because they’re not firing their weapons. I reworked both units to be able to engage ground targets, but the Strategic Bomber caused some balance problems in the short term due to Substrate’s lack of advanced mobile anti-air. However, I think in the long run it was a good change, on top of giving more player freedom and depth to the game, it makes the Strategic Bomber more intuitive and is one less thing new players get confused over.

 


Cool Factor

The visual presentation of the game is a factor that needs to be considered, balance isn't everything. Lowering the projectile speed of a weapon might make it more balanced, but it could have the consequence of looking contrived and less cool, for lack of a better word. I've thought about removing the squads of 3 that light air units spawn as, replacing them a single entity with triple the stats, as I dislike how single target anti-air such as the Air Eliminator and area of effect anti-air like the Falcon vary in performance drastically depending on which targets they're engaging. I may still do this at some point, but one concern I have is that the squadron of 3x Furies looks cool and it helps make the game feel large scale.


Gameplay should generally come first, but there are other factors to take into consideration and there's generally a balance solution to find that doesn't involve removing the cool factor. Another example is the Air Marauder which use to not fly around its targets. Instead, it would just awkwardly float on top of them and fire with little movement. Air units rapidly moving and strafing their targets looks much cooler and distinguishes them from just higher floating ground units, so I gave the Marauder the same movement pattern as the Air Rampager but then increased its weapon damage since the firing time was much less when it was strafing around. 


Asymmetric Factions

Another factor that has to be kept in mind is the asymmetric design, it's generally more interesting if the factions are unique and the units aren't the exact same as their alternative. Balance changes should try to avoid making the factions less asymmetric, but this isn't always an option depending on how the counter system and matchup is fleshed out. Managing asymmetric design is often a battle of competing qualities, asymmetry is good but strategic diversity and intuitive gameplay is better, if the asymmetric design is sacrificing those other qualities then it's bad design.

 


Let's take an example of a change that I made in Ashes which caught some flak for diminishing the uniqueness of the factions. Originally, only PHC had armor in exchange for Substrate's regenerating shields, which I reworked so that Substrate units also had armor on their cruisers and dreadnoughts. Giving Substrate armor was necessary for the counter system to flow properly and be consistent between both factions. The high levels of armor on PHC dreadnaughts meant you needed armor-piercing units such as the Nemesis to counter them, but the lack of armor and high health pools on Substrate dreadnoughts meant Nemesis cruisers were weak and you were better off using Athenas instead. Since Athenas are the unit to counter other cruisers, if they were also the best way to combat Substrate dreadnoughts then there's little reason to do anything against Substrate other than just spam Athenas all game. The inconsistency of unit roles was a noob trap, the Nemesis is referred to as an anti-dreadnought unit but then was actually worse than Athenas against Substrate dreadnoughts.


Some people hold asymmetric design in the highest regard, which I rebut by asking about the underlying intention behind it. Asymmetric design is desirable because it creates more variety as the factions are different from each other. What creates more variety and makes the game less repetitive, Substrate lacking armor for the sake of lacking armor resulting in endless Athena spam, or having a functional counter system where each unit has strengths and weaknesses and a unique role to play in the matchup? I tend to rank asymmetric design low in the priorities compared to strategic diversity and depth of a matchup, but it shouldn't be stripped away unless for a good reason.


Asymmetric design can also be a balancing challenge if factions vary in their difficulty level; if one faction is easier to play than it will practically be overpowered in low level games, while the more difficult factions will presumably be overpowered in high level games. Ultimately, asymmetric design can be great if it's done correctly, but if done poorly just done for the sake of it, it can and has ruined RTS games. I like to think of asymmetric design as a tool that can be used to create fun varied gameplay, not an objectively good feature that should be aimed for in order to tick a box. 


Expanded thoughts on asymmetric design in RTS:


Ashes Compared to Other RTS

So far I've been talking generically about balancing RTS while drawing examples from Ashes, but I'll finish by explaining some of the factors that make Ashes easier or more challenging to balance compared to other RTS. There’s currently only 2 factions so I only have 3 matchups to focus on, instead of the 6 matchups that most RTS games with 3 factions have. If one unit or strategy is overpowered in a matchup but then weak in another, it can't be fixed with minor balance tweaks and instead needs to have fundamental design reexamined and adjusted. Could you imagine having to balance all the matchups with the 12 factions in Command and Conquer: Generals - Zero Hour?


Another advantage which Ashes has that makes it easier to balance is that it lacks the micro-management of small-scale RTS games. An Athena in the hands of a top player is going to do the same thing as an Athena in the hands of a noob, the difficulty and depth of Ashes instead come from macroscale management of economy, production and unit compositions. Compare this to StarCraft where some units such as the Reaper and Ghost vary in performance drastically across skill levels. There's no way to balance that variance so you end up with many units being worthless in Bronze league, while others are arguably overpowered in Bronze such as the Dark Templar.   


On the flip side, one of the unique challenges of balancing Ashes is the Quantum Upgrades; your units may appear weak, but it could just be because your opponent has more Quantum Upgrades than you. It's another reason why late game is particularly harder to balance, the potential variance of Quantum Upgrades is much higher. However, the difficulty of Quantum Upgrades for readability isn't necessary a game design fault; it's more a flaw of the interface which doesn't give you an option for viewing how many upgrades your opponent has. Hopefully we'll address this at some point. 

 


Summary

RTS games are immensely difficult to balance as they have an vast range of factors that needs to be taken into consideration, requiring lots of play testing. It's crucial for a balance designer to have a deep mastery and understanding of the game because while invaluable, player feedback is fickle. A designer requires foresight to predict consequences of changes and needs to diagnose issues at a deep level to cater maximum strategic diversity. The challenge of balancing is heightened by designers having to work within a limited framework and having to make compromises between other design principles.