54 подписчика

Как загружается мир майнкрафта простым языком

Здравствуйте! Сегодня мы с вами разберём правила и устройство генерации мира - как миллионы блоков генерируются за минуты и существуют на ПК?

Мудрый квадрат: спасибо за актив!
Забор: спасибо за актив!
Мрачный тип: спасибо за актив!
Павел Чапенко: приветствуем на канале!
А также спасибо всем читателям и вашей поддержке!

Небольшое извинение

Ещё раз прошу прощения за такую редкость появления на канале, мало времени. Также новой рубрики не будет - уж больно она бесполезна.

Как видит мир компьютер

Естественно ПК не видит красочных пейзажей и картинки в целом, а только лишь команды о загрузке и структуре размещения текстур и объектов. Всё начинается с ссида. Ссид - это заданный параметр в игру из символов, который придаёт значение к генерации. В майнкрафте есть более триллиона различных комбинаций ссидов. Но как же генерация создаёт ландшафт и объекты на нём? Вы же когда-нибудь видели шум на телевизоре?

Здравствуйте! Сегодня мы с вами разберём правила и устройство генерации мира - как миллионы блоков генерируются за минуты и существуют на ПК? Мудрый квадрат: спасибо за актив! Забор: спасибо за актив!

Это случайно выброшенные чёрные и белые пиксели. Если белый - минимальная высота, а чёрный - максимальная, то получается как-то криво и некрасиво. Представьте себе ландшафт, сгенерированный по этому типу. Поэтому в майнкрафте используется шум Перлина (ударение на Е). Это обычный шум, но размытый, что придаёт плавности к генерации.

Здравствуйте! Сегодня мы с вами разберём правила и устройство генерации мира - как миллионы блоков генерируются за минуты и существуют на ПК? Мудрый квадрат: спасибо за актив! Забор: спасибо за актив!-2

Раньше использовали именно его, ведь генерация по нему гораздо проще. Разве что в майнкрафте есть некоторые настройки к генерации ландшафта в каждом биоме. То есть например в настройках генерации к равнинам задан параметр высоты низкий, чтобы карта генерировала равнину по шуму Перлина не доходя до максимальной высоты. В каком-то биоме шум берёт более выше, в каком-то ниже. Осталось расположить структуры и объекты - и готово!

Новая генерация

Но разработчики посчитали, что таким образом генерация будет скучной, где же обрывы, склоны? Тогда Моджанг перешли на трёхмерный шум Перлина, который помимо плавности ландшафта и перехода высот ещё и имеет при себе параметр пустоши. Теперь трёхмерный шум меняет значение высоты на значение плотности блока. а в некоторых местах генерируется пустошь, то есть воздух, который создаёт обрывы.

Но как же ПК одновременно грузит такую карту с огромным количеством блоков и объектов?

Всё просто. Тут и вступает на сцену оперативная память. Дело в том, что когда мы создаём мир и спавнимся в нём, то вокруг нас грузятся определенное начальное кол-во чанков. Потом, как мы идём в какую-нибудь сторону, где чанки не прогружены, то те чанки, которые мы не видим, переносятся как файл в оперативную память, и остаются там, пока мы не посмотрим в сторону убранных чанков. То есть как все работает: мы своим зрением грузим чанки. Когда мы отворачиваемся от прогруженных чанков, начинают грузиться новые, а старые идут в оперативную память, пока мы не посмотрим в их сторону. Это сделано специально, чтобы не грузить лишние действия, пока мы на них не смотрим. Это так же работает со спавном животных: пока нас нету в местности из спавна, то они и не заспавнятся.

Ах, да, многие ещё не понимают систему прогрузки чанков до конца. То есть многие считают, что если у меня стоит прорисовка в 16 чанков, то и прогружать с самого начала будут 16 чанков. Это работает чуть иначе. Поначалу minecraft прогружает 3-4 чанка, и потом когда вы идёте в любую сторону он грузит ещё больше чанков. А когда вы отходите далеко, те чанки, который вы уже погрузили, будут видны вам в радиусе 16.

Итог

Надеюсь, вы узнали побольше о генерации мира в Майнкрафт. Если нет — пишите в комментариях, я сделаю вторую часть. А так, всем пока, у меня все