[GeoRealism] The two core Geography 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 geology/geography engine:

CIV4BedrockInfos.xml
CIV4GeographyInfos.xml


Here are the full files in View attachment GeoEngineXML.zip.

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.
 
Here is a sample info from the Bedrock XML file:

Code:
<BedrockInfo>
	<Name>BEDROCK_SHALE</Name>
	<Description>Shale</Description>
	<Civilopedia></Civilopedia>
	<Help></Help>
	<Button></Button>
	<iPermeability>0</iPermeability>
	<iPorosity>0</iPorosity>
	<iSolubility>0</iSolubility>
	<iWeatherability>2</iWeatherability>
	<WeatheringTypes>
		<WeatheringType>WEATHERING_THERMAL</WeatheringType>
		<WeatheringType>WEATHERING_SPHEROIDAL</WeatheringType>
	</WeatheringTypes>
	<Yields/>
	<MineYields>
		<iYield>0</iYield>
		<iYield>1</iYield>
		<iYield>1</iYield>
	</MineYields>
	<TechYields>
		<TechYield>
			<Tech>TECH_COMBUSTION</Tech>
			<iYield>0</iYield>
			<iYield>1</iYield>
			<iYield>1</iYield>
		</TechYield>		 
	</TechYields>
	<iScience>1</iScience>
	<bOcean>1</bOcean>
	<bFreshwater>1</bFreshwater>
	<bIgneous>0</bIgneous>
	<bSedimentary>1</bSedimentary>
	<bMetamorphic>0</bMetamorphic>
</BedrockInfo>

Information on each tag:
  • iPermeability: the ability of water to intrude into the rock type
  • iPorosity: a number representing how porous the rock is (how much empty space exists within it)
  • iSolubility: a number representing how soluble the rock is in water (chemical weathering factor).
  • iWeatherability: a number represeting how weatherable/erodable the rock is.
  • WeatheringTypes: Represents the types of unique weathering that can affect the rock. I am not sure if I will make this an enumeration or an Infotype yet.
  • bOcean: does it form exclusively in the ocean?
  • Yields: the yields that the bedrock adds to a plot
  • MineYields: the yields that the bedrock adds if a mine is present
  • TechYields: the Tech and the yields that are added when the tech is discovered.
  • iScience: the amount of science yield the bedrock adds to a plot (within city boundaries)
  • bFreshwater: is it a fresh water source (only for rocks with high porosity)?
  • bIgneous: is it an igneous rock?
  • bSedimentary: is it a sedimentary rock?
  • bMetamorphic: is it a metamorphic rock?
 
Here is a sample info from the Geography XML file:

Code:
<GeographyInfo>
	<Type>GEOGRAPHY_BASINRANGE</Type>
	<Description>Fault Block Mountains</Description>
	<Civilopedia></Civilopedia>
	<Help></Help>
	<Button></Button>
	<MapColor>COLOR_</MapColor>
	<TypeKey>TYPEKEY_COLLECTION</TypeKey>
	<Domain>DOMAIN_LAND</Domain>
	<EdgeStructure>NONE</EdgeStructure>
	<FeatureType>NONE</FeatureType>
	<DefaultBedrock>NONE</DefaultBedrock>
	<DepositsBedrock>BEDROCK_CONGLOMERATE</DepositsBedrock>
	<bDepositional>0</bDepositional>
	<bOceanic>0</bOceanic>
	<bKarst>0</bKarst>
	<bSubduction>0</bSubduction>
	<bCompressionStress>0</bCompressionStress>
	<bTensionStress>1</bTensionStress>
	<bShearStress>0</bShearStress>
	<bVolcanic>0</bVolcanic>
	<bTrench>0</bTrench>
	<bStationary>0</bStationary>
	<PlotFormations>
		<LayoutType>LAYOUT_TILE</LayoutType>
		<GeographyRow>
			<Geography>
				<Type>GEOGRAPHY_RANGE_HILLS</Type>
				<bExpand>0</bExpand>
			</Geography>
			<Geography>
				<Type>GEOGRAPHY_RANGE_VALLEY</Type>
				<bExpand>0</bExpand>
			</Geography>
		</GeographyRow>
	</PlotFormations>
</GeographyInfo>

