Barathor
Emperor
- Joined
- May 7, 2011
- Messages
- 1,202
The questionable choices the game makes when acquiring tiles is certainly nothing new. It’s been a minor annoyance of mine for a very long time; especially with regards to distant sea resources. The only difference now is that I took the bit of time to run some tests and created some example imagery (Though, that was actually the easy part, writing this all out took the most time!). Also, while doing so, I ran into some other issues I never really realized and probably overlooked while attending more important matters during actual gameplay. Also, I’m not saying the system is bad. It’s actually pretty nice. There are just some adjustments (or even additions) that need to be made to improve some things and make it prioritize certain tiles a little better by giving them more appropriate, cheaper influence costs (or conversely, giving higher influence costs to others, like mountains.)
I posted these examples over in the 2K forums that I used to frequent and I wanted to share this information with the fanatics (like myself) and see what you guys think about it; I hope it's found to be useful and informative. I’m also hoping someone over here knows how the system actually works and how the XML numbers relate to it. Then, maybe we could make some modifications to rectify certain issues. I tried myself to calculate each tile's influence cost and run thru the acquisition order, but I was getting inconsistencies due to innaccurate calculations. Also, maybe even the devs will come across this thread and tweak the system when they can get around to it.
-----
Currently, one of the biggest issues is the acquisition of sea resources within the last ring of a city’s workable tiles (3 tiles away). I call these resources “lost at sea” because it’s usually a very, very long time before the system notices them and values them enough to automatically acquire them. You’re pretty much forced to lay down cash if you want to work these tiles within a reasonable amount of time.
On land, it isn’t much of an issue and land resources that are 3 tiles away will get snatched-up in a reasonable amount of time. Heck, even land resources 4 tiles away, outside of the city’s workable radius, will most often be acquired before sea resources 3 tiles away. Also, on land it isn’t much of an issue anyway since most times you can usually just settle another city, with a bit of overlap, to grab distant land resources even faster.
-----
For these tests, I generated Small Continents maps (because they’re always coastal starts and have a nice amount of land too) until I had a desirable example. I used Firetuner to load-up the city with all the cultural buildings/wonders. Also, with a few clicks of the “1,000 gold” button, their maintenance costs weren’t an issue. I also enabled policy saving so I wouldn’t have to be bothered with these besides the initial Tradition/Liberty culture bonuses. With that setup, I could rapidly acquire tiles and observe between acquisitions the city’s magenta-bordered targets. Also, yes, I stayed away from researching Animal Husbandry or Iron Working so that no resources appear and disrupt my tests.
Also, I'll add that I reloaded these starting setups and did two additional tests. The first adding in a lighthouse amongst the cultural buildings and wonders, and second, adding in a harbor and seaport along with the additional lighthouse. Both tests displayed no changes. I believe this is because the tiles don't receive the bonuses until they're acquired culturally, something I've actually never noticed or paid attention to before. So, despite what may initially seem logical, it doesn't really help here.
I used different colors to display the instances where multiple tiles were equal in influence costs and the target would be random (multiple magenta-bordered tiles within the city view). Though, the first consecutive tile acquisitions that are red were all individual, deliberate targets. I didn’t feel it was necessary to display them all as unique colors. Though, everything else is accurate.
Also, in the first example, with regards to the orange 26 thru 30 and the brown 29 in the middle of it, that was because the four orange tiles were originally equal targets until 28 was acquired. Then, the system “noticed” the stone resource and jumped on it since its influence cost drastically plummeted once it became an adjacent tile. I chose to keep all those tiles orange to show they were equally considered at that time.
Test A:
Rundown:
1) Starts out normally. The system grabbed the salt, then the cow, then the fish in a reasonable amount of time.
2) Now, ideally, the next tile that most players would like to acquire after that 5th tile is #14 and then #22 to improve the fish. If not, then definitely the riverside tiles which can net yields of 4 when improved at that time. Instead, the system goes after regular hill tiles (with or without jungle/forest) and grass tiles.
3) Eventually, it DOES grab those 2nd-ring coastal tiles. Great, now it should be more attracted to that fish resource... well, no. Instead, it reaches way out towards the two unworkable resources (still, not that bad since they worked out to be luxuries which could always either be traded or utilized if unique. BUT, the system didn’t know they were, lol. To it, they’re just simply resources. They could’ve been bonus ones which are useless to this city.). This is an example of how land tiles trump water tiles with regard to influence. Resources 4 tiles away on land can have cheaper influence costs than water resources 3 tiles away.
4) Finally, the system acquires the three workable riverside tiles. Why couldn’t it do that sooner? Does the system REALLY put a penalty on riverside tiles on the opposite side of a river? Who cares if they’re on the other side! And yes, I believe the system does since there’s an element within GlobalDefines: INFLUENCE_RIVER_COST, Value=1. I could be wrong, and at first I would believe that maybe that sets all tiles next to a river at a base of 1. But, judging by the systems behavior in this test, it seems like it’s more of an additional penalty added on since it chose all the yellow numbered tiles before the opposite-side riverside tiles, even the grassland tiles that were equally 3 tiles away. This may be a little “realistic” when it comes to border expansion, since many times a river becomes a natural border to a territory. But, this is still a strategy game and this seems a bit unnecessary.
5) THIS IS THE BEST PART!! After acquiring those workable riverside tiles, it still ignores the fish and acquires the two useless mountain tiles instead! <faint> I knew those mountains were going to provide some interesting results when I generated the map and saw them.
6) After that, not much else is interesting. It reaches way out and grabs the two bonus resources within its limits, then some regular tiles 3 tiles away within its workable radius. It also happens upon the distant stone while acquiring random tiles. Eventually, it finally finishes obtaining all coastal tiles within its workable area. I stopped here since I felt I already went further than I needed with this test.
Test B:
Rundown:
1) The game snatched-up all the resources and fertile tiles within the 2nd ring right away up to #5.
2) It then chose tile number #6, which seems strange to me given that there was a riverside plains tile (#13) the same distance, along with the adjacent one (#22) which is across the river. Also, the salt tile (#11) was the same distance away too and is a crucial tile to obtain, I think it should've acquired that one much sooner too. Still, if a "river crossing" penalty does exist, it still doesn't explain why it didn't choose tile #13 over #6.
3) It then proceeds to acquire tile #7. k. First, this shows how penalizing distance is when calculating influence costs since this was still cheaper than the available riverside tiles and salt. Second, this also shows the penalties received by just being within the coastal waters and not land... a desert tile is cheaper than them.
4) A third oddity so far. The pearls has just become an adjacent tile via the newly obtained desert tile (#7). But, instead of grabbing it, coastal tiles #8,9,10 are still cheaper cost-wise. Again, because they're 2nd ring tiles and the sea resources are within the 3rd ring.
5) The fish and pearls are still lost at sea. The salt (#11) is finally acquired, followed by the distant, additional salt (#12) within the unworkable 4th ring. At least it'll be useful for trade. This also leads to another observation, perhaps the system DOES distinguish between types of resources since it neglected the distant sheep (which is pretty much in the same situation as the salt). It also neglected the distant wheat and the truffles (luxury), but that's because there may be some strange "river crossing" penalty again which raises influence costs of tiles passed it.
6) Grabs the last riverside tile on the same side as the city, followed by the distant hill. Now, all that's left within the workable radius are desert hills, mountains, tiles across the river, and... coastal tiles which also have resources. Oh, and an incense hidden behind the mountains, still within the 3rd ring. I actually placed that there myself at the beginning to see if mountains have the same effect as rivers (since I suspected it from the other map) and it seems like it does. (I also placed that pearl luxury there too at a distance of 3 at the beginning to see if it grabs a luxury sea resource any sooner than a fish, and also to see if an adjacent land tile would help obtain it. Nope.) Anyway, this setup didn't disappoint, and as expected it grabbed the crappy mountains over acquiring a luxury and bonus sea resource. So, even mountains within the 2nd ring will always trump sea resources within the 3rd ring.
7) Strangely, the system grabs the last 2nd ring tile, an ocean (#19), instead of obtaining the adjacent, unique incense within the 3rd ring. Again, perhaps mountains give off a penalty when they're "crossed" while counting tile distance.
8) Finally, the last workable riverside tiles are acquired.
I posted these examples over in the 2K forums that I used to frequent and I wanted to share this information with the fanatics (like myself) and see what you guys think about it; I hope it's found to be useful and informative. I’m also hoping someone over here knows how the system actually works and how the XML numbers relate to it. Then, maybe we could make some modifications to rectify certain issues. I tried myself to calculate each tile's influence cost and run thru the acquisition order, but I was getting inconsistencies due to innaccurate calculations. Also, maybe even the devs will come across this thread and tweak the system when they can get around to it.
-----
Currently, one of the biggest issues is the acquisition of sea resources within the last ring of a city’s workable tiles (3 tiles away). I call these resources “lost at sea” because it’s usually a very, very long time before the system notices them and values them enough to automatically acquire them. You’re pretty much forced to lay down cash if you want to work these tiles within a reasonable amount of time.
On land, it isn’t much of an issue and land resources that are 3 tiles away will get snatched-up in a reasonable amount of time. Heck, even land resources 4 tiles away, outside of the city’s workable radius, will most often be acquired before sea resources 3 tiles away. Also, on land it isn’t much of an issue anyway since most times you can usually just settle another city, with a bit of overlap, to grab distant land resources even faster.
-----
For these tests, I generated Small Continents maps (because they’re always coastal starts and have a nice amount of land too) until I had a desirable example. I used Firetuner to load-up the city with all the cultural buildings/wonders. Also, with a few clicks of the “1,000 gold” button, their maintenance costs weren’t an issue. I also enabled policy saving so I wouldn’t have to be bothered with these besides the initial Tradition/Liberty culture bonuses. With that setup, I could rapidly acquire tiles and observe between acquisitions the city’s magenta-bordered targets. Also, yes, I stayed away from researching Animal Husbandry or Iron Working so that no resources appear and disrupt my tests.
Also, I'll add that I reloaded these starting setups and did two additional tests. The first adding in a lighthouse amongst the cultural buildings and wonders, and second, adding in a harbor and seaport along with the additional lighthouse. Both tests displayed no changes. I believe this is because the tiles don't receive the bonuses until they're acquired culturally, something I've actually never noticed or paid attention to before. So, despite what may initially seem logical, it doesn't really help here.
I used different colors to display the instances where multiple tiles were equal in influence costs and the target would be random (multiple magenta-bordered tiles within the city view). Though, the first consecutive tile acquisitions that are red were all individual, deliberate targets. I didn’t feel it was necessary to display them all as unique colors. Though, everything else is accurate.
Also, in the first example, with regards to the orange 26 thru 30 and the brown 29 in the middle of it, that was because the four orange tiles were originally equal targets until 28 was acquired. Then, the system “noticed” the stone resource and jumped on it since its influence cost drastically plummeted once it became an adjacent tile. I chose to keep all those tiles orange to show they were equally considered at that time.
Test A:

