Ошибки генерации майнкрафт
Ну а сегодня я хочу сделать обзор на новую бету версию майнкрафт 1.17.0.50, там добавили много интересного.
1. Отягощение богатством
Оказывается, иногда можно получить слишком много вещей, даже если разработчики тщательно продумали систему развития. Йенс вспоминает времена, когда такое происходило почти с каждым релизом из-за чрезмерных перепроверок.
У нас не было ни одной внутриигровой команды для создания чего-либо, так что когда мы хотели что-то опробовать, например новый предмет или группу блоков или мобов, то мы просто модифицировали код, создающий игрока таким образом, что вокруг него появлялось огромное множество нужных вещей. А потом мы регулярно забывали убрать эти изменения из релиза. И почти каждую неделю, когда выпускали обновление, люди с удивлением обнаруживали, что их запасы пополнились странными новинками, а мы говорили «Ууупс!», удаляли этот код и выпускали новый релиз. Однажды мы даже выпустили внутренний документ о правилах подготовки релизов, который гласил «Не забывай удалять предметы, добавленные в целях отладки!».
Йенс Бергенстен
7. Атака клонов
Другой любимый баг Сержа всё ещё в игре. Действительно ли это ошибка или просто экстремальная ресурсоёмкая функция? Трудно сказать.
Вы можете, при помощи командных блоков, создать бесконечно клонирующуюся конструкцию . Если у вас есть командных блок, расположенный под блоком редстоуна, который копирует себя и редстоун на соседнюю позицию, то клонированная копия тут же создаст свою копию и этот процесс остановится только тогда, когда копии достигнут незагруженных областей карты. Но даже тогда, если переместиться в эту область, карта подгрузится и процесс клонирования продолжится.
Майкл Стойк
2. Молоко небесных спрутов
Этот безобидный пассивный моб был источником ряда майнкрафт-мемов, связанных с багами. А ещё это самый первый моб, которого Йенс создал для игры. И эти факты могут быть связаны.
Честно говоря, я не знал как работает система мобов, поэтому я просто скопировал корову и поколдовал над ней. И конечно, я забыл удалить кое-какие ненужные вещи, так что какое-то время можно было использовать ведро, чтобы доить спрута. И когда через год я убрал эту возможность, мне стали писать и укорять за это, потому что это стало источником множества шуток.
Йенс Бергенстен
А ещё спруты могут летать. Вообще они всё время «летают» — просто делают это под водой. В нормальной ситуации.
«По сути, спрут движется в направлении вектора ускорения» — поясняет Йенс — «А когда достигает поверхности воды, то останавливается».
По крайней мере так оно должно было происходить, и происходило на стороне сервера.
«К сожалению, игра не всегда обновляла вектор ускорения на стороне клиента, так что клиент думал, что спрут должен продолжать движение, и он поднимался в воздух.»
3. Просто поршни
«Поршни всегда были жутко забагованными» — говорит Йенс. — «Слишком много узких моментов, которые приводили к тому, что их активировать самыми разными способами».
Но как минимум в одном случае баг принёс пользу — эта ошибка была подхвачена сообществом, чтобы создавать хитроумные редстоун-триггеры.
«Сообщество назвало это „квази-соединением“» — говорит Йенс, описывая ошибку, которая позволяла поршням (наряду с раздатчиками и выбрасывателями) активироваться при получении сигнала от блоков, расположенных по диагонали или над ними. Это очень странно само по себе: по идее поршни не должны были узнавать, что их активировали.
Когда вы дёргаете рычаг, происходит проверка ближайших компонентов — нужно ли их активировать, а потом они обновляются. Но область проверки ограничена: не больше двух блоков от источника. Из-за квази-соединения поршни могли быть вне зоны обновления, даже если блок над ними получал редстоун-сигнал.
Йенс Бергенстен
В результате, возникали ситуации когда поршень должен был активироваться, но блок не обновлялся, для того чтобы сообщить ему об этом. При этом, в Майнкрафте есть множество событий, которые вызывают обновление ближайших блоков: установка или разрушение блоков, изменение уровня воды или лавы, падение песка, рост растений, воспламенение, активация растяжки и даже поедание кусочка торта. Так что можно было получить своеобразный триггер, также известный как Датчик обновления блоков, который мог быть активирован самыми разными способами взаимодействий.
Баг стал ДОБом. Отличное оправдание для ошибки. (Пока в игру не ввели блок «наблюдатель», реализующий те же функции).
9. Водный мир
Зачем исправлять ошибку, если можно подать её как новую возможность? Разработчик Pocket Edition Томмазо Кекки предложил замечательный пример. Работая над оптимизацией карманной версии игры, разработчики удалили часть генератора местности, в котором проверялось подходит ли это место под размещение деревни. И тут же появились деревни, которые создавались прямо в воде. Ну надо же! Но вместо того, чтобы обратить изменения, Томмазо поменял тропинки на деревянные тротуары, которые теперь отлично пересекают реки, продолжая дороги, проложенные по земле.
4. Танец дракона
Кто знает почему самый опасный босс в Майнкрает выделывает в воздухе такие кренделя? Натан знает!
Вы можете стать свидетелями смертоносного танца Эндер-дракона, посмотрев это видео:
Поехали!
Тонированное стекло
Классная вещь, которую добавили в этой бета версии
Суть его не в том, что это афроамериканское чёрное стекло. А суть в том, что оно не пропускает свет, от слова совсем.
Я построил небольшую коробку, чтобы проверить, так ли это на самом деле.
Это - обычное чёрное стекло.
А вот коллаж из того, как различаются обычное стекло и тонированное.
Разница заметна и очевидна.
Ну что же, как я думаю, полезный блок будет и в общем то интересный.
Подзорная труба
Вот, предмет который я очень ждал и наконец то его добавили.
Чтобы активировать действие подзорной трубы, надо просто нажать на экран и удерживать, тогда мы получим приближение.
Хорошо реализовано, как мне кажется, отличный предмет, и плюс нормально вписывается в стилистику Майнкрафт.
Вот так подзорная труба выглядит в руке.
Необработанные металлы.
Думаю, вы об этом уже слышали с Ютуба или читали у других дзенеров, поэтому я не буду особо рассказывать про это нововведение, зато покажу, как это смотрится в рамках.
Блоки из необработанных металлов.
Как же я люблю блоки необработанных металлов! Вот они слева направо: блоки золота, блоки меди и блоки железа.
Аметисты.
В этой бета версии впервые добавили аметисты и блоки аметистовой жеоды. Аметисты ещё растут, да вот только с помощью костной муки ускорить рост не получается :(
Новая генерация пещер
То, что мне больше всего понравились в этом снапшоте.
Посмотрите на эту красоту!
То, как разрабы это реализовали - мое почтение.
Эффектно, красиво, впечатляющие пещеры. Теперь это не тонкие проходы 2×2, теперь это настоящие и масштабные пещеры.
Издает свет светящийся мох, выглядит атмосферно
А зелёные пещеры это эстетика. Я думаю, что это абсолютно изменит пещеры в Майнкрафт!
Нашёл алмазы (в креативе. Л - логика). Заметил, что текстура алмаза изменена, цвета стали более объемными.
Ошибки генерации
Они присутствуют. Вот бедрок на дне пещеры, думаю что так не должно быть.
Напоминает даже немного Спаун 2б2т
На скриншоте ниже мы можем увидеть реку, которая " плавно (нет) перетекает в пещеру"
Уверен, что это ошибка.
По крайней мере, такое будут фиксить и исправлять.
Новые блоки
Были добавлены: блок кальцита, блок туфа и ещё один блок, какой именно не запомнил, извините.
Как я понимаю, они будут образовывать аметистовую жеоду.
Встречайте великого поисковика багов удивительного Майнкрафта! Я уже нашел в бета версиях целых три бага, а в этой - два.
Ну во первых, что же будет если мы сдвинем блок строительной жеоды поршнем?
Он исчезает! Он просто исчезает!
Причем, я это обнаружил совершенно случайно, когда попытался изобрести новый легальный иксрей.
Причём, если мы попытаемся повторить такой же эксперимент, но с обычным блоком жеоды, то его поршень нормально передвинет.
В общем, я багооткрыватель!
И баг №2 - это вообще что такое? Какой то странный пустой предмет
Я слышал про такие баги в бета версиях, поэтому думаю что это что то из этой области.
Вывод
Разработчики дали нам довольно качественный и интересный снапшот. Добавили множество новых предметов и блоков!
На этом все!
Все фотографии взяты из открытых источников информации либо сделаны мной.
Minecraft люди воспринимают по-разному. Для сообщества это детский сад, для игровой индустрии - феномен, простой и гениальный. Господин Нотч необычайно умен и сотворил технически шедевральную игру, о внутренностях которой я хочу поведать.
В начале я расскажу о некоторых интересностях генерации игрового мира, чем вызваны и как связаны, а потом опишу непосредственно принцип генерации.
Этот псевдо-рандом используется в огромном количестве игр и эту статью можно считать отправной точкой в мир неслучайных случайностей.
Интересности
Начнем пожалуй с того, что количество вариаций игрового мира не бесконечно, всего 281 триллион вариантов, 281 триллион возможных " seed ов", которые можно указать при генерации карты.
Майнкрафт даже спидранят, для этого раннер просто тренирует и отрабатывает стратегию в определенном мире, а на начало рана вводит его "зерно" - буквенное или численное значение.
Ограниченность связана с количеством переменных, что задаются при генерации непосредственно мира, но об этом ниже.
Сам мир тоже не бесконечен, технически. Если вы потратите 2 года реального времени и добежите до координат более 15 миллионов блоков от центра (но все предпочитают телепортироваться), то наткнетесь на так называемые "Далекие земли" :
Связано это с тем, что значение переменной, отвечающей за "границы" игрового мира для генератора, становится больше положенного и старые элементы накладываются поверх новых.
Непосредственно генерация
Начать стоит с того, что мир генерируется не по блоку, существуют так называемые чанки площадью 16 на 16 блоков площади и 256 блоков в высоту, вот как они выглядят :
Прорисовываются и генерируются они на достаточно большой площади от игрока, всё зависит от настройки дальности. Прошу заметить, что блоков в чанке 65 536, такое количество элементов способно содержать в себе 16-битная переменная, отвечающая за свой чанк. Верно полагать каждому блоку полагается координата и его айди, для движка воздух тоже имеет айди, наверно равен он нулю.
Сама геометрия генерируется с помощью шума Перлина . Крайне занятная вещь, которую в майнкрафте применили почти везде. Шум Перлина представляет из себя процедурно-генерируемую псевдо-рандомную черно-белую текстуру :
Похоже на дым, а в шутерах используется для генерации эффектов дыма, но мы сейчас о майнкрафте. Вообще стандартная восьмибитная палитра содержит в себе 255 градиентов, что между белым и черным, однако из шума Перлина обычно берут 100 значений - от 0 до 1.
Можно использовать получившуюся текстуру для генерации высот карты, здесь можно уловить связь - самый черный цвет имеет значение 255 в палитре, напомнить высоту игрового мира? 256! Однако алгоритм оптимизирован и не позволит сгенерированной горе вырасти так высоко.
Из текстуры точечно берутся значения цвета пикселей и соотносятся к блоку на карте, в случае с картой высот - видом сверху. Это пример двухмерного использования шума, но есть трехмерный и даже четырехмерный!
Программисты любят баловаться с шумом Перлина, я говорил о карте высот, взгляньте :
Изначально шум получается уж очень резким и карта может выглядеть вот так :
Однако методами линейной интерполяции, один столб образует вокруг себя гору, а глубочайший блок - озеро, так как значения высоты усредняются в зависимости от соседних блоков.
Можно всё же не усреднять, а объединять. Спавним деревенщину шумом Перлина - многовато в одном месте? Стянуть всех сюда и воткнуть город.
Это будет не сглаживание, а наоборот, группировка или уплотнение.
Так же можно нарастить лес.
Возможности использования шума Перлина и математики в целом воистину безграничны, в дальнейшем я расскажу о алгоритмах
псевдо-рандома и где еще пригодился Перлин и его шум.
Minecraft — безусловно самая стабильная игра, работающая как самые надёжные швейцарские часы! Это известно всем. Однако, в наиредчайших случаях, когда усталые пальцы программистов соскальзывают с клавиатуры, или кто-то роняет крошки от булочки с корицей прямо в потоковый накопитель, или мы забываем вовремя принести жертву Омак-Катету, игра начинает вести себя странно. Простите нас за это.
Но не всё так плохо, как кажется. Ведь сейчас мы можем сказать, что многие известные ошибки Майнкрафта, оказались счастливыми событиями, которые привели к созданию новых возможностей и даже мобов.
Поэтому, в память об этих мимолётных мгновениях нестабильности и/или счастливой прозорливости, мы попросили разработчиков вспомнить об их любимых ошибках и сбоях, проявляющих себя в разные моменты существования Майнкрафта, на самых разных платформах.
10. Песчаные ловушки
Томмазо также несёт ответственность за ошибку, которая стала ловушкой в виде падающего песка. Песок и гравий — это два представителя из относительно небольшой группы блоков, которые подвержены гравитации: без поддержки другим блоком, они будут падать прямо вниз.
Однако, иногда можно найти местность, на которой сгенерированы песок или гравий без какой-либо поддержки, но при этом остаются на своём месте, пока блок не будет обновлён, вызвав настоящий обвал.
Изначально песок и гравий, генерируемые «на потолке», должны были падать на землю. Однако, было довольно сложно это сделать, поэтому я оставил всё как есть и просто добавил частицы пыли, чтобы предупредить, что вы находитесь в опасном месте и рискуете попасть под обвал!
Томмазо Кекки
Ещё один снапшот доступен в Minecraft Java Edition. В это раз мы добавили ряд улучшений в генерацию мира и немного изменили то, как спавнятся мобы.
Кроме этого с момента выпуска первого снашпота второй части обновления «Пещеры и горы» мы работаем над улучшением производительности, поэтому сделали ещё один опрос о производительности. Мы будем благодарны, если вы поделитесь своими впечатлениями.
Мы всё ещё настоятельно рекомендуем сохранять резервные копии миров, прежде чем загружать их в этом снапшоте.
Исправления ошибок
Исправлено 12 ошибок, среди которых можно отметить следующие:
- При большом количестве коз или аксолотлей наблюдались проблемы с производительностью.
- Флаги без узора отображались невидимыми.
- На картах сокровищ или исследователя не отображался рельеф местности.
Технические изменения
- Оптимизирован ИИ для аксолотлей, коз, хоглинов, зоглинов, пиглинов, брутальных пиглиннов и крестьян.
- Генерация слоя бедрока теперь зависит от ключа генератора.
Установка снапшота
Чтобы установить снапшот, откройте Лаунчер Minecraft и включите предварительные версии на закладке «Установки».
Снапшоты могут повредить игровые миры. Пожалуйста, делайте резервные копии и запускайте их из другой папки.
8. Ошибка ужасного визера
«Когда мы добавили визера, внезапно наша игра начала ломаться в очень странных и просто невозможных ситуациях» — вспоминает Натан Адамс — «В этом не было никакого смысла».
Множество сбоев связано с Java — сторонней программой, которая запускает код Minecraft, в честь чего эта версия и получила названия Java Edition. Можно сказать, что речь идёт о запуске Майнкрафта на вирутальном компьютере, который запущен на вашем собственном ПК — поэтому можно считать, что виртуальный компьютер всегда одинаков, независимо от того где он установлен, он обеспечивает ряд неизменных характеристик, что упрощает процесс разработки (в теории), гарантируя, что игра будет работать более или менее одинаково на разных компьютерах.
Иногда ошибки оказываются слишком коварными.
«Переменная, которая существовала в одной строке, пропадала на следующей» — рассказывает Натан.
Что нового в Minecraft Java Edition 1.18, снапшот 21w40a
- Улучшена генерация мира.
- Изменился спавн мобов.
- Из медной руды теперь выпадет 2-5 (было 2-3) рудной меди.
- Множество вариантов биомов со схожими особенностями, но разной формы, были объединены в один, поскольку форма теперь управляется независимо.
- Переименовали ряд биомов.
Спавн мобов
- Аксолотли теперь спавнятся только в воде над блоками глины в заросших пещерах.
- Светящиеся спруты спавнятся только в воде на глубине ниже уровня 30.
- Треска, лосось, иглобрюх, тропическая рыба, спрут и дельфин теперь могут спавниться только в воде на глубине от 50 до 64.
- Тропические рыбы теперь спавнятся в заросших пещерах на любой глубине.
- Зомби теперь снова будут появляться в карстовых пещерах. И утопленники тоже могут спавниться там.
- Козы больше не спавняться на каменистых горных вершинах.
5. Криперы
Самый знаковый моб Майнкрафта когда-то был просто ошибкой! Прежде чем они получили своё яркое зелёное облачение, прежде чем они были упакованы зарядом взрывчатки, они были не более чем ужасно деформированными свиньями. Нотч просто перепутал несколько координат, придав свинье вертикальное туловище, и результат оказался ужасным и даже криповым, что в итоге привело к тому, что он стал официальным представителем бестиария Майнкрафта.
Примечание: подробнее об истории создания крипера можно прочитать здесь.
Некоторые ошибки незаметны и скрываются годами. Но если учесть, что это связано с разворотом всего мира, то можно было бы ожидать, что это будет более заметно. Майкл «Searge» Стойк не только допустил, в тумане усталости, эту ошибку, но и случайно исправил её (или её проявления).
В генераторе мира, я перепутал координаты, так что «право» указывало вперёд, а «назад» — налево. Никто не замечал ничего странного целых три года! (Хотя по идее эффект должен был быть более очевидным). Так что в какой-то момент я добавил смену осей уже после стадии генерации. Не знаю как это случилось, но я реально устал когда возился над всем этим!
Майкл Стойк
Генерация мира
- Обновлено распределение руд таким образом, чтобы было выгоднее копать глубже.
Обновленная схема распределения руд. Полноразмерная версия доступна здесь.
Например, добавлено больше скрытых алмазов, железо генерируется выше 80, причём чем выше, тем больше, больше золота можно будет найти ниже -48.
- Непещерные биомы больше не изменяются с высотой. Так что больше нельзя будет в небе обнаружить саванну или какой-то другой биом.
- Изменились относительные размеры некоторых биомов, чтобы лучше соответствовать тому, что было в Minecraft 1.17.
- Увеличен средний размер большинства биомов (это также означает, что биомы больше не в тех же местах, что были раньше).
- Устранены некоторые проблемы, связанные с аквиферами. Побочным эффектом этого будет то, что аквиферы теперь будут располагаться в других местах по сравнению с последним снапшотом.
- Слегка увеличена частота появления подводной магмы.
- Увеличено количество подземелий, особенно ниже уровня 0.
- Гравий теперь будет генерироваться ниже уровня 0.
- Деревни теперь более разбросаны.
- Удалены озёра. Теперь они создаются аквиферами.
Читайте также: