Археологи раскапывают не только землю. В старых ретроиграх скрыты давно забытые секреты. Программисты решили исследовать исходный код Entombed - игры с лабиринтами и зомби - и узнали, что в ней скрывается.
Entombed
Entombed - это видеоигра 1985 года, которая была выпущена компанией Atari 2600. Сейчас о ней не сохранилось практически никаких сведений, но некоторые еще помнят, как днями напролет сражались в катакомбах с зомби. «Только представьте - вы и ваша команда археологов попала в подземелье, полное липких и противных зомби. Вам приходится ходить по узким двухмерные тоннелям, уворачиваться от этих существ и проходить испытания», - говорит Крис Боран. Entombed никогда не была бестселлером, а теперь про нее вообще никто не помнит. Но недавно ученый и цифровой археолог Джон Айкок решил приступить к раскопкам и разобрать исходный код игры, чтобы узнать, как именно она была создана.
Цифровая археология
«В Entombed всегда было что-то интригующее», - вспоминает Джон Айкок из Университета Калгари в Альберте, Канада. Но поскольку об игре никто не помнит, никто не анализировал ее код. Это стало одной из главных причин, по которым Айкок и его соавтор Тара Копплстоун взялись за разбор нескольких игр, выпущенных Atari 2600. Как ни странно, внутри они нашли подсказки, которые могут помочь современным программистам в решении некоторых проблем, с которыми они сталкиваются сегодня. Как бесстрашные исследователи катакомб, Айкок и Копплстоун искали любопытные реликвии внутри Entombed. Но они узнали гораздо больше, чем рассчитывали. Им попался загадочный фрагмент кода, который они не смогли объяснить. Кажется, что логика, стоящая за этим, была навсегда утеряна.
В лабиринт
Лабиринтные игры были очень распространены в конце 70-х и начале 80-х годов. Но методы для программирования использовались разные - все зависело от разработчика. В эпоху Atari от программистов требовался не только опыт, но и талант, поскольку системы того времени были очень ограничены.
Хотя по меркам современной компьютерной графики блочные двухмерные лабиринты могут показаться слишком простыми, в 1982 году создать их было не так уж просто. На игровых катриджах не хватало памяти для чего-то подобного. Почти всегда лабиринты создавались «процедурно» - иными словами, их маршрут прокладывался случайным образом, каждый раз изменяясь. Поэтому игроки никогда не проходили один и тот же путь дважды.
Но как именно программировались эти игры? Ведь в них нужно было избежать создания большого количества стен и тупиков. Айкок долго раздумывал над этим и решил, что есть большая вероятность того, что он найдет какой-нибудь хитрый алгоритм в глубине кода Entombed. «Это была очень глубокая кроличья нора, - вспоминает он. - Когда я углубился в изучение программного кода, стало ясно, что в нем было нечто уникальное».
Секретный код
Оказалось, что прямо во время игры программа последовательно рисует каждый блок лабиринт. Алгоритм проводит вычисления и решает, должна ли это быть стена или туннель. Если стена, то в память компьютера передается значение «0», а если открытое пространство - «1». Таким образом лабиринт строится из виртуальных блоков, словно «Тетрис».
Это кажется простым, но дело в том, что никто не может понять, как именно была реализована игра. Айкок и Копплстоун попробовали реализовать подобие Entombed на современном компьютере. Они искали закономерности в коде, чтобы понять, как именно он был спроектирован, но это было безрезультатно. Чтобы ни делали программисты, их результат оказывался далеко от оригинала.
«Необычность этого лабиринта просто поразительна, - говорит Копплстоун. - Мы чувствовали себя настоящими археологами, которые натолкнулись на нечто странное и по-настоящему интересное». У Айкока же эта ситуация вызывает скорее неловкость и смущение: «Я, как ученый, веду борьбу и думаю, что должно быть логичное объяснение тому, что происходит в игре. Но пока мне ничего не приходит на ум».
Предположение
Лучшим объяснением загадочного строительства лабиринтов было то, что программист, стоящий за алгоритмом, должен был вручную регулировать значение параметров, передающихся компьютеру. Но это не полностью объясняет логику игры.
В ходе своих исследований Айкок и Копплстоун смогли взять интервью у одного из разработчиков Entombed - Стива Сидли. Но он тоже сказал, что не мог разгадать значение кода. «Он сказал нам, что натолкнулся на этот странный участок кода, когда был пьян, и просто вышел из себя», - рассказывает Айкок. Таким образом, он не ответил на мучившие ученых вопросы.
Может быть, загадки не существует?
Возможно, что никто и никогда не понимал логику алгоритма, даже его разработчик. Вполне вероятно, что код был составлен из разных кусочков, словно Франкенштейн. А его создатель работал над ним так долго, что забыл его суть. Как бы то ни было, Айкок и Копплостоун все еще работает над этим, пытаясь понять логику алгоритма.
А ЧТО ВЫ ДУМАЕТЕ ОБ ЭТОМ?