Rundown:
1) Starts out normally. The system grabbed the salt, then the cow, then the fish in a reasonable amount of time.
2) Now, ideally, the next tile that most players would like to acquire after that 5th tile is #14 and then #22 to improve the fish. If not, then definitely the riverside tiles which can net yields of 4 when improved at that time. Instead, the system goes after regular hill tiles (with or without jungle/forest) and grass tiles.
3) Eventually, it DOES grab those 2nd-ring coastal tiles. Great, now it should be more attracted to that fish resource... well, no. Instead, it reaches way out towards the two unworkable resources (still, not that bad since they worked out to be luxuries which could always either be traded or utilized if unique. BUT, the system didn’t know they were, lol. To it, they’re just simply resources. They could’ve been bonus ones which are useless to this city.). This is an example of how land tiles trump water tiles with regard to influence. Resources 4 tiles away on land can have cheaper influence costs than water resources 3 tiles away.
4) Finally, the system acquires the three workable riverside tiles. Why couldn’t it do that sooner? Does the system REALLY put a penalty on riverside tiles on the opposite side of a river? Who cares if they’re on the other side! And yes, I believe the system does since there’s an element within GlobalDefines: INFLUENCE_RIVER_COST, Value=1. I could be wrong, and at first I would believe that maybe that sets all tiles next to a river at a base of 1. But, judging by the systems behavior in this test, it seems like it’s more of an additional penalty added on since it chose all the yellow numbered tiles before the opposite-side riverside tiles, even the grassland tiles that were equally 3 tiles away. This may be a little “realistic” when it comes to border expansion, since many times a river becomes a natural border to a territory. But, this is still a strategy game and this seems a bit unnecessary.
5) THIS IS THE BEST PART!! After acquiring those workable riverside tiles, it still ignores the fish and acquires the two useless mountain tiles instead! <faint> I knew those mountains were going to provide some interesting results when I generated the map and saw them.
6) After that, not much else is interesting. It reaches way out and grabs the two bonus resources within its limits, then some regular tiles 3 tiles away within its workable radius. It also happens upon the distant stone while acquiring random tiles. Eventually, it finally finishes obtaining all coastal tiles within its workable area. I stopped here since I felt I already went further than I needed with this test.
Test B:

