Yes, I use the unofficial patch as a base for my DLL, be crazy not too
My AI changes started with the removal of their bonuses, I wanted to adjust the difficulty levels so all of the handicaps were on the player, not the AI. This way the game could still be made easier or more difficult but wouldn't have the side effects of boosting AI research rates like space race victories in the 1700's. This included removing the AI's free 10 hammers per city which I don't think most people realize is there and it has a HUGE impact on the game.
Once I did that the AI was really crippled accross the board. Looking at the SDK code I could see that the descision making process was actually very well down but it was being overriden by random probabilities that were forcing the AI to build units and/or wonders regardless of what the AI wanted to build. So really, all of that beautiful code to help the AI build a decent army of an appropriate size was wasted because they were forced to build extra units. They were also forced to build wonders in cities that wouldn't benefit from those wonders and sometimes forced to build wonders that wouldn't help them at all, and that is a lot of wasted hammers. This also created a lot of the problems people see with the AI, for instance the AI would build MASSIVE armies and then do nothing with them except pay for their upkeep, so the original game decreased the upkeep costs for the AI resulting in them potentially building armies that the player could never dream of matching. It wouldn't be bad if the AI was running a decent empire with a lot of income but they'd do this if they had 20 cities burried in the tundra without a single food or commerce resource. Overall it just felt cheap, so I removed their random probabilities at the same time I removed their bonuses.
Now, with the random probabilities out, they were making substantially better descisions. They were capable of building a respectable empire with a decent military force to defend it and with which to attack their enemies. They built enough units to defend themseleves, but not so many as to force them to go to war (another random probability) just because they had an idle army. They would still go to war if they had a reson but this small change in military production all but eliminated the issue of the AI declaring war on what should have been a friend. It solved their financial troubles without giving them cheap bonuses because they no longer build excessive units, and since they weren't forced to build units or wonders by a random probability they would build things they needed, including wonders, based on the city itself and their current situation. So if they felt threatened they would build units, if they thought they had enough units they would build walls, and so on.
So at this point the AI was basically unleashed and no longer bound by artificial limitations, no longer receiving unexplained bonuses and no longer being forced into bad descisions like building the great wall on a one city continent while their opponent was building up a huge invasion force three tiles away on another continent.
And this is where I could clearly see the imbalance with traits. Financial civs always had the tech lead and more money. Since more money means bigger armies they tended to be more aggressive than the aggressive players. industrious civs had all of the wonders with very few exceptions and most of the exceptions would have been built by the human player(s). Philisophical civs did well enough but not anything special by itself, although if you had a couple of them you'd see great people born almost every turn for the first half of the game, especially scientists thanks to their cheap libraries.
Certain traits, and more specifically trait combos were obviously under-utilized by the AI. This was extreme enough that a weak trait combo could start in a substantially better area and still lose out to a civ with a stronger trait combo relatively early in the game. You could almost tell who was going to win as soon as you saw who was in the game. The strongest traits (Fin/Ind/Phi) and the weakest traits (Agg/Cha/Imp) could be used as a scale, two strong traits and they'll win, two weak traits and they'll lose. Regardless of who else was in the game, starting positions, the world map or anything short of human player intervention.
The reason for this was pretty obvious since I had my head burried in the AI code for so long. Financial received a solid bonus to commerce in practically every city so they had more gold, research or culture depending on how they wanted to use that commerce. Philisophical received great people like mad early in the game and then used them to bulb techs, go into golden ages, rush wonders or just improve their cities, the exact type of GP depended a lot on their other trait. Unfortunately, this meant leaders like Alexander (Phi/Agg) or Ragnar (Fin/Agg) were only mediocre because of the insignificant advantage gained by the aggressive trait. They also didn't take full advantage of their strong trait because of their aggressive nature, Ragnar didn't build banks and markets everywhere because he wanted a bigger military, Alexander wan't much better, preferring military units over buildings that would allow more specialists so he could spawn more GPs.
Now, spreading out flavor points has some nasty effects. The AI normally does a very good job of prioritizing what to produce at a city (now anyway, not so much before). In fact, I've learned quite a bit just from watching them with my changes in place as some of them have given me quite a humbling lesson. However, spreading out flavor values makes things artifically more important than they really are, part of the problem the AI was having before. If the flavor values are focused they will prefer specific strategies but not to the exclusion of others. Flavor basically works as a modifier to the value that the AI calculates for a production order so with some focus they get their fix of flavor buildings pretty quickly and then move on based on the calculated values of other buildings. Essentially flavor values help prioritize their production preferences so adding more flavor types has the same net effect as removing others, you'll eventually end up with leaders that all act the same with no... flavor
This is also why I mentioned before that double production speed has a huge impact on the game, it can break flavor preferences and make an otherwise useless building appear useful based on it's cost vs. the gain received from it. You could actually change the traits so that every single one of them only had double production speed bonuses and nothing else and the result would be pretty good if you made wise choices.
My AI changes started with the removal of their bonuses, I wanted to adjust the difficulty levels so all of the handicaps were on the player, not the AI. This way the game could still be made easier or more difficult but wouldn't have the side effects of boosting AI research rates like space race victories in the 1700's. This included removing the AI's free 10 hammers per city which I don't think most people realize is there and it has a HUGE impact on the game.
Once I did that the AI was really crippled accross the board. Looking at the SDK code I could see that the descision making process was actually very well down but it was being overriden by random probabilities that were forcing the AI to build units and/or wonders regardless of what the AI wanted to build. So really, all of that beautiful code to help the AI build a decent army of an appropriate size was wasted because they were forced to build extra units. They were also forced to build wonders in cities that wouldn't benefit from those wonders and sometimes forced to build wonders that wouldn't help them at all, and that is a lot of wasted hammers. This also created a lot of the problems people see with the AI, for instance the AI would build MASSIVE armies and then do nothing with them except pay for their upkeep, so the original game decreased the upkeep costs for the AI resulting in them potentially building armies that the player could never dream of matching. It wouldn't be bad if the AI was running a decent empire with a lot of income but they'd do this if they had 20 cities burried in the tundra without a single food or commerce resource. Overall it just felt cheap, so I removed their random probabilities at the same time I removed their bonuses.
Now, with the random probabilities out, they were making substantially better descisions. They were capable of building a respectable empire with a decent military force to defend it and with which to attack their enemies. They built enough units to defend themseleves, but not so many as to force them to go to war (another random probability) just because they had an idle army. They would still go to war if they had a reson but this small change in military production all but eliminated the issue of the AI declaring war on what should have been a friend. It solved their financial troubles without giving them cheap bonuses because they no longer build excessive units, and since they weren't forced to build units or wonders by a random probability they would build things they needed, including wonders, based on the city itself and their current situation. So if they felt threatened they would build units, if they thought they had enough units they would build walls, and so on.
So at this point the AI was basically unleashed and no longer bound by artificial limitations, no longer receiving unexplained bonuses and no longer being forced into bad descisions like building the great wall on a one city continent while their opponent was building up a huge invasion force three tiles away on another continent.
And this is where I could clearly see the imbalance with traits. Financial civs always had the tech lead and more money. Since more money means bigger armies they tended to be more aggressive than the aggressive players. industrious civs had all of the wonders with very few exceptions and most of the exceptions would have been built by the human player(s). Philisophical civs did well enough but not anything special by itself, although if you had a couple of them you'd see great people born almost every turn for the first half of the game, especially scientists thanks to their cheap libraries.
Certain traits, and more specifically trait combos were obviously under-utilized by the AI. This was extreme enough that a weak trait combo could start in a substantially better area and still lose out to a civ with a stronger trait combo relatively early in the game. You could almost tell who was going to win as soon as you saw who was in the game. The strongest traits (Fin/Ind/Phi) and the weakest traits (Agg/Cha/Imp) could be used as a scale, two strong traits and they'll win, two weak traits and they'll lose. Regardless of who else was in the game, starting positions, the world map or anything short of human player intervention.
The reason for this was pretty obvious since I had my head burried in the AI code for so long. Financial received a solid bonus to commerce in practically every city so they had more gold, research or culture depending on how they wanted to use that commerce. Philisophical received great people like mad early in the game and then used them to bulb techs, go into golden ages, rush wonders or just improve their cities, the exact type of GP depended a lot on their other trait. Unfortunately, this meant leaders like Alexander (Phi/Agg) or Ragnar (Fin/Agg) were only mediocre because of the insignificant advantage gained by the aggressive trait. They also didn't take full advantage of their strong trait because of their aggressive nature, Ragnar didn't build banks and markets everywhere because he wanted a bigger military, Alexander wan't much better, preferring military units over buildings that would allow more specialists so he could spawn more GPs.
Now, spreading out flavor points has some nasty effects. The AI normally does a very good job of prioritizing what to produce at a city (now anyway, not so much before). In fact, I've learned quite a bit just from watching them with my changes in place as some of them have given me quite a humbling lesson. However, spreading out flavor values makes things artifically more important than they really are, part of the problem the AI was having before. If the flavor values are focused they will prefer specific strategies but not to the exclusion of others. Flavor basically works as a modifier to the value that the AI calculates for a production order so with some focus they get their fix of flavor buildings pretty quickly and then move on based on the calculated values of other buildings. Essentially flavor values help prioritize their production preferences so adding more flavor types has the same net effect as removing others, you'll eventually end up with leaders that all act the same with no... flavor
This is also why I mentioned before that double production speed has a huge impact on the game, it can break flavor preferences and make an otherwise useless building appear useful based on it's cost vs. the gain received from it. You could actually change the traits so that every single one of them only had double production speed bonuses and nothing else and the result would be pretty good if you made wise choices.