Е
Елена — QA лид в GameDev
@elena_skripal_gameQA2.8K подп.
1.4Kпросмотров
48.8%от подписчиков
29 декабря 2025 г.
📷 ФотоScore: 1.5K
Суть бага И в старой и в новой версии происходила коллизия. (Контакт между объектами ). Разница была в другом. Оригинальный билд компилировался под старый x87 (8087) math pipeline. Это про вычисления процессором чисел на каждом шаге. Там использовались разные внутренние точности: 32, 64, 80 бит - в зависимости от контекста. Поведение менее предсказуемое, но в этом случае это и «пофиксило» баг. Спустя годы компиляция шла уже с SSE, где точность строго 32 или 64 бита. Поведение стабильнее, но и результаты другие. Дверь и NPC физические объекты. Значит, у двери есть импульс, у NPC есть масса, у ботинок есть трение с полом. В старой версии (x87) при столкновении дверь слегка поворачивала NPC. Этого микроскопического поворота хватало, чтобы носок в следующем кадре вышел из траектории двери. Коллизия разрешалась, дверь спокойно открывалась. В версии с SSE из-за немного других вычислений NPC всё ещё поворачивается, но чуть меньше. И в следующем кадре его носок всё ещё в пути двери. Дверь сталкивается, получает импульс и закрывается. Именно поэтому баг «вернулся из прошлого». Код тот же. Ошибка та же. Изменился только компилятор и дефолтный math pipeline. Главная проблема была не в SSE и не в x87.Фундаментальный баг - NPC стоял слишком близко к двери. Просто раньше физика случайно это «самоисправляла».🦄 Вот история от самого разработчика.
1.4K
просмотров
1367
символов
Да
эмодзи
Да
медиа

Другие посты @elena_skripal_gameQA

Все посты канала →
Суть бага И в старой и в новой версии происходила коллизия. — @elena_skripal_gameQA | PostSniper