Wayward Strategist

More on Random Numbers in Company of Heroes 2


Earlier this week, I published a piece on RTSGuru.com entitled “Random Numbers: The Cinematic Experience and Company of Heroes 2“. In it, I attested that the random number generation model used in Relic’s RTS games is core to the Company of Heroes and Dawn of War experience, (which essentially amounts to dice rolling for the outcome of unit actions such as attacks or special abilities) and that the game would be impoverished without the RNG elements used by Relic. By way of contrast, I also mentioned that some of the fringe scenarios caused by this RNG seem a bit too extreme, neither rewarding fine player control (micro) nor sound tactical planning, leading to reduced value of otherwise seemingly solid units or strategies, such as anti-tank guns. However, due to fact that the post was already starting to drag on without even getting out of generalities, I was unable to expand my argument meaningfully within the context of a single article.

So buckle, up, we’re going in for round 2.

It’s all about stacking the odds in your favor.

RNG, Unit Control and Stacking the Odds

I mentioned this only in passing before, but in my opinion, RNG in Company of Heroes 2 really helps to emphasize the practice of stacking the odds in your favor. I’m not saying that this is not the case in other RTS games (it is) but instead am attempting to call out the logic behind that aspect of this game.

An encounter between a single, un-microed Soviet Conscript squad and German Grenadier squad (the basic infantry units in COH2) in open ground, with no cover, is going to have a semi-random outcome. A Grenadier squad has a higher liklihood of winning due to the fact that its models are harder to drop, meaning that it tends to retain its DPS better than a Conscript squad over the course of the encounter. However, since a Grenadier squad has fewer models, each lost model is a larger hit to the overall DPS of the unit than Soviet model losses.

But, even looking at that Conscript and Grenadier encounter, there are plenty of factors that come into play. Cover, buildings, activated abilities, engage distance, and even micro can stack those random numbers in your favor. To say nothing, of course, about other units in the fight. Without having the exact numbers on hand, cover decreases an enemy unit’s chance to hit, bumping the odds of the encounter in your favor. Conscripts’ grenade, the Molotov, is a flame-based weapon, which means it has a chance to critically hit models, and (I believe) ignores Grenadier’s higher armor value. In the meantime, the Grenadier’s Rifle Grenade can take out multiple models and decide an encounter in a single fell swoop. So even 1 on 1, controlling your units and picking a good location to fight can stack the odds in a player’s favor and give them the victory in an individual battle. There’s a much larger number of factors involved in this fight than, say, Zealots vs Marines in StarCraft 2, where hits are assured and terrain only serves to interfere with unit pathing and the ability of the Zerglings to get surrounds on the Zealots. There’s (in my very humble opinion) an actual advantage to this, which I’ll talk about below.

Of course, there are what I call fringe scenarios (I’m sure in statistics there’s a better term for this, but that’s honestly not really my forte) where RNG seems to “turn against” the player. These are the scenarios that bother the proponents of StarCraft-esque deterministic play models, and are often the only really obvious indicator of the game’s random factors. I’ll talk about that a little later, though.

I talked about this very briefly in the previous article, but random events and dice rolls permeate Company of Heroes from the highest level to the lowest. Very few numbers and events lack some random  factors (I believe that Snipers always instantly kill other models and either have a low chance of missing or cannot miss, for instance? And area damage attacks such as the German Mortar Halftrack’s barrage cannot miss). In some cases as with vehicles, several random or variable factors accumulate to decide the outcome of an action.

De-Crewing Vehicles, Capturing Weapons, etc.

Real-Time Strategy games are all about resource efficiency, and Company of Heroes is no exception. In addition to % chances for flame weapons to critically hit infantry, % chances (modified by the armor of the target vehicle) for attacks to be deflected or to deal penetrative damage to a vehicle, resource efficiency is a huge part of the gameplay in Company of Heroes 2. Losing a squad, or even losing an excessive number of models within squads cumulatively, can drain a player’s economy to the point where they’re unable to adequately fight back against their enemy. Losing vehicles slowly leeches valuable Fuel reserves from a player, and can lead to increasingly one-sided tank battles.

This, coupled with the benefits of cumulatively stacking % chances (and allowing units to provide covering fire for one another) and the ability for an army to entrench with Bunkers, Wire, or AT mines of various description, leads to the most efficient way to combat the enemy typically being carefully orchestrated combined-arms offensives. Mobile strikes or territory capture attempts using single units or small, mobile squads (such as an M3 Scout Car with an associated Penal Battalion) become risks for a variety of reasons. In addition to the lost resources, vehicles have a % chance to be de-crewed when destroyed (I believe it’s 3 or 5%) and capturable either by enemies or allies. The same applies to heavy weapons like mortars, HMGs, or AT guns, as well as infantry upgrade weapons such as flamethrowers.

