Тайна, хранившаяся 55 лет: раскрыта ошибка в коде легендарной игры Lunar Lander

Простой способ обойти блокировки – купи VPN через Телеграмм-бот:

Энтузиаст распутал математическую загадку древней игры о Луне.

Софтверный инженер на пенсии Мартин К. Мартин недавно обнаружил ошибку в коде обработки легендарной компьютерной игры «Lunar Lander», созданной ещё в 1969 году, той самой, где нужно сажать лунный модуль на поверхность Луны. Открытие было сделано при изучении оптимальной стратегии посадки модуля с максимальной экономией топлива.

Первая версия игры «Lunar Lander» (с англ. «Лунный модуль») была написана 17-летним школьником Джимом Сторером на миникомпьютере PDP-8 с использованием языка программирования FOCAL. В тексте игры отображались только статусные обновления о положении лунного модуля во время посадки на поверхность Луны. Геймерам необходимо было аккуратно управлять расходом топлива для обеспечения мягкой посадки, принимая критически важные решения каждые 10 секунд о количестве сжигаемого топлива.

Эта примитивная игра проложила путь для будущих версий. В 1974 году появилась графическая версия, а в 1979-м – аркадная игра от Atari, благодаря которым «Lunar Lander» стала широко известна. К 40-летию первой высадки человека на Луну в 2009 году энтузиаст нашёл автора оригинальной игры Джима Сторера, взял у него интервью и составил историю создания «Lunar Lander». Позже Сторер опубликовал исходный код игры на своём сайте.

Проведя анализ кода в 2024 году, эксперт по ИИ и бывший научный сотрудник MIT Мартин К. Мартин выявил ошибку в реализации физических расчётов. Баг срабатывал при попытке максимально эффективной посадки с помощью техники «самоубийственного торможения», известной среди поклонников игры Kerbal Space Program. Эта стратегия подразумевает свободное падение для наращивания скорости и последующее включение двигателей в самый последний момент для безопасного торможения.

  Замороженный мир квантового конденсата: ученые создали уникальное состояние материи

В России и ищешь VPN? Покупай через Телеграмм-бот:

«Недавно я исследовал оптимальный режим сжигания топлива для максимально мягкой посадки с высокой остаточной тягой, – написал Мартин в своём блоге. – Неожиданно оказалось, что теоретически лучшая стратегия не работала. Игра ошибочно считала, что модуль не касается поверхности, хотя на самом деле это происходило. Вникнув глубже, я был поражён сложностью физических расчётов и численных вычислений в игре. В итоге я нашёл ошибку: отсутствие операции деления на два, которая, по всей видимости, никем не замечалась почти 55 лет».

Дело в делении

Несмотря на применение, казалось бы, идеальной стратегии посадки, игра противоречиво сообщала, что модуль полностью промахнулся мимо поверхности Луны. Заинтригованный этой аномалией, Мартин изучил исходный код и обнаружил, что алгоритм посадки базировался на продвинутой для того времени физике, включая уравнение ракетного движения Циолковского и ряд Тейлора.

Как упоминалось в цитате выше, корень проблемы крылся в банальной вычислительной оплошности – отсутствии деления на два в формуле, рассчитывающей траекторию лунного модуля. Это незначительное, на первый взгляд, упущение имело серьёзные последствия, приводя к неправильному расчёту времени до посадки и самой посадки. Несмотря на ошибку, Мартин был впечатлён тем, что Сторер, будучи старшеклассником, смог внедрить в свою игру продвинутые математические концепты, что по-прежнему остаётся весомым достижением сегодня.

Связавшись с самим Сторером, Мартин узнал, что отец автора «Lunar Lander» был физиком и помог сыну вывести уравнения для игровой симуляции.

Хотя люди играли в игру Сторера с багом многие годы, это показывает, что реализм не всегда является самой важной частью захватывающего интерактивного опыта. И, к счастью для Олдрина и Армстронга, настоящая лунная экспедиция “Аполлона” не страдала от подобной ошибки.

  Геймеры, внимание: игровой маршрутизатор TP-Link Archer C5400X уязвим к хакерским атакам

Ты не вирус, но мы видим, что ты активен!

Подпишись, чтобы защититься

Надежный VPN сервис — это виртуальная частная сеть, которая обеспечивает высокую степень защиты и конфиденциальности при использовании интернета. Термин "надежный" относится к нескольким ключевым аспектам, которые делают VPN сервис безопасным и эффективным для пользователей.

Надежный VPN защищает ваши личные данные от слежки со стороны хакеров, интернет-провайдеров и государственных органов.

Использование надежного VPN помогает скрыть ваш IP-адрес и обеспечивает анонимность при серфинге в интернете.

Надежный VPN сервис — это важный инструмент для обеспечения безопасности, конфиденциальности и анонимности в интернете. Выбор надежного VPN поможет вам защитить свои данные, обойти блокировки и улучшить свой опыт онлайн-серфинга.

Добавить комментарий