Unofficial BTS 3.13 patch

Roland is correct. He's using the right formula, and I double-checked it in SAS software with sdf('binomial', 5, 0.2, 10) = 0.00637.

IMHO, simulation is by far the most reliable method here. Once you could establish benchmarks via simulation, then maybe you could start modeling it and using the simulation benchmarks to test the models, but I'd be surprised if we were able to come up with a good model, as Civ-obsessed as we are. Nevertheless, PM me if you're interested, and I'd be happy to put my Prob/Stat PhD to good use for a change ;).

Of course, "victory" here can be defined any way you like---such as surviving with a certain number of units intact with a certain amount of health, or winning within a certain number of turns. That's part of the beauty of the simulation approach: you don't need to go do more math each time you want to try a different victory condition.

Thanks for the support and the very interesting tables which show which sample size would be needed for an accurate estimate of the victory chances. The reason why I started talking about a fairly small sample size was that I originally thought that we were just talking about avoiding suicide attacks and that can easily be done with a fairly small sample size.

Bhruic says that a sample size of 100 might cause a slowdown of the program. I wonder if that is true, but it is of course a thing to keep in mind.

I for one think that an estimate of the victory chances within 10% of the real victory chances is more than precise enough. I don't think any of us could guess the victory chances between 2 stacks of 20 units with 10% accuracy if these victory chances are something in the 20-80% range (a close fight). There are too many factors to make an accurate guess. But still we can make fairly smart decisions by just not attacking when we aren't sure that victory chances for our stack are in the 90+% range. I don't think the AI needs to know more precise data than that to make adequate decisions. And as you have shown, the number of simulations needed to show that isn't that high.

In single unit match ups we often accept a much lower chance of victory than 90+%. But in that case the normal chance calculation could be used.

So my point is: attack the city if the chance of victory is in the 90+ or 95+% range doesn't require a lot of simulation runs and realistically that is often the thing which you want to know. You normally don't risk your whole stack attacking a city if the chances of victory are 55% or something like that. You won't have much of a stack left after the battle anyway.

edit: good point about the relation between margin of error and number of simulations.

exactly. And they will tell me: you're right. They had to disembark first, and then attack. The only artillery support they received came from the BB's and the air (both already modeled in Civ4 as bombardment). Did you know of any transport carrying artillery that fired from within the transports? ;)

In fact, the key objective of the campaign was the port of Cherbourg. Did you see them storm the port itself? I didn't think so. In terms of Civ4, they disembarked first "on a contiguous tile" from where to attack inland and the port-city.

I mean it. This has to be the easiest and most logical solution, but it has to be implemented by Firaxis; if not, this turns out a mod.

I stand my ground. Any other opinion?

I agree with Bhruic that in the end this is a game and realism is just a basis for the game and not the determining factor in the game.

However, if you bring realism into the game, then you have to know that you can view it from more than one point.

You see a catapult in the game firing from a ship and think this is a simulation of a real catapult firing from a ship onto a city. Nonsense. That can't happen. This game makes a mockery of combat!

You can also view it a bit more abstractly. A tile is symbolizing an area of 100*100 kilometres. There might be a nice unprotected beach which we can use to land our catapults before we march on the city as the city could be 20 kilometres to the south of where we are landing. The 50% defence bonus for the city defenders is there to show that in reality the defenders of the city might try to sabotage the landing of the catapults. Ok, that makes sense.

This game shows a very abstract form of battle. Whether it makes sense or not just depends on how you look at it.

Oh, I know he's right. I only assumed he was wrong to begin with because he listed 0.637% as being for just 6 out of 10 - if that were the case, then 6+ out of 10 would have been higher.

Yes, yes, 6 or more. I know it. ;) ;)

I'm not sure that 100 simulations is realistically doable. I mean, it's fine for a a single battle. But the problem is that when a particular unit is trying to determine a city to attack, it scans all the cities in a certain radius, and then calculations victory chances (choosing the one with the highest victory chance). With a large radius, that will result in a lot of calculations. And that's for a single army.

Hmm. Whether it is feasible or not is a very good point. If it takes 1 second to do this for each 'should we attack this city'-question, then that could be a disaster. However, I don't expect it to be such an inefficient process. The amount of calculations needed to simulate a single battle once shouldn't take a computer long. But it is good to assume a worst case scenario and work with that.

