Thursday, May 9, 2019

Building a wall

In Civ 6 the early game is full of aggression and taking territory from other players is straightforward.  The AI, while it isn't perfect, has early game war reasonably figured out.  It gathers together six or so units, moves them to a city it wants, declares war, and bashes the city into submission.  This is a functional plan, and it regularly works, even against good players, assuming you start on a high difficulty level to give it a lead.

But when the late game arrives the world becomes stagnant.  The AI becomes nearly incapable of taking a city and it flails around bleeding off units and then gives up.  I wanted to look at the reasons for this a bit to see if I could change things so that the AI would be capable of capturing cities as the game progresses.

City defenses are determined by four things.  The strength of the best unit you have made, the strength of the unit defending the city, the walls the city has, and the districts the city has.  The first two scale throughout the ages - if you have warriors of strength 20, you get a city strength of 20.  If you have infantry corps of strength 80, the city they occupy has strength 80.  As such, I am mostly going to ignore that portion of the calculation because it works pretty well.  District and wall scaling is the problem.

Consider an Ancient era siege.  Warriors bash on the city, dealing the standard 30 damage each, because the city and the warriors have the same strength.  The city has 200 health, so if you get 4 attacking warriors you can kill the city in 2 rounds, with a total of 7 attacks.  (There is some extra complication with the city healing and also the city losing strength because of damage, but those roughly cancel.)  Those 4 warriors will be badly hurt after the fight, but they win.

Now consider an attack in the modern era using infantry.  The city still has 200 health, but it also has 400 health worth of walls that have to be beaten down first.  The city also likely has +6 to its strength because of districts.  The walls cut the damage of infantry attacks by 85%.  So if we assume the same group of 4 infantry attacking the city, they deal about 4 damage per hit.  After 3 rounds of bashing, all of the attacking infantry are dead, and the city has sustained about 40 damage into its 400 wall health.

So to attack a normal ancient era city you need 4 warriors to successfully defeat it.  To attack a normal modern era city you need *40* infantry to defeat it.  Even if you win the battle that kind of investment is ludicrous, and you will lose the game anyway trying to take cities at that rate.  You can improve that by pillaging some of the districts, but it is still absurd.  The AI simply isn't good enough at figuring out how to besiege a city to ever attack successfully in the late game.  It will just throw 20 units at the city, watch them die, and then beg for peace because it is losing the war.

Of course players take cities from the AI in the late game.  The easiest way by far is to use bombers because they deliver outrageous damage from afar.  When I develop bombers with strength 110 an infantry corps will still only have the city strength up to 80 (86 with districts, say), so I will deal 80 damage per shot.  3 bombers will level a city in 2 turns, and then I can just walk a melee unit in to capture it, and the bombers won't even take damage doing so.  That is still 4 units for a 2 turn kill, just like the ancient era, but the bombers can move and attack so efficiently that for a human, the modern era is the fastest era for war and capture.

Comparing modern warfare to ancient warfare is an extreme example, but the slide from AI threat to total lack of threat starts early, right when walls go up.  As the eras go by city health rises and the percentage of it that is walls goes up, and eventually the AI is helpless to attack you.  That said, I have never to my recollection lost a city with walls built.  You could lose it, certainly, if you just sit on one city at the start of the game and go straight for walls.  Eventually you would get out produced and out teched and walls wouldn't be enough.  But if you get a few cities up, and get walls up in the vulnerable ones, you pretty much can't lose a city again.  That doesn't feel right.

The trouble here, I think, is that city siege is built from the perspective of the player, not the AI.  Players who try to bash through AI walls quickly realize they need either swarms of ranged units, battering rams, or catapults.  You can't just beat through walls without taking hideous losses.  The AI, however, simply doesn't figure this out properly.  It wanders units around, correctly calculating that attacking the city is fruitless, but not knowing what to do about it.  It simply doesn't know how to defeat a well defended city. 

This situation leads to stagnation amongst AIs too.  Early empires shift about, but eventually people get up walls in their cities and then they all just sit there staring at one another.  Attacks are pointless, simply resulting in huge losses of troops for no gain.

The solution isn't to teach the AI about how to use air power - right now planes are extremely overpowered and if the AI reached them first and knew how to use them it would steamroll players without effort.  That isn't ideal.  Also this does nothing for midgame stagnation when the AIs all have medieval walls up and they can't hurt each other nor can they successfully attack a human player.

Cities gaining bonuses from districts kind of feels right - it means that building up infrastructure in a city helps make it harder to take.  Unfortunately it outpaces the attacker's abilities, and that is a problem.  Walls adding on health to cities seems reasonable, and walls reducing the abilities of melee units to attack feels okay, but the the end result is stagnation.  There needs to be an arms race, increases in the abilities of offensive units to offset increases in defence.  It should be a continuous struggle between offensive and defensive capabilities with neither getting ahead, but instead we have defence racing ahead of offence and never looking back.

Adding in a broad offensive power increase to offset the walls progression doesn't feel right to me.  I don't even know what that would look like, to be honest.  To let the AI reasonably take cities that are walled up would require huge bonuses, and would be a major project.  Deflating the stacking defensive bonuses is much easier though.  I have to think on how I would do this - flat out removing Medieval and Renaissance Walls is possible, as is reducing the power of Urban Defenses.  I could also pare back the bonuses that basic walls give so units do more damage.

Any of these changes are based on the assumption that defensive superiority and stagnation is a bad thing.  I suspect lots of people like having a wild and scary early game and then settle in to build an empire with no worries about invasion.  I get that, for sure.  However, I think the amount that defence outstrips offence is too high, and for my money the game would be more fun if I stepped in and tinkered with the progression so that taking cities was more feasible as the game goes along.

No comments:

Post a Comment