The huge problem that always comes up with these things, and what people don't always take into consideration, is how do you code it. There are a lot of good suggestions in this thread, but how do we actually put it into a meaningful code? We also need to remember that even if we get a code that makes the AI do meaningful actions 90 % of the time, the human player will exploit those final 10 %. Anyway, as to the thing with local combat progress, something one could introduce is a check for a combat strength evolution on a turn-by-turn basis when AI is in combat. For instance, if they are engaged in a combat situation with me, and my combat strength is constant over time (i.e. I don't lose any units), this should trigger some sort of check. It should be possible to code such a check fairly easily, and if for instance AI hasn't been able to reduce my army strength and unit numbers significantly over, say, a 5 turn period, it should reconsider whether combat is the correct way to proceed, instead of just mindlessly continuing to pile units at me.