A worst case scenario might be that the average city is defended by 20 units and the attack stack consists of say 35 units, so a maximum of 35 battles need to be calculated to find the outcome. The AI chooses between say 10 cities and so it chooses between 10 battles of 35 units facing 20 units. For each of these battles it performs a check of 30 simulations, only accepting an attack as a possibility if it wins 28 out of 30.

Ok, so that makes a simulation of 30*10*35=10500 battles, say 10000 battles to have a nice round number.

So the question would be: does it take civ4 more or less than 0.05 seconds to simulate 10000 1-on-1 battles? (Just assuming that more than 0.05 seconds for just this part of the program would be considered too much.) Say it needs the random number generator 6 times for each of these battles, then that would make 60000 calls for the random number generator (which I suspect is the most time consuming part of the battle simulation). I really don't know how long it takes to use the random number generator once, but it isn't very long. The random number generators that I've seen use some multiplication (modulo another number) to generate the next random number and computers are very good at that. Still 60000 times is a lot.

If it is not feasible, then we should probably try something along the lines of what Krikkitone is suggesting. We should be able to come up with a much better estimate of the power of a stack as the one that was described earlier.

By the way, I think that squaring the strength of units is overdoing it.
 
While this discussion has gotten very interesting about amphibious landings, could we please get back to the original point?

The AI should really focus on conquering neighbors over sending armies to the other side of the world to fight. The AI fails utterly to attempt a conquest victory.
 
Sorry, not to be offensive, but that's your point, not necessarily ours. I'm more concerned about the AI's ability to judge a city attack than I am who it chooses to go to war with.

Bh
 
By the way, I think that squaring the strength of units is overdoing it.

I'm not sure... how many warriors does it take to defeat a Knight?
(or rather, if a Knight is attacked by a stack of 100 Warriors, what is the average number the Knight Kills)
5 means Combat value= Strength
11 means Combat Value = Strength^1.5
25 means Combat Value = Strength^2

Quick Calculation
Assuming the 'Average' damage is done to the Knight in each combat, the 9th Warrior would kill the Knight (and take some strong Damage itself)

Trying with a generic starting A/D ratio
the rule seems to be Strength ^1.35 is the combat value (or to the 4/3 power)

However, that seems to get less as the number drops, so I guess that the Direct calculation might be better. (since rarely do you have much more than 2:1 adjusted strength ratio between units)
 
Sorry, not to be offensive, but that's your point, not necessarily ours. I'm more concerned about the AI's ability to judge a city attack than I am who it chooses to go to war with.

Bh


So I'm the only one in the world that hates the fact that the AI will choose a target it has no feasible means to conquer rather than a closer target it might win against?
 
So I'm the only one in the world that hates the fact that the AI will choose a target it has no feasible means to conquer rather than a closer target it might win against?


Yes. :D :cool: :devil: :devil:

Just joking.
 
Duuk, you're arguing semantics.

When exactly, do you (as a human) make the value judgment that the AI has no feasible means to conquer the target? When you see it show up, undoubtedly.

Bh is saying that if the AI made a better decision on when and if to attack, both at start and also to re-evaluate when it finally arrives, then that is a much more concerning issue.

These are one and the same thing.

If the AI properly considered, when deciding to send off this invasion fleet in the first place, that the target will undergo X probably upgrades given Y time to get there, then the AI would in most cases not send off the fleet, period.

Isn't that exactly what you're asking for? Seriously, if the AI actually successfully conquered that enemy on the other side of the world, would you have a complaint?

Wodan
 
Isn't that exactly what you're asking for? Seriously, if the AI actually successfully conquered that enemy on the other side of the world, would you have a complaint?

To be honest, I probably would. Because I'd wonder how well it would have done against a legitimate neighbor instead of that other target.

Contiguous empires are always better.
 
I'm not sure... how many warriors does it take to defeat a Knight?
(or rather, if a Knight is attacked by a stack of 100 Warriors, what is the average number the Knight Kills)
5 means Combat value= Strength
11 means Combat Value = Strength^1.5
25 means Combat Value = Strength^2

