Microsoft пояснила зникнення Pinball з Windows: “Не могли дозволити собі вивчати код днями”

Реймонд Чен пояснює, чому 64-бітний баг назавжди вилучив Pinball з Windows.
Реймонд Чен пояснює, чому 64-бітний баг назавжди вилучив Pinball з Windows.

Windows XP була останньою версією Windows, яка постачалася з грою 3D Pinball. Ця гра космічної тематики існувала у Windows з 1995 року. Вона зникла з виходом Windows Vista, і роками ми припускали, що причиною були юридичні проблеми. Однак справжня причина була набагато більш “людською”, якщо можна так висловитися. Це був баг, який ніхто не міг знайти в коді, якого ніхто не розумів, і все це відбувалося під тиском термінів.

Цю історію розповідає Реймонд Чен, інженер Microsoft, який пропрацював понад три десятиліття над Windows і пише про її історію у своєму блозі The Old New Thing. Чен був частиною команди, яка портувала Windows XP на 64-бітну архітектуру, і саме він був свідком вилучення Pinball.

3D Pinball працює у Windows 11
3D Pinball працює у Windows 11. Джерело: Windows Latest

Я вперше грав у 3D Pinball на комп’ютері з Windows XP вдома, ймовірно, понад 20 років тому, і пам’ятаю, як провів за грою цілі дні. Це була одна з тих ігор, яка була присутня на кожному ПК, чекаючи, поки ви втомитеся від домашніх завдань. І, можливо, саме тому багато людей досі говорять про неї десятиліття потому, прагнучи дізнатися, що з нею сталося.

Справжня причина видалення Pinball з Windows

У дописі в блозі від 2012 року Чен пояснив, що юридичні проблеми не мали жодного стосунку до вилучення Pinball, попри те, що багато хто припускав. Проблема виникла, коли його команда портувала мільйони рядків коду Windows з 32-бітної до 64-бітної версії для Windows XP 64-bit Edition.

Windows XP 64 Bit edition
Windows XP 64 Bit edition. Зображення: Microsoft

У 64-бітній збірці, з невідомої причини, м’яч у Pinball при старті гри провалювався крізь пусковий механізм, а потім просто пролітав крізь поршень і випадав знизу столу, ніби привид, що проходить крізь усі об’єкти на своєму шляху.

Як не дивно, це робило ігри “дуже короткими”, оскільки грати з м’ячем, який пролітав крізь підлогу, було неможливо!

Чен та його колега намагалися це виправити. Код був написаний багато років тому зовнішньою компанією; ніхто в Microsoft повністю не розумів, як він працює, і більша його частина була без коментарів. Вони не могли навіть знайти детектор зіткнень, відповідальний за утримання м’яча на столі, не кажучи вже про виправлення будь-якої помилки округлення з плаваючою комою, яка його ламала.

З мільйонами рядків коду, які ще потрібно було портувати, і терміном випуску, пов’язаним з усім цим, команда Чена прийняла рішення. За його словами, вони “не могли дозволити собі витрачати дні на вивчення коду, намагаючись з’ясувати, яка прихована помилка округлення з плаваючою комою спричиняла збій детектора зіткнень”.

Pinball був вилучений, тому що люди, які створили гру, не подбали про додавання коментарів, і, звісно, інженерна команда Microsoft не стала витрачати дні на одну зламану гру, коли наближався набагато важливіший термін. Я не наважуюся критикувати Чена чи його команду, оскільки вони, ймовірно, були найкращими інженерами-програмістами свого часу.

І справа не в тому, що він не переймався. Чен каже, що це було одне з небагатьох рішень часів Windows XP, яке досі викликає в нього невеликий сум. Однією з робіт, якою він найбільше пишається в цій ОС, була оптимізація гри Pinball, яку він виправив, використовуючи 100% CPU.

Оригінальний код не мав жодного обмежувача кадрів, тому на сучасному на той час обладнанні Чен виявив, що гра рендерилася зі швидкістю понад мільйон кадрів на секунду, повністю завантажуючи процесор на 100%. Додавши обмеження в 120 кадрів на секунду, він знизив це значення до 1%, дозволивши людям грати в Pinball, не сповільнюючи свій ПК.

Pinball був кодом, яким Microsoft не володіла

Гра почалася як один стіл у Full Tilt! Pinball, випуску 1995 року від розробника Cinematronics, виданого Maxis. Microsoft ліцензувала лише стіл Space Cadet для пакету Microsoft Plus!, який вийшов 24 серпня 1995 року, того ж дня, що й Windows 95.

Full Tilt! Pinball
Full Tilt! Pinball. Джерело: Windows Latest

Умови ліцензії забороняли повернення Pinball. Чен пояснив це у своєму дописі 2018 року, після того, як команда Microsoft Garage тихо спробувала відродити гру, перепакувавши робочу 32-бітну версію. Юридичний перегляд оригінальної угоди показав, що Microsoft мала права лише на включення гри до складу Windows та пакету Plus!, а також їхніх наступників, і нічого більше. Випуск гри окремо або передача її вихідного коду не були частиною угоди.

У наступному дописі 2022 року Чен додав, що зламана збірка, на якій він тестував Pinball, була не Itanium (процесор, на якому зрештою випустили Windows XP 64-bit Edition), а Alpha AXP — старіший 64-бітний чіп, який Microsoft використовувала всередині компанії для запуску 64-бітної збірки Windows до появи обладнання Itanium.

Windows XP 64 bit
Windows XP 64 bit. Зображення: Amazon

Чен вважає, що помилка режиму округлення в бібліотеці C runtime спричинила серйозну версію збою на Alpha, і що ця помилка була виправлена з причин, не пов’язаних з Pinball, настільки непомітно, що ніхто не подумав повідомити йому, що гра знову працює!

Windows 11 так і не отримала власної версії Pinball

Cinematronics і Maxis зрештою були поглинені Electronic Arts, і ліцензія, яка колись дозволяла Microsoft випускати Space Cadet Pinball, тепер заплутана в компанії, яка не мала жодного стосунку до оригінальної угоди.

Існують фанатські ремейки, створені з нуля, щоб уникнути юридичних перешкод, з якими зіткнулася команда Чена, але жодного офіційного аналога не було майже два десятиліття. І я говорю не про саму гру Pinball, а про те, чи має Windows 11 гру, яка б викликала ностальгію через 20 років?

Solitaire у Windows 11
Я видаляю Solitaire, оскільки вважаю, що Windows 11 не може претендувати на нього. Джерело: Windows Latest

Пріоритети Microsoft змістилися в іншому напрямку. Попередньо встановлені елементи, які зараз існують у Windows 11, роблять її однією з найбільш обговорюваних і критикованих версій ОС.

Windows 10, якій 10 років, досі отримує певну прихильність. На початку цього місяця Windows Latest вперше повідомив, що фотографія екрану блокування Wharariki Beach у Новій Зеландії знову стала вірусною, оскільки мандрівники відвідали реальне місце, що зробило ОС більш “людяною”.

Windows 11 не має аналогічного моменту. Вона не має Pinball, шпалер чи екрану блокування, які люди шукають у реальному житті, нічого, що викликає подібні спогади!

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *