История одной ошибки

12:44, 15.12.2021
267
История одной ошибки

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

Все началось с ошибки в хитбоксе, коробки, которая показывает занимаемое мобом пространство. Вы можете увидеть ее, нажав суперсекретную комбинацию F3+B. Ошибка заключалась в неправильном размере хитбоксов и высотой глаз. Наиболее яркий пример тому — белый медведь. При появлении анимации атаки его хитбокс не менялся, в результате чего медведь поднимался на задние лапы, и игрок не мог нанести ему урон, потому что тело моба не попадало в границы коробки.

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

Атака белого медведя до устранения ошибки. Туловище поднимается, но хитбокс не изменяется.

В чем же была проблема? Глаза персонажа являются своеобразной камерой для Вас, и при приседании высота расположения камеры должна уменьшаться вместе с высотой глаз, но из-за ошибки этого не происходило. Изменив всего одно число в коде Minecraft, разработчики устранили проблему, так что теперь при приседе игрок действительно понимает, что его персонаж присел.

Однако за исправлением этой маленькой ошибки следовала куда большая проблема: из-за уменьшения размера хитбокса игрок мог пролезать под плитой, когда крался.

Кроме того, что игрок мог пробраться под плиту, его голова проходила сквозь плиту всякий раз, когда он поднимался. Это было из-за того, что Minecraft Bedrock не был приспособлен для нового действия, так что при не нажатой копки Shift персонаж мог только стоять.

Изменение положения героя даже на столь небольшую высоту (с 2 до 1,5 блока) влекло за собой множество других серьезных доработок. Поэтому для принятия окончательного решения нужно было поговорить с разработчиками.

После обсуждения было принято решение оставить это действие. Однако написание кода оказалось достаточно сложной задачей. В слово «присед» в Майнкрафте вкладывалось 26 значений, начиная затемнением имени и заканчивая спуском с лошади и вагонетки.

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

От приседа к ползанию

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

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

Изменение кода влечет за собой побочные эффекты. Однако не всегда они бывают плохими. Оказалось, что игроки могут использовать люки, чтобы проползти через туннели. Это случайное действие, которое добавило множество возможностей в разные сферы игры.

Добавив ползание, разработчики хотели сделать горячие клавиши, но решили оставить эту идею, дав игрокам простор для творчества.

С ползанием Вы можете вытворять забавные вещи, например, спрятаться в компостер.

Механика ползания до сих является функцией Java-версии. И пусть пока неизвестно, когда она появится в Бедрок, разработчики всегда работают над улучшением всех платформ. Что мы с точностью можем сказать, это то, что благодаря таким маленьким случайностям Minecraft является именно той игрой, какой мы его знаем!

Опубликовал: admin-planet ОS: Андроид

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

20 − девять =