Quick Calculation
Assuming the 'Average' damage is done to the Knight in each combat, the 9th Warrior would kill the Knight (and take some strong Damage itself)

Trying with a generic starting A/D ratio
the rule seems to be Strength ^1.35 is the combat value (or to the 4/3 power)

However, that seems to get less as the number drops, so I guess that the Direct calculation might be better. (since rarely do you have much more than 2:1 adjusted strength ratio between units)

I think you're right to go for an exponential function to compare strengths of units and that 1.35 or 4/3 is about right for the exponent.

I was trying to do the same kind of analysis for units with strength ratios close to one another but came up with the problem how to value the damage done to a unit which wasn't completely destroyed. A strength 2 unit is expected to kill 2 strength 1 units and then severely wound a third one. But how do you value that? It's not fair to just count the hitpoints and say that 40 hitpoints of a strength 1 unit is equal to a strength 0.4 unit. Because that is a separate problem, I avoided the issue by looking for the strength of a unit which is expected to destroy exactly 2 strength 1 units, no more, no less.

After some calculations, I arrived at a unit of strength 1.7. So a unit of strength 1.7 is twice as strong as a unit of strength 1.

Short calculation in spoiler to verify that strength 1.7 is about right.

Spoiler :
Say A is a unit of strength 1.7 and B a unit of strength 1. Then A will hit B 1.7 times as often and will do 1.685 times as much damage per hit. (I'm ignoring rounding effects in the combat formula here as they will distort the general case by looking too hard at the rounding in this specific case).
So A is left with about 65 hitpoints after defeating unit B.
Its strength for purposes of damage is then (100 + 65)/200 * 1.7 and its strength for purposes of hitting is then 0.65 * 1.7. This means that unit A will damage unit B 1.55 times as quickly. However unit B also has about 1.55 times as many hitpoints so they will die at about the same time. ;)


In this case, I would arrive at an exponent of approximately 1.3 (1.7^1.3 = 2 or log 2/log 1.7 = 1.3). Slightly lower than your 1.35, but if I understood correctly, you also ignored the weakening effect of repeated combat with the same unit which is significant (or did you not?). And you used an example where unit strengths are far apart which as you said yourself is probably not the best example.

I must remark that this analysis assumes that weakening a stronger unit is equal to killing a weaker unit which isn't exactly how human players value this. We generally prefer 5 strong units which all got weakened in a battle to 5 weaker units which all got killed in a battle. Still, we want to analyse a situation of total victory for one of two stacks, so this effect is not that important. It's a fight to the death. If the larger stack of weaker units wins, then the smaller stack of stronger units are dead anyway.

So I'd say that real combat strength is about equal to (unit strength) ^ 1.3.


It's nice to have a better approximation of the strength of units, but the general case with first strikes (which disproportionately effect the strength of already strong units) and collateral damage and specific bonuses is a lot harder. We could come up with a crude formula, but we can't expect a really good formula for every case.
 
Hello!

Is this truly a patch or a mod? :crazyeye:

We still want to use the Blitz mod with this patch, no problemo?

Regards,

JohnYoga
Follow the installation instructions found in the readme file inside the download. If the Blitz mod is capable of using this, it will. If it's not, it won't. All by itself! :goodjob:
 
To be honest, I probably would. Because I'd wonder how well it would have done against a legitimate neighbor instead of that other target.

Contiguous empires are always better.

You forget that the A.I. doesn't always play to win. Do human players hate other empires because they have a different religion? No, but that A.I. does because it's playing a character. In a multi player game id doesn't matter how well two empires have gotten along in the past, a human players will turn on anyone to win the game. If the A.I. played that way people would complain that all the A.I. empires act the same. Ghandi is Genghis. Also they'd complain that diplomacy is useless because the A.I. betrays all the time. (Aggressive A.I. comes closer to playing like a human but not to such an extreme)
You, say that Contiguous empires are always better, but if the A.I. played by such a rigid rule as to never invade another continent unless you already own all of your own then the game would be very predictable. If a human player was on it's own large island and several A.I. are on another then the human player could be sure the A.I. would never come for them as long as there are others on the same island. So there would have to be a middle ground, which is what we have now, but it will never be good enough to be right every time.
Also you say you wonder how well it would have done against a neighbor. What makes you so sure it was going to win against them?
 
Is this a patch to patch BtS 3.13? I know it is an unofficial patch but is it a recommended one? Just curiuos.

Thanks!
 
To be honest, I probably would. Because I'd wonder how well it would have done against a legitimate neighbor instead of that other target.

Contiguous empires are always better.
Not always. Consider this example: no tech trading, neighbors are all almost as advanced or more advanced than you, you have already or soon will have State Property, and a backwards civ on the other side of the planet is sitting there for the taking.

Anyway I agree that the AI currently does it too frequently. I just disagree that it should be eliminated.

Wodan
 
I think you're right to go for an exponential function to compare strengths of units and that 1.35 or 4/3 is about right for the exponent.

I was trying to do the same kind of analysis for units with strength ratios close to one another but came up with the problem how to value the damage done to a unit which wasn't completely destroyed. A strength 2 unit is expected to kill 2 strength 1 units and then severely wound a third one. But how do you value that? It's not fair to just count the hitpoints and say that 40 hitpoints of a strength 1 unit is equal to a strength 0.4 unit. Because that is a separate problem, I avoided the issue by looking for the strength of a unit which is expected to destroy exactly 2 strength 1 units, no more, no less.

After some calculations, I arrived at a unit of strength 1.7. So a unit of strength 1.7 is twice as strong as a unit of strength 1.

Short calculation in spoiler to verify that strength 1.7 is about right.

Spoiler :
Say A is a unit of strength 1.7 and B a unit of strength 1. Then A will hit B 1.7 times as often and will do 1.685 times as much damage per hit. (I'm ignoring rounding effects in the combat formula here as they will distort the general case by looking too hard at the rounding in this specific case).
So A is left with about 65 hitpoints after defeating unit B.
Its strength for purposes of damage is then (100 + 65)/200 * 1.7 and its strength for purposes of hitting is then 0.65 * 1.7. This means that unit A will damage unit B 1.55 times as quickly. However unit B also has about 1.55 times as many hitpoints so they will die at about the same time. ;)


In this case, I would arrive at an exponent of approximately 1.3 (1.7^1.3 = 2 or log 2/log 1.7 = 1.3). Slightly lower than your 1.35, but if I understood correctly, you also ignored the weakening effect of repeated combat with the same unit which is significant (or did you not?). And you used an example where unit strengths are far apart which as you said yourself is probably not the best example.

Actually I did pay attention to the weakening effect, but forgot about the averaging.

I do agree the 1.3 seems closest although the Direct Value is probably good enough for simplicity's sake.

Direct Value has the Added bonus of making things like Collateral Damage somewhat easier to add in. (if it does 10 points of Damage to a unit it takes 1/10th of its strength)

So the value of collateral damage would be
.1 * Number of Targets * Collateral Damage Strength of Bombarder

First Strikes could probably be relatively easily approximated as a simple bonus (say 2.5% bonus per first Strike Chance)

Ignoring First Strikes/Collateral Damage seems difficult, but those are Rare.
 
Is this a patch to patch BtS 3.13? I know it is an unofficial patch but is it a recommended one? Just curiuos.

Thanks!

Yes, you first patch BTS to 3.13 normally, then apply this unofficial patch. I'd say it's highly recommended, just check the first page to see all the things it fixes that weren't fixed by 3.13 (or even introduced by it). The exception might be if you play multiplayer a lot, I think everyone participating in a game needs the same game version, so you wouldn't be able to play with others who don't use the unofficial patch. Even for that case, you can just install it as a mod though.
 
Actually I did pay attention to the weakening effect, but forgot about the averaging.

I do agree the 1.3 seems closest although the Direct Value is probably good enough for simplicity's sake.

I think the difference is a bit too large to just ignore. Especially since the AI sometimes has some outdated troops who's strength would be seriously overestimated if you just take the normal strength. Also defenders gain a significant bonus inside cities which will often result in a serious strength difference between attackers and defenders. Whenever there is a strength difference between attackers and defenders, ignoring the x^1.3 effect would result in a serious underestimation of the stronger party or overestimation of the weaker party. And it's really not a problem for a computer to calculate the X^1.3 for every unit in a stack. That takes no time at all.

