[GeoRealism] The two core BiomeInfo files

primem0ver

Emperor
Joined
Jun 16, 2006
Messages
1,158
Location
Peoria, AZ
This thread is for explaining, discussing, improving, and sharing the two core info classes/files that will be used for the climate engine:

CIV4BiomeInfos.xml
CIV4VegetationInfos.xml


UPDATE:
The "Default[Section]Terrain tags in the Biome file have been modified to Vegetation tags. MinPrecipitation tag now conisists of values for each month of the year (Biome file).

Here are the full files in View attachment ClimateEngineXML.zip. There are currently 19 biomes.

Below are two posts, one for each file that will updated as the files change, giving a sample and an explanation for each tag. The full files are attached to this post.

Please note that as it stands, there is already going to be at least one significant change to the CIV4BiomeInfos file (the splitting of the min precipitation into 12 monthly minimums).
 
Here is a sample info from the Vegetations XML file:

Code:
<VegetationInfo>
	<Type>VEGETATION_PLAINS_DECIDUOUS</Type>
	<Description></Description>
	<Civilopedia></Civilopedia>
	<Help></Help>
	<Button></Button>
	<MapColor>COLOR_GREENBROWN</MapColor>
	<Feature>FEATURE_TREES</Feature>
	<Variety>4</Variety>
	<SoilTerrain>TERRAIN_GRASS</SoilTerrain>
	<!-- move to terrain: GroundwaterTech-->
	<bInundated>0</bInundated>
	<bRooted>1</bRooted>
	<bRequiresRiver>0</bRequiresRiver>
	<bRequiresGroundwater>1</bRequiresGroundwater>
	<iOverrideOdds>70</iOverrideOdds>
	<SpawnsBonuses/>
</VegetationInfo>

Information on each tag:

  • MapColor: the color that will be used on the GeoLayers view to represent this item
  • Feature: the feature used to represent this vegitation
  • iVariety: the variety of the feature used to represent this vegetation
  • SoilTerrain: the terrain id that represents the soil profile and ground flora for this vegetation
  • bInundated: is this vegetation type saturated with groundwater? (marsh for example)
  • bRooted: does this vegetation slow erosion due to thick roots?
  • bRequiresRiver: does this vegetation require a river?
  • bRequiresGroundwater: does this vegetation require groundwater feature? (exceptional?)
  • iOverrideOdds: what are the provisional raw odds for this feature? (if a "required" bool is true then this replaces this value takes presidence and all other odds are truncated)
  • SpawnsBonuses: will probably be removed from info file even though they will exist in the infoClass. (handled by a VolatileInfo file).
 
Here is a sample UPDATED info from the the Biomes XML file:

