Горячая десятка багов Minecraft

Minecraft — безусловно самая стабильная игра, работающая как самые надёжные швейцарские часы! Это известно всем. Однако, в наиредчайших случаях, когда усталые пальцы программистов соскальзывают с клавиатуры, или кто-то роняет крошки от булочки с корицей прямо в потоковый накопитель, или мы забываем вовремя принести жертву Омак-Катету, игра начинает вести себя странно. Простите нас за это.

Но не всё так плохо, как кажется. Ведь сейчас мы можем сказать, что многие известные ошибки Майнкрафта, оказались счастливыми событиями, которые привели к созданию новых возможностей и даже мобов.

Поэтому, в память об этих мимолётных мгновениях нестабильности и/или счастливой прозорливости, мы попросили разработчиков вспомнить об их любимых ошибках и сбоях, проявляющих себя в разные моменты существования Майнкрафта, на самых разных платформах.

 

1. Отягощение богатством

Оказывается, иногда можно получить слишком много вещей, даже если разработчики тщательно продумали систему развития. Йенс вспоминает времена, когда такое происходило почти с каждым релизом из-за чрезмерных перепроверок.

У нас не было ни одной внутриигровой команды для создания чего-либо, так что когда мы хотели что-то опробовать, например новый предмет или группу блоков или мобов, то мы просто модифицировали код, создающий игрока таким образом, что вокруг него появлялось огромное множество нужных вещей. А потом мы регулярно забывали убрать эти изменения из релиза. И почти каждую неделю, когда выпускали обновление, люди с удивлением обнаруживали, что их запасы пополнились странными новинками, а мы говорили «Ууупс!», удаляли этот код и выпускали новый релиз. Однажды мы даже выпустили внутренний документ о правилах подготовки релизов, который гласил «Не забывай удалять предметы, добавленные в целях отладки!».

Йенс Бергенстен

2. Молоко небесных спрутов

Этот безобидный пассивный моб был источником ряда майнкрафт-мемов, связанных с багами. А ещё это самый первый моб, которого Йенс создал для игры. И эти факты могут быть связаны.

Честно говоря, я не знал как работает система мобов, поэтому я просто скопировал корову и поколдовал над ней. И конечно, я забыл удалить кое-какие ненужные вещи, так что какое-то время можно было использовать ведро, чтобы доить спрута. И когда через год я убрал эту возможность, мне стали писать и укорять за это, потому что это стало источником множества шуток.

Йенс Бергенстен

А ещё спруты могут летать. Вообще они всё время «летают» — просто делают это под водой. В нормальной ситуации.

«По сути, спрут движется в направлении вектора ускорения» — поясняет Йенс — «А когда достигает поверхности воды, то останавливается».

По крайней мере так оно должно было происходить, и происходило на стороне сервера.

«К сожалению, игра не всегда обновляла вектор ускорения на стороне клиента, так что клиент думал, что спрут должен продолжать движение, и он поднимался в воздух.»

Восхитительно!

3. Просто поршни

«Поршни всегда были жутко забагованными» — говорит Йенс. — «Слишком много узких моментов, которые приводили к тому, что их активировать самыми разными способами».

Но как минимум в одном случае баг принёс пользу — эта ошибка была подхвачена сообществом, чтобы создавать хитроумные редстоун-триггеры.

«Сообщество назвало это „квази-соединением“» — говорит Йенс, описывая ошибку, которая позволяла поршням (наряду с раздатчиками и выбрасывателями) активироваться при получении сигнала от блоков, расположенных по диагонали или над ними.  Это очень странно само по себе: по идее поршни не должны были узнавать, что их активировали.

Когда вы дёргаете рычаг, происходит проверка ближайших компонентов — нужно ли их активировать, а потом они обновляются. Но область проверки ограничена: не больше двух блоков от источника. Из-за квази-соединения поршни могли быть вне зоны обновления, даже если блок над ними получал редстоун-сигнал.

Йенс Бергенстен

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

Баг стал ДОБом. Отличное оправдание для ошибки. (Пока в игру не ввели блок «наблюдатель», реализующий те же функции).

4. Танец дракона

Кто знает почему самый опасный босс в Майнкрает выделывает в воздухе такие кренделя? Натан знает!

Было довольно забавно, когда я случайно научил Эндер-дракона танцевать. Я сделал её нерешительной: она постоянно меняла свою цель — сначала она хотела напасть на эндермена, а потом решала направиться к порталу, или просто улететь. У меня не хватило духу исправить это и я оставил всё как есть.

Натан Адамс

Вы можете стать свидетелями смертоносного танца Эндер-дракона, посмотрев это видео:

 

5. Криперы

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

Примечание: подробнее об истории создания крипера можно прочитать здесь.

6. X/Z

Некоторые ошибки незаметны и скрываются годами. Но если учесть, что это связано с разворотом всего мира, то можно было бы ожидать, что это будет более заметно. Майкл «Searge» Стойк не только допустил, в тумане усталости, эту ошибку, но и случайно исправил её (или её проявления).