I agree, that it's not easy to come up with a formula that uses the effect of collateral damage and first strikes and this x^1.3 effect all in one.

Direct Value has the Added bonus of making things like Collateral Damage somewhat easier to add in. (if it does 10 points of Damage to a unit it takes 1/10th of its strength)

So the value of collateral damage would be
.1 * Number of Targets * Collateral Damage Strength of Bombarder

First Strikes could probably be relatively easily approximated as a simple bonus (say 2.5% bonus per first Strike Chance)

Ignoring First Strikes/Collateral Damage seems difficult, but those are Rare.



I guess that formula is a good starting point for the estimate of collateral damage, but I think it underestimates the effect of collateral damage a bit. Many players don't exactly know why collateral damage is so effective (although I think you do know). The reason is that it weakens a unit in 3 ways: it reduces its hitpoints, it reduces the damage an opposing unit inflicts per hit and it reduces the chance an opposing unit has to actually hit during a combat round.

If units strengths are somewhat close to eachother, then reducing a units hitpoints from 100 to 80 weakens the unit by a factor of
80/100 (hitpoints) * 90/100 (damage per combat round) * 80/100 (chance to hit per combat round) = 0.576. So a unit only has 57.6% of its actually strength (measured by its potential to inflict damage) by damaging it to 80 out of 100 hitpoints.
This is one of the main reasons why collateral damage is so powerful.



This is how I would apply collateral damage to the stack strength:

-The effect of collateral damage would only be used if its our turn. Only the attacker can inflict collateral damage.

-determine the average unit strength of the defenders (using normal unit strength with bonuses) (variable E)
-determine the collateral damage strength of the siege unit (variable S)
-determine the number of enemy units susceptible to collateral damage
-find the number of units that this siege unit can optimally hit (can be found in the unit xml file)
-calculate how many units will be hit by collateral damage by calculating the minimum of the above 2 values (variable N)

Collateral damage = 10 * S/E * N (hitpoints)

-Repeat this process for every siege unit in the attacking stack and add up the collateral damage of all of the siege units. This is the number of hitpoints of collateral damage which will be inflicted by the siege units.

-Calculate the average reduction of collateral damage thanks to some of the enemy units having the drill promotion and apply that reduction to the number of hitpoints of collateral damage that was inflicted. (If all the enemy units would have drill II, then the reduction would be 20%, if half of them have the drill II promotion and half of them the drill III promotion, then the reduction would be 30%.)

-Note that there is a maximum amount of collateral damage which can be inflicted. Units cannot be reduced below a certain number of hitpoints by collateral damage alone. Most units which inflict collateral damage cannot reduce the enemy hitpoints below 50%, so it's not so bad to set this maximum number of hitpoints inflicted by collateral damage at 50% of the hitpoints of the enemy units which are susceptible to collateral damage. It's better to actually look at the various siege units available to see what this maximum amount of collateral damage could be. It's again noted in the unit xml files.

Now I want to calculate how much the enemy stack is weakened by this collateral damage. I do this by assuming that the collateral damage is evenly spread among the enemy units. That's not exactly true. It's just an approximation.

Relative damage = (Total enemy hitpoints - Collateral damage) / Total enemy hitpoints

Collateral damage factor = (Relative damage)^2 * (Relative damage +1)/2
(the enemy is weakened in hitpoints, in damage per combat round and in chance to hit)

Now I calculate the enemy stack strength by multiplying everyone of their unit strengths by the collateral damage factor, then applying the x^1.3 function and then adding these modified strength values. Our stack strength is calculated the same except that we don't apply the collateral damage factor to our units, we just apply the x^1.3 function to all our unit strengths and then add these values.

Finished.



Ok, this seems complicated, or it actually is complicated, but for a computer this takes no time at all.

Note that the above described algorithm still ignores the effects of first strikes and specific unit match ups. However, I have an idea how to do that which is fairly ok, but I've typed enough for now. Let's first see the reactions to this lengthy calculation. I personally think that the collateral damage effect is the most important effect to approximate correctly and it is also the hardest effect to calculate somewhat correctly...
 
A couple points I was thinking about while trying to get to sleep last night:

