Как сделать генератор земли в майнкрафт
Обновлено: 06.07.2024
Давно собирался описать техническую составляющую Minecraft'а, но никак руки не доходили до этого. Но сейчас я на маленьком самолёте и отсюда некуда бежать, так что поехали!
Одна их самых главных вещей в Minecraft'e, это генерация мира. Когда я менял игру из состояния отдельных небольших карт к единому бесконечному миру, то настроить генерацию было очень сложно, поскольку новые земли должные генерироваться прямо по ходу исследований игрока, причём не должно иметь значения в какую сторону пойдёт игрок.
1) Как сделать мир бесконечным?
Сначала позвольте мне сказать пару вещей о «бесконечной» земле: она не бесконечная, но у неё нет определённого лимита. Просто чем дальше вы продвигаетесь, тем больше будет лагать. Земля генерируется, сохраняется, загружается и появляется снова с помощью чанков (один чанк это 16*16*128 блоков). Эти чанки имеют значение, которое представляет из себя 32-х битное целое число, которое хранит в себе информацию о примерно от -200 млрд. до +200 млрд. чанков. Если вы выходите за границу (а до неё, как до 1/4 пути до солнца) , то старые чанки начинают перезаписываться новыми. На 1/16 этой дистанции любые предметы, использующие целые координаты блоков будут вести себя странным и случайным образом.
Существует только два жёстких лимита.
Большое число таких вещей, как зёрна и уже существующие локации используют 64-битные числа с двойной точностью и с помощью них они делают очень много тонких штук. Например, на больших дистанциях игрок движется медленнее, чем у центра мира благодаря округлению ошибок (у координат очень большая мантисса, а амплитуда движения мала, поэтому ошибки быстрее округляются). Генератор может начать генерировать чудные структуры, например огромные кубы из одного и того же материала, но я так и не понял, что именно вызывает такие странности. Возникала одна проблема, связанная с тем, что при путешествиях на длинные дистанции физика начинала глючить и игрок мог внезапно провалиться под землю или застрять в стене, проходя мимо неё.
Большинство таких проблем решаются изменением математической модели окружения игрока и поэтому числа иногда могут иметь одинаковые значения. Для рендера Minecraft'а я использовал локальные координаты блока и координаты относительно игрока, и таким образом создаётся впечатление, что игрок движется. В основном это достигается с помощью OpenGL и 32-битных чисел с плавающей точкой для координат, но ошибки округления становятся очень очевидны, когда вы видите их в игре.
Мы пока не собираемся исправлять эти баги, потому что ещё не все игроки поняли, что нужно играть легально. Уверен, что большинство ещё довольно далеки от того, чтобы это понять. Путь до понимания этого может занять много времени. Кроме того, баги - это часть загадок Далёких Земель.
2) Как земля стала иметь такую классную форму?
В очень ранней версии Minecraft'а я использовал карту высот 2D шумов Перлина , чтобы придать миру форму. Ох, точнее я использовал множество из них. Один для общего подъёма, один для придания неровностей и один для мелких деталей. Для каждого столба из блоков высота вычислялась по формуле (подъём + (неровность*мелкие детали))*64+64. Все подъёмы и неровности были гладкими, на слишком большие добавлялся «шум», и детали были более запутаннее, чем сейчас. Этот метод имеет большое преимущество в плане скорости и в нём 16*16*(количество шумов) сэмплов для генерации в каждом чанке, но проблема была в том, что этот способ скорее был туп. Особенно тупизна видна в том, что нельзя сгенерировать нависающие склоны и арки.
Итак я предпочёл эту систему похожей, сделанной на 3-D шумах Перлина. Вместо проверки по высоте, я установил значение шума на «густоту» и теперь всё, что ниже 0 (нуля) будет воздухом, а всё, что на том же уровне или выше будет землёй. Чтобы убедиться, что дно плоское и без дыр, а верх не плоский я просто добавил высоту (исключая места под водой) в список сэмплов для генерации.
Но, к сожалению, я тут же столкнулся с проблемами производительности и игровой механики. Производительность падала из-за того, что нужно было обработать огромное количество сэмплов, а проблемы с игровой механикой были в том, что не было равнин и пологих холмов. Решением стало переключение сэмплов в более низкое разрешение (8х по горизонтали и 4х по вертикали) и использование линейной интерполяции. Внезапно игра стала генерировать равнины, пологие холмы и большинство единичных летающих блоков пропали.
Текущая формула, которую я использую довольно запутана (и секретна!), но она постепенно эволюционирует (во время работы над игрой). И да, она ещё использует 2D карту высот и шумов.
В скором времени скину видео из Майнкрафта с песней из фильма Реквием по мечте и эксклюзивный альбом с новой музыкой для игры.
Генератор камня
Чтобы при добывании камень не превратился в булыжник, надо использовать кирку, зачарованную на «Шёлковое касание».
IndustrialCraft 2/Генератор
В качестве топлива принимает горючие предметы.
Содержание
Автоматический генератор
Требуемые материалы
- 17 единиц твёрдого, не горючего и не подверженного гравитации блока.
- 1 ведро лавы.
- 1 ведро воды.
- 5 повторителей;
- 1 поршень;
- 6 красной пыли
Инструкция в картинках
Постройте обычную версию генератора.
Нужно достроить к ней механизм, как показано на картинке.
Далее следует запустить механизм. Ваш генератор готов!
Крафт [ ]
Старая версия рецепта:
Возобновление с помощью репликации исходных материалов [ ]
Картинка | Название предмета | Требуемое количество жидкой материи |
---|---|---|
Красная пыль | 1.221 мВ | |
Оловянный слиток | 1.082 мВ | |
Резина | 100.7 мВ | |
Железный слиток | 1.066 мВ | |
Булыжник | 10 мкВ |
Генератор булыжника, камня и базальта
Эффективность [ ]
Генератор вырабатывает 10 еЭ/т. Ниже приведена таблица с суммарной энергией, запасённой в различных видах топлива:
Вид топлива | Энергия |
---|---|
Угольное топливо (для старых версий) | 76440 |
Угольный блок | 40000 |
Биотопливо (для старых версий) | 26040 |
Коксовый уголь (Railcraft) | 16000 |
Смолистый торф (Forestry) | 10500 |
Коробка утильсырья | 7870 |
Огненный стержень | 6000 |
Торф (Forestry) | 5000 |
Уголь | 4000 |
Древесный уголь | |
Утильсырьё | 870 |
Древесина | 750 |
Доски | |
Книжный шкаф | |
Деревянные ступени | |
Сундук | |
Верстак | |
Проигрыватель | |
Музыкальный блок | |
Деревянный забор | |
Флаг | |
Деревянная нажимная пластина | |
Деревянный люк | |
Ворота | |
Датчик дневного света | |
Леса | |
Блок огромных грибов | |
Деревянные инструменты | 500 |
Деревянная плита | 370 |
Саженцы | 250 |
Палка | 250 |
Кактус | 120 |
Сахарный тростник | 120 |
Генератор имеет встроенный аккумулятор на 4000 EU.
Использование утильсырья в генераторе можно отключить в файле конфигураций. Для этого замените в строке
Содержание
Обычная версия
Требуемые материалы
- 8 единиц твёрдого, не горючего и не подверженного гравитации блока.
- 1 блок ступеней любого вида.
- 1 ведро лавы.
- 1 ведро воды.
Инструкция в картинках
Для начала поставьте блоки на расстоянии 1 метра друг от друга (стекло использовано для наглядности).
Затем расположите блоки, как показано на картинке.
Залейте воду и лаву, ваш генератор готов!
Торфяная ферма
Теперь. мне захотелось сделать гайды про индустриальные моды. Данную тему я бы хотел посветить форестри моду. Мод очень разнообразный, если вам что-то не по душе, можно другим заняться. Сначала, я бы хотел сосредоточить своё внимание на фермах. Возможно, если мне удастся получить разрешение на выкладывание видео, я выложу полноценный видео-гайд =)
Первой по очереди будет ферма торфа.
Вид фермы сверху:
Несложная ферма, которая будет приносить торф и землю, потребляя при этом болотную землю.
Ферма очень полезная, т.к. не надо использовать уголь и другие источники энергии, чтобы запитать систему.
Итак, приступим к постройке.
Для начала нам надо скрафтить следующие предметы:
1. Торфяник;
2. Сборщик торфа;
3. 2 Торфяных двигателя;
4. 4 стака болотной земли на первое время;
5. Трубы, передающие энергию (из мода Build craft);
6. 1 железная труба и пару каменных (из мода Build craft);
7. Место для посадки.
Вот скриншот, чтобы было понятно, как всё ставить:
Торфяник и сборщик запитываются энергией. Как только торфяник получил энергию, он начинает высаживать болотную землю. Вода автоматически заливается. Для созревания торфа необходима вода и 1 блок воздуха . Когда созревает торф, его собирает сборщик. Торф идёт по трубе, а вместо болотной земли появляется грязь. Спустя некоторое время, торфяник проверит рабочую зону на наличие грязи. Определив блок грязи, он вместо него поставит болотную землю, а грязь "выплюнет” в трубу. Открываем сундук, а там лежат торф и земля.
Ферму можно увеличить, т.е. вручную достроить 2 поля болотной земли. Но надо добавить 1 торфяной двигатель, чтобы система работала быстрей. Также, надо немного перестроить систему.
Если вам понравилась статья, поблагодарите. В следующем гайде я расскажу, как сделать ферму пшеницы, а также мы рассмотрим увлажнитель. =)
Четырёхсторонняя версия
Требуемые материалы
- 17 единиц твёрдого, не горючего и не подверженного гравитации блока.
- 4 блока ступеней любого вида.
- 1 ведро лавы.
- 4 ведро воды.
Инструкция в картинках
Для начала нужно поставить 5 блоков: один в центре, остальные вокруг него на расстоянии 1 метра друг от друга.
Далее следует повторить действия из обычной версии генератора, но со всеми сторонами.
Затем залить лаву на центральный блок, воду в ступени. Ваш генератор готов!
Читайте также: