Новости

Бывший разработчик Valve рассказал, как во время создания VR-версии Half-Life 2 палец ноги одного полицейского из metro создал ошибку «путешествия во времени», которая автоматически заблокировала все версии игры

Одна из самых крутых особенностей Half-Life 2 — это физический движок, но, как известно любому, кто играл в игру, основанную на физике, даже лучшая в своем классе технология иногда подвержена причудам. Легендарный нарративный шутер Valve не стал исключением, о чем бывший разработчик Valve Том Форсайт рассказал в своей статье на Mastodon. В этой теме Форсайт обсуждает ошибку, с которой он столкнулся во время работы над виртуальной версией Half-Life 2 в 2013 году, когда Valve рассматривала, куда она хочет пойти с этой технологией. HL2 был одним из самых простых переводов на VR в каталоге Valve — это был относительно недавний релиз, и «трюки с перспективой» в Portal «, конечно, были тошнотворной катастрофой». Проблема заключалась в том, что эта новая VR-версия автоматически блокировала игрока всего через несколько минут после начала игры.

В начальной сцене, когда полицейский из метро должен был провести игрока через дверь, дверь в VR-версии не открывалась по непонятным причинам, что привело к замораживанию игрок остается на месте, ожидая необходимого сюжетного события, которое так и не наступает. «О боже», — вспомнил Том Форсайт в своей теме. «Мы не можем отправить это. Я связался с другими людьми, в том числе с теми, кто изначально работал над HL2, и да, он сломан. И он также ломается, когда вы не находитесь в виртуальной реальности, так что это не то, что мы с Джо сломали. Но никто не знает почему — ни один из соответствующих кодов не изменился. »

(Автор изображения: Valve/Том Форсайт)

Команда скоро обнаружил, что охранник за дверью стоит «чуть—чуть слишком близко — самый угол его ограждения пересекает траекторию движения двери, когда она открывается». Итак, происходит следующее: дверь начинает открываться, слегка ударяется о палец охранника, отскакивает назад, закрывается, а затем автоматически запирается. » Они переместили NPC и исправили ошибку, но потребовалось гораздо более длительное расследование, чтобы выяснить, почему это произошло в первую очередь; сборка виртуальной реальности не переместила NPC, и команда даже перекомпилировала исходную сборку, чтобы обнаружить, что ошибка «путешествовала во времени» и существовала в этой сборке. тоже.

Продолжение темы с ответом: «Старая добрая плавающая точка». Компилятор, использовавшийся для этих тестов, по умолчанию использовал более новый набор команд SSE, а не тот, который был бы установлен по умолчанию в оригинале для процессоров era: x87, который обладает «дурацким набором настроек». Несмотря на то, что это был старый код, новый компилятор означал, что игра по-другому рассчитывает физику, хотя и в очень тонкой степени.

Форсайт объяснил: «В обеих версиях у двери достаточно импульса, чтобы слегка повернуть защитную планку. Силы трения охранника об пол недостаточно, чтобы противостоять этому, и он поворачивается на крошечную долю градуса. В версии x87 этого небольшого поворота достаточно, чтобы отодвинуть ногу в сторону, столкновение устранено, и дверь продолжает открываться. Все хорошо.

Но в версии SSE целый ряд мелких уточнений немного отличается, а сочетание трения об пол и массы предметов означает, что охранник все еще поворачивается при столкновении, но теперь он поворачивается совсем немного меньше. Итак, на следующем кадре моделирования его палец все еще находится на пути к двери. Дверь не может просто пройти сквозь его палец, поэтому у нее остается единственный выход — она отскакивает назад… и вы застреваете».

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

игры 2025 года: Предстоящие релизы этого года
Лучшие компьютерные игры: Наши любимые на все времена
Бесплатные компьютерные игры: Фестиваль халявы
Лучшие FPS-игры: Лучшая перестрелка
Лучшие РПГ: Грандиозные приключения
Лучшие кооперативные игры: Лучше вместе


Другие статьи: