The First World War Mod: Balancing Trench Warfare, Part 2
In my last post, I used the Machinations system modeller to help plan some basic values for my mod’s units - values which would, hopefully, result in a very quick opening to the first world war, followed by a quick devolution into stagnant trench warfare, as was seen in the Schlieffen Plan and the Battle of the Marne.
So how did those values work out in the game? Here’s a timelapse:
Here’s what we should note:
The initial attacks by Germany into Belgium were resolved very quickly, which is what we wanted.
However, after the initial attack, the invasion stalled. Often German units would be pushed back shortly after taking a new tile.
After a few months of fighting, the front had barely even passed Liege, when what we want is to be near the outskirts of Paris.
Once I manually research army doctrines for France (towards the end of the video), the front remains volatile and mobile, with tiles still being taken quite quickly. Not at all like the trench-warfare I’m trying to recreate.
Tweaking Until We Get It Right
It’s tempting to just assume that Germany isn’t powerful enough, compared to France, given that the two seem evenly matched right now. But the land-doctrine techs I have Germany get a head start on add up to an enormous early-game buff (+50% defense, among other things) and, not to mention, it’s suspicious that we’re seeing some counter-attacks from the Entente not just succeed, but succeed very quickly. While playing, I took a closer look at these cases and figured that this can be attributed to:
France sometimes being able to defend with more units than Germany has attacking (the two have equal army-sizes right now, which is roughly historically accurate, but inevitably 1 German troop sometimes ends up attacking multiple French troops
Advancing German troops entering the fray with lower organisation, due to the advancement penalty and due to just having been in a battle.
But it’s really not clear. Solving this will definitely take some guesswork.
After looking over the test-run some more, I decided that one of the most critical misbehaviours here was that France was frequently winning offensive fights against Germany, even though Germany had the ‘digging in’ doctrine researched (this doctrine is supposed to instigate trench warfare by increasing unit defense). So, following some updates to my machinations model, I swapped the stats around to simulate one French unit attacking one German unit. I expected to see Germany win the majority of the time, but instead I got these results:
According to machinations, France is just as likely to win against Germany in a French offensive, even though Germany has the increased defense stat.
This didn’t make sense to me, until I remembered that HoI IV’s combat equation basically makes excess defense redundant (if we’re only talking about 1v1 battles): having 36 def to your opponent’s 36 atk provides exactly the same benefit as having 100 def to your opponent’s 36 atk. The same is true of breakthrough: France’s breakthrough is high enough to stop all of the German attacks. The result is that both divisions are ‘missing’ each other.
So the defensive buffs from the digging-in land doctrine would matter more if base attack values were bigger to begin with, at which point getting the bonus defense would bring Germany’s defense stat to match France’s attack value. Meanwhile, France’s breakthrough stat would still be low. To summarise:
If (Defender’s Atk - Attacker’s Brk) > (Attacker’s Atk - Defender’s Def), the battle is in the defender’s favour. In other words, if the defender’s excess attacks exceeds the attacker’s excess attacks, we have a war of attrition.
I messed around with the stats some more, spending some time running a test on machinations, trying the new stats in-game, and noting the results. I found that my initial bonuses for the early land-doctrine researches were just two low. If I ramp up the difference they make, Germany’s early-game advantage works a little better:
On top of that, I found that increasing the number of divisions in the game (for both Germany and France) really establishes the German advantage. This seems to be simply because German troops can reinforce each other more often if the front lines are more packed. It’s something to consider for my future balancing, the minimum army size needed to man the Western-front (about 50 divisions) results in a much more jagged, back-and forth early war, so I need Germany and France to have about 100 divisions early-game (which, incidentally, is close to what they have in vanilla).
Map Quirks
In fact, after getting frustrated with the odd results of my balance tweaks, I ended up playing through early-game vanilla HoI a few times to take note of what sort of unit stats can be seen there. In Early-game HoI, Germany can quite handily steamroll Poland and France - which is what I need to accomplish here - and I wanted to find out why.
It turns out that vanilla division stats have a different sort of profile to my own balancing. Most importantly, infantry defense stats are enormous compared to their attack states (1939 Germany, France, and Poland all have about 3x their Soft-Attack stat in Defense). What this means, in vanilla, is that HoI infantry can defend against 3 attacking divisions before they start to take serious damage. This is important in my case: it’s frequent that you end up with uneven attacker/defender matchups, even if the two fighting countries have the same overall army sizes, simply because of how the tiles are laid out on the game map. Some tiles are more vulnerable than others, having more neighbors from a certain direction, but less immediate friendly tiles to take the brunt of an attack. Given a perfect hexagonal grid, you’d expect all tiles on a straight-line front to have two enemy neighbors each, but the uneven map design in HoI means that it’s possible to have more avenues of attack. This, I imagine, is why vanilla infantry are drawn up with such a high defense stat.
The takeaway here is that if I want to recreate trench-warfare conditions in which attacks are so rarely effective, I need to make infantry defense stats even higher.
Favouring the Defender (by Increasing the Attack Stat)
So, with this in mind, let’s consult the machinations model again to try and draw up how post-Marne stats might need to look:
Here, I’ve greatly increased the defense stat, kept the breakthrough stat pretty low, and increased the attack stat. This last one may seem counterintuitive (trench warfare is all about defense, right?), but remember that in HoI IV’s combat., both defenders and attackers make attacks. Having an attack stat over twice as large as the opposing breakthrough stat means that an infantry division can deal a lot of damage to attackers even if outnumbered. Finally, I increased the organisation pools, resulting in longer battles (which should give us a slower moving front).
In theory, these stats will give us something closer to trench warfare. Pre-Marne, only Germany has these advantages, and has an unbudging defensive line. Post-Marne, buth Germany and France have stubborn fronts.
So, to review:
In the early-game, units have a [defense:attack:breakthrough] ratio of about [100/50/20].
The most basic doctrines quickly (and drastically) change the ratio of these three stats (as well as providing some other bonus), such that when one country has an advantage over another in terms of doctrine, they can both rapidly attack and stubbornly defend.
Most countries will have completed the basic combat doctrines by 1914, and Germany in particular will have a slight edge in this department. This is in contrast to France, who will start with a malus to these techs but will quickly catch up once the war begins.
When trench warfare finally sets in, the defense/attack/breakthrough ratio is more like [300/70/20]. This means units are excellent at defending, and can deal more damage when defending than when attacking. The result is that one unit can defend against two or three, but it takes several units to dislodge just a single enemy division.
The result:
Germany breezes through Belgium pretty easily, but once France gets the same doctrines, the front becomes quite stable.
Summary
Obviously this still needs some tweaks. For one, the three doctrines I have right now are enormously powerful (+100% is not a modifier I like to see), and probably need to be broken down a little. Second, I’ve ben getting France their doctrines by console-command, when the AI needs to naturally get them around September 1914 - this will require yet more balancing. There’s also a lot to think about in how I structure the doctrine tree, which doctrines are available earliest, whether to clump the entirity of the crucial trench-related researches into just one tech (bringing on trench warfare rapidly, as was seen after the Marne), or to sprinkle them around a little, forcing the player to make more interesting choices on which branch to research earliest.
In any case, this balance work will serve as the backbone of the mod. Using machinations has actually proven to be quite effective, if only because it helps me understand how the game fits together (increasing the Attack stat, for example, rather than the Breakthrough stat, was the key to giving Germany an offensive AND defensive bonus). Pairing this with observations of the vanilla game’s stats (which I know can achieve the results I want) was also a critical step in getting this first-pass correct.
At this point, I need to start worrying about how to avoid having trench-warfare establish itself on the eastern front (I have some ideas which, again, will emerge naturally from the game-tweaks I plan to make). That also means I have to actually create Eastern Europe, which is what I plan to talk about next post.