Легендарная 3D Pinball for Windows скрывала неожиданную техническую проблему, которая десятилетиями оставалась незамеченной пользователями. Дэйв Пламмер, бывший инженер Microsoft и создатель таких важных компонентов Windows как диспетчер задач и встроенная поддержка ZIP-архивов, признался в случайном создании одного из самых ресурсоемких багов в истории операционной системы.
Проблема возникла при портировании популярной игры с Windows 95 на Windows NT в середине 1990-х годов. Пламмер разработал совершенно новый игровой движок вокруг оригинальной логики пинбола для обработки видеорендеринга и звука. Однако в коде движка затаился критический баг, который долгое время оставался незамеченным.
Пламмер рассказал у себя на ютубе:
Мой игровой движок имел баг – он отрисовывал кадры с максимально возможной скоростью.
На момент разработки игра тестировалась на процессоре MIPS R4000 с частотой 200 МГц, что обеспечивало комфортные 60-90 кадров в секунду. Такая производительность казалась разработчику вполне достаточной для аркадной игры подобного типа.
Настоящие проблемы проявились спустя несколько лет с появлением многоядерных процессоров.
Кто-то заметил, что на многоядерных машинах игра постоянно использует целое ядро для воспроизведения пинбола.
Игра продолжала отрисовывать кадры с максимальной скоростью, но теперь достигала невероятных 5000 FPS благодаря возросшей мощности современных девайсов.
https://www.youtube.com/watch?v=uMZwb05pPnI
Исправление бага легло на плечи другого ветерана Microsoft – Рэймонда Чена. В интервью для канала Dave's Garage Чен с теплотой вспоминает добавление ограничителя частоты кадров, который установил максимум в 100 FPS.
Мой самый гордый момент в разработке Windows. Я исправил Pinball так, чтобы можно было запустить сборку проекта и одновременно играть в пинбол.
Пламмер относит эту ошибку к худшим багам Windows, которые он когда-либо выпускал в релиз. Несмотря на то, что сейчас инженер смеется над произошедшим, корпоративная культура Microsoft того времени относилась к подобным промахам крайне серьезно.
Если у тебя был баг, который попал в продукт и требовал исправления в Service Pack, это никогда не было поводом для смеха. Это считалось постыдным.
Интересно, что Windows NT демонстрирует удивительную совместимость с современными девайсами, что теоретически позволило бы запустить оригинальную багованную версию игры на мощных процессорах вроде AMD Ryzen 9 9950X3D. Такой эксперимент мог бы побить все рекорды частоты кадров, хотя более вероятным исходом стал бы культовый звук ошибки Windows NT 4.0.
Источник новости: shazoo.ru