Комп’ютерна гра Lunar Lander 1969 року з текстовим виводом отримала патч від програміста-пенсіонера

Опубликовал
Андрій Русанов

Програміст-пенсіонер Мартін К. Мартін виявив помилку в оригінальному фізичному коді комп’ютерної гри Lunar Lander 1969 року. Створена тоді 17-річним учнем середньої школи Джимом Сторером, ця «протогра» виводила лише текстові оновлення статусу на телетайпі. Фактично гра є космічним симулятором.

Легендарна гра, яку Сторер розробив на комп’ютері PDP-8 мовою програмування FOCAL лише через кілька місяців після того, як Ніл Армстронг та Базз Олдрін здійснили висадку на місяць. Гра дозволяє керувати спуском модуля на поверхню Місяця. Гравці повинні ретельно контролювати використання палива, щоб досягти м’якого приземлення, приймаючи важливі рішення кожні десять секунд, щоб витрачати потрібну кількість палива.

Ось такий «графоній» був у першій версії Lunar Lander. Це вам не Unreal Engine 5.4.

У 2009 році, незадовго до 40-річчя першої висадки на Місяць, Бендж Едвардс з Ars Technica вирішив знайти автора Lunar Lander, яка тоді була відома переважно вже як графічна гра завдяки версії 1974 року та аркаді 1979 року для Atari. Він виявив, що Джим Сторер створив найстарішу з відомих версій як телетайпну гру, взяв у нього інтерв’ю та написав історію гри. Пізніше Сторер опублікував вихідний код оригінальної гри.

У 2024 році Мартін К. Мартін, експерт зі штучного інтелекту, розробник ігор та колишній аспірант MIT, натрапив на помилку в коді Сторера у процесі дослідження оптимальної стратегії посадки модуля з максимальною паливною ефективністю. Оптимальний метод передбачає вільне падіння, щоб набрати швидкість, а потім запалювання двигунів в останній можливий момент, щоб уповільнити швидкість для безпечного контакту з поверхнею.

Онлайн-курс "Tableau для аналізу та візуалізації даних" від robot_dreams.
Навчіться створювати інтерактивні візуалізації та працювати із широким спектром аналізу даних навіть без уміння писати код завдяки функціоналу Tableau.
Детальніше про курс

«Нещодавно я досліджував оптимальний графік спалювання палива, щоб приземлитися якомога плавніше та з максимальною кількістю пального, що залишилося. Дивно, але теоретично найкраща стратегія не спрацювала. Гра помилково вважає, що посадковий модуль не торкається поверхні, хоча насправді це так. Заглиблюючись, я був вражений складною фізикою та обчисленнями у грі. Зрештою я знайшов помилку: відсутнє ділення на два, яке залишалося непоміченим протягом майже 55 років», — написав Мартін у своєму блозі.

Попри помилку, Мартін був вражений тим, що Стореру, який тоді був старшокласником, вдалося включити передові математичні концепції у свою гру — досягнення, яке залишається винятковим навіть за сучасними стандартами. Мартін звернувся за коментарями до Сторера, і автор Lunar Lander розповів, що його батько-фізик допоміг йому вивести рівняння, які використовуються у цій симуляції.

Помилки в іграх не завжди заважають насолоджуватися ними. Але, на щастя для астронавтів Олдріна та Армстронга, справжня посадка «Аполлона» на Місяць була розрахована без подібної помилки.

Disqus Comments Loading...