Code:
<BiomeInfo>
	<Type>BIOME_HUMID_CONTINENTAL</Type>
	<Description>Humid Continental Biome</Description>
	<Civilopedia></Civilopedia>
	<Help></Help>
	<Button></Button>
	<Koppen>Dfa</Koppen>
	<MapColor>COLOR_MEDIUM_BLUE</MapColor>
	<iMinLatitude>35</iMinLatitude>
	<iMaxLatitude>50</iMaxLatitude>
	<iMinHumidity>65</iMinHumidity>
	<iMaxHumidity>95</iMaxHumidity>
	<MinPrecipitations>
		<iMinPrecipitation month="k0">0</iMinPrecipitation>
		<iMinPrecipitation month="k1">0</iMinPrecipitation>
		<iMinPrecipitation month="s2">0</iMinPrecipitation>
		<iMinPrecipitation month="s3">0</iMinPrecipitation>
		<iMinPrecipitation month="s2">0</iMinPrecipitation>
		<iMinPrecipitation month="h1">0</iMinPrecipitation>
		<iMinPrecipitation month="h0">0</iMinPrecipitation>
		<iMinPrecipitation month="h1">0</iMinPrecipitation>
		<iMinPrecipitation month="f2">0</iMinPrecipitation>
		<iMinPrecipitation month="f3">0</iMinPrecipitation>
		<iMinPrecipitation month="f2">0</iMinPrecipitation>
		<iMinPrecipitation month="k1">0</iMinPrecipitation>
	</MinPrecipitations>
	<AirMassType>AIRMASS_MARITIME_TROPICAL</AirMassType>
	<SeasonType>SEASONS_WET</SeasonType>
	<HighlandBiome>NONE</HighlandBiome>
	<RainshadowBiome>BIOME_DESERT_KALT</RainshadowBiome>
	<bCoastal>1</bCoastal>
	<bCoolwater>0</bCoolwater>
	<bPolar>0</bPolar>
	<bMixZone>1</bMixZone>
	<bMidLatitude>1</bMidLatitude>
	<DefaultBeachVegetation>TERRAIN_GRASS</DefaultBeachVegetation>
	<BeachVegetations>
		<Vegetation>
			<Type>VEGETATION_MARSH</Type>
			<iOdds>25</iOdds>
		</Vegetation>
		<Vegetation>
			<Type>VEGETATION_DECIDUOUS</Type>
			<iOdds>65</iOdds>
		</Vegetation>
	</BeachVegetations>
	<DefaultCoastalVegetation>TERRAIN_GRASS</DefaultCoastalVegetation>
	<CoastalVegetations>
		<Vegetation>
			<Type>VEGETATION_DECIDUOUS</Type>
			<iOdds>95</iOdds>
		</Vegetation>
	</CoastalVegetations>
	<DefaultInlandVegetation>TERRAIN_GRASS</DefaultInlandVegetation>
	<InlandVegetations>
		<Vegetation>
			<Type>VEGETATION_DECIDUOUS</Type>
			<iOdds>95</iOdds>
		</Vegetation>
		<Vegetation>
			<Type>VEGETATION_DECIDUOUS</Type>
			<iSpaceiOdds>725</iSpaceiOdds>
		</Vegetation>
	</InlandVegetations>
	<DefaultHighlandVegetation>TERRAIN_GRASS</DefaultHighlandVegetation>
	<HighlandVegetations>
		<Vegetation>
			<Type>VEGETATION_MIXED_FOREST</Type>
			<iOdds>5</iOdds>
		</Vegetation>
		<Vegetation>
			<Type>VEGETATION_DECIDUOUS</Type>
			<iOdds>95</iOdds>
		</Vegetation>		
	</HighlandVegetations>
	<!-- This climate has a separate section: "Plains shadow" defined below.  For a true rainshadow, use climate designated in RainshadowClimate -->
	<DefaultRainshadowVegetation>TERRAIN_PLAINS</DefaultRainshadowVegetation>
	<RainshadowVegetations>
		<Vegetation>
			<Type>VEGETATION_GRASS_PLAINS</Type>
			<iOdds>40</iOdds>
		</Vegetation>
		<Vegetation>
			<Type>VEGETATION_RIVER_DECIDUOUS</Type>
			<bRequiredRiver>1</bRequiredRiver>
		</Vegetation>
		<Vegetation>
			<Type>VEGETATION_PLAINS_DECIDUOUS</Type>
			<bRequiresGroundwater>1</bRequiresGroundwater>
		</Vegetation>
	</RainshadowVegetations>
</BiomeInfo>

Information on each tag:

NOTE: Biome and Climate are used interchangeably.

  • Koppen: a string representing the Koppen Climate Type
  • MapColor: the color that will be used on the GeoLayers view to represent this item
  • iMinLatitude: the minimum latitude for the climate
  • iMaxLatitude: the maximum latitude for the climate
  • iMinHumidity: the minumum humidity for the climate
  • iMaxHumidity: the maximum humidity for the climate
  • MinPrecipitations: the minimum precipitation for the climate during each month of the year. Each iMinPrecipitation in the list has a month designated by a generic season notation rather than an actual month name.
  • AirMassType: the primary air mass that is responsible for creating the climate (defined in CvAirmassInfos)
  • SeasonType: the set of seasons that are associated with this climate
  • HighlandBiome: (optional) the BiomeInfo that should be used for highland plots for this biome
  • RainshadowBiome: (optional) the BiomeInfo that should be used for rainshadow plots for this biome
  • bCoastal: is it a coastal climate?
  • bCoolwater: is it a climate that results from cold currents? (West coast climate on Earth) NOTE: I plan on having the user being able to switch the planets rotation which will result in reversing east and west cloast climates to the opposite coast
  • bPolar: is it a polar climate?
  • bMixZone: is it a climate that results from the mix of polar and tropical air masses?
  • bMidLatitude: is it a mid latitude climate?

The following tags have a Beach, Coast, Inland, Highland, and Rainshadow prefix:
  • Default[prefix]Vegetation: the default terrain that will be used for this local climate. This is also the vegetation that replaces the forest soil type after a specified number of turns after being cut down. (I will probably change this to a vegetation rather than a terrain).
  • [prefix]Vegetations: a container of [prefix]Vegetation tags that define the odds for the different vegetations found in this climate. Note, these odds can add up to less than 100 (percent). If the random number does not fall within the odds defined by this set then the default terrain (or vegetation) is used.

*The MinPrecipitation tag will probably be changed to an array with a slot for each of the 12 months of a year. Months will not be specific. The 0 month will be the first spring month and 11 will be the last winter month.
 
Thank you. A couple of questions.

First off, and most importantly, it seems that mean temperature is not a factor, at least not one that is directly taken into account? Are you planning to take temeperature into account purely through latitude and airmass type?

iMinHumidity: the minumum humidity for the climate
iMaxHumidity: the maximum humidity for the climate
iMinPrecipitation: the minimum precipitation for the climate*
iMaxPrecipitation: the maximum precipitation for the climate

What do the numbers stand for? Is humidity measured as relative humidity, in percent? And does precipitation stand for cm of precipitation per year?

SeasonType: the set of seasons that are associated with this climate

I'm still not very clear on this. Is the season type determined beforehand (before a biome is assigned, that is)? And if so, how?

HighlandBiome: (optional) the BiomeInfo that should be used for highland plots for this biome

What types of plots are there in this regard? Highland and not-highland?

RainshadowBiome: (optional) the BiomeInfo that should be used for rainshadow plots for this biome

Can you elaborate a bit on how, exactly, rainshadows will be determined by the engine?

[*]bCoolwater: is it a climate that results from cold currents? (West coast climate on Earth)

Will the engine be able to take into account that there are also warm West coast currents (i.e. North Atlantic Current) and cold east coast currents (i.e. Oyashio Current, Labrador Current)? If so, how?

bPolar: is it a polar climate?
bMixZone: is it a climate that results from the mix of polar and tropical air masses?
bMidLatitude: is it a mid latitude climate?

What are these criteria going to determine, following from here?
 
I don't have time for an in depth answer for all of these questions right now. But I will give a general one: I made a list of all the attributes/characteristics I thought would be important to both climate and biome issues, including the weather effects that we have in our mod and made them tags. I missed some, some might disappear. But most, if not all of these will be used for one thing or another.
 
This all is well and good (and very cool as well:goodjob:), but I have one main question/concern. How many (and what) Terrains do you want to add to C2C? We've had the current ones for more than a year now, and adding new ones would need to be carefully thought out from a balance perspective. I'm not saying don't do it, but I am saying we need to discuss the specifics about those.
 
I don't think Biome and terrain are quite the same, though I'm still trying to figure out how it all fits together here. Interesting reading so far.
 
This all is well and good (and very cool as well:goodjob:), but I have one main question/concern. How many (and what) Terrains do you want to add to C2C? We've had the current ones for more than a year now, and adding new ones would need to be carefully thought out from a balance perspective. I'm not saying don't do it, but I am saying we need to discuss the specifics about those.

We talked about this quite a bit in the original GeoRealism thread. I love C2C, but as a mapmaker who strives to make accurate maps, I maintain my point that the selection of terrains is one of the weaker parts of the mod. There are many redundant desert terrains, and too few "wet" ones. The terrain selection just is not very suitable for making accurate Earth-like maps.

