Цифровые археологи наткнулись на тайны старых видеоигр, которые невозможно разгадать

Современные программисты, работающие с виртуальной реальностью, могут обнаружить для себя много полезного, исследуя коды старых видеоигр

С помощью цифровых эквивалентов совка, лопаты и кисточки археологи ведут раскопки кодов старых видеоигр, чтобы раскрыть давно забытые секреты программирования, актуальные и сегодня.

«Вы и ваша бригада археологов провалились в катакомбы зомби».

Положение ужасное, что и говорить. Именно такое пугающее испытание предстояло пройти играющим в Entombed («Погребенный») на Atari 2600, популярнейшей игровой приставке конца 1970-х — начала 1980-х.

Катакомбы не прощали ничего. Играющим надо было уметь ориентироваться в двухмерном, уходящем вниз лабиринте, чтобы избежать «липких смертельных объятий» зомби.

Выпущенная в 1982 году игра «Погребенный» вовсе не была бестселлером, и сегодня о ней почти забыли. Но недавно ученый-компьютерщик и цифровой археолог решили разобраться поподробнее с ее исходным кодом, чтобы понять, как она работает.

Как вспоминает Джон Айкок из Йоркского университета (Британия), в Entombed всегда было нечто интригующее. И поскольку эта игра довольно быстро канула в безвестность, ее никто не проанализировал раньше.

Это стало одной из главных причин, почему Айкок и его соавтор Тара Копплстоун выбрали для своего исследования именно ее, а не другие 500 игр для приставки Atari 2600.

Они влились в растущий отряд так называемых археологов видеоигр, разыскивающих давно забытые программные продукты, чтобы проанализировать их код.

Эти энтузиасты находят при этом не только ключи к тому, как создавались видеоигры на заре эпохи игромании, но и наталкиваются на секреты, способные помочь современным программистам решить некоторые нынешние проблемы.

Как и отважные исследователи катакомб, Айкок и Копплстоун разыскивали в коде «Погребенного» уникальные реликвии. Но им удалось найти больше — кусочек таинственного кода, который они не могли понять. Похоже, что логическое объяснение, стоящее за ним, утрачено навсегда.

Вглубь лабиринта

Игры, основанные на преодолении лабиринта, были очень распространены в конце 1970-х — начале 1980-х, но методы кодирования таких лабиринтов различались от программиста к программисту.

В эпоху Atari для разработки игр требовалось изрядное мастерство, поскольку компьютерные системы, для которых эти игры создавались, были маломощными.

Двухмерные, угловатые коридоры лабиринтов Entombed по нынешним стандартам компьютерной графики выглядят простовато. Но в 1982 году вы не могли разработать сеть лабиринтов и просто вставить их в игру, чтобы потом открыть на экране — игровым картриджам не хватало для этого памяти.

Во многих случаях лабиринты генерировались игрой по ходу дела, так что игроки никогда не попадали в один и тот же лабиринт дважды.

Но как в таком случае вы можете избежать того, чтобы программа не создавала бесполезные лабиринты, которые в принципе невозможно пройти?

Айкоку была понятна сложность этой проблемы. Ему казалось, что у него есть шанс найти в глубинах «Погребенного» какие-то умные процессы, делающие вышеописанное возможным.

«Эта кроличья нора (отсылка к известному эпизоду из «Алисы в Стране чудес» — Прим. переводчика) оказалась очень глубокой, — вспоминает он. — По мере того как я погружался в изучение алгоритма лабиринта, для меня становилось все более ясно: в этой игре есть нечто уникальное».

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

Таким образом, каждый квадрат должен был быть либо «стеной», либо «не стеной» — на языке компьютера «1» или «0». Алгоритм игры автоматически решал, что выбрать, анализируя ту или иную секцию лабиринта. Он использовал плитку из пяти квадратов, наподобие тех, что были в «Тетрисе». Каждая такая плитка определяла, каким будет следующий квадрат в каждом ряду.

Но как? Тут-то и начинается самая захватывающая часть исследования Айкока и Копплстоун.

Базовая логика исходит из таблицы возможных значений, записанной в коде игры. В зависимости от значений плитки из пяти квадратов таблица приказывает игре либо возвести стену, либо сгенерировать открытое пространство, либо случайно выбрать один из этих двух вариантов.

Утраченные корни

Это кажется простым, вот только дело в том, что никто не может понять, как была составлена таблица.

Айкок и Копплстоун попытались разобраться в ней. Они искали шаблоны значений, надеясь понять, как это всё было придумано.

Но не удалось. Что бы ни делал тот программист, его явно посетил легкий приступ гениальности.

Каждый раз, когда игра стартует, загружается лабиринт, пригодный для исследования. Если бы значения таблицы выпадали в случайном порядке или даже чуть-чуть разные, лабиринт, скорее всего, не имел пути, по которому его можно пройти. Все это кажется просто необъяснимым.

«Ненормальность этой таблицы просто поражала», — рассказывает Копплстоун. По ее словам, это пример классической археологической загадки.

«По-моему, люди считают, что когда мы что-то находим, нам сразу понятно, что это. Мы откапываем копье и видим: это копье. Но гораздо чаще так не бывает. Мы представления не имеем, что откопали».

Для Айкока разрешение загадки этой таблицы неприлично затягивается. «Что меня напрягает как ученого: я считаю, что всегда должна существовать какая-то логика, придающая смысл всему, но в этом случае ее, кажется, нет».

Вот самое лучшее объяснение, которое смогли предложить Айкок и Копплстоун: программист, разработавший алгоритм лабиринта, возможно, вручную настраивал значения таблицы до тех пор, пока игра не становилась полностью рабочей. Но и это не объясняет логики, стоящей за таблицей.

