Генерация карты — это процесс случайного создания географических и геологических объектов на карте при первом запуске игры на пустом слоте для игрового мира. Процесс генерации отображается на шкале, которую можно увидеть при первой генерации карты. Но при этом карта генерируется не до конца. Она будет продолжать генерироваться по мере продвижения вами по карте. Это сделано для того, чтобы не нагружать игру и компьютер генерацией при первом запуске.
Алгоритм генерации[]
Алгоритм генерации несколько раз изменялся. Теперь ландшафт генерируется, хранится и загружается с диска и обрисовывается частями по 16×16×16 блоков. У каждой части имеется значение смещения, которое хранится в виде 32-битного целого числа и может находиться в диапазоне примерно от минус двух миллиардов до плюс двух миллиардов. Однако мир ограничен и генерируется только в координатах блоков до 30 миллионов во все стороны. Раньше этого ограничения не было и можно было выйти за пределы первого диапазона (а это примерно четверть расстояния от Земли до Солнца), тогда новые куски начинали перекрывать собой старые (так называемые «Далёкие земли»). А после того, как преодолена шестнадцатая часть этого расстояния, функции, использующие вещественные числа для работы с позициями блоков, такие как использование инструментов и поиск путей, начнут странно себя вести.
Генерация местности происходит в следующие несколько этапов:
Генерация биомов[]
С помощью шума Перлина создаются карты температуры и влажности.
Также на температуру влияет высота. Исключая болото, через каждый блок над уровнем моря (y = 64) температура становится ниже на 1/600. Температура влияет не только на карту биомов, но и на наличие осадков (За исключением грозы, возникающей в любых биомах Верхнего мира). На частоту выпадения осадков влияет влажность. В зависимости от температуры и влажности генерируется карта биомов. Биом реки генерируется на стыке двух биомов или с некоторым шансом в пределе одного биома.
Генерация ландшафта[]
В ранних версиях игры для придания миру формы была использована карта высот на основе двумерного шума Перлина. Или, если быть точнее, несколько карт высот. Одна для общей высоты, одна для шероховатости ландшафта и одна для мелких деталей. Для каждого столба блоков высота равнялась (общая высота + (шероховатость×детали))×64+64. Карты общей высоты и шероховатости были гладкими, сильно масштабированными шумами, а детали были более мелкими. У этого метода было замечательное преимущество в скорости, так как нужно было проводить всего 16×16×(количество_шумов) расчетов на чанк, но его недостатком был скучный ландшафт. В частности из-за невозможности генерировать нависающие над землей выступы.
Теперь игра перешла на похожую систему, использующую трёхмерный шум Перлина. Теперь уже не генерируется «высота земли». Значение шума было рассматривается как «плотность», и все блоки с плотностью меньше 0 становятся воздухом, а блоки с плотностью больше или равной 0 — землёй. Чтобы нижний слой был твёрдый, а верхний — нет, к полученному результату прибавляется высота (смещение относительно уровня моря). Кроме того, для улучшения результата и ускорения вычислений используется интерполяция - мир делится на блоки 3×4×3, а после вычисления «плотности» для каждого из блоков результаты сглаживаются.
История[]
Это заготовка раздела статьи.
Вы можете помочь проекту, дополнив и оформив его.
|
Pre-classic-версия Java Edition | |||||
---|---|---|---|---|---|
rd-131655 | Карта генерировалась размером 256×64×256 блоков. | ||||
rd-132211 | Мир стал совершенно плоским и перестал генерироваться, как в rd-131655. | ||||
rd-160052 | Мир перестал быть совершенно плоским и стал генерироваться с холмами и рвами. | ||||
rd-161348 | Скалы стали генерироваться гораздо чаще. | ||||
Classic-версия Java Edition | |||||
0.0.3a | Пещеры стали генерироваться под землёй. | ||||
0.0.12a | Местность теперь более неровная, с большим количеством холмов на поверхности. | ||||
Лавовые и водные озёра теперь генерируются в мире. | |||||
Поверхность, состоящая из земли, теперь более ровная и под слоем земли, как правило, генерируется слой камня. | |||||
Холмы теперь не генерируются только из земли и травы | |||||
Теперь карта окружена бесконечным океаном. | |||||
0.0.13a | Теперь местность не всегда находится выше воды. | ||||
0.0.13a_03 | Лавовые озёра больше не генерируются над уровнем моря. | ||||
0.0.14a | Новые блоки (23 мая 2009) | В мире теперь генерируются деревья. | |||
Тест воды (23 мая 2009) | Добавлена возможность выбора размера игрового мира. На выбор есть три размера: маленький, средний и большой. | ||||
Релиз | Лава заменяет все сгенерированные блоки воздуха в пещерах ниже 11 уровня. |