Minecraft Wiki
Advertisement
Шкала генерации (и загрузки) мира

Шкала генерации и загрузки мира

Генерация карты — это процесс случайного создания географических и геологических объектов на карте при первом запуске игры на пустом слоте для игрового мира. Процесс генерации отображается на шкале, которую можно увидеть при первой генерации карты. Но при этом карта генерируется не до конца. Она будет продолжать генерироваться по мере продвижения вами по карте. Это сделано для того, чтобы не нагружать игру и компьютер генерацией при первом запуске.

Алгоритм генерации[]

Алгоритм генерации несколько раз изменялся. Теперь ландшафт генерируется, хранится и загружается с диска и обрисовывается частями по 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 уровня.
Advertisement