Старые программы и, в особенности, видеоигры могут быть ценным источником утраченных знаний. Разработчики времен Atari 2600 постоянно упирались в аппаратные ограничения, поэтому им приходилось применять смекалку, создавая уникальные программные решения. Некоторые настолько парадоксально просты и в тоже время непонятны, что ставят в тупик даже современных специалистов.
Например, история игры под названием «Entombed», выпущенной в 1982-ом. В ней игроку нужно перемещаться по лабиринту и избегать контактов с монстрами, но из-за дефицита памяти хранить карту лабиринта негде. Поэтому он создается динамически, слой за слоем, прокручиваясь вертикально. Игрок может перемещаться в четырех направлениях в пределах экрана, но он не может узнать строение лабиринта даже на шаг вперед. Потому что программа сама этого не знает.
Лабиринт в Entombed предельно простой, уровень состоит из блоков, которые имеют значение «стена» или 1 и «не-стена» или 0. В игре есть модуль, который обрабатывает участок 5х5 блоков и выдает три решения: сделать следующий уровень целиком из стен, пустым или случайной комбинацией стен и пустот. При этом должен сохраняться проход с предыдущего уровня и не возникать тупиков. Принцип работы этого модуля, от которого зависит весь геймплей, современные разработчики не понимают напрочь.
Ученый Джон Эйкок из Университета Калгари в Альберте (Канада) и программист Тара Копплстоун из Йоркского университета (Великобритания) перебрали все возможности, даже провели реверс-инжиниринг, но успеха не добились. В итоге они обратились к Стиву Сидли, разработчику оригинальной игры, и тот поведал историю. Проектирование модуля поручили талантливому «ронину», программисту-наемнику, не из штата компании. Тот просидел над задачей несколько дней и после ее решения на радостях так напился, что только чудом сохранил сам модуль, но вот объяснить его работу уже не мог. Вскоре он сменил работу и след его потерялся, так что есть большая вероятность, что тайна лабиринта «Entombed» останется тайной навсегда.
Источник — BBC
Источник: