В коде 55-летней игры Lunar Landing обнаружили ошибку

Спустя 55 лет после релиза Lunar Landing – первой в мире видеоигры, которая симулировала первую в истории человечества посадку на поверхность Луны в рамках миссии Аполлон 11 в июле 1969 года – в её коде была обнаружена ошибка.

Getty Images

Игру Lunar Landing написал тогда ещё ученик старших классов Джим Сторер на языке FOCAL для миникомпьютера PDP-8 спустя всего несколько месяцев после высадки на Луну Нила Армстронга и Эдвина Базза Олдрина. К 1973 году она стала самой популярной игрой в жанре Interactive fiction / текстового приключения. На тот момент идея наличия ПК в каждом доме, а то и в каждом кармане, казалась невероятной. Однако впоследствии сам Джим приложил свою руку к тому, чтобы сделать это реальностью. Позже Сторер получил несколько патентов, связанных с электронно-вычислительной техникой, получил степень доктора компьютерных наук в Принстонском университете в 1979 году, а затем занял пост профессора в Брандейском университете, где он преподаёт и по сей день.

В коде 55-летней игры Lunar Landing обнаружили ошибку
Ted Spiege

На вопрос Мартина Ц. Мартина, который обнаружил ошибку в коде игры Lunar Landing, о том, как Джиму удалось достичь такого уровня программирования в столь юном возрасте и в довольно ограниченные технически времена, тот ответил, что ему всегда неплохо давался математический анализ. К тому же он был хорошо знаком с концепцией рядов Тейлора. И наконец, в выведении уравнений для упрощения классической формулы Циолковского, которая описывает характеристические параметры полёта космического летательного аппарата при отсутствии влияния сторонних сил, ему помог отец, который был физиком.

Jim Storer

Как выяснил Мартин, код Сторера был практически безупречным, однако в нём не хватало двойки в делителе квадратного корня в части кода, описывающей учёт времени при посадке лунного модуля, что привело к отсутствию инструкции деления на два. На практике такая ошибка проявлялась в занижении показателей времени, пусть и совершенно незначительном. Исправление ошибки позволило получить результат «Хорошо» со скоростью посадки лунного модуля 1,66 мили в час с применением оптимальной игровой стратегии, просчитанной до деталей командой игрового сообщества Kerbal Space Program. Стоит отметить, что оценку «Идеально» возможно получить лишь со значением скорости до одной мили в час. К слову, прежде та же стратегия, известная как «suicide burn», позволяла фанатам игры осуществлять посадку модуля со скоростью 3,5 мили в час, что всё ещё считалось приемлемым результатом, но очень далёким от предусмотренного Джимом идеала.

В коде 55-летней игры Lunar Landing обнаружили ошибку
Martin C. Martin
В коде 55-летней игры Lunar Landing обнаружили ошибку
Martin C. Martin

Современные игры, пусть и гораздо более сложные и многогранные, чем Lunar Landing, нередко разочаровывают геймеров обилием багов. Тем удивительнее, что для обнаружения ошибки в коде игры, самостоятельно созданной школьником, хоть и чрезвычайно одарённым, понадобились десятки лет.

Поділитися в соцмережах

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