Странный баг был выявлен при переносе Half-Life 2 в виртуальную реальность (VR) в 2013 году. Игрок сталкивался с мягкой блокировкой в первые минуты игры из-за полицейского NPC, который стоял слишком близко к двери и мешал её открытию. Дверь начинала открываться, чуть касалась пальца ноги NPC, а затем закрывалась и автоматически блокировалась, не позволяя продолжить сюжетную линию.
Как новый компилятор выявил баг в игре
Причины и особенности
Первоначально разработчики решили проблему с переносом NPC, однако более глубокое исследование показало, что этот баг существовал и в оригинальной версии игры. Причиной является разница в точности вычислений с использованием плавающей точки, которая была введена новым компилятором SSE по умолчанию вместо прежнего x87. Это изменение повлияло на физику игры, заставив NPC поворачиваться на чуть меньший угол, тем самым оставляя палец в пути двери в следующем кадре симуляции.
Влияние на разработку игр
По словам разработчика Тома Форсайта, это пример того, как изменения в вычислениях и выборе компилятора могут вызывать неожиданные баги в играх. Такие ошибки могут серьёзно повлиять на игровой процесс и требуют глубоких технических решений. Это сигнализирует о важности тщательного тестирования изменений и понимания влияния технологий на создание игр.