So, I am all in favour of a terrain overhaul. Obviously, it will have to be discussed and balanced in detail. But since GeoRealism is a long-term project, I think there should be more than enough time for that.
 
This all is well and good (and very cool as well:goodjob:), but I have one main question/concern. How many (and what) Terrains do you want to add to C2C? We've had the current ones for more than a year now, and adding new ones would need to be carefully thought out from a balance perspective. I'm not saying don't do it, but I am saying we need to discuss the specifics about those.

Laskaris is correct. Specifically, I outlined the planned terrain changes/additions in this post. I also later added a fourth terrain type I might reconsider but at the moment I can't remember which one it was.

Thunderbird is also correct. Biome != Terrain.

Terrains serve as the different basic soil/ground vegetation combinations that can exist (which is why it is crucial to have more wet ones. In reality there are more types of seasonally-wet and wet soils than dry soils.). The only reason I added another dry soil was because arid climates (as opposed to desert climates) generally have some ground shrubbery so I added the "Temperate Steppe" terrain from the Terrains mod because of its slight green tinge to cover this type of soil/ground vegetation combination.

Vegetations represent the various types of vegetation (feature and varieties)/terrain combinations that can exist within a biome (with "terrain" choices based on look, type, and raw yield/commerce/other stat values). Keep in mind that a month or so ago I asked if we could separate the different tree types into separate features. For example: tree variety 0 = deciduous forest; tree variety 1 = evergreen/coniferous forest; and 2 = tiaga/boreal forest because in general, because most climates/biomes are made of overwhemlingly one type of forest. They said that it wasn't a good idea and I agreed with their reasoning. My "Vegetation" idea was my answer to meet the need of separating the varieties (as well as categorizing the different possible feature/terrain combinations within a single biome as well as distinguishing types found in other biomes).

Biomes represent a specific climate/eco system type.
 
Just as a reminder, all these changes are also going to have an effect on many of the culture wonders. Hard facts mean that there are a finate number of tiles, and more specifically, a finate number per 'zone'. Additional terrains and/or calculations that determine which terrain goes in what tile can change the distributions of the terrains that are keyed to many cultures.
 
I don't have time for an in depth answer for all of these questions right now. But I will give a general one: I made a list of all the attributes/characteristics I thought would be important to both climate and biome issues, including the weather effects that we have in our mod and made them tags. I missed some, some might disappear. But most, if not all of these will be used for one thing or another.

No worries. If you do want me to help out a bit with the xml files, as we talked about in the other thread, then I would need to know a bit more. But that has time.
 
Laskaris is correct. Specifically, I outlined the planned terrain changes/additions in this post. I also later added a fourth terrain type I might reconsider but at the moment I can't remember which one it was.

Thunderbird is also correct. Biome != Terrain.

Terrains serve as the different basic soil/ground vegetation combinations that can exist (which is why it is crucial to have more wet ones. In reality there are more types of seasonally-wet and wet soils than dry soils.). The only reason I added another dry soil was because arid climates (as opposed to desert climates) generally have some ground shrubbery so I added the "Temperate Steppe" terrain from the Terrains mod because of its slight green tinge to cover this type of soil/ground vegetation combination.

Vegetations represent the various types of vegetation (feature and varieties)/terrain combinations that can exist within a biome (with "terrain" choices based on look, type, and raw yield/commerce/other stat values). Keep in mind that a month or so ago I asked if we could separate the different tree types into separate features. For example: tree variety 0 = deciduous forest; tree variety 1 = evergreen/coniferous forest; and 2 = tiaga/boreal forest because in general, because most climates/biomes are made of overwhemlingly one type of forest. They said that it wasn't a good idea and I agreed with their reasoning. My "Vegetation" idea was my answer to meet the need of separating the varieties (as well as categorizing the different possible feature/terrain combinations within a single biome as well as distinguishing types found in other biomes).

Biomes represent a specific climate/eco system type.