1) Is the problem really with the initial attack decision? I was playing a game yesterday as Mansa. Stalin declared war on me, and moved a stack with 1 Swordsman (CI/CRI), 1 Axeman (CII), and 2 Spearmen (CII) towards my city with 2 Skirmishers (CGII/CGI) in it. The city had 20% cultural defense. Now, that's not really a wonderful attack force, but it's certainly not a suicidal attack.

On the other hand, by the time the enemy got to my city, I was able to reinforce it with 2 more Skirmishers. Attacking at that point became purely suicidal, but they did it anyway (no losses on my side). This is just one example of many that I can point to where the initial decision was justified, but subsequent actions invalidated it.

Can anyone point to a case where at the moment the AI decided to attack a city, it was already a suicide run (admittedly hard to do, because it can be tough to determine when the attack order was given)? If not, which I believe to be the case, then there's no real need to change the current combat odds system, even if it's sub-optimal. We just need to come up with some way for the AI to re-evaluate its actions, and change them to something more productive.

2) Is pillaging really a useful action for an army? Let's ignore the early game for the moment, and focus more on mid-to-late game. The AI has a stack of 25 units coming at you. You've got, say, 10 cities. The AI realizes it can't take the city it was after, so decides to pillage instead. It can only pillage one square a turn, and quite possibly can only do one every other turn, if it doesn't have units with 2 moves. A very conservative estimate, assuming a degree of overlap, means your empire has 150+ tiles. How effective is pillaging 1 tile every 2 turns?

The other option would be to split up the army, and pillage in small raiding groups. But small raiding groups are easy targets, especially when inside your borders. They would almost certainly get picked off easily.

In either case, trying to pillage would seem like a poor decision - especially when you consider that you are paying to keep your troops in hostile territory the whole time.

Bh
 
A couple points I was thinking about while trying to get to sleep last night:

1) Is the problem really with the initial attack decision? I was playing a game yesterday as Mansa. Stalin declared war on me, and moved a stack with 1 Swordsman (CI/CRI), 1 Axeman (CII), and 2 Spearmen (CII) towards my city with 2 Skirmishers (CGII/CGI) in it. The city had 20% cultural defense. Now, that's not really a wonderful attack force, but it's certainly not a suicidal attack.

On the other hand, by the time the enemy got to my city, I was able to reinforce it with 2 more Skirmishers. Attacking at that point became purely suicidal, but they did it anyway (no losses on my side). This is just one example of many that I can point to where the initial decision was justified, but subsequent actions invalidated it.

Can anyone point to a case where at the moment the AI decided to attack a city, it was already a suicide run (admittedly hard to do, because it can be tough to determine when the attack order was given)? If not, which I believe to be the case, then there's no real need to change the current combat odds system, even if it's sub-optimal. We just need to come up with some way for the AI to re-evaluate its actions, and change them to something more productive.

2) Is pillaging really a useful action for an army? Let's ignore the early game for the moment, and focus more on mid-to-late game. The AI has a stack of 25 units coming at you. You've got, say, 10 cities. The AI realizes it can't take the city it was after, so decides to pillage instead. It can only pillage one square a turn, and quite possibly can only do one every other turn, if it doesn't have units with 2 moves. A very conservative estimate, assuming a degree of overlap, means your empire has 150+ tiles. How effective is pillaging 1 tile every 2 turns?

The other option would be to split up the army, and pillage in small raiding groups. But small raiding groups are easy targets, especially when inside your borders. They would almost certainly get picked off easily.

In either case, trying to pillage would seem like a poor decision - especially when you consider that you are paying to keep your troops in hostile territory the whole time.

Bh

The pillaging "in a stack" is slow and doesn't do that much damage (in relative terms) BUT it absolutely forces the defender to eventually do something about it. The defender obviously can't just sit back and let his whole empire be pillaged. Ok it costs the invaders some gpt, but especially with cottage/hamlet/village/towns, it probably costs the defender a whole lot more.

Luring units out of cities to attack a stack, can very often be beneficial to the stack. The stack as you said, shouldn't be split up, as then they can get picked off much more easily.

Pillaging isn't obviously ideal, but its a far better option than hurling a stack to its death against a too tough defender, which only helps the defender.

