The table is only a very rough start for an algorithm for determining minerals, and might not be useful at all on its own. The table gives you an indication of what you can expect from a world with a given mineral scarcity, but not that much help in actually bringing such a world about:
- The overall mineral abundance is not really that interesting from an algorithm point of view, as we need to get at it at the more detailed level of layers, where the layer material probably plays a crucial role. Given this material has this set of possible veins/clusters, how many vein/cluster materials should I select, how should that number of materials be distributed (sometimes yielding 3 and sometimes 7 different materials, for instance). Are the only factors scarcity and the number of possible materials, or does each individual material have properties that affect the outcome (and, if so, which properties and how)?
- Does DF use a common algorithm to select large/small clusters and veins, or does each category have its own algorithm, and, if so, are they independent or dependent on each other, and, if so, in what order (large cluster-vein-small cluster-inclusion)?
- How are inclusions determined? Do they use the same algorithm as clusters/veins based on the outcome of the previous step? I.e. given that I've gotten yellow diamond as a small cluster in the previous step, would I just apply the same algorithm to determine whether clear diamond should be present (I believe clear diamond is found only as inclusions in yellow diamond)?
- How are the abundance values determined? Would a low number of different materials selected result in higher abundance values than when the number of materials is higher? How does abundance depend on mineral scarcity?
- How are multiple selections of the same material handled? Are they just ignored with an RNG re-roll, or do they aggregate into a higher abundance value, and, if so, using which algorithm? Simple summing with a cut off at 100?
- I make the assumptions that the number of layers and layer thickness are not factors in the algorithms we're interested in. Is this a correct assumption (DF will generate more types of minerals and more of minerals in thicker layers, but that's not within the scope of the geo biome itself, but its application. Similarly, the amount of minerals generated depends on the thickness of the world from the magma sea upwards, which is decoupled from the geo biome [DF cuts off the parts that would appear below the magma sea, and stretches the lowest level to reach the sea if too shallow when generating an embark])?
For the application of generating a geo biome, I don't care how DF performs the following generation step of turning a geo biome into an actual embark. This does not mean I won't have a general DF mechanics interest in how it's done, though.
Edit:
Updated to 0.32 2017-12-27:
- Added the following Geo Manipulation commands:
- Full mineral layer, i.e. add every mineral legal to a layer
- Clear mineral layer, i.e. remove everything in a layer (to easily clear the above)
- Geo Diversity Single to assign the full set of minerals to every level of the current Geo Biome
- Geo Diversity All, to assign everything legal to every layer of every Geo Biome in the world.
Edit2:
Updated to 0.33 2018-01-11:
- Fixed bug in evil weather reanimation detection causing reanimation to be reported when it isn't.
- Added ability to change percentage of vegetation to be dead in biomes. DF itself only has a non zero value for reanimating biomes, but it can be applied to any biome.
The evil weather correction above has led to the discovery that you CAN set reanimation on non evil regions, and you can probably set it on an active fortress (not tested, but as weather effects are applied reanimation is probably applied as well). The reason previous attempts failed was that the region interactions used actually didn't reanimate...
Edit3:
Updated to 0.34 2018-01-15:
- Updated to be able to handle the naming of the dead_percentage field (as well as the old unk_1e4 name).