But I dont think that will really work, my unit positioning depends:
1) Location of enemy units
2) Terrain
3) My units
So a rule book would be incredibly complicated. For example, you said that siege units should always be guarded. I disagree, when I get artillery, I place them on the front line, so they can hit cities without being hit themselves.
That's actually why I think it would work. We all play differently and employ different strategies to achieve the same result, but every situation is different. The current AI model doesn't deal with those differences and just barges on ahead the same way over and over and over.
Whilst I completely agree that predetermined strategies would be a massive undertaking, particularly in research terms and subsequent coding, the benefit would be that the AI understood what it was doing a great deal more and it would have the capability to simulate, if not actually be, creative in it's strategic planning.
I'm not proposing that the AI should have a handful of strategies that it can just delve into, more a database that it can filter through to make use of the differing terrain, unit strength, enemy placement/type etc and understand how to handle those situations as an overall problem, rather than an individual unit issue.
For example, I recently had to build a list of proper names and match data from several spreadsheets into it. The first issue was getting all of those names in a correct format.
Names were arranged as Smith, John; Smith John Thomas; Smith-Harrison, Johnathon T, John T Smith etc etc. So I had to build a network of formulas to teach the spreadsheet how to understand how names work.
Basically, I replicated across a spreadsheet how I would determine what a surname is and the criteria I'd use to make that determination. Breaking it down into sections, testing it against known criteria, calculating length and punctuation variables, checking to see if there was a match in the existing list of first and middle names if it got stuck etc. The result was that the spreadsheet can now take a name in any variation and identify the first names, middle names and last names are based on it's thinking process across ~70 conditions and then apply the rest of the data.
That's kinda what I'm proposing here, you enable the AI to understand issues by breaking down the full situation and then apply that understanding to it's experience. The key difference is that AI would have that databank of experience to draw from. It would know that in a given situation X works better than Y but not when Z is going on unless you have A B and C, rather than simply building a unit and sending it out based on strength and function alone and brute forcing it's way to victory.
You would probably have to have a fairly hefty team of people to do the groundwork, but I seriously doubt there is another way to stop the AI from being a mindless unit producing drone and actually present a challenge to players from a tactical standpoint.
But then there's probably also a good reason why they program games and I program VBA!