Its a tricky problem, because if you code the stack to move on to another "better option" city, the defender (as player) can evoke the Civ III trick of moving its defenders from city to city, and the ai attacking never actually attacks. Mind you, on another thought, if the ai can't very quickly find a city worth attacking on first invading, then to my mind, its extremely questionable whether they should be declaring war on said civ in the first place....

Tricky indeed.......
 
A couple points I was thinking about while trying to get to sleep last night:

1) Is the problem really with the initial attack decision? I was playing a game yesterday as Mansa. Stalin declared war on me, and moved a stack with 1 Swordsman (CI/CRI), 1 Axeman (CII), and 2 Spearmen (CII) towards my city with 2 Skirmishers (CGII/CGI) in it. The city had 20% cultural defense. Now, that's not really a wonderful attack force, but it's certainly not a suicidal attack.

On the other hand, by the time the enemy got to my city, I was able to reinforce it with 2 more Skirmishers. Attacking at that point became purely suicidal, but they did it anyway (no losses on my side). This is just one example of many that I can point to where the initial decision was justified, but subsequent actions invalidated it.

Can anyone point to a case where at the moment the AI decided to attack a city, it was already a suicide run (admittedly hard to do, because it can be tough to determine when the attack order was given)? If not, which I believe to be the case, then there's no real need to change the current combat odds system, even if it's sub-optimal. We just need to come up with some way for the AI to re-evaluate its actions, and change them to something more productive.

Doesn't the AI just assemble an army as big as possible, then check if it is big enough for its goal? So, the AI doesn't build an army which is big enough to accomplish a goal (capture a city), but instead builds a big army and then checks whether its big enough for a goal it then determines (such as capturing a city). Or am I mistaken?

I play at high difficulty levels, on huge maps with the aggressive AI setting. When the AI declares, I usually face stacks of at least 20 units (have faced a stack of 150 once) even early in the game (although I'm rarely attacked during the ancient age on huge maps). I normally haven't concentrated my defences in any of my cities to face such a stack without reinforcements. So I always have to readjust my defences to face the attacker.

If the AI uses a stupid formula to re-evaluate the attack order, then it will still perform suicide attacks. Maybe less suicide attacks, but it will still happen. Especially since the defender has all kinds of bonuses which are undervalued in a system where strength values are just added to determine stack strength. If a defender has twice the unit strength of an attacker (after modifiers), then it will on average kill more than 2 of such attackers.

2) Is pillaging really a useful action for an army? Let's ignore the early game for the moment, and focus more on mid-to-late game. The AI has a stack of 25 units coming at you. You've got, say, 10 cities. The AI realizes it can't take the city it was after, so decides to pillage instead. It can only pillage one square a turn, and quite possibly can only do one every other turn, if it doesn't have units with 2 moves. A very conservative estimate, assuming a degree of overlap, means your empire has 150+ tiles. How effective is pillaging 1 tile every 2 turns?

The other option would be to split up the army, and pillage in small raiding groups. But small raiding groups are easy targets, especially when inside your borders. They would almost certainly get picked off easily.

In either case, trying to pillage would seem like a poor decision - especially when you consider that you are paying to keep your troops in hostile territory the whole time.

I think pillaging is most effective when splitting into small groups which consists of mixed units. So the stack of 25 could split in 4 stacks of 6 or 3 of 8 and that would probably be the most efficient way to pillage. When the enemy tries to kill your groups, it will cost him, but if is takes a few turns, then he'll lose quite some tile-improvements. I don't know if it's easy to learn the AI to split its army in a few mixed unit-groups.

Pillaging is not very cost-effective, but when the decision is between pillaging and dying against a good city defence, then pillaging is probably better. When the war declaration hasn't occurred yet or the units haven't landed yet (in case of an amphibious invasion), then retreating to fight another day or searching another target city is probably best.

Letting the AI pillage avoids the risk of coding a retreat code into the AI which is susceptible to puppet-master tactics by the human player. If the AI could estimate the amount of reinforcements that an enemy could get into a second target city before its attack stack would reach that city, then we could let the AI search for another target city. But it's probably hard for an AI to estimate these reinforcements.
 
Back
Top Bottom