Десять с лишним лет назад – порой кажется, будто вчера, а порой, будто в прошлой жизни, – я заинтересовался историей появления компьютерной игры, которая со школьной скамьи знакома почти всем американцам моего поколения. Речь об игре The Oregon Trail, текстовой «симуляции» полного невзгод и лишений путешествия американских переселенцев на мифический благословенный Запад в поисках лучшей доли. Выяснив, что игра появилась аж в 1971 году, почти на самой заре компьютерной эры, я задался целью разыскать самую раннюю из существующих версий. К сожалению, увидеть The Oregon Trail в том виде, в каком ее увидели старшеклассники одной из школ Миннеаполиса, где проходил практику Дон Роуич, мне не удалось. Однако благодаря группе энтузиастов, сохраняющих наследие эры мини-компьютеров Hewlett-Packard, мне удалось раздобыть версию 1975 года. Тот момент, когда я смог запустить на эмуляторе HP-2100 перепечатанный вручную исходный код, до сих пор остается одним из самых памятных в моей истории общения с компьютером.
Все свои похождения и открытия я освещал в блоге, который вел главным образом для того, чтобы поддерживать себя в писательском тонусе. Я как раз закончил книгу The Future Was Here («Будущее прошедшее»), посвященную истории Commodore Amiga, для издательства MIT Press и думал, что делать дальше. Это было непростое время: я переехал к жене в Скандинавию и пытался освоиться с новым языком и в новой для себя культуре, параллельно мучаясь вопросом, следует ли мне поступать в докторантуру и продолжать карьеру в университетской среде. Так что для меня эти первые статьи служат еще и отражением неясности и неопределенности той поры.
Закончив писать историю The Oregon Trail, я подумал, что было бы неплохо подобным образом рассмотреть и другие игры. Так появился «Археолог цифрового века».1 Постепенно из обычного блога обо всем и сразу, каких в интернете миллионы, он перерос, как написано на главной странице, в «проект, посвященный истории становления и развития компьютерных развлечений и цифровой культуры». Сам того не осознавая, я обнаружил то, чем на самом деле хочу заниматься. Спустя несколько лет я решил узнать, может ли мое увлечение приносить доход, и создал аккаунт на «Патреоне».2 Благодаря этому в скором времени «Археолог цифрового века» из хобби превратился в полноценную работу. Кроме того, это позволило мне запустить параллельный проект «Археолог аналоговой эпохи»,3 посвященный более традиционной истории культуры.
Скажу честно, сейчас перечитывать статьи, которые вошли в первый том, мне довольно трудно. К счастью, за десять лет работы, публикуя не менее 5000 слов в неделю, я достаточно набил руку, да и относиться к писательству – своему основному источнику дохода – стал гораздо серьезнее, чем в начале пути. Мне порой физически больно смотреть на неудачно построенные предложения и заезженные метафоры, которые в избытке встречаются в ранних статьях. И все же эти любительские опусы хранят в себе очарование той невинной поры, когда я с нетерпением ждал новых комментариев и хвастался перед женой каждый репостом. Мне приятно осознавать, что нашелся человек, который счел мой труд достойным того, чтобы перевести его на русский язык (возможно, в переводе эти статьи станут несколько более приятными для чтения). В любом случае, я надеюсь, что вам будет небезынтересно заглянуть в далекое прошлое компьютерных игр и компьютерной эры в целом – и в личное прошлое автора этих строк.
Джимми Мехер
Июль 2021 г.
Недавно я приобрел книгу 1001 Video Games You Must Play Before You Die4 («1001 видеоигра, в которые каждый обязан сыграть за свою жизнь»). Книга, признаться, так себе, однако сейчас мне бы хотелось поговорить о первой игре, упомянутой там: The Oregon Trail. Именно она, собственно, и заставила меня нырнуть в ту кроличью нору, откуда я только теперь вернулся, совершенно ошарашенный, поскольку был вынужден полностью пересмотреть свой взгляд на историю развития интерактивного повествования.
Почти все без исключения американцы моего поколения знают про The Oregon Trail: с начала 80-х и чуть ли не до середины 90-х практически во всех школах где-нибудь в углу пылилось несколько Apple II, на которых среди прочего непременно была установлена эта небольшая образовательная игрушка. Игроку предлагалось взять на себя роль переселенца, который отправляется в долгое и трудное путешествие по так называемой Орегонской тропе5 из штата Миссури на территорию Орегон. Интерфейс у тех версий был текстовый, однако игровой процесс сопровождали красочные иллюстрации, благодаря которым игра стала популярной среди школьников и до сих пор вспоминается с ностальгической теплотой.
Многие, однако, не подозревают, что на момент выхода версии для Apple II6 The Oregon Trail уже была очень и очень старой. Именно поэтому она и стоит первой в хронологическом списке «1001 видеоигры…». (Правильность датировки меня, сказать по правде, удивила, поскольку ошибок в книге, на самом деле, уйма… Впрочем, сейчас речь не об этом.)
Исходная версия была написана на языке BASIC для мини-компьютеров серии HP 21007 тремя учителями – выпускниками Карлтон-колледжа, небольшого гуманитарного вуза в г. Нортфилд, штат Миннесота: Доном Роуичем, Биллом Хайнеманном (не родственник Ребекки/Билла Хайнеманна, работавшего, в частности над играми серии The Bard’s Tale) и Полом Дилленбергером.
Когда я писал книгу по истории интерактивной литературы8, то в числе двух основных предтеч знаменитой Adventure (1976-77) я выделил ELIZA (1966) Джозефа Вейценбаума, где впервые была реализован принцип текстового взаимодействия между компьютером и человеком (пусть и в формате салонного развлечения, а не полноценной игры), и Hunt the Wumpus (1973) Грегори Йоба – простенькую игру, в которой игрок, перемещаясь по текстовому лабиринту, сначала скрывается от вынесенного в название Вампуса, а затем убивает его. И вот теперь оказалось, что в этот список следует добавить третью игру: The Oregon Trail.
Итак, что же можно сказать об уровне развития интерактивного повествования в 1971 году? Первые эксперименты по включению игрока в повествование появились довольно давно (см., например, «Уголовное дело» Денниса Уитли9), но до сих пор это были единичные эксперименты. Эдвард Паккард пытался опубликовать первые книги своей будущей линейки «Выбери себе приключение»10, но издатели как один отказывали ему, и воплощение идеи пришлось отложить на более поздний срок. В штате Висконсин группка настольщиков решила внести разнообразие в правила любимых варгеймов, однако первое издание Dungeons & Dragons появится только через несколько лет. Безусловно, в варгеймах и прочих симуляционных играх тоже есть компонент погружения: игроки вольны сколь угодно подробно представлять себе события, происходящие на игровом столе, но это отстраненное представление, не отражающее чувств конкретных персонажей игрового мира. Наконец в лабораториях искусственного интеллекта велись кое-какие работы по программно-генерируемому повествованию, но результатом были самодостаточные, не интерактивные истории, которые компьютер генерировал из готового набора исходных данных и предлагал пользователю.
И вот на сцене появляется The Oregon Trail, которая начинается словами: «Вашей семье из пяти человек предстоит преодолеть 2040 миль по Орегонской тропе за 5-6 месяцев и выжить при этом. Перед путешествием вам удалось накопить $900, и $200 из них вы только что потратили на фургон». Нас сразу же погружают в игровой мир, дают примерить на себя конкретную роль, а затем предоставляют полную свободу действий. Хоть одна компьютерная программа до этого предлагала пользователю не прочитать созданную для него историю, а, наоборот, поучаствовать в ее создании? Даже если такие и были, я про них не знаю.
В общем, я задался целью отыскать вариант The Oregon Trail, который был бы как можно ближе к исходной версии. Сразу скажу: дело оказалось нелегким, почти безнадежным, но подробнее об этом в следующей главе.
В прошлой главе я упомянул, что первоначальная версия The Oregon Trail была написана для мини-компьютеров серии HP 2100. Остановимся на этом аспекте поподробнее.
HP 2100, первая серия компьютеров Hewlett-Packard, поддерживала целый ряд операционных систем. Самой распространенной была HP Time-Shared BASIC (BASIC с разделением времени11), под которой и была написана The Oregon Trail. Эта ОС не имела аналогов и в каком-то смысле даже опережала свое время. Если почти во всех ОС того периода пользователь должен был работать через интерфейс командной строки, то HP TSB, как следует из названия, после авторизации помещала пользователя в интерактивную среду BASIC, в которой можно было не только сразу писать программы на BASIC, но и взаимодействовать с компьютером (запускать программы, сохранять файлы и т.п.), используя тот же синтаксис.
Этот подход впоследствии использовался почти во всех персональных компьютерах 8-разрядного поколения: например, чтобы запустить какую-нибудь игру на Commodore 64, нужно было набрать «LOAD ‘*’,8,1». На первых порах даже на IBM PC существовала среда BASIC, в которую пользователь попадал, если компьютер при запуске не мог найти и загрузить диск с установленной DOS (ясное дело, про этот факт почти никто не знал). Долгие годы меня интересовало, как произошел переход от интерфейсов командной строки, типичных для большинства вычислительных систем в научно-исследовательских учреждениях, к интерактивной среде BASIC. Теперь я, кажется, понимаю.
По сравнению с другими ОС того времени HP TSB представляла собой более дружелюбную среду для работы и программирования. Кроме того, компьютеры серии HP 2100 отличались сравнительной дешевизной и простотой в эксплуатации, благодаря чему их особенно полюбили в университетах и даже некоторых школах. Конструкторы из HP немало постарались, чтобы сделать эти машины максимально удобными в использовании. Особого внимания заслуживает руководство пользователя12, рассчитанное на людей, никогда до этого не работавших с BASIC. Авторы отлично сумели сделать его понятным и доступным, не скатываясь при этом в назидательность. Ввиду вышесказанного неудивительно, что HP 2100 в итоге попали и в Карлтон-колледж.
На HP-BASIC было написано довольно много игр и обучающих программ, которые затем сохранялись на магнитных кассетах. В интернете мне попался образ одной из них, представлявший собой, по сути, несортированный массив данных. Чтобы покопаться в нем и, возможно, отыскать оригинальную версию The Oregon Trail, я решил настроить у себя на компьютере эмуляцию среды HP TSB. Поначалу, по крайней мере, эта мысль действительно выглядела вполне здравой…
На деле же оказалось, что, несмотря на наличие эмулятора для HP 2100 (и за это огромное спасибо энтузиастам из проекта «Симулированной истории вычислительной техники»13), сама конфигурация у него довольно сложная. Для работы HP TSB необходимо два компьютера: на одном запущено ядро операционной системы, а другой служит своего рода шлюзом для пользователей, входящих в систему с удаленных терминалов. То есть для полноценной работы необходимо запустить два разных эмулятора, загрузить на каждом соответствующее ПО, а также связать их друг с другом через сокеты, после чего нужно запустить третье приложение, имитирующее удаленное подключение по протоколу Telnet посредством «возвратной петли» (loopback). Самостоятельно я бы такое ни за что не провернул; к счастью, мне помогли участники группы Yahoo, посвященной HP 2100. У них я скачал рабочую сборку эмулятора, которая почти не требовала дополнительных настроек. Не стану утомлять вас подробностями того, как из почти рабочей версии я получил полностью рабочую. Главное, что в итоге я смог запустить среду HP TSB на своем компьютере.
После этого я начал методично копаться в данных с кассеты. Среди шести мегабайт было действительно немало программ на BASIC, большая часть размером всего в несколько килобайт. Увы, The Oregon Trail там не оказалось.
Несмотря на это, о потраченном времени я нисколько не пожалел. Мне в руки попали сотни программ на BASIC: игры, образовательные приложения по каждому предмету, практические инструменты для физических и математических расчетов и т.п. В их числе даже была, наверное, самая ранняя версия первой игры по вселенной «Звездного пути»14. Все это свидетельствует о том, что в период с конца 60-х до конца 70-х годов пользователи HP TSB активно писали программы и потом обменивались ими, но примечательно, на самом деле, другое: программистами выступали не профессионалы-небожители, как в случае с мейнфреймами компании IBM, и не талантливые хакеры, как в случае с мини-компьютерами серии DEC PDP, а обычные учителя и их ученики. Критерии оценки, согласитесь, совсем другие. Как бы то ни было, несомненно одно: все, кто работал на HP-BASIC, глубоко увлекались играми.
Эта золотая жила заслуживает большего внимания, и в дальнейшем я, возможно, еще к ней вернусь (в частности, я хочу попробовать отыскать там исходную версию текстовой стратегии Hammurabi (1968) Дага Даймонта). Однако сейчас у нас в центре внимания The Oregon Trail, и следующая глава будет посвящена непосредственно истории ее создания.
Итак, поиски The Oregon Trail в том виде, как она была написана выпускниками Карлтон-колледжа, успехом не увенчались, поэтому я решил разыскать самую раннюю версию из возможных. Ею оказалась версия, напечатанная в номере Creative Computing за июль-август 1978 г.15 Однако прежде чем углубиться в нее, я хочу рассказать, что произошло за семь лет между появлением первоначальной версии и публикацией кода в Creative Computing.
В 1971 году Дон Роуич, Билл Хайнеманн и Пол Дилленбергер – трое старшекурсников из Карлтон-колледжа, снимавших вместе жилье, – проходили педагогическую практику.16 Хайнеманн с Дилленбергером преподавали математику, а Роуич – историю. Именно он придумал, как рассказать школьникам об Орегонской тропе в виде настольной игры, а соседи предложили воплотить ее на компьютере, написав код на HP-BASIC. Таким образом, первыми, кто сыграл в The Oregon Trail, помимо разработчиков, стали ученики Роуича: 3 декабря 1971 года он прикатил на урок телетайпный терминал. По словам Роуича, игра ученикам «чрезвычайно понравилась». До конца полугодия он и его коллеги по школьному округу Миннеаполиса часто использовали The Oregon Trail на своих уроках. В 1972 году практика у Роуича закончилась, и он удалил игру из системы, забрав с собой распечатку исходного кода, которую затем забросил куда-то в дальний ящик стола.
Тем временем штат Миннесота превратился в флагман компьютерных инноваций. В 1973 году по решению законодательного собрания штата был организован Миннесотский консорциум компьютерного образования (МЕСС17), занимавшийся внедрением компьютеров в школы и вузы. В штаб-квартире консорциума в г. Миннеаполис установили мейнфрейм UNIVAC 110018, к которому были подключены 1500 терминалов в школах по всему штату. В 1974 году МЕСС нанял Дона Роуича в качестве «специалиста по связям с местными учебными заведениями».
Воодушевленный возможностью снова вернуться к интересовавшей его теме – применению компьютеров в образовании, – Роуич вспомнил про ту самую распечатку с кодом The Oregon Trail. Во время «длинных выходных по случаю Дня благодарения» он бережно перенес код с пожелтевших от времени листов на UNIVAC, попутно внося исправления, связанные с различиями в архитектуре мини-компьютера и мейнфрейма, а также используемых версиях BASIC.* Кроме того, Роуич расширил и улучшил саму игру, сделав ее более целостной, исторически достоверной и увлекательной. За следующие несколько лет в The Oregon Trail сыграли тысячи школьников по всему штату.
*На самом деле все происходило не совсем так, однако правду я выяснил только во время работы над следующей главой. [здесь и далее прим. автора]
В 1977 году MECC заменил устаревающий UNIVAC на мейнфрейм серии CDC Cyber19 73, и The Oregon Trail был портирован на него. Код именно этой версии в итоге и был напечатан на страницах Creative Computing в 1978 году. На ее основе я сделал бэкпорт для HP TSB, чтобы примерно представить, как мог выглядеть первоначальный вариант игры.
Кстати, о Creative Computing… История этого журнала тоже весьма и весьма занимательная.
Creative Computing был основан в 1974 году Дэвидом Алом и стал первым журналом о компьютерах, рассчитанным на широкую публику, на год опередив даже знаменитейший Byte. Как следует из названия, журнал был больше ориентирован на художественную и культурную ценность компьютеров, нежели на их применение в бизнесе и технике. Помимо разнообразных технических рекомендаций и исходных кодов программ, на страницах Creative Computing печатались статьи, посвященные тому, что может принести с собой компьютерная революция. Появление подобных «философских» рассуждений, скорее всего, объяснялось тем, что большая часть читателей доступа к реальным машинам не имела, однако сама тема вызывала у них огромный интерес пополам с опасениями (например, о том, как компьютеры повлияют на гражданские свободы). Идеалистический и антиавторитарный настрой вполне отражал дух контркультуры конца 60-х, который к тому времени уже шел на спад. Другим слепком подобной идеологии можно считать Community Memory – первую общественную BBS, запущенную в Калифорнийском университете в Беркли. Атмосфера, царившая там, прекрасно описана в книге Стивена Леви «Хакеры: герои компьютерной революции».
До того как заняться выпуском журнала, Ал занимал должность менеджера по продвижению образовательных решений в DEC, в связи с чем на страницах Creative Computing немало места уделялось образовательному потенциалу компьютерных технологий.20 Обширные разделы, посвященные образовательным программам, появлялись чуть ли не в каждом номере. Словом, нет ничего удивительного, что исходный код The Oregon Trail был напечатан именно в этом журнале. Скорее удивительно, что это не произошло раньше.
К этому времени MECC, который всегда на шаг опережал свое время, уже перешел на новейшие, как их тогда называли, «микрокомпьютеры». С 1978 года в школах Миннесоты начали появляться Apple II. Естественно, The Oregon Trail портировали и на этот компьютер тоже.
Ну что ж, с историей покончено; наконец настала пора взглянуть, что из себя представляет сама игра – ради чего, собственно, и были затеяны все эти танцы с бубном. Но об этом в следующей главе.
Работа над этой главой заняла больше времени, чем ожидалось, но вовсе не из-за нехватки энтузиазма. Дело в том, что к моим археологическим изысканиям подключились Майкл Джемени и Боб Браун, специалисты по HP 2100 из группы в Yahoo, и вместе нам удалось совершить поистине удивительную находку.
Изучая образ кассеты из школы округа Йорк, штат Пенсильвания, Майкл нашел программу с многообещающим названием Oregon. И действительно, запустив ее, мы поняли, что перед нами версия The Oregon Trail от 27 марта 1975 года, то есть на три года старше версии, напечатанной в Creative Computing. Если вам интересно покопаться в исходном коде, то я загрузил его на свой сайт.21 Сравнив, таким образом, две имеющиеся версии, мы узнали немало интересного.
Прежде всего, это позволило мне исправить историческую неточность, допущенную в предыдущей главе. В 1974 году, когда Роуича только взяли работать в МЕСС, он явно не занимался портом The Oregon Trail на UNIVAC – по крайней мере, не сразу. Сначала он, скорее всего, просто заново набрал код на имевшемся у консорциума НР 2100: вполне логично, если учесть, что эти мини-компьютеры стояли почти в каждой школе, причем не только в Миннесоте, но и по всей стране, а к началу 1975 года МЕСС активно распространял игру по образовательным округам соседних штатов.
Нетрудно также заметить, что сам Роуич, программисты из МЕСС – или кто-то еще – в последующие годы продолжали доводить игру до ума, и в таком обновленном виде она попала на Apple II. В версии 1978 года есть ряд нововведений, отсутствующих в версии 1975 года. Возьмем ситуацию, когда игроку – во время охоты, нападения бандитов и т.п. – нужно быстро ввести в терминал какое-то слово. В версии 1978 года появляются уровни сложности: в начале игры программа просит игрока указать, насколько он хороший стрелок – от «меткого аса» до «трясущихся рук». В зависимости выбранного варианта игра определяет, сколько времени будет даваться на ввод. Кроме того, нужное слово каждый раз выбирается случайно: BANG, BLAM, POW или WHAM, – тогда как в версии 1975 года это всегда старое доброе BANG.
Если вам интересно поискать другие отличия, версию 1978 года я тоже выложил у себя на сайте,22 хотя она, конечно, не настолько аутентичная, как версия 1975 года. Мне пришлось довольно долго вычитывать код, чтобы убрать все ошибки распознавания, но зато я бэкпортировал ее с BASIC, которой использовался на мейнфреймах линейки CDC Cyber, на HP-BASIC. Теперь вы тоже можете почувствовать, как The Oregon Trail могла выглядеть на «родном» мини-компьютере серии НР тогда, в 1978 году.
Итак, возьму на себя смелость условно обозначить эти две версии номерами 2 и 3 соответственно. Логично предположить, что следующей моей целью должен был стать поиск версии номер 1… Увы, эта задача при всей ее привлекательности кажется неосуществимой. Поскольку первоначальная The Oregon Trail, по всей видимости, существовала только на том компьютере, на котором Роуич с Хайнеманном и Дилленбергером ее написали, и поскольку в 1972 году, уходя из школы, Роуич ее удалил, единственным источником остается та самая пожелтевшая распечатка, которую Роуич принес с собой в МЕСС. На снимке, сделанном в ТЦ «Молл оф Америка» (г. Блумингтон, штат Миннесота) во время мероприятия, посвященного годовщине выхода The Oregon Trail, Роуич держит в руках нечто очень похожее.23
Мне удалось связаться с Роуичем, но, увы, распечатки у него не осталось. Если не случится чуда, видимо, ничего старше версии 1975 года нам уже не найти. Тем не менее даже одна эта находка дорогого стоит.
К тому же, изучая исходный код, можно узнать немало занятного. Здесь я передаю слово Майклу Джемени, поскольку он гораздо лучше меня разбирается в тонкостях HP-BASIC:
«Если сопоставить нумерацию строк кода с историческими свидетельствами, то вырисовывается довольно четкая картина. Я бы сказал, что программа изначально была написана опытным программистом, прилежным и ответственным. А затем кодом занимался другой программист, менее опытный или менее прилежный. Заметно, что ему не хватало времени, усидчивости или умения, чтобы поддерживать чистоту кода в приемлемом виде».
Тот «другой программист» – это, конечно же, Роуич, который переписывал программу для МЕСС, внося свои изменения. В коде сохранились свидетельства, что он – по крайней мере, сначала – работал один и профессиональными познаниями в программировании, в отличие от Хайнеманна и Дилленбергера, не обладал.
Почти все строки кода пронумерованы числами, кратными пяти, но в некоторых местах последовательность нарушается, и это довольно странно, учитывая, что в HP-BASIC, по словам Майкла, реализована довольно продвинутая функция перенумерации строк. Вероятно, Роуич о ней просто не знал, а следовательно, по «выбивающимся» строкам можно отследить те изменения или добавления, которые в версию для MECC внес именно он. Если вдруг кому-то интересно, Майкл выделил эти строки, а я их прокомментировал:
Строки 8-11: указание на MECC, автора изменений и текущую версию
Строки 262-263: предупреждение, чтобы игрок не использовал знак ‘$’
Строка 999 (и далее): комментарии с названиями разделов кода
Строка 1332: напоминание, чтобы игрок использовал целые числа
Строка 1537: предупреждение о разумных тратах
Строка 1752: комментарий о том, что команда «‘7» запускает велосипедный звонок (единственный звуковой эффект, доступный на телетайпном терминале)
Строка 1902: разделение вопроса на две строки
Строка 2392: исправлен баг, связанный с ненападением разбойников
Строка 2672: проливной дождь также приводит к потере патронов
Строка 2792: пожар также приводит к потере патронов
Строка 2891: нападение индейцев (вероятно) заменено на нападение волков
Строка 3147: повреждение фургона также приводит к потере патронов
Строка 3317: снежная буря также приводит к потере патронов
Строки 3650–3658: добавлены родственники и тетушка Нелли
Строка 4012: еще один комментарий о велосипедном звонке
Строка 4279: изменено поздравление в конце игры
Сопоставив эти комментарии с известной нам историей, теоретически можно было бы «реконструировать» первоначальную версию The Oregon Trail, однако после долгих размышлений я решил отказаться от этой затеи. Поскольку нет никакой возможности определить, вносил ли Роуич изменения в основной код (и если да, то какие), все наши попытки будут основаны лишь на догадках.
Что ж, на этом увлекательные поиски завершились. В следующей главе мы наконец поговорим о самой игре.