OK, I understand much better now. Regarding your terrain suggestions, here are my takes on them.

  • Temperate Steppe: This would be sort of like the Tibetan Plateau right? In which case, yes this is a good addition.
  • Arid Desert: How is this different from the current Dunes terrain?
  • Subtropical Rainforest: Forests are represented by features, not terrains.
  • Subtropical Dry: Ditto.
  • Temperate Broadleaf: Also Ditto.
  • Mediterranean: Great addition.
  • Alpine Tundra: Great addition, although it needs to be distinguished from hills/tundra combos somehow.
  • Savanna and Permafrost: Already have 'em.
  • Monsoon Forest: See what I said above about forests.
 
Forests are represented by features, not terrains.

Yes, but the terrains represent the forest soils. These have different characteristics - for instance, in regards to agricultural fertility (once the forest is removed, obviously). That is why different soils are needed.
 
Yes, but the terrains represent the forest soils. These have different characteristics - for instance, in regards to agricultural fertility (once the forest is removed, obviously). That is why different soils are needed.

Again... he echos my original thoughts. This was actually the original problem that inspired me to add more terrains.

Tropical rainforest soil is the poorest soil in the world as far as native nutrients are concerned. Most nutrients are absorbed by the vegetation. Any remaining nutrients get leached out of the soil by the constant rains. The result? Tropical rainforest soil is worse than raw mud of most areas.

Howevever, I didn't really want to use mud since there is some value in the rainforest floor vegetation. The primary benefit in this vegetation however is not food (indeed there are at least as many poisonous items as food items). It is medicine and herbs used for more exotic things (herbal medicine, drugs, pets... whatever). So the primary benefit from rainforest floor is money, not food. My yield plans for the rainforest soil terrain are +1 food, 0 work, and +2 coin (or just +2 coin). The jungle then adds +1 food, +1 work. These are completely different stats than what either grass or mud would provide.

Also... another interesting feature this mod will bring: When a forest is chopped down, in a biome, a plot will revert to the "default" terrain (soon to be vegetation) for the location within the biome. For tropical rainforest this will indeed be mud. Not the forest floor. (There will be a time delay before the change occurs).
 
It sounds like a lot of work is being done to represent what's happening in Brazil. I've often found Civ incapable of replicating the horror they are unleashing on themselves (and us all) from all that deforestation. And with the Great Farmer in play, it makes sense that they then go in and ranch on the land after they tear down the jungle.
 
True that! And with this mod, the horror will exist... NO real benefit to the land once the forest is torn down. (This is ONE aspect of this mod that will need to be considered by the AI... ) And by the way... I had no political agenda here (i.e. I didn't even think of how well it would simulate deforestation to make a point). That is just the way it is!
 
I've always felt that adding realism naturally balances itself into a better game most of the time.

Creator IS the best game designer around...
 
Arid Desert: How is this different from the current Dunes terrain?

Actually I don't think it is. I am told that one of these is the same as the dunes terrain... therefore it won't be an addition and I may use one of the other desert terrains (or not...)
 
The very poor fertility of rain forest soil has already been mentioned. To elaborate a bit more on the subject of soils:

The soil of boreal forests is poor as well. The plant litter of boreal trees is acidic and decomposes very slowly. As a result, the soil contains little humus, is acidic, and has few minerals because of rain leaching. Also, the climate in boreal forest regions is colder than in temperate regions, which makes agriculture more difficult.

The broadleaf forests of temperate regions have a much better soil. Fallen leaves decompose quickly and create humus. The rain leaching is less, so the soil retains more minerals. This soil is well-suited for agriculture, provided that chalk (to reduce acid) and fertilizer are used.

In grasslands, almost the entire vegetation dies during the course of the season, producing humus that accumulates over the years and creates deep, highly fertile soils. Such soils exist in places like the American Great Plains, the Argentinian Pampas, and the "black Earth belt" that stretches across the Ukraine and into central Asia. These are some incredibly productive agriculture regions.

With such soil types and their usefulness modelled in the terrains, agricultural production and everything that depens on it - population density etc. - would be a lot more realistic. And, in my view, it would make for a very interesting game.
 
Back
Top Bottom