mirror of
https://github.com/Cubitect/cubiomes.git
synced 2025-08-03 09:46:41 -04:00
767 lines
32 KiB
TeX
767 lines
32 KiB
TeX
\documentclass{article}
|
|
\usepackage{listings}
|
|
\usepackage{xcolor}
|
|
\usepackage{graphicx}
|
|
\usepackage{url}
|
|
\usepackage{pdfpages}
|
|
\usepackage{makecell}
|
|
\usepackage{tabularx}
|
|
\usepackage{amsmath}
|
|
\usepackage{amssymb}
|
|
\usepackage{multirow}
|
|
\usepackage{array}
|
|
|
|
\title{Summary of the Biome Generation in \\ Minecraft 1.7 - 1.12}
|
|
|
|
\author{Cubitect}
|
|
|
|
\begin{document}
|
|
|
|
\maketitle
|
|
|
|
\begin{abstract}
|
|
This document is designed to provide an overview of how Minecraft biome generation works and how we may efficiently find seeds with desired properties.
|
|
\end{abstract}
|
|
|
|
\newpage
|
|
|
|
\tableofcontents
|
|
|
|
|
|
|
|
\newpage
|
|
|
|
|
|
\section{Biome Generator Layers}
|
|
|
|
Minecraft biome generation occurs in layers. Many of these layers are chained together inside the generator, such that the output from one becomes the input for the next. A flowchart of this can be found on the next page.
|
|
|
|
Each layer applies certain modifications to a map of integers, which change their use throughout the generation process. Initially the map only contains values 0 or 1, representing ocean or land masses. Later in the generator they represent temperature categories, until they are finally replaced by the actual biome IDs.
|
|
|
|
Some of the layers resize the output of the previous layer. These Zoom-layers therefore change how much area is represented by a map entry. I will refer to this as "scale". For instance, 1:256 should be read as: one map entry ends up as an area of 256x256 blocks in the world.
|
|
|
|
\setcounter{subsection}{-1}
|
|
\subsection{Seed Finding}
|
|
|
|
When constructing a seed finder, it may be useful to stop the generation at an earlier layer. For example if we require a swamp to be located near a given position, then we might want to generate up to layer 19: Biome first, and then check on a 1:256 scale if there is a swamp in the area. This is not enough to confirm that there will be a swamp at the given position, but we can rule out seeds that definitely don't have a swamp anywhere near the area. If the seed passes this cheap test, then we can go through the full expensive generation process and directly check the position for a swamp.
|
|
|
|
Usually it is not practical to continue the search from a terminated generation and we have to start over again. The reason for this is that most layers require an additional 1 wide boarder from the previous layer, so the map sizes don't match up.
|
|
|
|
Another more involved, but very powerful way of creating early knock-out criteria is to check if there is a some condition in the layer chain that is independent of the rest of the biomes. For instance in the case of finding a swamp, we can notice that there is a pseudo-random number check in layer 19: Biome, that converts Lush temperature climates to swamplands. However, the pseudo-random number generator is seeded by a combination of the position and the world seed, so we can make sure the random number output gives the required value without going through the rest of the layers. The more expensive generator can afterwards be used to make sure that a Lush climate is actually present at that position.
|
|
|
|
|
|
In the summary below in sections 1.1 -- 1.44 I have laid out some of the properties of each layer, such as the scale of the layer and the possible values for the map entries with their respective average probability of occurrence (Note: these are estimates and may vary). When constructing a seed finder these values can be used as a reference to determine reasonable cut-off points for the generator.
|
|
|
|
|
|
\includepdf[pages={1}]{layers.pdf}
|
|
|
|
|
|
\subsection{Layer 1: Island}
|
|
\begin{tabular}{|l|l|l|}\hline
|
|
Scale: & \multicolumn{2}{|l|}{1:4096} \\\hline\hline
|
|
Value & Type & Occurrence \\\hline
|
|
0 & Ocean & 90.0\%\\\hline
|
|
1 & Land & 10.0\%\\\hline
|
|
\end{tabular}
|
|
|
|
\subsection{Layer 2: Zoom}
|
|
\begin{tabular}{|l|l|l|}\hline
|
|
Scale: & \multicolumn{2}{|l|}{1:2048} \\\hline\hline
|
|
Value & Type & Occurrence \\\hline
|
|
0 & Ocean & 90.0\%\\\hline
|
|
1 & Land & 10.0\%\\\hline
|
|
\end{tabular}
|
|
|
|
\subsection{Layer 3: Add Island}
|
|
\begin{tabular}{|l|l|l|}\hline
|
|
Scale: & \multicolumn{2}{|l|}{1:2048} \\\hline\hline
|
|
Value & Type & Occurrence \\\hline
|
|
0 & Ocean & 84.3\%\\\hline
|
|
1 & Land & 15.7\%\\\hline
|
|
\end{tabular}
|
|
|
|
\subsection{Layer 4: Zoom}
|
|
\begin{tabular}{|l|l|l|}\hline
|
|
Scale: & \multicolumn{2}{|l|}{1:1024} \\\hline\hline
|
|
Value & Type & Occurrence \\\hline
|
|
0 & Ocean & 84.9\%\\\hline
|
|
1 & Land & 15.1\%\\\hline
|
|
\end{tabular}
|
|
|
|
\subsection{Layer 5: Add Island}
|
|
\begin{tabular}{|l|l|l|}\hline
|
|
Scale: & \multicolumn{2}{|l|}{1:1024} \\\hline\hline
|
|
Value & Type & Occurrence \\\hline
|
|
0 & Ocean & 81.4\%\\\hline
|
|
1 & Land & 18.6\%\\\hline
|
|
\end{tabular}
|
|
|
|
\subsection{Layer 6: Add Island}
|
|
\begin{tabular}{|l|l|l|}\hline
|
|
Scale: & \multicolumn{2}{|l|}{1:1024} \\\hline\hline
|
|
Value & Type & Occurrence \\\hline
|
|
0 & Ocean & 77.5\%\\\hline
|
|
1 & Land & 22.5\%\\\hline
|
|
\end{tabular}
|
|
|
|
\subsection{Layer 7: Add Island}
|
|
\begin{tabular}{|l|l|l|}\hline
|
|
Scale: & \multicolumn{2}{|l|}{1:1024} \\\hline\hline
|
|
Value & Type & Occurrence \\\hline
|
|
0 & Ocean & 73.4\%\\\hline
|
|
1 & Land & 26.6\%\\\hline
|
|
\end{tabular}
|
|
|
|
\subsection{Layer 8: Remove Too Much Ocean}
|
|
\begin{tabular}{|l|l|l|}\hline
|
|
Scale: & \multicolumn{2}{|l|}{1:1024} \\\hline\hline
|
|
Value & Type & Occurrence \\\hline
|
|
0 & Ocean & 49.4\%\\\hline
|
|
1 & Land & 50.6\%\\\hline
|
|
\end{tabular}
|
|
|
|
|
|
\subsection{Layer 9: Add Snow}
|
|
\begin{tabular}{|l|l|l|}\hline
|
|
Scale: & \multicolumn{2}{|l|}{1:1024} \\\hline\hline
|
|
Value & Type & Occurrence \\\hline
|
|
0 & Ocean & 49.4\%\\\hline
|
|
1 & Warm & 33.7\%\\\hline
|
|
3 & Cold & 4.8\%\\\hline
|
|
4 & Freezing & 12.4\%\\\hline
|
|
\end{tabular}
|
|
|
|
\medskip\noindent
|
|
Changes some of the land starting points to Cold and Freezing.
|
|
|
|
\subsection{Layer 10: Add Island}
|
|
\begin{tabular}{|l|l|l|}\hline
|
|
Scale: & \multicolumn{2}{|l|}{1:1024} \\\hline\hline
|
|
Value & Type & Occurrence \\\hline
|
|
0 & Ocean & 33.8\%\\\hline
|
|
1 & Warm & 37.6\%\\\hline
|
|
3 & Cold & 4.8\%\\\hline
|
|
4 & Freeing & 23.9\%\\\hline
|
|
\end{tabular}
|
|
|
|
\medskip\noindent
|
|
Spreads out the continental areas, decreasing the amount of ocean.
|
|
|
|
\subsection{Layer 11: Edge, Cool/Warm}
|
|
\begin{tabular}{|l|l|l|}\hline
|
|
Scale: & \multicolumn{2}{|l|}{1:1024} \\\hline\hline
|
|
Value & Type & Occurrence \\\hline
|
|
0 & Ocean & 33.8\%\\\hline
|
|
1 & Warm & 13.6\%\\\hline
|
|
2 & Lush & 23.9\%\\\hline
|
|
3 & Cold & 4.8\%\\\hline
|
|
4 & Freezing & 23.9\%\\\hline
|
|
\end{tabular}
|
|
|
|
\medskip\noindent
|
|
Changes Warm(1) lands which are adjacent to Cold(3) or Freezing(4) temperatures to Lush(2).
|
|
|
|
\subsection{Layer 12: Edge, Heat/Ice}
|
|
\begin{tabular}{|l|l|l|}\hline
|
|
Scale: & \multicolumn{2}{|l|}{1:1024} \\\hline\hline
|
|
Value & Type & Occurrence \\\hline
|
|
0 & Ocean & 33.8\%\\\hline
|
|
1 & Warm & 13.6\%\\\hline
|
|
2 & Lush & 23.9\%\\\hline
|
|
3 & Cold & 23.9\%\\\hline
|
|
4 & Freezing & 4.8\%\\\hline
|
|
\end{tabular}
|
|
|
|
\medskip\noindent
|
|
Changes Freezing(4) lands which are adjacent to Warm(1) or Lush(2) temperatures to Cold(3).
|
|
|
|
\subsection{Layer 13: Edge, Special}
|
|
\begin{tabular}{|l|l|l|}\hline
|
|
Scale: & \multicolumn{2}{|l|}{1:1024} \\\hline\hline
|
|
Value & Type & Occurrence \\\hline
|
|
0 & Ocean & 33.8\%\\\hline
|
|
1 & Warm & 12.5\%\\\hline
|
|
2 & Lush & 22.1\%\\\hline
|
|
3 & Cold & 22.1\%\\\hline
|
|
4 & Freezing & 4.4\%\\\hline
|
|
- & Special & 5.1\% / 60\\\hline
|
|
\end{tabular}
|
|
|
|
\medskip\noindent
|
|
Marks every 1 in 13 lands (non-ocean) as special, by adding a 4-bit number in 0x0F00 to the value.
|
|
|
|
|
|
\subsection{Layer 14: Zoom}
|
|
\begin{tabular}{|l|l|l|}\hline
|
|
Scale: & \multicolumn{2}{|l|}{1:512} \\\hline\hline
|
|
Value & Type & Occurrence \\\hline
|
|
0 & Ocean & 35.6\%\\\hline
|
|
1 & Warm & 12.2\%\\\hline
|
|
2 & Lush & 21.9\%\\\hline
|
|
3 & Cold & 21.9\%\\\hline
|
|
4 & Freezing & 4.2\%\\\hline
|
|
- & Special & 4.2\% / 60\\\hline
|
|
\end{tabular}
|
|
|
|
\subsection{Layer 15: Zoom}
|
|
\begin{tabular}{|l|l|l|}\hline
|
|
Scale: & \multicolumn{2}{|l|}{1:256} \\\hline\hline
|
|
Value & Type & Occurrence \\\hline
|
|
0 & Ocean & 35.6\%\\\hline
|
|
1 & Warm & 11.9\%\\\hline
|
|
2 & Lush & 21.9\%\\\hline
|
|
3 & Cold & 21.9\%\\\hline
|
|
4 & Freezing & 4.2\%\\\hline
|
|
- & Special & 4.5\% / 60\\\hline
|
|
\end{tabular}
|
|
|
|
\subsection{Layer 16: Add Island}
|
|
\begin{tabular}{|l|l|l|}\hline
|
|
Scale: & \multicolumn{2}{|l|}{1:256} \\\hline\hline
|
|
Value & Type & Occurrence \\\hline
|
|
0 & Ocean & 31.4\%\\\hline
|
|
1 & Warm & 12.7\%\\\hline
|
|
2 & Lush & 22.4\%\\\hline
|
|
3 & Cold & 22.8\%\\\hline
|
|
4 & Freezing & 6.2\%\\\hline
|
|
- & Special & 4.5\% / 60\\\hline
|
|
\end{tabular}
|
|
|
|
|
|
\subsection{Layer 17: Add Mushroom Island}
|
|
\begin{tabular}{|l|l|l|l|}\hline
|
|
Scale: & \multicolumn{3}{|l|}{1:256} \\\hline\hline
|
|
Value & Type & \multicolumn{2}{l|}{Occurrence} \\\hline
|
|
0 & Ocean & \multicolumn{2}{l|}{31.4\%}\\\hline
|
|
1 & Warm & \multicolumn{2}{l|}{12.8\%}\\\hline
|
|
2 & Lush & \multicolumn{2}{l|}{22.5\%}\\\hline
|
|
3 & Cold & \multicolumn{2}{l|}{22.7\%}\\\hline
|
|
4 & Freezing & \multicolumn{2}{l|}{6.08\%}\\\hline
|
|
14 & Mushroom & \multicolumn{2}{l|}{0.0773\%}\\\hline\hline
|
|
|
|
\makecell[l]{ $(n<<8)+1$ \\ with $n = $ \\ $1, 4, 7, 10, 13$ } & - &
|
|
\makecell[l]{0.0690\% \\each} & \multirow{5}{*}{0.90\%}\\\cline{1-3}
|
|
|
|
\makecell[l]{ $(n<<8)+1$ \\ with $n = $ \\ $2, 3, 5, 6, 8, 9,$ \\ $11, 12, 14, 15$ } & - & \makecell[l]{0.0553\% \\ each} & \\\hline\hline
|
|
|
|
\makecell[l]{ $(n<<8)+2$ \\ with $n = $ \\ $1, 4, 7, 10, 13$ } & - &
|
|
\makecell[l]{0.1236\% \\ each} & \multirow{5}{*}{1.56\%}\\\cline{1-3}
|
|
|
|
\makecell[l]{ $(n<<8)+2$ \\ with $n = $ \\ $2, 3, 5, 6, 8, 9,$ \\ $11, 12, 14, 15$ } & - & \makecell[l]{0.0961\% \\ each} & \\\hline\hline
|
|
|
|
\makecell[l]{ $(n<<8)+3$ \\ with $n = $ \\ $1, 4, 7, 10, 13$ } & - &
|
|
\makecell[l]{0.1078\% \\ each} & \multirow{5}{*}{1.58\%}\\\cline{1-3}
|
|
|
|
\makecell[l]{ $(n<<8)+3$ \\ with $n = $ \\ $2, 3, 5, 6, 8, 9,$ \\ $11, 12, 14, 15$ } & - &
|
|
\makecell[l]{0.1037\% \\ each} & \\\hline\hline
|
|
|
|
\makecell[l]{ $(n<<8)+4$ \\ with $n = $ \\ $1, 4, 7, 10, 13$ } & - &
|
|
\makecell[l]{0.0212\% \\ each} & \multirow{5}{*}{0.32\%}\\\cline{1-3}
|
|
|
|
\makecell[l]{ $(n<<8)+4$ \\ with $n = $ \\ $2, 3, 5, 6, 8, 9,$ \\ $11, 12, 14, 15$ } & - &
|
|
\makecell[l]{0.0212\% \\ each} & \\\hline
|
|
|
|
\end{tabular}
|
|
|
|
\medskip\noindent
|
|
Changes every 100th Ocean (adjacent to more Ocean) to Mushroom Island. The special land types are written out in full in the table above. (Note "$<<$" represents a left bit shit.) Added together, the special types make up an average of about 4.37\% of the area.
|
|
|
|
|
|
\subsection{Layer 18: Deep Ocean}
|
|
\begin{tabular}{|l|l|l|}\hline
|
|
Scale: & \multicolumn{2}{|l|}{1:256} \\\hline\hline
|
|
Value & Type & Occurrence \\\hline
|
|
0 & Ocean & 22.0\%\\\hline
|
|
1 & Warm & 12.8\%\\\hline
|
|
2 & Lush & 22.5\%\\\hline
|
|
3 & Cold & 22.7\%\\\hline
|
|
4 & Freezing & 6.1\%\\\hline
|
|
14 & Mushroom & 0.0773\%\\\hline
|
|
24 & Deep Ocean & 9.4\%\\\hline
|
|
- & Special & 4.4\% / 60\\\hline
|
|
\end{tabular}
|
|
|
|
\medskip\noindent
|
|
Changes any Ocean which is surrounded by more Ocean to Deep Ocean.\\
|
|
(Special lands still have the same statistics as shown for Layer 17.)
|
|
|
|
|
|
\subsection{Layer 19: Biome}
|
|
\begin{tabular}{|l|l|l|}\hline
|
|
Scale: & \multicolumn{2}{|l|}{1:256} \\\hline\hline
|
|
Value & Type & Occurrence \\\hline
|
|
0 & ocean & 22.0\%\\\hline
|
|
1 & plains & 11.6\%\\\hline
|
|
2 & desert & 6.41\%\\\hline
|
|
3 & extremeHills & 9.44\%\\\hline
|
|
4 & forest & 9.43\%\\\hline
|
|
5 & taiga & 5.68\%\\\hline
|
|
6 & swampland & 3.75\%\\\hline
|
|
12 & icePlains & 4.80\%\\\hline
|
|
14 & mushroomIsland & 0.0773\%\\\hline
|
|
21 & jungle & 1.58\%\\\hline
|
|
24 & deepOcean & 9.38\%\\\hline
|
|
27 & birchForest & 3.75\%\\\hline
|
|
29 & roofedForest & 3.75\%\\\hline
|
|
30 & coldTaiga & 1.60\%\\\hline
|
|
32 & megaTaiga & 1.58\%\\\hline
|
|
35 & savanna & 4.28\%\\\hline
|
|
38 & mesaPlateau\_F & 0.598\%\\\hline
|
|
39 & mesaPlateau & 0.299\%\\\hline
|
|
\end{tabular}
|
|
|
|
\medskip\noindent
|
|
Assigns the actual biome IDs to the lands, based on the temperature category of the land. To be more specific the selection criteria are:
|
|
|
|
\begin{tabular}{l c c l}
|
|
|
|
Temperature & & Weight & Biome \\\hline\hline
|
|
|
|
Warm & $\longrightarrow$ &
|
|
\makecell[c]{1/2 \\ 1/3 \\ 1/6} &
|
|
\makecell[l]{desert \\ savanna \\ plains} \\\hline
|
|
|
|
Warm, special & $\longrightarrow$ &
|
|
\makecell[c]{1/3 \\ 2/3} &
|
|
\makecell[l]{mesaPlateau \\ mesaPlateau\_F} \\\hline
|
|
|
|
Lush & $\longrightarrow$ &
|
|
\makecell[c]{1/6 \\ 1/6 \\ 1/6 \\ 1/6 \\ 1/6 \\ 1/6} &
|
|
\makecell[l]{forest \\ roofedForest \\ extremeHills \\ plains \\ birchForest \\ swampland} \\\hline
|
|
|
|
Lush, special & $\longrightarrow$ &
|
|
\makecell[c]{1/1} &
|
|
jungle \\\hline
|
|
|
|
Cold & $\longrightarrow$ &
|
|
\makecell[c]{1/4 \\ 1/4 \\ 1/4 \\ 1/4} &
|
|
\makecell[l]{forest \\ extremeHills \\ taiga \\ plains} \\\hline
|
|
|
|
Cold, special & $\longrightarrow$ &
|
|
\makecell[c]{1/1} &
|
|
megaTaiga \\\hline
|
|
|
|
Freezing& $\longrightarrow$ &
|
|
\makecell[c]{3/4 \\ 1/4} &
|
|
\makecell[l]{icePlains \\ coldTaiga}
|
|
|
|
\end{tabular}
|
|
|
|
\medskip\noindent
|
|
Ocean and Mushroom types are not affected by this layer. The special category is selected when one of the higher bits (0xF00) are set. E.g. 0x603 has high bits and is thus a special Cold(3) category.
|
|
|
|
|
|
\subsection{Layer 20: Zoom}
|
|
\begin{tabular}{|l|l|l|}\hline
|
|
Scale: & \multicolumn{2}{|l|}{1:128} \\\hline\hline
|
|
Value & Type & Occurrence \\\hline
|
|
0 & ocean & 23.6\%\\\hline
|
|
1 & plains & 11.3\%\\\hline
|
|
2 & desert & 6.48\%\\\hline
|
|
3 & extremeHills & 9.28\%\\\hline
|
|
4 & forest & 9.28\%\\\hline
|
|
5 & taiga & 5.52\%\\\hline
|
|
6 & swampland & 3.61\%\\\hline
|
|
12 & icePlains & 4.94\%\\\hline
|
|
14 & mushroomIsland & 0.0586\%\\\hline
|
|
21 & jungle & 1.62\%\\\hline
|
|
24 & deepOcean & 9.09\%\\\hline
|
|
27 & birchForest & 3.61\%\\\hline
|
|
29 & roofedForest & 3.61\%\\\hline
|
|
30 & coldTaiga & 1.45\%\\\hline
|
|
32 & megaTaiga & 1.62\%\\\hline
|
|
35 & savanna & 4.12\%\\\hline
|
|
38 & mesaPlateau\_F & 0.602\%\\\hline
|
|
39 & mesaPlateau & 0.279\%\\\hline
|
|
\end{tabular}
|
|
|
|
|
|
\subsection{Layer 21: Zoom}
|
|
\begin{tabular}{|l|l|l|}\hline
|
|
Scale: & \multicolumn{2}{|l|}{1:64} \\\hline\hline
|
|
Value & Type & Occurrence \\\hline
|
|
0 & ocean & 23.9\%\\\hline
|
|
1 & plains & 11.2\%\\\hline
|
|
2 & desert & 6.50\%\\\hline
|
|
3 & extremeHills & 9.23\%\\\hline
|
|
4 & forest & 9.23\%\\\hline
|
|
5 & taiga & 5.49\%\\\hline
|
|
6 & swampland & 3.56\%\\\hline
|
|
12 & icePlains & 5.00\%\\\hline
|
|
14 & mushroomIsland & 0.0543\%\\\hline
|
|
21 & jungle & 1.62\%\\\hline
|
|
24 & deepOcean & 9.03\%\\\hline
|
|
27 & birchForest & 3.58\%\\\hline
|
|
29 & roofedForest & 3.57\%\\\hline
|
|
30 & coldTaiga & 1.43\%\\\hline
|
|
32 & megaTaiga & 1.62\%\\\hline
|
|
35 & savanna & 4.08\%\\\hline
|
|
38 & mesaPlateau\_F & 0.603\%\\\hline
|
|
39 & mesaPlateau & 0.275\%\\\hline
|
|
\end{tabular}
|
|
\subsection{Layer 22: Biome Edge}
|
|
\begin{tabular}{|l|l|l|}\hline
|
|
Scale: & \multicolumn{2}{|l|}{1:64} \\\hline\hline
|
|
Value & Type & Occurrence \\\hline
|
|
0 & ocean & 23.9\%\\\hline
|
|
1 & plains & 11.2\%\\\hline
|
|
2 & desert & 6.48\%\\\hline
|
|
3 & extremeHills & 9.23\%\\\hline
|
|
4 & forest & 9.23\%\\\hline
|
|
5 & taiga & 6.01\%\\\hline
|
|
6 & swampland & 3.47\%\\\hline
|
|
12 & icePlains & 5.00\%\\\hline
|
|
14 & mushroomIsland & 0.0543\%\\\hline
|
|
21 & jungle & 1.62\%\\\hline
|
|
23 & jungleEdge & 0.0144\%\\\hline
|
|
24 & deepOcean & 9.03\%\\\hline
|
|
27 & birchForest & 3.58\%\\\hline
|
|
29 & roofedForest & 3.57\%\\\hline
|
|
30 & coldTaiga & 1.43\%\\\hline
|
|
32 & megaTaiga & 1.11\%\\\hline
|
|
34 & extremeHillsPlus & 0.0111\%\\\hline
|
|
35 & savanna & 4.09\%\\\hline
|
|
37 & mesa & 0.321\%\\\hline
|
|
38 & mesaPlateau\_F & 0.385\%\\\hline
|
|
39 & mesaPlateau & 0.172\%\\\hline
|
|
\end{tabular}
|
|
|
|
\medskip\noindent
|
|
Introduces the biomes jungleEdge, extremeHillsPlus and mesa. The conditional biome changes that take place in this layer are:
|
|
|
|
\begin{tabular}{l c l}
|
|
mesaPlateau\_F & $\longrightarrow$ & mesa\\
|
|
mesaPlateau & $\longrightarrow$ & mesa\\
|
|
megaTaiga & $\longrightarrow$ & taiga\\
|
|
desert & $\longrightarrow$ & extremeHillsPlus\\
|
|
swampland & $\longrightarrow$ & jungleEdge \\
|
|
swampland & $\longrightarrow$ & plains
|
|
\end{tabular}
|
|
|
|
\subsection{Layer 23: River Init}
|
|
|
|
Starts a new branch of off Layer 18: Deep Ocean. This layer overwrites each map entry that is not Ocean(0) with a pseudo random number between 2 and 300000 (inclusive).
|
|
|
|
\subsection{Layer 24: Zoom}
|
|
\subsection{Layer 25: Zoom}
|
|
|
|
\subsection{Layer 26: Hills}
|
|
This is a multilayer which joins the biome generation with the river generator branch at the layers Biome Edge (22) and Zoom (25). However at this stage the river branch is mostly just used as a pseudo random number source.
|
|
|
|
\medskip\noindent
|
|
\begin{tabular}{|l|l|l|}\hline
|
|
Scale: & \multicolumn{2}{|l|}{1:64} \\\hline\hline
|
|
Value & Type & Occurrence \\\hline
|
|
0 & ocean & 17.5\%\\\hline
|
|
1 & plains & 9.86\%\\\hline
|
|
2 & desert & 4.83\%\\\hline
|
|
3 & extremeHills & 6.95\%\\\hline
|
|
4 & forest & 8.87\%\\\hline
|
|
5 & taiga & 4.67\%\\\hline
|
|
6 & swampland & 3.36\%\\\hline
|
|
12 & icePlains & 3.54\%\\\hline
|
|
13 & iceMountains & 1.30\%\\\hline
|
|
14 & mushroomIsland & 0.0543\%\\\hline
|
|
17 & desertHills & 1.46\%\\\hline
|
|
18 & forestHills & 2.68\%\\\hline
|
|
19 & taigaHills & 1.15\%\\\hline
|
|
21 & jungle & 1.15\%\\\hline
|
|
22 & jungleHills & 0.420\%\\\hline
|
|
23 & jungleEdge & 0.0140\%\\\hline
|
|
24 & deepOcean & 14.4\%\\\hline
|
|
27 & birchForest & 2.58\%\\\hline
|
|
28 & birchForestHills & 0.800\%\\\hline
|
|
29 & roofedForest & 2.57\%\\\hline
|
|
30 & coldTaiga & 1.11\%\\\hline
|
|
31 & coldTaigaHills & 0.282\%\\\hline
|
|
32 & megaTaiga & 0.688\%\\\hline
|
|
33 & megaTaigaHills & 0.344\%\\\hline
|
|
34 & extremeHillsPlus & 1.80\%\\\hline
|
|
35 & savanna & 3.05\%\\\hline
|
|
36 & savannaPlateau & 0.830\%\\\hline
|
|
37 & mesa & 0.486\%\\\hline
|
|
38 & mesaPlateau\_F & 0.240\%\\\hline
|
|
39 & mesaPlateau & 0.107\%\\\hline
|
|
\end{tabular}
|
|
\newpage\noindent
|
|
\begin{tabular}{|l|l|l|}\hline
|
|
129 & Sunflower Plains & 0.4816\%\\\hline
|
|
130 & Desert M & 0.1971\%\\\hline
|
|
131 & Extreme Hills M & 0.2944\%\\\hline
|
|
132 & Flower Forest & 0.4904\%\\\hline
|
|
133 & Taiga M & 0.1897\%\\\hline
|
|
134 & Swampland M & 0.1109\%\\\hline
|
|
140 & Ice Plains Spikes & 0.1606\%\\\hline
|
|
149 & Jungle M & 0.0511\%\\\hline
|
|
151 & Jungle Edge M & 0.0005\%\\\hline
|
|
155 & Birch Forest M & 0.1154\%\\\hline
|
|
156 & Birch Forest Hills M & 0.0854\%\\\hline
|
|
157 & Roofed Forest M & 0.1144\%\\\hline
|
|
158 & Cold Taiga M & 0.0461\%\\\hline
|
|
160 & Mega Spruce Taiga & 0.0365\%\\\hline
|
|
161 & Redwood Taiga Hills & 0.0366\%\\\hline
|
|
162 & Extreme Hills+ M & 0.1913\%\\\hline
|
|
163 & Savanna M & 0.1240\%\\\hline
|
|
164 & Savanna Plateau M & 0.0853\%\\\hline
|
|
165 & Mesa (Bryce) & 0.0263\%\\\hline
|
|
166 & Mesa Plateau F M & 0.0123\%\\\hline
|
|
167 & Mesa Plateau M & 0.0056\%\\\hline
|
|
\end{tabular}
|
|
|
|
\medskip\noindent
|
|
Nine new biomes: iceMountains, desertHills, forestHills, taigaHills, jungleHills, birchForestHills, coldTaigaHills, megaTaigaHills and savannaPlateau. Also there are 21 new mutated variants which I have listed by their ingame display name.
|
|
|
|
This layer converts some map entries to related biomes, forming small biome patches. A list of the conversions that take place in this manor is shown below. Additionally, this layer adds 128 to some map entries, provided that the resulting biome ID is valid, forming mutated biome variants.
|
|
|
|
\begin{tabular}{l c l}
|
|
desert & $\longrightarrow$ & desertHill\\
|
|
forest & $\longrightarrow$ & forestHills\\
|
|
birchForest & $\longrightarrow$ & birchForestHills\\
|
|
roofedForest & $\longrightarrow$ & plains\\
|
|
taiga & $\longrightarrow$ & taigaHills\\
|
|
megaTaiga & $\longrightarrow$ & megaTaigaHills\\
|
|
coldTaiga & $\longrightarrow$ & coldTaigaHills\\
|
|
plains & $\longrightarrow$ & (1/3) forestHills, (2/3) forest\\
|
|
icePlains & $\longrightarrow$ & iceMountains\\
|
|
jungle & $\longrightarrow$ & jungleHills\\
|
|
ocean & $\longrightarrow$ & deepOcean\\
|
|
extremeHills & $\longrightarrow$ & extremeHillsPlus\\
|
|
savanna & $\longrightarrow$ & savannaPlateau\\
|
|
mesaPlateau\_F & $\longrightarrow$ & mesa\\
|
|
deepOcean & $\longrightarrow$ & (1/2) plains, (1/2) forest
|
|
\end{tabular}
|
|
|
|
\subsection{Layer 27: Rare Biome}
|
|
\begin{tabular}{|l|l|l|}\hline
|
|
Scale: & \multicolumn{2}{|l|}{1:64} \\\hline\hline
|
|
Value & Type & Occurrence \\\hline
|
|
1 & plains & 9.68\%\\\hline
|
|
129 & Sunflower Plains & 0.654\%\\\hline
|
|
... & ... & ...\\\hline
|
|
\end{tabular}
|
|
|
|
\medskip\noindent
|
|
This layer converts 1/57 th of Plains to Sunflower Plains. It has no affect on other biomes.
|
|
|
|
\subsection{Layer 31: Shore}
|
|
\begin{tabular}{|l|l|l|}\hline
|
|
Scale: & \multicolumn{2}{|l|}{1:16} \\\hline\hline
|
|
Value & Type & Occurrence \\\hline
|
|
0 & ocean & 15.7\%\\\hline
|
|
1 & plains & 8.93\%\\\hline
|
|
2 & desert & 4.59\%\\\hline
|
|
3 & extremeHills & 6.68\%\\\hline
|
|
4 & forest & 8.67\%\\\hline
|
|
5 & taiga & 4.39\%\\\hline
|
|
6 & swampland & 3.44\%\\\hline
|
|
12 & icePlains & 3.44\%\\\hline
|
|
13 & iceMountains & 1.15\%\\\hline
|
|
14 & mushroomIsland & 0.0370\%\\\hline
|
|
15 & mushroomIslandShore & 0.0208\%\\\hline
|
|
16 & beach & 3.81\%\\\hline
|
|
17 & desertHills & 1.27\%\\\hline
|
|
18 & forestHills & 2.27\%\\\hline
|
|
19 & taigaHills & 0.975\%\\\hline
|
|
21 & jungle & 1.03\%\\\hline
|
|
22 & jungleHills & 0.359\%\\\hline
|
|
23 & jungleEdge & 0.0853\%\\\hline
|
|
24 & deepOcean & 15.7\%\\\hline
|
|
25 & stoneBeach & 0.534\%\\\hline
|
|
26 & coldBeach & 0.311\%\\\hline
|
|
27 & birchForest & 2.45\%\\\hline
|
|
28 & birchForestHills & 0.800\%\\\hline
|
|
29 & roofedForest & 2.57\%\\\hline
|
|
30 & coldTaiga & 1.07\%\\\hline
|
|
31 & coldTaigaHills & 0.246\%\\\hline
|
|
32 & megaTaiga & 0.691\%\\\hline
|
|
33 & megaTaigaHills & 0.313\%\\\hline
|
|
34 & extremeHillsPlus & 2.84\%\\\hline
|
|
35 & savanna & 3.05\%\\\hline
|
|
36 & savannaPlateau & 0.715\%\\\hline
|
|
37 & mesa & 0.469\%\\\hline
|
|
38 & mesaPlateau\_F & 0.242\%\\\hline
|
|
39 & mesaPlateau & 0.103\%\\\hline
|
|
\end{tabular}
|
|
\newpage\noindent
|
|
\begin{tabular}{|l|l|l|}\hline
|
|
129 & Sunflower Plains & 0.571\%\\\hline
|
|
130 & Desert M & 0.188\%\\\hline
|
|
131 & Extreme Hills M & 0.284\%\\\hline
|
|
132 & Flower Forest & 0.430\%\\\hline
|
|
133 & Taiga M & 0.176\%\\\hline
|
|
134 & Swampland M & 0.111\%\\\hline
|
|
140 & Ice Plains Spikes & 0.157\%\\\hline
|
|
149 & Jungle M & 0.0492\%\\\hline
|
|
151 & Jungle Edge M & 0.000451\%\\\hline
|
|
155 & Birch Forest M & 0.109\%\\\hline
|
|
156 & Birch Forest Hills M & 0.0827\%\\\hline
|
|
157 & Roofed Forest M & 0.114\%\\\hline
|
|
158 & Cold Taiga M & 0.0477\%\\\hline
|
|
160 & Mega Spruce Taiga & 0.0358\%\\\hline
|
|
161 & Redwood Taiga Hills & 0.0354\%\\\hline
|
|
162 & Extreme Hills+ M & 0.184\%\\\hline
|
|
163 & Savanna M & 0.119\%\\\hline
|
|
164 & Savanna Plateau M & 0.0824\%\\\hline
|
|
165 & Mesa (Bryce) & 0.0236\%\\\hline
|
|
166 & Mesa Plateau F M & 0.0121\%\\\hline
|
|
167 & Mesa Plateau M & 0.00566\%\\\hline
|
|
\end{tabular}
|
|
|
|
\medskip\noindent
|
|
New biomes: mushroomIslandShore, beach, stoneBeach, coldBeach.
|
|
|
|
\subsection{Layer 41: River}
|
|
\begin{tabular}{|l|l|l|}\hline
|
|
Scale: & \multicolumn{2}{|l|}{1:4} \\\hline\hline
|
|
Value & Type & Occurrence \\\hline
|
|
-1 & none & 94.3\%\\\hline
|
|
7 & river & 5.70\%\\\hline
|
|
\end{tabular}
|
|
|
|
\medskip\noindent
|
|
Uses the zoomed pseudo random output of the river branch to determine the position of rivers in the world. All other values are set to -1.
|
|
|
|
\subsection{Layer 43: River Mix}
|
|
\begin{tabular}{|l|l|l|}\hline
|
|
Scale: & \multicolumn{2}{|l|}{1:4} \\\hline\hline
|
|
Value & Type & Occurrence \\\hline
|
|
0 & ocean & 13.9\%\\\hline
|
|
1 & plains & 9.69\%\\\hline
|
|
2 & desert & 4.80\%\\\hline
|
|
3 & extremeHills & 7.24\%\\\hline
|
|
4 & forest & 9.21\%\\\hline
|
|
5 & taiga & 4.47\%\\\hline
|
|
6 & swampland & 4.03\%\\\hline
|
|
7 & river & 4.19\%\\\hline
|
|
11 & frozenRiver & 0.0872\%\\\hline
|
|
12 & icePlains & 1.52\%\\\hline
|
|
13 & iceMountains & 0.495\%\\\hline
|
|
14 & mushroomIsland & 0.0257\%\\\hline
|
|
15 & mushroomIslandShore & 0.0172\%\\\hline
|
|
16 & beach & 2.96\%\\\hline
|
|
17 & desertHills & 1.33\%\\\hline
|
|
18 & forestHills & 2.50\%\\\hline
|
|
19 & taigaHills & 0.994\%\\\hline
|
|
21 & jungle & 1.21\%\\\hline
|
|
22 & jungleHills & 0.421\%\\\hline
|
|
23 & jungleEdge & 0.101\%\\\hline
|
|
24 & deepOcean & 12.7\%\\\hline
|
|
25 & stoneBeach & 0.426\%\\\hline
|
|
26 & coldBeach & 0.132\%\\\hline
|
|
27 & birchForest & 2.96\%\\\hline
|
|
28 & birchForestHills & 0.849\%\\\hline
|
|
29 & roofedForest & 2.93\%\\\hline
|
|
30 & coldTaiga & 0.466\%\\\hline
|
|
31 & coldTaigaHills & 0.107\%\\\hline
|
|
32 & megaTaiga & 0.704\%\\\hline
|
|
33 & megaTaigaHills & 0.316\%\\\hline
|
|
34 & extremeHillsPlus & 1.69\%\\\hline
|
|
35 & savanna & 2.97\%\\\hline
|
|
36 & savannaPlateau & 0.750\%\\\hline
|
|
37 & mesa & 0.456\%\\\hline
|
|
38 & mesaPlateau\_F & 0.251\%\\\hline
|
|
39 & mesaPlateau & 0.110\%\\\hline
|
|
\end{tabular}
|
|
\newpage\noindent
|
|
\begin{tabular}{|l|l|l|}\hline
|
|
129 & Sunflower Plains & 0.616\%\\\hline
|
|
130 & Desert M & 0.205\%\\\hline
|
|
131 & Extreme Hills M & 0.315\%\\\hline
|
|
132 & Flower Forest & 0.477\%\\\hline
|
|
133 & Taiga M & 0.184\%\\\hline
|
|
134 & Swampland M & 0.130\%\\\hline
|
|
140 & Ice Plains Spikes & 0.0681\%\\\hline
|
|
149 & Jungle M & 0.0582\%\\\hline
|
|
151 & Jungle Edge M & 0.000625\%\\\hline
|
|
155 & Birch Forest M & 0.136\%\\\hline
|
|
156 & Birch Forest Hills M & 0.101\%\\\hline
|
|
157 & Roofed Forest M & 0.136\%\\\hline
|
|
158 & Cold Taiga M & 0.0196\%\\\hline
|
|
160 & Mega Spruce Taiga & 0.0371\%\\\hline
|
|
161 & Redwood Taiga Hills & 0.0369\%\\\hline
|
|
162 & Extreme Hills+ M & 0.203\%\\\hline
|
|
163 & Savanna M & 0.128\%\\\hline
|
|
164 & Savanna Plateau M & 0.0882\%\\\hline
|
|
165 & Mesa (Bryce) & 0.0257\%\\\hline
|
|
166 & Mesa Plateau F M & 0.0134\%\\\hline
|
|
167 & Mesa Plateau M & 0.00585\%\\\hline
|
|
\end{tabular}
|
|
|
|
\medskip\noindent
|
|
This layer is actually used in parts of the Minecraft code where a faster alternative for the full biome generator is required. Note that this layer has a scale of 1:4 and the final map is just a zoomed version of this layer's output. The function of this layer is to apply the rivers to the main biome branch. A new biome is also added in this layer: frozenRiver.
|
|
|
|
|
|
\subsection{Layer 44: Voronoi Zoom}
|
|
\begin{tabular}{|l|l|l|}\hline
|
|
Scale: & \multicolumn{2}{|l|}{1:1} \\\hline\hline
|
|
Value & Type & Occurrence \\\hline
|
|
0 & ocean & 13.7\%\\\hline
|
|
1 & plains & 10.0\%\\\hline
|
|
2 & desert & 4.84\%\\\hline
|
|
3 & extremeHills & 7.50\%\\\hline
|
|
4 & forest & 9.54\%\\\hline
|
|
5 & taiga & 4.59\%\\\hline
|
|
6 & swampland & 4.22\%\\\hline
|
|
7 & river & 4.30\%\\\hline
|
|
11 & frozenRiver & 0.0806\%\\\hline
|
|
12 & icePlains & 1.40\%\\\hline
|
|
13 & iceMountains & 0.451\%\\\hline
|
|
14 & mushroomIsland & 0.0209\%\\\hline
|
|
15 & mushroomIslandShore & 0.0137\%\\\hline
|
|
16 & beach & 2.92\%\\\hline
|
|
17 & desertHills & 1.33\%\\\hline
|
|
18 & forestHills & 2.59\%\\\hline
|
|
19 & taigaHills & 1.00\%\\\hline
|
|
21 & jungle & 1.26\%\\\hline
|
|
22 & jungleHills & 0.429\%\\\hline
|
|
23 & jungleEdge & 0.118\%\\\hline
|
|
24 & deepOcean & 11.2\%\\\hline
|
|
25 & stoneBeach & 0.433\%\\\hline
|
|
26 & coldBeach & 0.118\%\\\hline
|
|
27 & birchForest & 3.12\%\\\hline
|
|
28 & birchForestHills & 0.890\%\\\hline
|
|
29 & roofedForest & 3.09\%\\\hline
|
|
30 & coldTaiga & 0.428\%\\\hline
|
|
31 & coldTaigaHills & 0.0984\%\\\hline
|
|
32 & megaTaiga & 0.675\%\\\hline
|
|
33 & megaTaigaHills & 0.303\%\\\hline
|
|
34 & extremeHillsPlus & 1.74\%\\\hline
|
|
35 & savanna & 3.00\%\\\hline
|
|
36 & savannaPlateau & 0.751\%\\\hline
|
|
37 & mesa & 0.464\%\\\hline
|
|
38 & mesaPlateau\_F & 0.238\%\\\hline
|
|
39 & mesaPlateau & 0.105\%\\\hline
|
|
\end{tabular}
|
|
\newpage\noindent
|
|
\begin{tabular}{|l|l|l|}\hline
|
|
129 & Sunflower Plains & 0.635\%\\\hline
|
|
130 & Desert M & 0.203\%\\\hline
|
|
131 & Extreme Hills M & 0.325\%\\\hline
|
|
132 & Flower Forest & 0.491\%\\\hline
|
|
133 & Taiga M & 0.190\%\\\hline
|
|
134 & Swampland M & 0.134\%\\\hline
|
|
140 & Ice Plains Spikes & 0.0625\%\\\hline
|
|
149 & Jungle M & 0.0612\%\\\hline
|
|
151 & Jungle Edge M & 0.000781\%\\\hline
|
|
155 & Birch Forest M & 0.144\%\\\hline
|
|
156 & Birch Forest Hills M & 0.106\%\\\hline
|
|
157 & Roofed Forest M & 0.142\%\\\hline
|
|
158 & Cold Taiga M & 0.0181\%\\\hline
|
|
160 & Mega Spruce Taiga & 0.0356\%\\\hline
|
|
161 & Redwood Taiga Hills & 0.0354\%\\\hline
|
|
162 & Extreme Hills+ M & 0.210\%\\\hline
|
|
163 & Savanna M & 0.129\%\\\hline
|
|
164 & Savanna Plateau M & 0.0885\%\\\hline
|
|
165 & Mesa (Bryce) & 0.0258\%\\\hline
|
|
166 & Mesa Plateau F M & 0.0131\%\\\hline
|
|
167 & Mesa Plateau M & 0.00559\%\\\hline
|
|
\end{tabular}
|
|
|
|
\medskip\noindent
|
|
This is the final layer in the biome generator and contains all the Overworld biomes except for frozenOcean, which does not generate in Mincraft 1.7 - 1.12.
|
|
|
|
\end{document}
|
|
|
|
|
|
|