Realistic Culture Spread

StormLord-711-

Winter is Coming
Joined
Jan 3, 2008
Messages
191
Does anyone have a more thorough knowledge of how this mechanic works? I know that it means that there are a couple more culture levels added (is it exactly 2?) and that culture spreads slower over lower lands faster than higher ones, but what are the exact values that come into play here? I recently had a game where it took a city two border pops after it would without this option on to get an ocean tile two tiles away. I also noticed that while culture will spread into grasslands immediately after the border pop, if I chop down a forest that was preventing my borders from moving earlier, my borders don't then immediately take that tile like intuition would say they would (in other words, had I chopped that tile before the border pop, it would be mine, but not if I chop it afterwards).
 
That's true. You would have had that tile if no forest was on it. But if you have fixed borders and move a unit on it, claim the tile and then chop it you can leave the tile with the unit and the tile stays yours just as if you'd gotten it in the first place. Just a little help... ;-)
 
Actually, now that I think about it, I know I ran into some xml file that seemed to control realistic culture spread and how much culture each kind of tile got. I could probably tweak this feature to my liking with it, but I can't seem to find it again. Anyone know where it is?
 
It could be the iCultureDistance modifier in /RAND/Assets/XML/Terrain/Civ4TerrainInfos.xml but I'm not sure.
 
StormLord wrote:(in other words, had I chopped that tile before the border pop, it would be mine, but not if I chop it afterwards).

That's one of the many reasons I don't use this option. Vanilla BtS the AI chopped everything and lost out because of it. This pushes the AI back into old habits that with this mod are counter intuitive, thereby reducing the AI's effectiveness. At least imho it does.

JosEPh
 
The thing for me is I want to like this option, but I'm having trouble doing that because of the annoying ways in which it affects gameplay.

It could be the iCultureDistance modifier in /RAND/Assets/XML/Terrain/Civ4TerrainInfos.xml but I'm not sure.

I don't think that's it. Maybe it affects this option, but I think I distinctly remember seeing some file that allowed you to adjust the variables of how much each type of terrain/feature was weighted in regards to culture spread, and I think they were all next to each other.
 
Hmm. Yeah, that is too bad. I guess I'll never know for sure where they are.

Thanks. Sorry, I had no idea XML tags were in that thread (should have looked there).
 
Hi,

sorry to revive an old thread, but this was the most appropriate one I found on the topic.

My understanding of culture spread onto tiles is that for any given city Culture level, each turn a certain amount of culture is added to tiles within the current Culture level's radius. The outermost ring gets a small amount each turn, and each successive ring closer to the city gets more culture per turn. Is this corect?

If that's how it works, then for each city Culture level, a constant amount of culture is deposited on tiles around the city, even on tiles you don't own because someone else currently has more culture.

Now, when using Realistic Culture Spread, is the total amount of culture deposited each turn constant, or not? I suspect not, but that's just a guess. If it were constant, then for a city with just a few grass tiles nearby, and otherwise surrounded by forest, the few grass tiles would initially get lots of culture on them, because the forest tiles weren't claimed yet. But seeing the XML "iCultureDistance" tag, I suspect this isn't the case.

Does a tile with a higher "iCultureDistance" value than the city's current Culture level simply not accept culture from that city? Or, does the culture accumulate on the tile, but ownership is suppressed until the Culture level reaches the "iCultureDistance" threshold? That would seem consistent with what DRJ said about using a unit to claim a recently chopped forest: once it's just grass, the tile maintains ownership once the unit leaves.

The reason I want to understand this is partly because I want to find out whether or not it would be possible to make culture spread faster along roads. I don't see any Road type 'improvement' in "CIV4ImprovementInfos.xml", so I presume 'routes' are treated separately.