Information on each tag:

  • MapColor: the color that will be used on the GeoLayers view to represent this item
  • TypeKey: Geopgraphies can overlap (or be made of geographies). This string represents the specific layer that the geopgraphy type occupies. A specific layer can only have on instance. NOTE:
  • there are only 5 layers. The sixth "layer" that is mentioned ("inverted") in the file turns on the "sign" bit for the stated layer (making the actual value negative). This can only be done by a single info for each type.
  • Domain: the domain the geography can be found in
  • EdgeStructure: the Georealism mod will expand the "edge" types (such as rivers) to include the following: rivers, plate margins, and continental divides (used for calculating drainage patterns).
  • FeatureType: a feature that can be associated with the geography type
  • iFeatureOdds: [NOT YET IMPLEMENTED] the odds that the feature will appear on plot of this type of geography
  • DefaultBedrock: only used for a few geographies. type of bedrock that is usually required for the geography
  • DepositsBedrock: the type of bedrock deposited by the geographical environment
  • bDepostional: is this a depositional environment?
  • bOcean: is this an oceanic environment?
  • bKarst: is this a Karst topography?
  • bSubduction: is this a subduction zone?
  • bCompressionStress: does this geography experience compression stress?
  • bTensionStress: does this geography experience tension stress?
  • bShearStress: does this geography experience shear stress?
  • bVolcanic: is this a volcanic geography?
  • bTrench: is this geography qualify as a deep-sea trench?
  • PlotFormations: plot groups that exist in a geography that involves more than one plot.

Geography Plot Formations has the following tags:
  • LayoutType: How do we grow this to fit area covered? as is (single, no growth)? tiled? or stretched?
  • GeographyRow (OPTIONAL: a single row of plots that make up layout): includes geography type and whether or not the geography type can be zoomed
  • SinglePlot (OPTIONAL: a single plot type): used when a single plot type defines the geography
  • SingleFeature (OPTIONAL: a single feature type): used when a single feature type defines the geography
 
@primem0ver:

How much of this data is going to be internal during the map generation and how much of it is going to be displayed in the terrain. I'd assume that the BedrockInfos would be internal at first (until the Underground/Underwater map is added), and probably most of the GeographyInfos would be internal during map generation as well, but I'd appreciate clairification.
 
@primem0ver:

How much of this data is going to be internal during the map generation and how much of it is going to be displayed in the terrain. I'd assume that the BedrockInfos would be internal at first (until the Underground/Underwater map is added), and probably most of the GeographyInfos would be internal during map generation as well, but I'd appreciate clairification.
Since BedrockInfo influences tile yield, it is definitely not internal.
 
Since BedrockInfo influences tile yield, it is definitely not internal.

OK, I'd assume that is only the bonuses you get for Mines though.

@Primem0ver: For all of these files you should add (at some point, after we have Multi-Maps) a <map> tag to tell if that bedrock, Geography, etc is for MAP_EARTH, MAP_MOON, and so forth.
 
@primem0ver:

How much of this data is going to be internal during the map generation and how much of it is going to be displayed in the terrain. I'd assume that the BedrockInfos would be internal at first (until the Underground/Underwater map is added), and probably most of the GeographyInfos would be internal during map generation as well, but I'd appreciate clairification.

Only resulting resources, features, and changes to yields will be part of the UI in terms of graphics (at least before multi-maps). However, plot text will be modified to show easily seen/understood geography. As the game progresses, more text will show up regarding information on these items as appropriate for the technology level (certain techs will make specific information available).

Your suggestions regarding multi-maps are noted.
 
OK, I'd assume that is only the bonuses you get for Mines though.

Keep in mind some yield changes don't require mines. Notice the "Yields" tag before the MineYields tag. Shale is useless without a mine but others (such as granite) are not.
 
Keep in mind some yield changes don't require mines. Notice the "Yields" tag before the MineYields tag. Shale is useless without a mine but others (such as granite) are not.

Then Granite should be a resource, not a bedrock type. Or, more specifically, it should be both, but the bedrock type wouldn't affect the yields, the resource would.
 
I have been thinking about mines versus quarries. Stone (bedrock) is usually obtained by building a quarry but mines are more commonly built in the game. Should we use what people are going to use anyway or should we make the game more "interesting" by having users make a choice (by changing "MineYields" to "QuarryYields"). Should we incorporate both?
 
Keep in mind some yield changes don't require mines. Notice the "Yields" tag before the MineYields tag. Shale is useless without a mine but others (such as granite) are not.

Actually I take that back. Shale gives science without a mine. The reason for this is because shale (and limestone) are the two most likely rock types to have fossils. I figured fossils always provoke thought (even in ancient times it could be they inspire myth for the caveman/storyteller etc...) so that is the reasoning behind the "science" bonus.
 
Actually I take that back. Shale gives science without a mine. The reason for this is because shale (and limestone) are the two most likely rock types to have fossils. I figured fossils always provoke thought (even in ancient times it could be they inspire myth for the caveman/storyteller etc...) so that is the reasoning behind the "science" bonus.

Then they should both be resources. That is what resources are for, giving bonuses to yields, and more bonuses with certain improvements. They can still be bedrock types for the purposes of map generation, but they should also be resources for ingame purposes.
 
Then they should both be resources. That is what resources are for, giving bonuses to yields, and more bonuses with certain improvements. They can still be bedrock types for the purposes of map generation, but they should also be resources for ingame purposes.

I disagree (about shale). Shale isn't something that is generally traded until oil shale can be turned into oil. And only a certain percent of shale is oil shale So here's an idea:

What about having a new "Oil Shale" resource. When the appropriate tech (combustion or later) is discovered, run a method that puts a new resource on plots with shale based on odds that shale will be oil shale (this can also be pre-determined by the GeoEngine during resource placement).

We could also add a national wonder that converts the oil shale resource into oil (its primary benefit).
 
I disagree (about shale). Shale isn't something that is generally traded until oil shale can be turned into oil. And only a certain percent of shale is oil shale So here's an idea:

What about having a new "Oil Shale" resource. When the appropriate tech (combustion or later) is discovered, run a method that puts a new resource on plots with shale based on odds that shale will be oil shale (this can also be pre-determined by the GeoEngine during resource placement).

We could also add a national wonder that converts the oil shale resource into oil (its primary benefit).

Or just place it normally and have it revealed at the appropriate tech. And the building need not be a NW, we already have oil refineries that make Oil Products (for some reason BONUS_DIESEL in the XML).
 
I disagree (about shale). Shale isn't something that is generally traded until oil shale can be turned into oil. And only a certain percent of shale is oil shale So here's an idea:

What about having a new "Oil Shale" resource. When the appropriate tech (combustion or later) is discovered, run a method that puts a new resource on plots with shale based on odds that shale will be oil shale (this can also be pre-determined by the GeoEngine during resource placement).

We could also add a national wonder that converts the oil shale resource into oil (its primary benefit).

Well, fossils are already a resource, so surely the bedrock of shale should just be a requirement (or one of the possible OR requirements) to spawn a fossil resource, presumably with the bedrock type, and possibly other factors like weathering rate, determining the probability of the bonus being placed.
 
I have a graphic for granite resource somewhere perhaps I should look it up.

If we have Granite then Stone should probably be renamed. Though I always thought the default stone was Granite. Also we already have Marble. Thus typical building material stones are ...

- Granite
- Limestone
- Marble
- Slate
- Sandstone
 
Then they should both be resources. That is what resources are for, giving bonuses to yields, and more bonuses with certain improvements. They can still be bedrock types for the purposes of map generation, but they should also be resources for ingame purposes.
Bonuses on the map both need graphics and you can only have one resource on a plot. So I'd prefer to keep them separate.
Then have some buildings that require certain bedrock (perhaps on a mined plot) to make a tradable resource.

In regards to iScience: To keep it somewhat similar to other info files, best make that a Commerces tag (so it can boost any of gold, espionage, research, culture).
 
If we have Granite then Stone should probably be renamed. Though I always thought the default stone was Granite. Also we already have Marble. Thus typical building material stones are ...

- Granite
- Limestone
- Marble
- Slate
- Sandstone

Not to be a spoilsport, but what, exactly, would be the benefit of having five different stone resouces in the game? It seems to me that it would simply add a bunch of new resources which are almost identical in terms of their use. I tend to think that "marble" and "stone" are enough types for the stone resource department. But I am open to being convinced otherwise.
 
Back
Top Bottom