В генераторе мира, я перепутал координаты, так что «право» указывало вперёд, а «назад» — налево. Никто не замечал ничего странного целых три года! (Хотя по идее эффект должен был быть более очевидным). Так что в какой-то момент я добавил смену осей уже после стадии генерации. Не знаю как это случилось, но я реально устал когда возился над всем этим!

Майкл Стойк

7. Атака клонов

Другой любимый баг Сержа всё ещё в игре. Действительно ли это ошибка или просто экстремальная ресурсоёмкая функция? Трудно сказать.

Вы можете, при помощи командных блоков, создать бесконечно клонирующуюся конструкцию . Если у вас есть командных блок, расположенный  под блоком редстоуна, который копирует себя и редстоун на соседнюю позицию, то клонированная копия тут же создаст свою копию и этот процесс остановится только тогда, когда копии достигнут незагруженных областей карты. Но даже тогда, если переместиться в эту область, карта подгрузится и процесс клонирования продолжится.

Майкл Стойк

8. Ошибка ужасного визера

«Когда мы добавили визера, внезапно наша игра начала ломаться в очень странных и просто невозможных ситуациях» — вспоминает Натан Адамс — «В этом не было никакого смысла».

Множество сбоев связано с Java — сторонней программой, которая запускает код Minecraft, в честь чего эта версия и получила названия Java Edition. Можно сказать, что речь идёт о запуске Майнкрафта на вирутальном компьютере, который запущен на вашем собственном ПК — поэтому можно считать, что виртуальный компьютер всегда одинаков, независимо от того где он установлен, он обеспечивает ряд неизменных характеристик, что упрощает процесс разработки (в теории), гарантируя, что игра будет работать более или менее одинаково на разных компьютерах.

Java призвана гарантировать, что чтобы мы ни сделали, не приводило к серьёзным сбоям. Если что-то идёт не так, Java просто выбрасывает ошибки, которые мы можем обработать так как нам это кажется нужным и, допустим, просто вывести сообщение об ошибке. Но когда приключилась «Ошибка ужасного визера», то выглядело это так, как если бы играя в настольные игры, ты передвинул фишку и от этого обрушился весь дом.

Натан Адамс

Иногда ошибки оказываются слишком коварными.

«Переменная, которая существовала в одной строке, пропадала на следующей» — рассказывает Натан.

«Многое начинало искажаться, а игра просто сходила  с ума. Обычно это приводило к сбоям, но иногда к странному поведению игры. Работая над чем-то новым, никогда не хочешь чтобы случилось что-то подобное.
Поэтому мы откатили визера и… всё осталось. У нас не было никаких идей что это и почему такое происходит. И похоже это происходило со всеми, кто хотя бы раз встречал визера. Мы перепробовали всё, но безрезультатно. Так что какое-то время с этим приходилось просто жить.
В конце-концов мы просто изменили визера так, чтобы черепа, которыми он стреляет больше не горели. И, почему-то, он успокоился.»

Мистика!

9. Водный мир

Зачем исправлять ошибку, если можно подать её как новую возможность? Разработчик Pocket Edition Томмазо Кекки предложил замечательный пример. Работая над оптимизацией карманной версии игры, разработчики удалили часть генератора местности, в котором проверялось подходит ли это место под размещение деревни. И тут же появились деревни, которые создавались прямо в воде. Ну надо же! Но вместо того, чтобы обратить изменения, Томмазо поменял тропинки на деревянные тротуары, которые теперь отлично пересекают реки, продолжая дороги, проложенные по земле.

 

10. Песчаные ловушки

Томмазо также несёт ответственность за ошибку, которая стала ловушкой в виде падающего песка. Песок и гравий — это два представителя из относительно небольшой группы блоков, которые подвержены гравитации: без поддержки другим блоком, они будут падать прямо вниз.

Однако, иногда можно найти местность, на которой сгенерированы песок или гравий без какой-либо поддержки, но при этом остаются на своём месте, пока блок не будет обновлён, вызвав настоящий обвал.

Изначально песок и гравий, генерируемые «на потолке», должны были падать на землю. Однако, было довольно сложно это сделать, поэтому я оставил всё как есть и просто добавил частицы пыли, чтобы предупредить, что вы находитесь в опасном месте и рискуете попасть под обвал!

Томмазо Кекки

 

К счастью для игроков Майнкрафта, эти десять ошибок — чуть ли не самые страшные, из тех, что когда-то встречали в игре! У нас никогда не было, скажем, бета-версии где нельзя было копать или прыгать. Или обновления, в котором трава была раскрашена всеми цветами радуги. Или луна пропала с неба. Такого определённо никогда не было. НИКОГДА. Но если, вы хотите помочь  нам предотвратить даже самую малую вероятность появления в Майнкрафте ошибок, то присоединяйтесь к программе бета-тестирования и помогите бороться с ошибками, пока их не стало слишком много.

 

The devs pick their favourite glitches

Marsh Davies, Minecraft.net

One thought on “Горячая десятка багов Minecraft

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *