- A.I. cities are not well-planned (no specialization) and are usually loaded with monuments (if empire).
This is probably the most unforgivable missing piece of the AI. Its as simple as, have AI set a flag on each city: Tech city, arcane city, gold city, materials city. Build those types of buildings in that city, select those % bonuses for that city, if city reaches population max then build a hut, continue until out of food. If building with % bonus for that resource is available then build first. If you have less than four cities then sett multiple flags on one city and alternate buildings. Congratulations, the city build order is now better than the current city build order for the AI, whatever that may be. This is essentially what I do myself and is not exactly a difficult algorithm to code. If we had a much larger, more complicated selection of buildings, then it might start to get difficult, but as it stands its a very simple process. Now a good player will still probably be able to come up with a slightly more optimized build order for any given situation, but something this simple would still be an improvement.
The only more unforgivable AI problem is its abysmal performance in tactical combat. Such a simple mater as, AI makes sure it always gets first attack is such a simple problem there no forgiving not having at least improved it. Have you ever played the game where you have 13 coins and two players, players alternate taking coins away, they can either take 3, 2 or 1 coin. Player with the last coin loses. This is basically the problem facing the AI in tactical combat to ensure it gets the first attack (only difference is that you can add coins, you can move away from your opponent). This is also a problem with a solution that can be found in most intro Algorithm books, and if the AI is put in the wining position initially, one that it should never lose. Now you throw in some added complications with mixed armies of units with different amounts of movement, and such things as you could move one unit forward and the rest back, which do you pay attention to, etc.) but incorporating any logic of this sort would be an improvement. Even if you don't want to go that far just add a check to see if moving to a given square would put an AI unit directly adjacent to an enemy unit, if true, don't move there. Currently, the tactical AI seems to be obeying the following logic: Run forward, die.