I would like to explore the possibility of dynamic AI values for the xml. The powers that be are currently implementing the AI so that most aspects of the game have a numerical value that tells the AI how valuable something is. The value is then weighed against all possible options and the highest value is chosen. This is a great way to build the AI, because any new element added later on can then be incorporated into the current system and the AI will know how to use it. I would suggest allowing these values to change during the game. The value of an improvement or a trait differs depending on other elements of the game. The only way the AI will be able to see these changes is by altering the values it is using to make choices. There are several elements that affect other parts of the game. Time, Resource Levels, Traits, Improvements, City Level, Techs, and Spells are all interconnected. If gaining one of these elements could modify the AI's value of others, it would be much more efficient at using every feature in the game. The beauty of the current system is that you don't need to tell the AI why one element affects another, only that is does and by how much.
The most crucial aspect of this is the hero trait system. The AI values each trait and makes its decisions based on the highest valued trait for that unit. But then how will it choose to specialize in magic? How will it make a proficient archer? It won't likely be able to do anything more than choose traits that are classified as more valuable. I propose that some coding be added so that a given trait can add or subtract value from other traits. If, for example, an AI hero chose Path of the Assassin, it would need to make a choice between becoming an archer or wielding a dagger. Daggers use Strength and bows use Dexterity. Currently the AI would likely be set to always choose daggers because the AI would not be able to make a good archer hero. If it could choose to go after archery, it would need to revalue every trait with a strength bonus because they will no longer be useful. A game modifier that sets the AI value for most of the Strength traits to 0 for this unit would allow the hero to choose good traits for its specialization. The challenge for devs would be to have each hero have its own value for traits and the AI designer would have to do some specific balancing to make sure the AI was behaving. Also, the availability of bows for that faction should be taken into consideration. I would do this by adding value to archer traits from every archery tech.
There are other ways to make sure the AI can use every class, but this way makes sure the AI can be dynamically strategic. It also allows the AI to make interesting choices on the same level as the player. You could have bows get their damage from strength. You could have the AI randomly choose a specialization for each hero, allowing each specialization to choose specific traits. There are lots of options. My idea would add so much to the AI's potential though. I would appreciate some quick feedback on if this is a consideration at all. For all I know you guys have a better system for AI choice. The current beta seems to rely on a simplistic trait system, preventing there from being any mistakes to make. But if there is always a best choice, there is never an interesting choice. You are essentially forcing the player to use the same random choice system the AI uses (5 randomly generated traits, one is the best choice). The users want a more interesting trait system, but they also need for the AI to be able to use it. Hope this idea helps that happen.