В ходе своего расследования Айкоку и Копплстоун удалось поговорить с одним из тех, кто участвовал в разработке игры — Стивом Сидли.

Тот вспомнил, что тоже был обескуражен, когда увидел такую таблицу: «Я не мог ее расшифровать».

Кроме того, как утверждает Сидли, игра стала результатом работы программиста, который был не совсем трезв, в общем — «под воздействием чего-то».

Айкок попытался связаться с программистом, о котором шла речь, но тот не ответил.

Возможно, логику этого алгоритма никто никогда и не понимал. И вот пожалуйста: перед нами игра 1982 года для древней приставки Atari, и мы не можем ответить на вопрос, который она перед нами поставила.

Цифровые раскопки

Эндрю Райнхард, тоже сотрудник Йоркского университета, занимается археологией видеоигр и пишет об этом. По его словам, работа Айкока и Копплстоун над загадкой «Погребенного» — еще одно подтверждение того, что в старых играх и вообще в старых программах нас может ждать еще немало неожиданных находок.

«У меня такое ощущение, что то, что произошло с Entombed — это, скорее, правило, чем исключение — мы просто пока не знаем, в каких играх можно найти что-то подобное», — говорит он.

Возможно, кому-то покажется странным, что археологов интересуют видеоигры, созданные всего несколько десятилетий назад. Мы больше привыкли к тому, что нам демонстрируются прекрасные амфоры, найденные в земле или на дне океана и пролежавшие там века, если не тысячелетия.

Но, как подчеркивает Райнхард, видеоигры сейчас стали большим бизнесом и важной частью нашей жизни. По ним, как по памятникам материальной культуры, уже можно отслеживать историю человечества (по крайней мере, определенную часть этой истории).

Цифровые археологи могут докапываться до исходных точек развития программирования игр, до понимания того, как работали старые технологии и какое место занимали видеоигры в культуре XX века. Программист Алекси Пеперс из компании Improbable Canada даже называет ретроигры «местом раскопок».

По ее словам, очень воодушевляет, когда слышишь, что в начале 1980-х программисты могли по непонятным сейчас причинам подстраивать — методом проб и ошибок — код игры до тех пор, пока она не становилась играбельной. «Мне это очень знакомо, в моей работе такое тоже случается», — говорит Пеперс.

И то, как программисты старых игр преодолевали технические трудности и ограничения, представляет не только чисто академический интерес. Их методы актуальны и сейчас.

Возьмем для примера игры с использованием виртуальной реальности. Нет ничего более непохожего на двухмерные лабиринты Atari, чем это. Но требования, которые и новые, и старые игры предъявляют к программисту, схожи по своей природе.

«Технически вы очень ограничены, потому что VR-игра должна идти с очень высокой частотой кадров», — объясняет Пеперс.

Изучая хитроумные способы, к которым прибегали программисты прошлого, чтобы обойти ограничения, кодировщики XXI века могут узнать для себя много полезного.

Если вернуться к «Погребенному», то Айкок считает: алгоритм лабиринта, который они обнаружили, — хороший пример того, насколько креативны могли быть разработчики видеоигр.

«С точки зрения сегодняшнего дня я думаю, это еще и показательный пример того, как решить проблему в очень ограниченное время и при очень ограниченном запасе памяти [игровой приставки]», — добавляет он.

Зарытые сокровища

Но цифровые археологи прочесывают не только коды старых игр. В 1983 году компания Atari захоронила 700 000 картриджей видеоигр к своей приставке на свалке города Аламогордо, штат Нью-Мексико (того самого Аламогордо, на полигоне в окрестностях которого в 1945 году было проведено первое испытание ядерного оружия — Прим. переводчика).

Для видеоигр это был исторический момент, о котором ходило много слухов и который некоторые даже поспешили объявить городской легендой, мифом.

Игры, которые компания решила зарыть в землю, в то время критиковались и очень плохо продавались. Об одной из них, ET, the Extra-Terrestrial «(«Инопланетяне»), даже шутили, что это самая плохая видеоигра в истории.

Более 30 лет картриджи лежали на свалке, постепенно разрушаясь. Но в 2014 году Эндрю Райнхард с коллегами начал раскопки.

И оказалось, что захоронение — не миф, не городская байка. Райнхард откопал около 1300 картриджей. Сотни из них были проданы на Ebay — на сумму около 108 000 долларов.

Поначалу казалось, что ни одна из этих игр не работает, но затем один геймер, купивший копию «Астероидов», почистил картридж, перепаял некоторые контакты и начал играть.

Еще несколько десятков лет — и картриджи, захороненные на свалке в Нью-Мексико, уже невозможно было бы восстановить. И это вызов, с которым столкнутся археологи в уже недалеком будущем — время быстро истекает.

«Раскопки» видеоигр представляются довольно безотлагательной штукой, потому что картриджи, выпускавшиеся для массового рынка, по своей природе недолговечны. И все ноу-хау программистов прошлого могут быть утеряны навсегда.

Вот почему те, кто занимается архивами компьютерных проектов, предпочитает хранить их в цифровой форме — так надежней.

Но сохранение — это только первый шаг. Загадка «Погребенного» напоминает нам, что мало сохранить игру, надо еще и понять, как она работает.

Возможно, мы никогда не разберемся в этом. В лабиринте Entombed мы зашли в тупик.

А ведь в мануале к игре нас предупреждали: «Прежде чем вы это поймете, вы уже будете погребены заживо!»

ОСТАВЬТЕ ОТВЕТ

Пожалуйста, введите ваш комментарий!
Пожалуйста, введите ваше имя здесь