Where am I going with this? I hope I haven’t lost anyone yet: there is a destination. From here on out, things might get a little controversial.

Company of Heroes is a game with a fairly binary counter system. German Flame halftracks require appropriate counters, be it Guards Rifleman or t-34s or carefully-managed AT guns and Conscript squads. Likewise, t4 units like the Panter require appropriate (often combined-arms) response. If you’re a Soviet stuck on T3 when the big guns come out, beware! StuGs will eat up far more than their cost in T-34s, especially if they’re used properly.

This semi-binary counter system, which is to an extent navigable by better player control (as in the case of MG42s pitted against Conscripts or enough T-34s getting behind a Panther) is strongly complimented by the game’s random number generation system. It is my opinion that using a deterministic damage system like the one in StarCraft 2 would significantly impact the interactions between tanks, as a for instance.  The issue, in my mind, is not the presence of random events, but the severity of “losing” RNG dice rolls, and scenarios where neither fine control nor tactical planning pay off.

Stacking odds and resource efficiency are interesting mechanics and (as I mentioned in my RTSGuru article) the specific implementation of mathematical uncertaintly, rock/paper/scissors gameplay model, and control-point based objective oriented matches combine in a very unique way in Relic’s titles. Frankly, I don’t think I’d like the game as much if it were more twitchy and deterministic (though of course that’s just opinion).

Moving on, I’d like to talk a little about what I see as the advantages and disadvantages of Relic’s model.

An Ecosystem of Control: The Advanatages of Relic’s RNG system

One of the largest advantages of Relic’s model is the amount of control it gives over specific unit matchups. A perfect example of this is the fairly recent change to anti-tank grenades for Conscripts and Grenadiers. This altered the penetration and damage of these weapons in such a way that left them just as effective as previous against medium vehicles such as the T-34 and Panzer 4 tanks, but made them considerably less effective against heavy tanks. This change was made to leave the midgame and relative effectiveness of medium tanks the same, but encourage the use of heavy tanks, which now have less to fear from basic infantry and became more capable of going on the offensive.

Whether or not that change was effective, it’s a clear indication of the beauty of the system. Another example was a change to HMG suppression that increase the initial suppression time, but left pinning time after units are suppressed virtually identical to its state before the change. This gives attacking infantry a little more leeway to respond before having to retreat, while leaving the ultimate crippling pin state the same. This fine grained control over unit interactions looks to have a ton of promise when considering the long term balance of the game.

Likewise, in my previous article I mentioned infantry “reacting” to being fired upon by ducking and flailing about in a rather cinematic fashion, which while visually interesting caused some serious utility issues when certain units came up against certain weapons. The very day (9/10/2013) that article was posted, Relic included a patch which decreased the frequency of those events to once every 30 seconds. This alone increased the control players have over their infantry in combat scenarios, which was very welcome for people like me, who find infantry-heavy play to be quite fun.

The Disadvantages of RNG: Fringe Scenarios

It’s not all sunshine and roses, of course.  One of the biggest pain points in Company of Heroes 2 are fringe scenarios where RNG breaks down. It’s heartbraking when a Panzer IV is bearing down on your army and your ZiS-3 fires 3 shots, none of which penetrate the dang thing’s armor, or when your T-34 rams that Panther and it does… nothing. Likewise, it’s frustrating when a stray mortar round hits a structure just right and it collapses on your MG42, killing it. Meanwhile, your motar hits some hut with a Maxim in it like 10 times and the danged thing just won’t collapse.

In many cases, these fringe scenarios average out over the course of a match, especially in 2v2s where there tend to be a lot more moving pieces. But there are always those cases where a player would just have won if… You know. If RNG hadn’t been against them. Or if their units had been more responsive (I do see this as a separate issue and hope this is addressed sometime soon. Units take too long to let off special abilities and to react when told to move).

The issue isn’t (in my opinion) the fringe scenarios themselves, but the severity of those fringe events. I fully expect that Relic will eventually fiddle with those numbers, making partially-successful events like mines, rams, or AT Gun shots a little more potent than they are now and softening the impact of “failed” rolls less heartbreaking. For instance, simply increasing the penetration rate or deflection damage of the AT Guns would make them more consistent against vehicles and would probably see their usage go up.