Бывший инженер Microsoft рассказал, как баг разогнал игру 3D Pinball до 5000 FPS

Бывший инженер Microsoft Дейв Пламмер (Dave Plummer) раскрыл детали программной ошибки в классической игре 3D Pinball for Windows – Space Cadet, встроенной в ОС Windows, которая проявилась спустя годы после её выхода. При определённых условиях игра могла загружать всё ядро процессора и генерировать запредельную скорость вплоть до 5000 кадров в секунду.
Пламмер, являющийся разработчиком 3D Pinball, портировал её с Windows NT на Windows 95 и работал над такими компонентами системы, как «Диспетчер задач» и встроенная поддержка ZIP. Он рассказал на своём канале YouTube, что ошибка заключалась в том, что игровой движок был лишён ограничителя частоты кадров и пытался визуализировать сцены так быстро, как только мог.
На оригинальном оборудовании с процессором MIPS R4000 с тактовой частотой 200 МГц это приводило к комфортным 60-90 FPS. Однако спустя несколько лет, с появлением более мощных многоядерных систем, этот баг вышел из-под контроля. Игра начала бессмысленно потреблять 100 % ресурсов одного из ядер процессора, пытаясь выдать тысячи кадров в секунду, что было абсолютно избыточно для игрового процесса.
Впоследствии другой бывший инженер Microsoft, Рэймонд Чен (Raymond Chen), исправил эту проблему, вручную установив в коде игры ограничение в 100 FPS. Несмотря на то, что сейчас эта история кажется забавной, Пламмер подчеркнул, что в то время подобные инциденты, требующие исправления в сервис-пакете, воспринимались крайне серьёзно и считались профессиональным упущением и даже «в какой-то мере позором».