I would also be interested to know whether the ownership mechanic could be modified easily. Is it Python (which I could happily play with myself), or is it in the compiled (DLL?) code? What I want to do is give all terrain a culture threshold below which you don't have ownership, above which you can have. Then cultural expansion can happen tile-by-tile rather than in one sudden CHUNK as the nearby city's Culture level jumps: as culture is added to all nearby tiles, you'll first get the tiles with low thresholds, like grasslands, and then as culture accumulates you'll start to include forests, hills, etc... I think there's lots of scope here, e.g. roads reduce the threshold, making it easier to get that tile.

Anyway, if anyone knows of a good description of how Realistic Culture Spread works, I'd be greatful for a link.

Cheers,
A.
 
Hi,

sorry to revive an old thread, but this was the most appropriate one I found on the topic.

My understanding of culture spread onto tiles is that for any given city Culture level, each turn a certain amount of culture is added to tiles within the current Culture level's radius. The outermost ring gets a small amount each turn, and each successive ring closer to the city gets more culture per turn. Is this corect?

Yes, this is correct.

If that's how it works, then for each city Culture level, a constant amount of culture is deposited on tiles around the city, even on tiles you don't own because someone else currently has more culture.

Yes.

Now, when using Realistic Culture Spread, is the total amount of culture deposited each turn constant, or not? I suspect not, but that's just a guess. If it were constant, then for a city with just a few grass tiles nearby, and otherwise surrounded by forest, the few grass tiles would initially get lots of culture on them, because the forest tiles weren't claimed yet. But seeing the XML "iCultureDistance" tag, I suspect this isn't the case.

Realistic Culture Spread works by modifying the culture distance of tiles. In vanilla BTS, the tile distance is the same as the "culture" distance. Realistic culture spread increases the distance for ocean, forests, hills, jungles, etc by 1. This causes the game to treat the tiles as "too far away" for your city to influence and so receives no culture. The amount of culture put into tiles for tiles inside of the culture distance is the same as vanilla RAND/BTS. The way distance is calculated is the only aspect changed.

The cities culture level directly relates to the distance. Culture level 0 (initial level) means you can influence 1 tile outside the city. Culture level 1 is 2 tiles...etc.


The reason I want to understand this is partly because I want to find out whether or not it would be possible to make culture spread faster along roads. I don't see any Road type 'improvement' in "CIV4ImprovementInfos.xml", so I presume 'routes' are treated separately.

Yes, you could if you were willing to get dirty in the C++ SDK. You could modify the culture distance calculation in CvCity.cpp to also check for the existence of routes and decrease the culture distance for such tiles.

I would also be interested to know whether the ownership mechanic could be modified easily. Is it Python (which I could happily play with myself)

No, see above. The python API is basically a tiny sandbox, and while it is possible to do some minor things in python, the core mechanics require C++ access. Even if you could do it in python, this sort of change is so large (it affects calculations for every tile in the game) that a python change would be terrible for performance.

The Civ4 SDK is really not that hard to set up. I highly recommend it. ;)
 
Ah great, thanks as usual Afforess for your thorough response. I'm not sure whether I want to get into the C code (haven't even got a compiler on the Windows partition); I figured it'd probably, unfortunately, be the only way...

So, just to check something... Say we have forest tile and a grassland tile which are the same real distance away from my city. The grass is owned and receiving culture, but the forest "feature" is increasing the effective distance for the purpose of calculating culture deposition, and so the forest square is not yet owned. If I chop the forest, then from that turn onward, some culture wil start to be deposited there (assuming the culture-distance calculation happens every turn). But am I correct in that ownership of tiles only changes when a city grows to the next culture level (and the radius grows; and excepting cases like capturing cities with previous cultural deposition nearby)? So even though culture will start being deposited on the newly cleared grassland right away, I won't own it (and the city therefore won't be able to use it) until my city's Culture grows to the next culture level (unless I claim the tile with a military unit).

OK. I think I finally get it. Thanks again!
 
I really like this feature. Is there any way to seperate this feature, so it could be integrated into other mods?
 
I went looking for the Realistic Culture Spread mod and I can't find it in the downloads section or searching for it in Google. All I can tell is that it is a DLL mod and it looks like 4 source files were modified to implement it.
 
Top Bottom