Легендарната игра 3D Pinball: Space Cadet, която беше неизменна част от Windows 95 и Windows XP, изчезна с появата на Windows Vista. Години наред потребителите спекулираха с различни причини за нейното отсъствие, включително проблеми с лицензирането. Истината обаче се оказва далеч по-любопитна и е свързана с технически затруднения.
Историята отново привлече внимание след публикация на Windows Latest, която припомня обяснението на Реймънд Чен, ветеран от Microsoft с над три десетилетия опит в работата по Windows. Още през 2012 г. той разкрива какво точно се е случило с популярната игра Space Cadet.
Проблемът възникнал, когато инженерите прехвърляли милиони редове код от 32-битова към 64-битова архитектура. При тестовата версия на Pinball топчето попадало в стартовия механизъм, но след това, вместо да остане върху масата, започвало да преминава през различните обекти и накрая изчезвало през долната част на екрана, правейки играта неизползваема.
Откриването на причината за тази грешка се оказало изключително трудно. Кодът на Pinball е бил написан години по-рано от външна компания, като голяма част от него е била без коментари. Според Чен дори служителите на Microsoft не са разбирали напълно начина, по който функционира системата за сблъсъци в играта.
Двама инженери са опитали да отстранят грешката, но без успех. В същото време екипът е бил под натиск да прехвърли милиони други редове код към 64 бита и да спази сроковете за Windows. Поради това е взето прагматичното решение 3D Pinball просто да бъде премахнат от продукта, вместо да се отделят дни за разследване на проблема в старата игра.
Чен по-късно уточнява, че проблемната версия е била тествана върху Alpha AXP, използван от Microsoft за ранна работа по 64-битов Windows, а не върху Itanium. Той предполага, че причината може да е била свързана с начина, по който библиотеката на C е закръгляла числата с плаваща запетая. Любопитно е, че самият Чен преди това е решил друг проблем на 3D Pinball, ограничавайки кадровата честота до 120 кадъра в секунда, което значително е намалило натоварването на процесора.
По информация на Kaldata.



