User:Delvin4519/Biome



Biomes are regions in a Minecraft world with varying geographical features, flora, heights, temperatures, humidity ratings, and sky and foliage colors. Biomes separate every generated world into different environments, paralleling the real world; examples of biomes include the forest, jungle, desert and ice plains.

The term biome is analogous to its scientific usage: on Earth, a biome is climatically and geographically defined by distinctive communities of plants, animals and soil organisms supported by similar climatic conditions. They are often referred to as ecosystems.

Biomes have a temperature value that determines if it snows, rains, or does not have either. The required values are: <0.15 for snow, 0.15 - 0.95 for rain, or >1.0 for none. These values can be used to determine the heights that snow generates in different biomes. For example, extreme hills generate snow at y=95, due to highland climate, as the base value is 0.2, and savannas do not experience rain or snow due to their heat. The temperature drops 0.00166667 per meter above sea level (Y==64).

Biomes are split into 5 categories based on their temperature: snow-covered, cold, medium, dry/warm, and neutral. They were separated to prevent biomes with huge temperature differences being placed side-by-side (such as cold taiga next to a desert).

Biome types
There are 61 distinct biomes. Biomes can be distinguished by the grass and leaf colors in the biome, along with the types of blocks present (e.g. types of trees or other plants like cacti, sand coverage in deserts). Biomes are pseudo-randomly generated using the map seed.

Snowy biomes
In these biomes, it snows at any height. The foliage and grass is an blue-green.

Cold biomes
In these biomes, it begins to snow over a certain height, but before the 256 block height limit. Otherwise, it rains. The foliage and grass is an aqua-green.

Hot/Dry biomes
In these biomes, it neither rains nor snows at all. The foliage and grass is an olive color, except mesa biomes, which have brown grass.

Unused biomes
These biomes no longer generate naturally, but still exist in Minecraft's code, and can be accessed by using the Custom world type.

Technical details
The temperature and rainfall values of the biome are used to change the colors of grass, foliage, and (for swamplands) water.

A biome's rainfall value is typically a value from 0.0 to 1.0. A biome's temperature starts at a given value at sea level, Y==64, and goes down by 0.00166667 per meter increase. Starting values range from 2.0 (e.g., Desert) to -0.5 (e.g., Cold Taiga). The temperature does not increase below sea level.

The temperature and rainfall values are used to access two texture images in Minecraft, grass.png and foliage.png, in \assets\minecraft\textures\colormap. These textures are triangular, only the lower left is used, despite the upper right of the foliage file having colors. The adjusted temperature and adjusted rainfall values are used to access these two triangles. Treating the lower left corner as temperature = 1.0 and rainfall = 0.0, with adjusted temperature decreasing to 0.0 at the right edge and adjusted rainfall increasing to 1.0 at the top edge, the values used to retrieve the colors are computed as follows:

AdjTemp = clamp( Temperature, 0.0, 1.0 )

AdjRainfall = clamp( Rainfall, 0.0, 1.0 ) * AdjTemp

"clamp" limits the range of the temperature and rainfall to 0.0-1.0. The clamped rainfall value is then multiplied by the 0.0-1.0 adjusted temperature value, which brings its value to be inside the lower left triangle. Some biomes' ranges are shown on the right; the multiplication makes all the line segments point towards the lower right corner.

The color for grass block top and sides, along with various forms of grass – specifically tall grass, ferns, double tall grass, and large ferns – is modified by the color retrieved from the grass.png image. The color for various tree foliage - all tree types except spruce and birch, which have fixed colors in the code – is modified by the color retrieved from foliage.png.

At borders between or among biomes, the colors of the block and its eight neighbors are computed and the average is used for the final block color.

Exact temperature and rainfall values for biomes can be found in various projects, e.g. this biome code.

Swampland
Swamplands are special. Temperature, which starts at 0.8, is not affected by altitude. Rather, a Perlin noise function is used to gradually vary the temperature of the swampland. When this temperature goes below -0.1, a lush green color is used, 0x4C763C, otherwise it is set to a sickly brown, 0x6A7039. In addition, the color of the water in swamplands is always multiplied by a greenish tinge, 0xE0FFAE. These colors are locked in the code and not retrievable from any texture.

Roofed forest
The roofed forest biomes' grass color is retrieved normally, presumably the regular forest grass/foliage colors, then averaged with a dark green color, 0x28340A, to produce the final color.

Mesa
All mesa biomes' grass and foliage have hardwired colors, two tan colors, 0x90814D and 0x9E814D respectively. These are not modifiable by grass.png and foliage.png and unaffected by temperature.

Trivia

 * Mountainous biomes have names ending with "Hills" in the F3 Menu, except for mega spruce taiga, whose mountainous version is called "Redwood Taiga Hills M," rather than "Mega Spruce Taiga Hills".
 * The world generation was changed in 1.7 to greatly reduce the incidence of biomes with the highest temperature differences, such as an ice plains and a desert, from generating next to each other. Such juxtaposition can still be seen in rare cases, although these occurrences are much less common.