Rundown:
1) The game snatched-up all the resources and fertile tiles within the 2nd ring right away up to #5.
2) It then chose tile number #6, which seems strange to me given that there was a riverside plains tile (#13) the same distance, along with the adjacent one (#22) which is across the river. Also, the salt tile (#11) was the same distance away too and is a crucial tile to obtain, I think it should've acquired that one much sooner too. Still, if a "river crossing" penalty does exist, it still doesn't explain why it didn't choose tile #13 over #6.
3) It then proceeds to acquire tile #7. k. First, this shows how penalizing distance is when calculating influence costs since this was still cheaper than the available riverside tiles and salt. Second, this also shows the penalties received by just being within the coastal waters and not land... a desert tile is cheaper than them.
4) A third oddity so far. The pearls has just become an adjacent tile via the newly obtained desert tile (#7). But, instead of grabbing it, coastal tiles #8,9,10 are still cheaper cost-wise. Again, because they're 2nd ring tiles and the sea resources are within the 3rd ring.
5) The fish and pearls are still lost at sea. The salt (#11) is finally acquired, followed by the distant, additional salt (#12) within the unworkable 4th ring. At least it'll be useful for trade. This also leads to another observation, perhaps the system DOES distinguish between types of resources since it neglected the distant sheep (which is pretty much in the same situation as the salt). It also neglected the distant wheat and the truffles (luxury), but that's because there may be some strange "river crossing" penalty again which raises influence costs of tiles passed it.
6) Grabs the last riverside tile on the same side as the city, followed by the distant hill. Now, all that's left within the workable radius are desert hills, mountains, tiles across the river, and... coastal tiles which also have resources. Oh, and an incense hidden behind the mountains, still within the 3rd ring. I actually placed that there myself at the beginning to see if mountains have the same effect as rivers (since I suspected it from the other map) and it seems like it does. (I also placed that pearl luxury there too at a distance of 3 at the beginning to see if it grabs a luxury sea resource any sooner than a fish, and also to see if an adjacent land tile would help obtain it. Nope.) Anyway, this setup didn't disappoint, and as expected it grabbed the crappy mountains over acquiring a luxury and bonus sea resource. So, even mountains within the 2nd ring will always trump sea resources within the 3rd ring.
7) Strangely, the system grabs the last 2nd ring tile, an ocean (#19), instead of obtaining the adjacent, unique incense within the 3rd ring. Again, perhaps mountains give off a penalty when they're "crossed" while counting tile distance.
8) Finally, the last workable riverside tiles are acquired.
Spoiler Reference Values :
Now, here are some numbers for reference:
Base Influence values:
Grass, Plain: 1
Coast, Hill, Snow, Tundra, Desert: 2
Mountain, Ocean: 3
Ice: +2
Forest, Jungle, Marsh: +1
River(?): +1
Oasis, Flood Plain: -1
Natural Wonders: -3
Values within GlobalDefines:
PLOT_INFLUENCE_BASE_MULTIPLIER = 100
(I assume this multiplies the base by 100. Though, I’m not sure whether it does this to treat it like a decimal, or if it wants a large number for other adjustments to be applied to it.)
PLOT_INFLUENCE_DISTANCE_MULTIPLIER = 100
(This is where I’m a bit unsure. It seems obvious at first, multiply the number of tiles the target is from the city by 100, but there’s something else affecting influence costs. Also, does it start counting adjacent to the city, the city tile itself, adjacent to the first ring? I assumed 1 is adjacent to the city. Although, perhaps this distance multiplier applies to the total movement cost towards the target tile instead and RING_COST simply adds another 100 to each “ring” further from the city.)
PLOT_INFLUENCE_DISTANCE_DIVISOR = 3
(Again, same thing, unsure of this after running thru test. I assumed this takes the above product and divides it by 3.)
PLOT_INFLUENCE_RING_COST = 100
(Another I’m unsure of. Perhaps this is an additional cost applied to tiles outside of a city’s maximum workable ring, after multipliers are applied. Or, maybe this is an additional value tacked-on to each further ring… example: +100, +200, +300…
PLOT_INFLUENCE_WATER_COST = 25
(I assume this is an additional cost applied to water tiles after multipliers are applied.)
PLOT_INFLUENCE_IMPROVEMENT_COST = -5
(A tweak to a tile’s influence costs if an improvement is on it.)
PLOT_INFLUENCE_ROUTE_COST =0
(Same thing, but for a route. Does nothing at zero)
PLOT_INFLUENCE_RESOURCE_COST = -105
(If any resource is present, subtract this from the total.)
PLOT_INFLUENCE_NW_COST = -105
(Same thing as above, but for natural wonders.)
PLOT_INFLUENCE_YIELD_POINT_COST = -1
(I assume this is another tweak to costs where it subtracts from the total the net amount of yields it provides. Example: a riverside plains tile 1F1P1G would get -3.)
PLOT_INFLUENCE_NO_ADJACENT_OWNED_COST = 1000
(This keeps the borders flowing like a puddle, to adjacent tiles. No independent “drops” of territory.)
INFLUENCE_MOUNTAIN_COST = 3
(Oddly, this and hills are assigned in GlobalDefines and not within the terrain XML.)
INFLUENCE_HILL_COST = 2
INFLUENCE_RIVER_COST = 1
(Unsure of this, but judging by my test, I’m leaning more towards the idea that this is applied to tiles when a river must be crossed from the city to reach this tile… strange as that may be.)
USE_FIRST_RING_INFLUENCE_TERRAIN_COST = 0
(I assume this is a boolean, telling it not to. Though, outside of that, I’m not sure what it “exactly” affects.)
Also note, judging by the system’s behavior and the order in which it acquired tiles and grouped them, I believe it treats a hill tile and a forest/jungle hill tile equally at 2 (it doesn’t add on another +1 for the foliage). It makes sense, since the tile still remains at a net yield amount of 2. If it was given an influence cost of 3, it would be treated as useless mountains, which is a bit excessive.
Base Influence values:
Grass, Plain: 1
Coast, Hill, Snow, Tundra, Desert: 2
Mountain, Ocean: 3
Ice: +2
Forest, Jungle, Marsh: +1
River(?): +1
Oasis, Flood Plain: -1
Natural Wonders: -3
Values within GlobalDefines:
PLOT_INFLUENCE_BASE_MULTIPLIER = 100
(I assume this multiplies the base by 100. Though, I’m not sure whether it does this to treat it like a decimal, or if it wants a large number for other adjustments to be applied to it.)
PLOT_INFLUENCE_DISTANCE_MULTIPLIER = 100
(This is where I’m a bit unsure. It seems obvious at first, multiply the number of tiles the target is from the city by 100, but there’s something else affecting influence costs. Also, does it start counting adjacent to the city, the city tile itself, adjacent to the first ring? I assumed 1 is adjacent to the city. Although, perhaps this distance multiplier applies to the total movement cost towards the target tile instead and RING_COST simply adds another 100 to each “ring” further from the city.)
PLOT_INFLUENCE_DISTANCE_DIVISOR = 3
(Again, same thing, unsure of this after running thru test. I assumed this takes the above product and divides it by 3.)
PLOT_INFLUENCE_RING_COST = 100
(Another I’m unsure of. Perhaps this is an additional cost applied to tiles outside of a city’s maximum workable ring, after multipliers are applied. Or, maybe this is an additional value tacked-on to each further ring… example: +100, +200, +300…

PLOT_INFLUENCE_WATER_COST = 25
(I assume this is an additional cost applied to water tiles after multipliers are applied.)
PLOT_INFLUENCE_IMPROVEMENT_COST = -5
(A tweak to a tile’s influence costs if an improvement is on it.)
PLOT_INFLUENCE_ROUTE_COST =0
(Same thing, but for a route. Does nothing at zero)
PLOT_INFLUENCE_RESOURCE_COST = -105
(If any resource is present, subtract this from the total.)
PLOT_INFLUENCE_NW_COST = -105
(Same thing as above, but for natural wonders.)
PLOT_INFLUENCE_YIELD_POINT_COST = -1
(I assume this is another tweak to costs where it subtracts from the total the net amount of yields it provides. Example: a riverside plains tile 1F1P1G would get -3.)
PLOT_INFLUENCE_NO_ADJACENT_OWNED_COST = 1000
(This keeps the borders flowing like a puddle, to adjacent tiles. No independent “drops” of territory.)
INFLUENCE_MOUNTAIN_COST = 3
(Oddly, this and hills are assigned in GlobalDefines and not within the terrain XML.)
INFLUENCE_HILL_COST = 2
INFLUENCE_RIVER_COST = 1
(Unsure of this, but judging by my test, I’m leaning more towards the idea that this is applied to tiles when a river must be crossed from the city to reach this tile… strange as that may be.)
USE_FIRST_RING_INFLUENCE_TERRAIN_COST = 0
(I assume this is a boolean, telling it not to. Though, outside of that, I’m not sure what it “exactly” affects.)
Also note, judging by the system’s behavior and the order in which it acquired tiles and grouped them, I believe it treats a hill tile and a forest/jungle hill tile equally at 2 (it doesn’t add on another +1 for the foliage). It makes sense, since the tile still remains at a net yield amount of 2. If it was given an influence cost of 3, it would be treated as useless mountains, which is a bit excessive.