OH NO! I finally figured it out!!
from
Stardock Forums
Okay, remember for the past few days we've had these heated debates about whether the AI was being exploited with tribute for techs.
Then a few days later we figured out that paying the AI tribute actually counted as a negative expense (i.e. it SUBTRACTED the money from your expenses in effect giving you money).
Olaf on QT3 finally got me thinking about it and I just realized why the AI was accepting those deals. It was EXPLOITING THE HUMAN. The AI doesn't know the INTENT of the rules, it only knows the rules of the game. And from its vantage point, paying you X for Y turns was lowering its expenses for that time. So it was accepting these deals because they were good for it. The update I made earlier in the weak weakened this in other ways but it didn't get around the basic issue - the AI got money by trading you money for tech.
In short, it's not you guys who were cheesing/exploiting the AI. It was the AI cheesing/exploiting us.
Fix going in today. Sorry about that.
The cause is that the function pCivilization->CalcTributeOut() returns a NEGATIVE number (negative income). But it's treated as an expense in the income/expense calcuation.
~SDC~
Then a few days later we figured out that paying the AI tribute actually counted as a negative expense (i.e. it SUBTRACTED the money from your expenses in effect giving you money).
Olaf on QT3 finally got me thinking about it and I just realized why the AI was accepting those deals. It was EXPLOITING THE HUMAN. The AI doesn't know the INTENT of the rules, it only knows the rules of the game. And from its vantage point, paying you X for Y turns was lowering its expenses for that time. So it was accepting these deals because they were good for it. The update I made earlier in the weak weakened this in other ways but it didn't get around the basic issue - the AI got money by trading you money for tech.
In short, it's not you guys who were cheesing/exploiting the AI. It was the AI cheesing/exploiting us.
Fix going in today. Sorry about that.
The cause is that the function pCivilization->CalcTributeOut() returns a NEGATIVE number (negative income). But it's treated as an expense in the income/expense calcuation.
~SDC~