Необычный случай при портировании игры для VR вскрыл ошибку, которую никто не встречал раньше.
Бывший дизайнер Valve Том Форсайт рассказал о редчайшем баге в истории Half-Life 2. В 2013 году команда работала над портом игры для Oculus Rift, когда Форсайт столкнулся с невозможностью пройти ранний участок кампании: дверь в одном из помещений мгновенно закрывалась, блокируя прохождение.
Ситуация показалась особенно странной, поскольку подобного бага никто не видел с момента релиза 2004 года. Исследование показало, что ошибка присутствовала и в оригинальном, как-бы «нетронутом» коде, который Valve собрала заново из архивов.
Баг существовал всегда, но его никогда не замечали. Причиной оказалась не логика игры, а вычислительная точность разных инструкций процессора.
Выяснилось, что охранник в сцене стоял слишком близко к дверному проёму, и его палец касался створки, заставляя её закрываться обратно. На оборудовании 2004 года, где игра работала на наборе инструкций с хаотичной точностью в 32, 64 и 80 бит, физика просчитывалась «в пользу» прохождения: взаимодействие считалось недостаточным для блокировки.
На VR-станции 2013 года использовались инструкции SSE с иной точностью, из-за чего столкновение NPC с дверью стало считаться блокирующим. К счастью, исправить баг оказалось легко — достаточно было передвинуть NPC на пару сантиметров.

Войдите чтобы оставить комментарий.
ВойтиЕще не зарегистрированы? Регистрация здесь.