Zone tier: Difference between revisions
mNo edit summary |
(Significantly updated) |
||
Line 1: | Line 1: | ||
{{tocright | {{tocright}} | ||
Each [[zone]] (or screen) that a player explores has a particular ''difficulty tier'' associated with, often referred to as the '''''{{name}}'''''. | Each [[zone]] (or screen) that a player explores has a particular ''difficulty tier'' associated with, often referred to as the '''''{{name}}'''''. | ||
Zone tier is one significant factor that contributes to the procedural generation of features in {{gamename}}, such as the level and difficulty of creatures that are found in a particular zone, or the items that can be obtained as random loot from a {{favilink|chest}} in that zone. Procedural generation is also influenced by other factors, such as the terrain type of the current zone, and whether or not the current zone is part of a village or a unique location. | |||
Zone tier is determined based on a combination of the following elements: | Zone tier is determined based on a combination of the following elements: | ||
* The | * The surface tier of the current [[World Map]] {{parasang}}. | ||
* The depth of the current zone, if it is underground. | * The depth of the current zone, if it is underground. | ||
== | == Background == | ||
For historical reasons, the game uses two different systems to calculate zone tier. This can sometimes make determining the zone tier a bit tricky, because depending on which feature is using the zone tier, it may be calculated using one system or the other (even in the same single zone). For the purposes of this article, we'll give a name to each of those systems to help better distinguish them: | |||
* '''Regional Zone Tier:''' This type of zone tier is the most commonly used. It is closely linked to the world map terrain type of the zone. For example, all {{favilink|Hills}} areas have a '''regional zone tier''' of 2, even the few '''Hills''' parasangs that are in the far upper-right corner of the world map, sandwiched between the Deathlands and the Mountains. | |||
* '''Static Zone Tier:''' This type of zone tier appears to generally be an older type of zone tier system. It is based on static values that are defined in a configuration file<ref><code>Text.txt</code></ref> in the game directory. This system of zone tiers is used for fewer things, but it is still used frequently enough to be worth mentioning. | |||
As a general rule, these two zone tier systems tend to be quite similar on the western half of the world map. They differ more significantly on the eastern half of the map. | |||
== Tiers and Procedural Generation == | == Tiers and Procedural Generation == | ||
Line 19: | Line 19: | ||
A location's zone tier is generally used as a rough guide for procedural generation of creatures and items in that zone. | A location's zone tier is generally used as a rough guide for procedural generation of creatures and items in that zone. | ||
For example, in an area with a zone tier of 5, tier 5 creatures (such as {{favilink|dynamic turret tinker|plural}}) and tier 5 items (such as {{favilink|fullerite gauntlets}}) are more likely to be found. Note that zone tier is only one of several factors that affects the dynamic generation of creatures and objects in the world. Specific [[:Category:Biomes|biomes]], unique [[:Category:Locations|locations]] (such as [[historic site]]s or [[:Category:Dungeons|dungeons]]), or other factors can influence the objects and items that are generated in particular zones. This is why, for example, the surface levels of the {{favilink|Desert Canyons}} will always contain the same primary creatures, such as {{favilink|snapjaw scavenger|snapjaws}}, {{favilink|equimax|equimaxes}}, and {{favilink|giant dragonfly|giant dragonflies}} - this biome has its own unique population/encounter tables. | For example, in an area with a zone tier of 5, tier 5 creatures (such as {{favilink|dynamic turret tinker|plural}}) and tier 5 items (such as {{favilink|fullerite gauntlets}}) are more likely to be found. Note that zone tier is only one of several factors that affects the dynamic generation of creatures and objects in the world. Specific types of [[:Category:Terrain|terrain]], [[:Category:Biomes|biomes]], unique [[:Category:Locations|locations]] (such as [[historic site]]s or [[:Category:Dungeons|dungeons]]), or other factors can influence the objects and items that are generated in particular zones. This is why, for example, the surface levels of the {{favilink|Desert Canyons}} will always contain the same primary creatures, such as {{favilink|snapjaw scavenger|snapjaws}}, {{favilink|equimax|equimaxes}}, and {{favilink|giant dragonfly|giant dragonflies}} - this biome has its own unique population/encounter tables. | ||
Most biomes have unique generation tables defined for their surface and levels 1-5 underground.<ref>Determined by review of <code>Worlds.xml</code>, <code>ZoneTemplates.xml</code>, and <code>PopulationTables.xml</code>.</ref> Once you descend to level 6 or lower in most areas, creature and item generation typically | Most biomes have unique generation tables defined for their surface and levels 1-5 underground.<ref>Determined by review of <code>Worlds.xml</code>, <code>ZoneTemplates.xml</code>, and <code>PopulationTables.xml</code>.</ref> Once you descend to level 6 or lower in most areas, creature and item generation typically are more directly correlated to zone tier, creature tier, and item tier, and is less strictly defined by [[:Category:Terrain|terrain]]-specific spawning logic. | ||
There is also an element of randomness at play. For example, the dynamic loot tables for each zone tier have a small chance to roll upward one tier higher. This effect can chain in succession (although at very low probability), sometimes resulting in loot several tiers higher than expected. For example, {{favilink|Elder Irudad}} may spawn with tier 8 {{favilink|zetachrome pumps}} in {{favilink|Joppa}} at the start of the game, even though Joppa has a very low zone tier. | There is also an element of randomness at play. For example, the dynamic loot tables for each zone tier have a small chance to roll upward one tier higher. This effect can chain in succession (although at very low probability), sometimes resulting in loot several tiers higher than expected. For example, {{favilink|Elder Irudad}} may spawn with tier 8 {{favilink|zetachrome pumps}} in {{favilink|Joppa}} at the start of the game, even though Joppa has a very low zone tier. | ||
Line 31: | Line 31: | ||
=== Item Tier === | === Item Tier === | ||
Item tier is manually specified for each item in the game's <code>ObjectBlueprints.xml</code>. You can view the tier of a particular item on its wiki page. | Item tier is manually specified for each item in the game's <code>ObjectBlueprints.xml</code>. You can view the tier of a particular item on its wiki page. For example, a {{favilink|flamethrower}} is a tier 4 item. | ||
== Regional Zone Tier == | |||
{{No Official Name|section|inline=true}} | |||
The following map shows the '''regional zone tier''' for all areas in {{gamename}}. | |||
{{World map with zone tiers}} | |||
=== Features That Use Regional Zone Tier === | |||
Everything that is not explicitly listed as using '''static zone tier''' in the [[#Static_Zone_Tier|Static Zone Tier]] section of this page uses '''regional zone tier'''. | |||
Some examples of things that are influenced by '''regional zone tier''': | |||
* The generation of [[relic]] items. | |||
* Turret generation of {{favilink|dynamic turret tinker|plural}}<ref><code>ObjectBlueprints.xml</code></ref>{{Code Reference|class=TurretTinker}} | |||
* The XP reward for visiting a new [[historic site]] if you have a quest to visit that site (250 * regional zone tier){{Code Reference|namespace=HistoryKit|class=HistoricEvent|method=AddQuestsForRegion}} | |||
* Legendary/merchant lairs, including procedurally generated creatures and legendary merchant stock{{Code Reference|namespace=XRL.World.WorldBuilders|class=JoppaWorldBuilder|method=AddLairAt}} | |||
* Village generation{{Code Reference|namespace=XRL.Annals|class=InitializeVillage|method=Generate}} | |||
* Most other forms of dynamic creature/item generation throughout the world.<ref>''Technical note: Includes {zonetier} stand-ins in all XML files other than ZoneTemplates.xml.</ref>{{Code Reference|namespace=XRL|class=ZoneTemplate}}{{Code Reference|namespace=XRL.World|class=GameObjectFactory}}{{Code Reference|namespace=XRL.World.Encounters|class=EncounterObject}}{{Code Reference|namespace=XRL.World.Encounters|class=EncounterPopulation}}{{Code Reference|namespace=XRL.World.Encounters|class=EncounterTableObject}}'' | |||
=== Calculating Regional Zone Tier === | |||
To determine the regional zone tier for a zone:{{Code Reference|namespace=XRL.World|class=ZoneManager|method=GetZoneTier}} | |||
# Find the surface regional zone tier for the current parasang in the world map pictured above. | |||
#* This is closely tied to terrain type - for example, all {{favilink|Mountains}} zones have a surface regional zone tier of 4. | |||
# Next, modify that value based on the current depth: | |||
#* The zone tier is unchanged for the surface level and levels 1-4 underground. | |||
#* Otherwise, the zone tier is increased by '''Floor(Depth / 5)'''. Depth 5-9 increases the zone tier by 1, depth 10-14 increases the zone tier by 2, and so on. | |||
#** As an example, if the player digs beneath a {{favilink|Jungle}} biome (regional zone tier 3), the zone tier at depth 17 will be '''6'''. | |||
# Finally, modify the result to ensure it is a number between 1 and 8. If a calculation would result in a zone tier value lower than 1 or higher than 8, the result is always constrained to the nearest number within the 1 to 8 range. | |||
== Static Zone Tier == | |||
{{No Official Name|section|inline=true}} | |||
The following map shows the '''static zone tier''' for all areas in {{gamename}}. | |||
{{World map with world tiers}} | |||
=== Features That Use Static Zone Tier === | |||
This list is intended to be exhaustive. If something is not explicitly listed here, you can assume that it most likely uses '''regional zone tier''' instead. | |||
The following things are influenced by '''static zone tier''': | |||
* [[Historic_site#World_Map_Location|historic site locations]]{{Code Reference|namespace=XRL.World.WorldBuilders|class=JoppaWorldBuilder|method=AddSultanHistoryLocations|name=AddSultanHistoryLocations}} | |||
* The XP reward for visiting a new [[historic site]] if you '''''don't''''' have a quest to visit that site (250 * static zone tier){{Code Reference|class=SultanRegionSurface}} | |||
* The XP reward for visiting a new village{{Code Reference|class=VillageSurface}} | |||
* The randomly-selected zone location for {{favilink|Kindrish}}{{Code Reference|XRL.World.WorldBuilders|class=JoppaWorldBuilder|method=BuildSecrets}} | |||
* The tier of the randomly-selected creature when {{favilink|Either}}/{{favilink|Or}} atomizes into a random creature{{Code Reference|class=PetEitherOr}} | |||
* The minimum tier for {{favilink|sparking baetyl}} rewards{{Code Reference|class=RandomAltarBaetyl}} | |||
* Certain aspects of random faction encounters.{{Code Reference|namespace=XRL.World.ZoneBuilders|class=FactionEncounters|comment=Affects anything that uses "FactionEncounters" builder, which is most world zones.}} This includes any of the following faction groups that appear with a legendary leader: [[Pariahs]], [[Bears]], [[Arachnids]], [[Tortoises]], [[Antelopes]], [[Apes]], [[Barathrumites]], [[Birds]], [[Mechanimists]], [[Seekers of the Sightless Way]], and [[Putus Templar]]<ref><code>PopulationTables.xml</code> - Possible factions chosen from "GenericFactionPopulation"</ref>. Some, but not all, of these factions use zone tier to determine certain features of their encounter. For example, legendary Barathrumite faction leaders will carry scrap and junk appropriate to the static zone tier. | |||
* The level and quantity of cybernetics credit wedges rewarded in the relic chest at the bottom of a [[historic site]]{{Code Reference|namespace=XRL.World.ZoneBuildes|class=PlaceRelicBuilder|method=BuildZoneWithRelic}} | |||
* A small number of legendary creature zone spawns (legendary baboons, snapjaws, glow-wights, eyeless king crabs, and goatfolk) and minor zone generation features.{{Code Reference|namespace=XRL|class=ZoneTemplate|comment=Applies to anything that uses "{zonetier}" in <code>ZoneTemplates.xml</code>}} | |||
=== Calculating Static Zone Tier === | |||
To determine the static zone tier for a zone:{{Code Reference|namespace=XRL.World|class=Zone|property=NewTier}} | |||
* If the current zone is strata 6 or deeper underground: | |||
*# Calculate '''2 + Floor((Strata - 6) / 5)''', regardless of the world location. | |||
*# Modify the result to ensure it is a number between 1 and 8. The result is always constrained to the nearest number within the 1 to 8 range. | |||
* Otherwise, for any zone higher than strata 6 underground: | |||
*# Take the static zone tier value shown in the map above. | |||
*# Modify that value to ensure it is a number between 1 and 8. The result is always constrained to the nearest number within the 1 to 8 range. | |||
== | == References == | ||
{{As of patch inline|2.0.201.58}} | |||
<references /> | |||
=== General Technical Notes === | |||
The following fields and methods return a "regional zone tier" value, based on the "RegionTier" tag on the World Map terrain object. These are the most commonly used methods in the codebase for obtaining zone tier: | |||
</ | * <code>XRL.World.Zone.Tier</code> | ||
* <code>XRL.World.ZoneManager.GetZoneTier()</code> | |||
* <code>XRL.World.ZoneManager.zoneGenerationContextTier</code> | |||
The following fields and methods return a "static zone tier" that is instead loaded from the game's <code>Text.txt</code> file. | |||
< | * <code>XRL.World.WorldBuilders.JoppaWorldBuilder.getLocationOfTier(int)</code> | ||
* <code>XRL.World.WorldBuilders.JoppaWorldBuilder.getLocationOfTier(int, int)</code> | |||
* <code>XRL.World.WorldBuilders.JoppaWorldBuilder.getLocationWithinNFromTerrainTypeTier()</code> | |||
* <code>XRL.World.Zone.NewTier</code>: This is one of the most widely used for "static zone tier" and is the only method that takes z-level into account. It has peculiar logic for calculating below-ground tiers, which completely ignores the surface tier at strata 6 and below. [https://bitbucket.org/bbucklew/cavesofqud-public-issue-tracker/issues/2834 This may be a bug?] | |||
* <code>XRL.ZoneTemplateNode.VariableReplace()</code> | |||
</ | |||
[[Category:Mechanics]][[Category:World]] |
Revision as of 16:52, 27 December 2020
Each zone (or screen) that a player explores has a particular difficulty tier associated with, often referred to as the Zone tier.
Zone tier is one significant factor that contributes to the procedural generation of features in Caves of Qud, such as the level and difficulty of creatures that are found in a particular zone, or the items that can be obtained as random loot from a chest in that zone. Procedural generation is also influenced by other factors, such as the terrain type of the current zone, and whether or not the current zone is part of a village or a unique location.
Zone tier is determined based on a combination of the following elements:
- The surface tier of the current World Map parasangAn area made of 3x3 screens, which is represented as one tile on the overworld map..
- The depth of the current zone, if it is underground.
Background
For historical reasons, the game uses two different systems to calculate zone tier. This can sometimes make determining the zone tier a bit tricky, because depending on which feature is using the zone tier, it may be calculated using one system or the other (even in the same single zone). For the purposes of this article, we'll give a name to each of those systems to help better distinguish them:
- Regional Zone Tier: This type of zone tier is the most commonly used. It is closely linked to the world map terrain type of the zone. For example, all hills areas have a regional zone tier of 2, even the few Hills parasangs that are in the far upper-right corner of the world map, sandwiched between the Deathlands and the Mountains.
- Static Zone Tier: This type of zone tier appears to generally be an older type of zone tier system. It is based on static values that are defined in a configuration file[1] in the game directory. This system of zone tiers is used for fewer things, but it is still used frequently enough to be worth mentioning.
As a general rule, these two zone tier systems tend to be quite similar on the western half of the world map. They differ more significantly on the eastern half of the map.
Tiers and Procedural Generation
A location's zone tier is generally used as a rough guide for procedural generation of creatures and items in that zone.
For example, in an area with a zone tier of 5, tier 5 creatures (such as dynamic turret tinkers) and tier 5 items (such as fullerite gauntlets) are more likely to be found. Note that zone tier is only one of several factors that affects the dynamic generation of creatures and objects in the world. Specific types of terrain, biomes, unique locations (such as historic sites or dungeons), or other factors can influence the objects and items that are generated in particular zones. This is why, for example, the surface levels of the desert canyons will always contain the same primary creatures, such as snapjaws, equimaxes, and giant dragonflies - this biome has its own unique population/encounter tables.
Most biomes have unique generation tables defined for their surface and levels 1-5 underground.[2] Once you descend to level 6 or lower in most areas, creature and item generation typically are more directly correlated to zone tier, creature tier, and item tier, and is less strictly defined by terrain-specific spawning logic.
There is also an element of randomness at play. For example, the dynamic loot tables for each zone tier have a small chance to roll upward one tier higher. This effect can chain in succession (although at very low probability), sometimes resulting in loot several tiers higher than expected. For example, Elder Irudad may spawn with tier 8 zetachrome pumps in Joppa at the start of the game, even though Joppa has a very low zone tier.
Creature Tier
Creature tier is based on level. Creatures of levels 1-9 are tier 1 for the purposes of dynamic zone generation. A creature's tier increases by one for additional each five levels (creatures of levels 10-14 are tier 2, creatures of level 15-19 are tier 3, etcetera).
Note that this logic for creature tier varies slightly from how a creature's XP tier is calculated (XP tier can go as low as 0). For more information about XP tiers, refer to the Experience page.
Item Tier
Item tier is manually specified for each item in the game's ObjectBlueprints.xml
. You can view the tier of a particular item on its wiki page. For example, a flamethrower is a tier 4 item.
Regional Zone Tier
The subject of this section has no official name presented in-game. As a result, a name for it was chosen at the discretion of wiki editors. |
The following map shows the regional zone tier for all areas in Caves of Qud.
Features That Use Regional Zone Tier
Everything that is not explicitly listed as using static zone tier in the Static Zone Tier section of this page uses regional zone tier.
Some examples of things that are influenced by regional zone tier:
- The generation of relic items.
- Turret generation of dynamic turret tinkers[3][4]
- The XP reward for visiting a new historic site if you have a quest to visit that site (250 * regional zone tier)[5]
- Legendary/merchant lairs, including procedurally generated creatures and legendary merchant stock[6]
- Village generation[7]
- Most other forms of dynamic creature/item generation throughout the world.[8][9][10][11][12][13]
Calculating Regional Zone Tier
To determine the regional zone tier for a zone:[14]
- Find the surface regional zone tier for the current parasang in the world map pictured above.
- This is closely tied to terrain type - for example, all mountains zones have a surface regional zone tier of 4.
- Next, modify that value based on the current depth:
- The zone tier is unchanged for the surface level and levels 1-4 underground.
- Otherwise, the zone tier is increased by Floor(Depth / 5). Depth 5-9 increases the zone tier by 1, depth 10-14 increases the zone tier by 2, and so on.
- As an example, if the player digs beneath a jungle biome (regional zone tier 3), the zone tier at depth 17 will be 6.
- Finally, modify the result to ensure it is a number between 1 and 8. If a calculation would result in a zone tier value lower than 1 or higher than 8, the result is always constrained to the nearest number within the 1 to 8 range.
Static Zone Tier
The subject of this section has no official name presented in-game. As a result, a name for it was chosen at the discretion of wiki editors. |
The following map shows the static zone tier for all areas in Caves of Qud.
Features That Use Static Zone Tier
This list is intended to be exhaustive. If something is not explicitly listed here, you can assume that it most likely uses regional zone tier instead.
The following things are influenced by static zone tier:
- historic site locations[15]
- The XP reward for visiting a new historic site if you don't have a quest to visit that site (250 * static zone tier)[16]
- The XP reward for visiting a new village[17]
- The randomly-selected zone location for Kindrish[18]
- The tier of the randomly-selected creature when either/or atomizes into a random creature[19]
- The minimum tier for sparking baetyl rewards[20]
- Certain aspects of random faction encounters.[21] This includes any of the following faction groups that appear with a legendary leader: Pariahs, Bears, Arachnids, Tortoises, Antelopes, Apes, Barathrumites, Birds, Mechanimists, Seekers of the Sightless Way, and Putus Templar[22]. Some, but not all, of these factions use zone tier to determine certain features of their encounter. For example, legendary Barathrumite faction leaders will carry scrap and junk appropriate to the static zone tier.
- The level and quantity of cybernetics credit wedges rewarded in the relic chest at the bottom of a historic site[23]
- A small number of legendary creature zone spawns (legendary baboons, snapjaws, glow-wights, eyeless king crabs, and goatfolk) and minor zone generation features.[24]
Calculating Static Zone Tier
To determine the static zone tier for a zone:[25]
- If the current zone is strata 6 or deeper underground:
- Calculate 2 + Floor((Strata - 6) / 5), regardless of the world location.
- Modify the result to ensure it is a number between 1 and 8. The result is always constrained to the nearest number within the 1 to 8 range.
- Otherwise, for any zone higher than strata 6 underground:
- Take the static zone tier value shown in the map above.
- Modify that value to ensure it is a number between 1 and 8. The result is always constrained to the nearest number within the 1 to 8 range.
References
This information is reliable as of patch 2.0.201.58. |
- ↑
Text.txt
- ↑ Determined by review of
Worlds.xml
,ZoneTemplates.xml
, andPopulationTables.xml
. - ↑
ObjectBlueprints.xml
- ↑
XRL.World.Parts.TurretTinker
- ↑
HistoryKit.HistoricEvent
, methodAddQuestsForRegion
- ↑
XRL.World.WorldBuilders.JoppaWorldBuilder
, methodAddLairAt
- ↑
XRL.Annals.InitializeVillage
, methodGenerate
- ↑ Technical note: Includes {zonetier} stand-ins in all XML files other than ZoneTemplates.xml.
- ↑
XRL.ZoneTemplate
- ↑
XRL.World.GameObjectFactory
- ↑
XRL.World.Encounters.EncounterObject
- ↑
XRL.World.Encounters.EncounterPopulation
- ↑
XRL.World.Encounters.EncounterTableObject
- ↑
XRL.World.ZoneManager
, methodGetZoneTier
- ↑
XRL.World.WorldBuilders.JoppaWorldBuilder
, methodAddSultanHistoryLocations
- ↑
XRL.World.Parts.SultanRegionSurface
- ↑
XRL.World.Parts.VillageSurface
- ↑
XRL.World.Parts.JoppaWorldBuilder
, methodBuildSecrets
- ↑
XRL.World.Parts.PetEitherOr
- ↑
XRL.World.Parts.RandomAltarBaetyl
- ↑
XRL.World.ZoneBuilders.FactionEncounters
– Affects anything that uses "FactionEncounters" builder, which is most world zones. - ↑
PopulationTables.xml
- Possible factions chosen from "GenericFactionPopulation" - ↑
XRL.World.ZoneBuildes.PlaceRelicBuilder
, methodBuildZoneWithRelic
- ↑
XRL.ZoneTemplate
– Applies to anything that uses "{zonetier}" inZoneTemplates.xml
- ↑
XRL.World.Zone
, propertyNewTier
General Technical Notes
The following fields and methods return a "regional zone tier" value, based on the "RegionTier" tag on the World Map terrain object. These are the most commonly used methods in the codebase for obtaining zone tier:
XRL.World.Zone.Tier
XRL.World.ZoneManager.GetZoneTier()
XRL.World.ZoneManager.zoneGenerationContextTier
The following fields and methods return a "static zone tier" that is instead loaded from the game's Text.txt
file.
XRL.World.WorldBuilders.JoppaWorldBuilder.getLocationOfTier(int)
XRL.World.WorldBuilders.JoppaWorldBuilder.getLocationOfTier(int, int)
XRL.World.WorldBuilders.JoppaWorldBuilder.getLocationWithinNFromTerrainTypeTier()
XRL.World.Zone.NewTier
: This is one of the most widely used for "static zone tier" and is the only method that takes z-level into account. It has peculiar logic for calculating below-ground tiers, which completely ignores the surface tier at strata 6 and below. This may be a bug?XRL.ZoneTemplateNode.VariableReplace()