I am wondering how difficult it would be to give the AI some more character. The AI currently already has the ability to ask for help, ask for tribute, decides to tribute resources to you when you're low on resources, tells you when it's planning to attack the enemy, etc.
Some things I think we could add:
Personalities
I think we could assign personalities to each of the AI names listed in the civ json files. So, we could make some of the names act defensively, some act aggressively, and others balanced. Perhaps we can weight each of these behaviors as well.
"AINames": [
{
"Name": "Cimon",
"Behaviors": [
{ "Aggressive", "Weight": 3 },
{ "Defensive", "Weight": 1 },
{ "Balanced", "Weight": 2 }
]
},
"Aristides",
"Xenophon",
"Hippias",
"Cleisthenes",
"Thucydides",
"Alcibiades",
"Miltiades",
"Cleon",
"Cleophon",
"Thrasybulus",
"Demosthenes"
],
Please forgive my syntax, I'm not a programmer, but I think the above is a decent illustration of what I mean. Weight, for lack of better term, would be the ratio of how likely that AIName will choose that behavior. If no behavior is chosen (as with the rest of the list here, I'm lazy), then the behaviors all default to 1.
Then we can assign different taunts/chats for each behavior, so that by how they are talking to you, you can understand how they'll behave.
Surrendering
The AI should see that its cause is hopeless and surrenders. The criteria for this can be based on the behavior the AI has been given. We'd just have to choose and assign parameters for this to happen.
The AI should have events that trigger chats which indicate it's about to surrender. It'll tribute resources to its allies, and perhaps the ratio of resources it tributes can be determined by its chosen Behavior as well (aggressive gives all resources to the strongest ally; defensive to the weakest ally; balanced an equal share to all allies). And then the AI surrenders. It shouldn't all happen at once. Perhaps 10 seconds between events/chats/tributes.