tu_79
Deity
I've been thinking on the reckless expansion thing, and I came out with a very early game problem.
See. If you use flat differences (civ has 3 more cities) it can be useless once empires get some real size. If you use relative differences, the second city is a difference of 100%, clearly a value too high for later turns.
So I say skip the first two cities. Wait until a civ settles its third (even fourth) city to start the reckless expansion test. Chances are that the median is already at two. Having three cities when the median is two surely is no reckless expansion. Having four cities when everyone else has two, is.
In pseudocode:
If player has three or more cities and player #cities is more than 175% of median then
Player is city aggressive.
I'm still uncertain about the best way to handle land expansion. Your approach could work, but I have doubts of the efficacy of the logic addition (an OR operator in this case). More likely, a player that has more cities will always have more land. A player that has more land is also a player with more cities.
But tall players (and Shoshone and Russia) have relatively more land per city, so that should be accounted.
An idea is to have the relative territory per city modify the value of what is considered to be aggressive.
For example, I said it could be considered aggressive to have more than 175% of the median of number of cities. Well, maybe, if the land per city is, say, 30% bigger than the median (meaning this player has cities that occupy 130% of the territory more common cities have), then reduce the value what is aggressive by 30%. This player with these large cities would be an aggressive expansionist when it comes to have 122% the median of the number of cities.
In pseudo code,
RelativeTerritory = (Territory/#cities) / (TerritoryMedian/#citiesMedian)
If RelativeTerritory < 1 then {
Relative Territory = - 1 / RelativeTerritory
}
AggExpan = 1.5 - RelativeTerritory
If player has more than two cities and #cities is bigger than AggExpand then player is aggressive expansionist
It is not polished, just an idea.
See. If you use flat differences (civ has 3 more cities) it can be useless once empires get some real size. If you use relative differences, the second city is a difference of 100%, clearly a value too high for later turns.
So I say skip the first two cities. Wait until a civ settles its third (even fourth) city to start the reckless expansion test. Chances are that the median is already at two. Having three cities when the median is two surely is no reckless expansion. Having four cities when everyone else has two, is.
In pseudocode:
If player has three or more cities and player #cities is more than 175% of median then
Player is city aggressive.
I'm still uncertain about the best way to handle land expansion. Your approach could work, but I have doubts of the efficacy of the logic addition (an OR operator in this case). More likely, a player that has more cities will always have more land. A player that has more land is also a player with more cities.
But tall players (and Shoshone and Russia) have relatively more land per city, so that should be accounted.
An idea is to have the relative territory per city modify the value of what is considered to be aggressive.
For example, I said it could be considered aggressive to have more than 175% of the median of number of cities. Well, maybe, if the land per city is, say, 30% bigger than the median (meaning this player has cities that occupy 130% of the territory more common cities have), then reduce the value what is aggressive by 30%. This player with these large cities would be an aggressive expansionist when it comes to have 122% the median of the number of cities.
In pseudo code,
RelativeTerritory = (Territory/#cities) / (TerritoryMedian/#citiesMedian)
If RelativeTerritory < 1 then {
Relative Territory = - 1 / RelativeTerritory
}
AggExpan = 1.5 - RelativeTerritory
If player has more than two cities and #cities is bigger than AggExpand then player is aggressive expansionist
It is not polished, just an idea.