Bay 12 Games Forum

Please login or register.

Login with username, password and session length
Advanced search  

Author Topic: Adding biomes to the raws  (Read 698 times)

GavJ

  • Bay Watcher
    • View Profile
Adding biomes to the raws
« on: July 08, 2014, 06:44:29 pm »

Yes, I'm aware that "add everything to the raws" is on the to-do list already. This thread is for suggesting specific types of tags that would be helpful to modders, in my opinion (or edited with suggestions of other posters). These are all just separate suggestions for everything I can possibly think of, though some are related. I wouldn't expect all or most of them would actually be implemented, even if biome raws were.

[NAME:(name)] obviously

[FREQUENCY:(1-100)] Some of the tags below would allow more than one biome to qualify in a given set of circumstances (like a given rainfall, drainage, etc.). This tag tells the game how heavily to weight a random choice between different biomes that are options. So if a given set of conditions could yield either "sand_desert" or "Jims_custom_sand_desert" their relative frequencies determine the dice roll weight.

[SUBTERRANEAN] in other words, ability to have more than one subterranean biome. Default would just be called [NAME:SUBTERRANEAN_DEFAULT] or something. Since there are no rainfalls or drainage or anything, the game could just randomly pick which from amongst any available subterranean biomes it is beneath each aboveground biome. FREQUENCY determines the weights, if so.

[TREE_DENSITY:(1-100)] how heavily forested the biome type is.

[PLANT_DENSITY:(1-100)] how many shrubs there are per unit area in the biome type.

[GRASS_DENSITY:(1-100)] how many grass tiles per unit area there are in the biome type.

[TREE_DIVERSITY:(integer):(integer)] minimum and maximum. So 2:3 would guarantee two tree species of some sort in the biome, and no more than 3 (except for specifically mentioned ones, see below). The AMOUNT of each species is still as usual determined by the relative frequency values of each one in their own raws, combined with the vegetation density of the biome.

[SHRUB_DIVERSITY:(integer):(integer)] same thing, but for shrubs (non trees, non grasses).

[GRASS_DIVERSITY:(integer):(integer)] same thing, but for grasses.

[PLANTCLASS_DIVERSITY:(ID word for a plant class):(integer):(integer)] same thing, but for custom specified groups of plants, using a system just like the [REACTION_CLASS] system. For example, I might make a plant class consisting of all and only berries, by adding [PLANT_CLASS:berries] to all the berry plants in their own raws, then [PLANTCLASS_DIVERSITY:berries:3:4] to a biome to guarantee at least 3 berry species and no more than 4 in this biome. Which don't count toward the plant_diversity or tree_diversity or grass_diversity ranges (these get processed first, then those).

[GUARANTEED_PLANT:(plant ID, such as "VINE_WHIP")] guaranteed that the given specific plant(s, if multiple entries) will be amongst those chosen to populate any example of this biome. Does not count toward the diversity ranges in the above tags. As a more powerful and flexible way of doing things like mangrove swamps, without having to worry about whether adding any other tree might randomly make it not contain mangroves, like you have to worry about currently.

^ All of those together would allow exquisitely powerful control over intricate and awesome custom mod ecosystems. If anybody can think of a way to exert finer control over animal populations in a way that makes sense, that'd be helpful too, but I can't -- those seem like they'd have to be controleld by the biome tags in the animal raws alone.

[NO_EVIL] by default, biomes can be any alignment, but these three tags would not allow that biome type to be paired with the specified alignment(s)
[NO_NEUTRAL_ALIGNMENT]
[NO_GOOD]

[NO_SAVAGE] same as above three, but for level of savage-ness.
[NO_NEUTRAL_SAVAGE]
[NO_BENIGN]

[ENVIRONMENTAL_HAZARD:(hazard ID):(integer)] level of item/creature damage from custom hazards. For example [ENVIRONMENTAL_HAZARD:sulfur_fumes:70]. Then, create creature tissue tags, plant tissue tags, and material definition tags for [HAZARD_DAMAGE:(hazard ID):(integer)], and if the damage is lower than the object or tissue's exposure to that hazard, it starts taking damage, just like heat or cold damage. Rate of damage is determined by just how far apart the integers are in the biome versus object/tissue tags. biome 70, object 65 = slow damage accumulation. Biome 709, object 5 = rapid damage.

[TEMPERATURE_RANGE:(integer):(integer)] chance of this biome occurring within given temperature range. If more than one biome qualifies for a given full set of temp, drainage, etc. parameters, just randomly choose which one it becomes, using the FREQUENCY weights.
[DRAINAGE_RANGE: ...
etc. etc. for all the biome determining worldgen params

[NO_FAST_TRAVEL] Similar to mountains, adventurers cannot fast travel while in this biome type.
[NO_ROADS] civs can't build roads through these biomes
[NO_BRIDGES] ditto
[NO_WALLS]
[NO_TUNNELS]
[NO_ARMIES] if army movement in the future respects terrain.

[ICE_COVERED] why not throw in the glacier special conditions, since they exist already
[SAND_COVERED] same deal for sand desert special conditions
[BOULDER_DENSITY] like tree_density, etc. but for those annoying ground boulders.

getting a little bit more obscure here, but ideally:
[DISALLOWED_LAYER:(inorganic material subtype)] soil or stone layers of the specified type can't be included (game replaces them with another random soil or stone layer of the appropriate class after the biome is decided, if possible. If there are none, choose ANY layer, even if it doesn't match, such as a filling in a metamorphic layer with a sedimentary replacement, but only if there aren't any legal metamorphic options left. If not even that is possible, worldgen rejection)

[DISALLOWED_CLUSTER:(inorganic material subtype)] no clusters allowed of the given material. In this case, try to find a replacement, but no need for rejection if there are none, just have no cluster at all.

^ By disallowing something in all biomes except one, and disallowing everything else in that biome, modders can have full control over mineral content of biomes.

Even more obscure/stretch/would-be-awesome-though:
[METAL_DENSITY:(1-100)]
[GEM_DENSITY:(1-100)]
[GUARANTEED_METAL:(type)]
[GUARANTEED_GEM:(type)]
[METAL_DIVERSITY:(integer):(integer)]
[GEM_DIVERSITY:(integer):(integer)]
...
^all the same stuff working the same way as the plants at the top of the post, but for metals and gems in that biome type.
« Last Edit: July 08, 2014, 06:46:33 pm by GavJ »
Logged
Cauliflower Labs – Geologically realistic world generator devblog

Dwarf fortress in 50 words: You start with seven alcoholic, manic-depressive dwarves. You build a fortress in the wilderness where EVERYTHING tries to kill you, including your own dwarves. Usually, your chief imports are immigrants, beer, and optimism. Your chief exports are misery, limestone violins, forest fires, elf tallow soap, and carved kitten bone.