Оригинал.
11.02.2018

Цифровая пыль и слава: как отменили самый древний рекорд в видеоиграх

Компьютерам нет ещё и века, но накопившиеся за это время пласты — исторические, технологические, культурные — уже содержат достаточно, чтобы, закопавшись в них, покрыв себя «цифровой пылью», получать удовольствие от извлечённой на свет божий давно позабытой вещицы, да даже и от самого процесса прорубания сквозь! Удовольствие, соглашусь, не для каждого, но тем сильнее соблазн для человека понимающего. И находки, сделанные «цифровыми археологами», время от времени будоражат воображение.

Вспомните, как восстановили исходные тексты легендарной Prince of Persia: сколько шуму и восторгов было — а ведь речь всего-то о двух десятилетиях вглубь! Сегодня есть возможность рассказать об очередном экспонате, возраст которого почти вдвое больше: на днях официально аннулировали самый долгоживущий рекорд, поставленный в компьютерной игре. История эта почти детективная, поэтому позвольте по порядку и не торопясь...

Начать лучше всего с погружения в атмосферу того времени. Представьте: 1980-й год. Домашний компьютер как продукт, как класс, уже существует: спасибо Apple, Commodore, Atari. Но для миллионов человек компьютеры пока доступны лишь в форме игровых приставок, самая популярная среди которых (и она же одна из первых) это Atari 2600.

Atari 2600 в рекламе конца 70-х.

О том, в каких условиях и какими людьми она создавалась, речь шла совсем недавно (см. «Как член основателя Atari чуть историю не переписал» — не судите о статье по названию!), но если коротко, это был продукт переходного этапа — звено между большим аркадным автоматом (помните фильм «Последний звёздный боец»? Снят чуть позже, но представление даёт) и персональным компьютером. Такая приставка уже была микропроцессорным устройством, но пока ещё запускающим только готовые программы, без возможности программировать её самостоятельно.

Стандарты разработки софта тогда тоже только формировались и вот в какой-то момент несколько программистов Atari, недовольных политикой компании, не желавшей указывать авторство программ, увольняются и создают собственный бизнес. Так родилась Activision — впоследствии ставшая одним из самых ярких разработчиков видеоигр. А первым её продуктом, равно как и первой программой для Atari 2600, написанной вне Atari, стала игра Dragster.

Не уверен, что копирайт истёк, но отыскать копию этой программы сегодня нетрудно. Вот, например, страница, где её можно запустить прямо в браузере, через яваскриптовский эмулятор Atari 2600. Но если вы настроены экспериментировать, лучше, пожалуй, скачать ROM-образ игры и скормить его полноценному эмулятору, такому, к примеру, как мультиплатформенный Stella (это свободный продукт, так что под Линуксом вы наверняка сможете поставить его, просто скомандовав от рута apt-get install stella). Попробуйте! Хотя бы ради того, чтобы вспомнить, какими были видеоигры во времена, когда воображение было важнее собственно графики!

Dragster в эмуляторе Javatari.

И, должен предупредить, не пугайтесь: Dragster — одна из тех игрушек, которые впоследствии стали именовать «мазокор», то есть чрезвычайно простое управление при экстремально сложном игровом процессе. Конкретно в Dragster, симуляторе гоночного автомобиля, управление реализовано посредством всего двух кнопок, «педали газа» и «рычага скоростей». Задача: пройти дистанцию за минимальное время, для чего требуется удерживать обороты в красной зоне и оптимально быстро выйти на 4-ю передачу. Замешкаетесь с передачами — и придёте сильно позже, поторопитесь — взорвёте движок. Хотите, играйте с оппонентом, хотите — один, ориентируясь на таблицу рекордов, опубликованную разработчиком. Схема и темп игры от этого не изменятся.

Сколько тысяч человеко-лет было потрачено, чтобы хотя бы добраться до официального рекорда Activision — 5.61, то есть пять и шестьдесят одна сотая секунды! — даже предположить не берусь. Мастеров от новичков отделяли буквально десятые секундные доли, однако убийственно сложный процесс повышения мастерства (в полном соответствии с законом Бушнелла, основателя Atari: хорошую игру легко начать, но трудно стать мастером) надёжно защищал таблицу рекордов от случайных людей. Забегая вперёд скажу, что и сегодня, спустя тридцать восемь лет после релиза, наименьшее время прохождения Dragster составляет 5.57 секунды, причём оно было продемонстрирован неоднократно, разными игроками. Однако практически всю историю существования этой игры считалось, что абсолютный рекорд — 5.51. Поставлен он был якобы одним человеком, Тоддом Роджерсом, осенью 1982-го. И никто никогда так и не смог его повторить. О нём этот рассказ.

Как гласит официальная версия, озвученная и до сих пор рассказываемая самим Роджерсом, и в частностях, но не полностью, подтверждаемая третьими лицами, он поставил этот рекорд на своей обычной серийной Atari 2600 дома, ещё будучи 17-летним школьником. Сделал «Поляроидом» снимок экрана и отправил в качестве подтверждения своих слов. Отправил обычной почтой в Activision — которая прямо в руководстве к игре просила сообщать, если кому-нибудь удастся уложиться хотя бы в 6 секунд. Впоследствии, Роджерсом же, он был якобы дважды повторён уже в присутствии представителей Activision, на их приставках. А в XXI веке поднят из архивов сотрудниками компании Twin Galaxies, отслеживающей рекорды в видеоиграх, и с их помощью зафиксирован в Книге рекордов Гиннесса — как самый давний из продержавшихся игровых рекордов. Но тут-то вот и загвоздка.

Игр для Atari 2600 было немного, но тем больше внимания каждая из них привлекала. Картриджи продавались миллионными тиражами!

Дело в том, что никому с тех пор не удалось даже приблизиться к рекорду Роджерса. Между 5.57 и 5.51 вроде бы мелочь, мгновение, но практически оказалась — пропасть! Роджерс с тех пор поставил ещё не одну дюжину рекордов в других аркадах, но легендой он стал именно благодаря Dragster. Ему, тогда ещё школьнику, присвоили титул Мистер Activision, его начали возить по компьютерным выставкам, оплачивая все расходы, водить на телевидение и деловые встречи. У Activision и прочих игровых и компьютерных разработчиков был свой интерес: им важно было сформировать у общественности правильный образ «геймера», который тогда ещё у большинства простых людей, от компьютеров далёких, ассоциировался с контркультурой, наркотиками и тому подобными вещами.

Роджерс же был приличным мальчиком — и на редкость хорошим игроком. Это признавали все, кто видел его за дисплеем. И хоть в его рекордах часто сомневались — уж очень сильно они выбивались из ряда вон: то наберёт пятнадцать тысяч баллов там, где никому не удаётся сделать больше пятиста, то сделает почти две тысячи в игре, кончающейся на 1300, и т.д. и т.п. — но так получилось, что именно тот самый первый рекорд стал для него роковым.

Собственно сперва в возможности пройти игру за 5.51 усомнились даже сами разработчики, ибо это было меньше теоретического минимально-возможного времени, подсчитанного ими. Но Роджерс пояснил, что ухитрился «включить первую передачу ещё на предстартовом отсчёте, так что стартовал уже на второй». Авторов это удовлетворило. Но не других игроков. И чем больше проходило лет, тем многочисленней становились ряды скептиков. Ведь никто, ну совершенно никто, не смог даже приблизиться к его рекорду! Ни у кого больше не получилось и совершить трюк с рычагом. Но и вообще все детали той древней истории известны теперь лишь со слов самого Тодда Роджерса. А можно ли ему верить? Были ли на самом деле публичные демонстрации, судьи?

Чтобы представить себе объём сомнений, накопившихся с тех пор, загляните вот в эту дискуссию. Там 270 страниц (!), и ведь она такая не одна, были и другие обсуждения. Суть, коротко: с годами скептики наращивали объективность своих аргументов. Если поначалу всё сводилось к «у меня не получилось и ни у кого не получилось, как же так?», то позже для доказательства удалось привлечь технику.

В замечательной научно-фантастической повести «Путь к Земле» (Михаил Пухов, 1985; печаталась в журнале «Техника — молодёжи» вместе с соответствующими игровыми программами для микрокалькуляторов Б3-34 и совместимых) опытный лётчик обыгрывает игровой автомат, заставляя его нарушить правила. Увы, с Dragster этот метод не сработает: слишком примитивная программа!

Atari 2600 — одна из самых хорошо изученных микропроцессорных систем. Дотошно исследован как её процессор, MOS 6507 (урезанный для дешевизны знаменитый 6502: уже адресная шина, нет аппаратных прерываний и т.п.), так и прочие узлы, системный софт, принципы действия. Написаны эмуляторы, включая свободные. Поэтому от попыток побить рекорд Роджерса вручную энтузиасты со временем перешли к так называемым экспериментам tools-assisted, то есть с помощью вспомогательных инструментов — программируя управление игрой на эмуляторах, либо даже конструируя дополнительные устройства (вот замечательный видеорассказ об одной из таких попыток, вот другой).

Занятие это нешуточное, были там и ассемблер, и осциллограф, и паяльник и прочее, так что кое-кто шутил даже, что это бы упрямство да на благое дело (заставить бы их лекарство от рака искать!). Но... В самом деле, руки человеческие не сравнятся с автоматом. Они не в состоянии работать с такой же скоростью и точностью. И была надежда, что «механизацией» удастся по крайней мере повторить древний рекорд. Увы, он остался недосягаем: лучшее, чего смогли добиться энтузиасты, это 5.57.

И тогда, примерно с год назад, был поставлен финальный, генеральный эксперимент. Благодарить за него следует человека, известного «в интернетах» под псевдонимом OmnigamerSDA. Он автор книги о скоростном прохождении игр, а в свободное время — поклонник Dragster. Одолеваемый сомнениями и, конечно, зная о предыдущих попытках побить или повторить рекорд, он в конце концов решился разобрать игру что называется на винтики: дизассемблировал её!

При размере программы всего-то в 2048 байт (избитое сравнение, но: даже текст, который вы сейчас читаете, без картинок, «весит» в разы больше) это оказалось, в общем, нетрудно. Сложнее было понять, какие переменные программа использует и как, сколько времени на это уходит у процессора. После этого он описал главную процедуру игры в виде электронной таблицы, которая позволяет «прогнать» игру буквально по шагам (точнее по кадрам, это специфическая особенность Atari 2600, подробнее ниже), «нажимая» кнопки с точностью до кадра (проставляя числа в соответствующие ячейки) и оценить влияние на итоговое время.

Atari 2600. Выпущенная в 1977-м году, она изучена к настоящему моменту стопроцентно. Известно, например, что некоторые экземпляры чипа 6507 имели дефект в операции регистрового сдвига и тому подобные нюансы.

Вот эта таблица. Вы сами можете поэкспериментировать с нею (сделайте копию, оригинал только для чтения) и убедиться, что лучший результат, которого можно достичь даже таким путём, это 5.57. А ещё она показывает, что даже если скорость можно было бы переключить до старта, это не дало бы требуемого ускорения.

Работа Omnigamer поставила точку в почти полувековом споре. Опираясь на неё и принимая во внимание прочие подозрительные достижения Роджерса, самый древний из продержавшихся компьютерных рекордов был аннулирован, в том числе составителями Книги рекордов Гиннесса, а сам «Мистер Активижн» потерял своё почётное место в администрации Twin Galaxies. Попросту говоря, признано, что он был читером.

И вот тут начинается последняя и самая интересная часть драмы. Положим, про демонстрацию рекорда на людях Тодд Роджерс соврал (хоть сам он держится своей версии по сей день). Допустим, Activision он был нужен в качестве живого символа нового рынка, нового феномена, и компания помогла его ложь скрыть. Но как быть со снимком? Увы, он не сохранился (это ясно из интервью с Дэвидом Крейном, автором Dragster), Activision такие материалы не хранила. Но он без сомнения был, потому что рекорды в те времена именно так и подтверждались. Так откуда же он взялся?

Подделан? Не так просто. Во-первых, это не обычная фотография, а «поляроид» — помните, такая сложная многослойная конструкция с химикатами внутри? Сомнительно, чтобы Роджерс мог её убедительно, например, подправить. Снимок был, а значит, и соответствующая картинка с заветным числом 5.51 на телеэкране была тоже. Но раз получить её в самой игре нельзя, как Роджерс получил её? Сегодня он конечно сделал бы скриншот и отредактировал его «фотошопом». Однако тут второй тупик: сделать скриншот на Atari 2600 невозможно!

А это уже Dragster в эмуляторе Stella с включенным отладчиком, на современной PC под Linux. Тут вам и дизассемблер, и содержимое регистров, можно поправить что угодно и когда угодно. У Тодда Роджерса в 1982-м таких ресурсов, конечно, не было.

Дело в том, что Atari 2600 создавалась в те времена, когда оперативная память стоила фантастически дорого: десятки тысяч долларов за килобайт! И конструкторы, чтобы уложиться в розничную цену 199 долларов, пошли на настоящую сделку с дьяволом, за что многократно были прокляты впоследствии разработчиками игр. Приставка была лишена экранной памяти!

В Atari 2600 экран рисуется строчка за строчкой, и каждая строчка составляется на лету из содержимого нескольких регистров. Программы поэтому вынуждены укладываться в чрезвычайно жёсткие временные рамки: выполнила отведённое число тактов — поменяла содержимое видеорегистров — повторила... Это казуистически сложная схема, оптимизированная специально под аркадные игры — но, собственно, ничего другого тогда запускать и не предполагалось! И именно по этой причине сделать скриншот на Atari 2600 её собственными средствами нельзя. И уж точно не в 1982-м году!

Так что же остаётся? Глюки процессора и/или оперативной памяти (которой, кстати, было всего-то 128 байт) отвергает всё та же модель Омнигеймера: теоретически, что-то внутри приставки могло давать сбои, которые позволили бы пройти дистанцию в Dragster за 5.51, но таких сбоев должно было быть слишком много и случаться они должны были ну в очень удачные моменты времени. Разгон процессора тоже нужного эффекта не даст, потому что будет компенсирован внутренним счётчиком. И остаётся всё-таки подделка.

Одна из самых правдоподобных версий сводится к тому, что у Роджерса была не только Atari 2600, но и какой-нибудь компьютер, дававший цветную картинку похожего разрешения. Например, недорогой Commodore VIC-20: 300-долларовая машина, ставшая, как теперь с гордостью вспоминают её поклонники, первым компьютером в истории, разошедшимся тиражом более миллиона экземпляров. В отличие от Atari 2600, приставки, которая только и умела, что запускать игры с ROM-картриджей, VIC-20 уже была оснащена Бейсиком. Вот программируя на нём, Роджерс, вероятно, и нарисовал картинку, очень напоминавшую скриншот Dragster. После чего сделал тот самый снимок. А впоследствии ещё не раз применил ту же технику для «установления» новых рекордов.

Что ж, титула короля игр Тодд Роджерс теперь лишён. Зато имеет все шансы войти в историю как первый и самый титулованный читер. Тоже неплохо в своём роде ;-)


Dragster,игра,8_бит,ностальгия,Тодд_Роджерс,Atari_2600,железо,игровая_приставка,Coomodore,Atari,мазокор,цифровая_археология,Activision




Евгений Золотов, 1999-2018. Личный архив. Некоторые права защищены