Колишній співробітник Valve Том Форсайт поділився спогадами з 2013 року. Тоді команда тестувала VR-версію легендарної гри Half-Life 2, але зіткнулася з несподіваною перешкодою – кумедним, але серйозним багом.
Як баг зірвав розробку
За словами Форсайта, опублікованими в соціальній мережі, VR-збірка гри ламалася вже через кілька хвилин після запуску. У ключовій сцені охоронець мав впустити гравця в кімнату, але двері просто не відчинялися. Це порушувало весь скрипт і робило проходження неможливим.
Форсайт залучив колег, включно з авторами оригінальної гри. Тести виявили: проблема не обмежувалася VR. Вона з’являлася навіть у звичайній версії, якщо перезібрати гру сучасним компілятором.
Технічна причина несправності
Виявилося, що за дверима стоїть інший охоронець. У оригінальній версії його позиція прорахована з неймовірною точністю. Коли двері відчиняються, вони злегка штовхають NPC. Той майже непомітно повертається, і в старій збірці цього вистачає, щоб черевик вийшов з траєкторії. Гра продовжується нормально.
Але в новій версії поворот виходить меншим. Палець на нозі охоронця залишається на шляху, двері блокуються. Гравець чекає на скрипт, який так і не запускається.
Корінь проблеми – в техніці. Старі збірки Half-Life 2 використовували обчислення x87 з певною точністю плаваючої коми. Новий компілятор перейшов на SSE, і крихітні відмінності в математиці змінили фізику. Це й спричинило хаос.
