Археолог цифрового века – Том 1. 1966-1979

Археолог цифрового века – Том 1. 1966-1979
Джимми Мехер
Перед вами перевод блога Джимми Мехера The Digital Antiquarian, посвященный истории развития индустрии компьютерных развлечений. Вас ждут увлекательные рассказы о знаковых играх разных исторических периодах, биографии выдающихся личностей и экскурсы в историю крупных (и не очень) игровых компаний.

Джимми Мехер
Археолог цифрового века – Том 1. 1966-1979

Предисловие
Десять с лишним лет назад – порой кажется, будто вчера, а порой, будто в прошлой жизни, – я заинтересовался историей появления компьютерной игры, которая со школьной скамьи знакома почти всем американцам моего поколения. Речь об игре The Oregon Trail, текстовой «симуляции» полного невзгод и лишений путешествия американских переселенцев на мифический благословенный Запад в поисках лучшей доли. Выяснив, что игра появилась аж в 1971 году, почти на самой заре компьютерной эры, я задался целью разыскать самую раннюю из существующих версий. К сожалению, увидеть The Oregon Trail в том виде, в каком ее увидели старшеклассники одной из школ Миннеаполиса, где проходил практику Дон Роуич, мне не удалось. Однако благодаря группе энтузиастов, сохраняющих наследие эры мини-компьютеров Hewlett-Packard, мне удалось раздобыть версию 1975 года. Тот момент, когда я смог запустить на эмуляторе HP-2100 перепечатанный вручную исходный код, до сих пор остается одним из самых памятных в моей истории общения с компьютером.
Все свои похождения и открытия я освещал в блоге, который вел главным образом для того, чтобы поддерживать себя в писательском тонусе. Я как раз закончил книгу The Future Was Here («Будущее прошедшее»), посвященную истории Commodore Amiga, для издательства MIT Press и думал, что делать дальше. Это было непростое время: я переехал к жене в Скандинавию и пытался освоиться с новым языком и в новой для себя культуре, параллельно мучаясь вопросом, следует ли мне поступать в докторантуру и продолжать карьеру в университетской среде. Так что для меня эти первые статьи служат еще и отражением неясности и неопределенности той поры.
Закончив писать историю The Oregon Trail, я подумал, что было бы неплохо подобным образом рассмотреть и другие игры. Так появился «Археолог цифрового века».[1 - https://www.filfre.net/] Постепенно из обычного блога обо всем и сразу, каких в интернете миллионы, он перерос, как написано на главной странице, в «проект, посвященный истории становления и развития компьютерных развлечений и цифровой культуры». Сам того не осознавая, я обнаружил то, чем на самом деле хочу заниматься. Спустя несколько лет я решил узнать, может ли мое увлечение приносить доход, и создал аккаунт на «Патреоне».[2 - https://www.patreon.com/DigitalAntiquarian] Благодаря этому в скором времени «Археолог цифрового века» из хобби превратился в полноценную работу. Кроме того, это позволило мне запустить параллельный проект «Археолог аналоговой эпохи»,[3 - https://www.patreon.com/AnalogAntiquarian] посвященный более традиционной истории культуры.
Скажу честно, сейчас перечитывать статьи, которые вошли в первый том, мне довольно трудно. К счастью, за десять лет работы, публикуя не менее 5000 слов в неделю, я достаточно набил руку, да и относиться к писательству – своему основному источнику дохода – стал гораздо серьезнее, чем в начале пути. Мне порой физически больно смотреть на неудачно построенные предложения и заезженные метафоры, которые в избытке встречаются в ранних статьях. И все же эти любительские опусы хранят в себе очарование той невинной поры, когда я с нетерпением ждал новых комментариев и хвастался перед женой каждый репостом. Мне приятно осознавать, что нашелся человек, который счел мой труд достойным того, чтобы перевести его на русский язык (возможно, в переводе эти статьи станут несколько более приятными для чтения). В любом случае, я надеюсь, что вам будет небезынтересно заглянуть в далекое прошлое компьютерных игр и компьютерной эры в целом – и в личное прошлое автора этих строк.

Джимми Мехер
Июль 2021 г.

1. В поисках «Орегонской тропы», часть 1
Недавно я приобрел книгу 1001 Video Games You Must Play Before You Die[4 - https://www.amazon.co.uk/1001-Video-Games-Must-Before-ebook/dp/B006MX1N50/] («1001 видеоигра, в которые каждый обязан сыграть за свою жизнь»). Книга, признаться, так себе, однако сейчас мне бы хотелось поговорить о первой игре, упомянутой там: The Oregon Trail. Именно она, собственно, и заставила меня нырнуть в ту кроличью нору, откуда я только теперь вернулся, совершенно ошарашенный, поскольку был вынужден полностью пересмотреть свой взгляд на историю развития интерактивного повествования.
Почти все без исключения американцы моего поколения знают про The Oregon Trail: с начала 80-х и чуть ли не до середины 90-х практически во всех школах где-нибудь в углу пылилось несколько Apple II, на которых среди прочего непременно была установлена эта небольшая образовательная игрушка. Игроку предлагалось взять на себя роль переселенца, который отправляется в долгое и трудное путешествие по так называемой Орегонской тропе[5 - https://ru.wikipedia.org/wiki/Орегонский_путь] из штата Миссури на территорию Орегон. Интерфейс у тех версий был текстовый, однако игровой процесс сопровождали красочные иллюстрации, благодаря которым игра стала популярной среди школьников и до сих пор вспоминается с ностальгической теплотой.
Многие, однако, не подозревают, что на момент выхода версии для Apple II[6 - Версия 1985 г.: http://www.mobygames.com/game/oregon-trail]The Oregon Trail уже была очень и очень старой. Именно поэтому она и стоит первой в хронологическом списке «1001 видеоигры…». (Правильность датировки меня, сказать по правде, удивила, поскольку ошибок в книге, на самом деле, уйма… Впрочем, сейчас речь не об этом.)
Исходная версия была написана на языке BASIC для мини-компьютеров серии HP 2100[7 - http://ru.wikipedia.org/wiki/HP_2100] тремя учителями – выпускниками Карлтон-колледжа, небольшого гуманитарного вуза в г. Нортфилд, штат Миннесота: Доном Роуичем, Биллом Хайнеманном (не родственник Ребекки/Билла Хайнеманна, работавшего, в частности над играми серии The Bard’s Tale) и Полом Дилленбергером.
Когда я писал книгу по истории интерактивной литературы[8 - http://maher.filfre.net/if-book/], то в числе двух основных предтеч знаменитой Adventure (1976-77) я выделил ELIZA (1966) Джозефа Вейценбаума, где впервые была реализован принцип текстового взаимодействия между компьютером и человеком (пусть и в формате салонного развлечения, а не полноценной игры), и Hunt the Wumpus (1973) Грегори Йоба – простенькую игру, в которой игрок, перемещаясь по текстовому лабиринту, сначала скрывается от вынесенного в название Вампуса, а затем убивает его. И вот теперь оказалось, что в этот список следует добавить третью игру: The Oregon Trail.
Итак, что же можно сказать об уровне развития интерактивного повествования в 1971 году? Первые эксперименты по включению игрока в повествование появились довольно давно (см., например, «Уголовное дело» Денниса Уитли[9 - https://www.z-machine-matter.com/2011/01/1936-dennis-wheatley.html]), но до сих пор это были единичные эксперименты. Эдвард Паккард пытался опубликовать первые книги своей будущей линейки «Выбери себе приключение»[10 - https://ru.wikipedia.org/wiki/Choose_Your_Own_Adventure], но издатели как один отказывали ему, и воплощение идеи пришлось отложить на более поздний срок. В штате Висконсин группка настольщиков решила внести разнообразие в правила любимых варгеймов, однако первое издание Dungeons & Dragons появится только через несколько лет. Безусловно, в варгеймах и прочих симуляционных играх тоже есть компонент погружения: игроки вольны сколь угодно подробно представлять себе события, происходящие на игровом столе, но это отстраненное представление, не отражающее чувств конкретных персонажей игрового мира. Наконец в лабораториях искусственного интеллекта велись кое-какие работы по программно-генерируемому повествованию, но результатом были самодостаточные, не интерактивные истории, которые компьютер генерировал из готового набора исходных данных и предлагал пользователю.
И вот на сцене появляется The Oregon Trail, которая начинается словами: «Вашей семье из пяти человек предстоит преодолеть 2040 миль по Орегонской тропе за 5-6 месяцев и выжить при этом. Перед путешествием вам удалось накопить $900, и $200 из них вы только что потратили на фургон». Нас сразу же погружают в игровой мир, дают примерить на себя конкретную роль, а затем предоставляют полную свободу действий. Хоть одна компьютерная программа до этого предлагала пользователю не прочитать созданную для него историю, а, наоборот, поучаствовать в ее создании? Даже если такие и были, я про них не знаю.
В общем, я задался целью отыскать вариант The Oregon Trail, который был бы как можно ближе к исходной версии. Сразу скажу: дело оказалось нелегким, почти безнадежным, но подробнее об этом в следующей главе.

2. В поисках «Орегонской тропы», часть 2
В прошлой главе я упомянул, что первоначальная версия The Oregon Trail была написана для мини-компьютеров серии HP 2100. Остановимся на этом аспекте поподробнее.
HP 2100, первая серия компьютеров Hewlett-Packard, поддерживала целый ряд операционных систем. Самой распространенной была HP Time-Shared BASIC (BASIC с разделением времени[11 - https://ru.wikipedia.org/wiki/Разделение_времени]), под которой и была написана The Oregon Trail. Эта ОС не имела аналогов и в каком-то смысле даже опережала свое время. Если почти во всех ОС того периода пользователь должен был работать через интерфейс командной строки, то HP TSB, как следует из названия, после авторизации помещала пользователя в интерактивную среду BASIC, в которой можно было не только сразу писать программы на BASIC, но и взаимодействовать с компьютером (запускать программы, сохранять файлы и т.п.), используя тот же синтаксис.
Этот подход впоследствии использовался почти во всех персональных компьютерах 8-разрядного поколения: например, чтобы запустить какую-нибудь игру на Commodore 64, нужно было набрать «LOAD ‘*’,8,1». На первых порах даже на IBM PC существовала среда BASIC, в которую пользователь попадал, если компьютер при запуске не мог найти и загрузить диск с установленной DOS (ясное дело, про этот факт почти никто не знал). Долгие годы меня интересовало, как произошел переход от интерфейсов командной строки, типичных для большинства вычислительных систем в научно-исследовательских учреждениях, к интерактивной среде BASIC. Теперь я, кажется, понимаю.
По сравнению с другими ОС того времени HP TSB представляла собой более дружелюбную среду для работы и программирования. Кроме того, компьютеры серии HP 2100 отличались сравнительной дешевизной и простотой в эксплуатации, благодаря чему их особенно полюбили в университетах и даже некоторых школах. Конструкторы из HP немало постарались, чтобы сделать эти машины максимально удобными в использовании. Особого внимания заслуживает руководство пользователя[12 - http://bitsavers.trailing-edge.com/pdf/hp/2000TSB/22687-90009_LearningTSB.pdf], рассчитанное на людей, никогда до этого не работавших с BASIC. Авторы отлично сумели сделать его понятным и доступным, не скатываясь при этом в назидательность. Ввиду вышесказанного неудивительно, что HP 2100 в итоге попали и в Карлтон-колледж.
На HP-BASIC было написано довольно много игр и обучающих программ, которые затем сохранялись на магнитных кассетах. В интернете мне попался образ одной из них, представлявший собой, по сути, несортированный массив данных. Чтобы покопаться в нем и, возможно, отыскать оригинальную версию The Oregon Trail, я решил настроить у себя на компьютере эмуляцию среды HP TSB. Поначалу, по крайней мере, эта мысль действительно выглядела вполне здравой…
На деле же оказалось, что, несмотря на наличие эмулятора для HP 2100 (и за это огромное спасибо энтузиастам из проекта «Симулированной истории вычислительной техники»[13 - http://simh.trailing-edge.com/]), сама конфигурация у него довольно сложная. Для работы HP TSB необходимо два компьютера: на одном запущено ядро операционной системы, а другой служит своего рода шлюзом для пользователей, входящих в систему с удаленных терминалов. То есть для полноценной работы необходимо запустить два разных эмулятора, загрузить на каждом соответствующее ПО, а также связать их друг с другом через сокеты, после чего нужно запустить третье приложение, имитирующее удаленное подключение по протоколу Telnet посредством «возвратной петли» (loopback). Самостоятельно я бы такое ни за что не провернул; к счастью, мне помогли участники группы Yahoo, посвященной HP 2100. У них я скачал рабочую сборку эмулятора, которая почти не требовала дополнительных настроек. Не стану утомлять вас подробностями того, как из почти рабочей версии я получил полностью рабочую. Главное, что в итоге я смог запустить среду HP TSB на своем компьютере.
После этого я начал методично копаться в данных с кассеты. Среди шести мегабайт было действительно немало программ на BASIC, большая часть размером всего в несколько килобайт. Увы, The Oregon Trail там не оказалось.
Несмотря на это, о потраченном времени я нисколько не пожалел. Мне в руки попали сотни программ на BASIC: игры, образовательные приложения по каждому предмету, практические инструменты для физических и математических расчетов и т.п. В их числе даже была, наверное, самая ранняя версия первой игры по вселенной «Звездного пути»[14 - https://ru.wikipedia.org/wiki/Star_Trek_(текстовая_игра)]. Все это свидетельствует о том, что в период с конца 60-х до конца 70-х годов пользователи HP TSB активно писали программы и потом обменивались ими, но примечательно, на самом деле, другое: программистами выступали не профессионалы-небожители, как в случае с мейнфреймами компании IBM, и не талантливые хакеры, как в случае с мини-компьютерами серии DEC PDP, а обычные учителя и их ученики. Критерии оценки, согласитесь, совсем другие. Как бы то ни было, несомненно одно: все, кто работал на HP-BASIC, глубоко увлекались играми.
Эта золотая жила заслуживает большего внимания, и в дальнейшем я, возможно, еще к ней вернусь (в частности, я хочу попробовать отыскать там исходную версию текстовой стратегии Hammurabi (1968) Дага Даймонта). Однако сейчас у нас в центре внимания The Oregon Trail, и следующая глава будет посвящена непосредственно истории ее создания.

3. В поисках «Орегонской тропы», часть 3
Итак, поиски The Oregon Trail в том виде, как она была написана выпускниками Карлтон-колледжа, успехом не увенчались, поэтому я решил разыскать самую раннюю версию из возможных. Ею оказалась версия, напечатанная в номере Creative Computing за июль-август 1978 г.[15 - https://deserthat.files.wordpress.com/2010/11/oregon1.doc] Однако прежде чем углубиться в нее, я хочу рассказать, что произошло за семь лет между появлением первоначальной версии и публикацией кода в Creative Computing.
В 1971 году Дон Роуич, Билл Хайнеманн и Пол Дилленбергер – трое старшекурсников из Карлтон-колледжа, снимавших вместе жилье, – проходили педагогическую практику.[16 - Дон Роуич рассказывает об истории создания The Oregon Trail на конференции GDC: https://www.youtube.com/watch?v=vdGNFhKhoKY] Хайнеманн с Дилленбергером преподавали математику, а Роуич – историю. Именно он придумал, как рассказать школьникам об Орегонской тропе в виде настольной игры, а соседи предложили воплотить ее на компьютере, написав код на HP-BASIC. Таким образом, первыми, кто сыграл в The Oregon Trail, помимо разработчиков, стали ученики Роуича: 3 декабря 1971 года он прикатил на урок телетайпный терминал. По словам Роуича, игра ученикам «чрезвычайно понравилась». До конца полугодия он и его коллеги по школьному округу Миннеаполиса часто использовали The Oregon Trail на своих уроках. В 1972 году практика у Роуича закончилась, и он удалил игру из системы, забрав с собой распечатку исходного кода, которую затем забросил куда-то в дальний ящик стола.
Тем временем штат Миннесота превратился в флагман компьютерных инноваций. В 1973 году по решению законодательного собрания штата был организован Миннесотский консорциум компьютерного образования (МЕСС[17 - https://ru.wikipedia.org/wiki/MECC]), занимавшийся внедрением компьютеров в школы и вузы. В штаб-квартире консорциума в г. Миннеаполис установили мейнфрейм UNIVAC 1100[18 - https://en.wikipedia.org/wiki/UNIVAC_1100/2200_series], к которому были подключены 1500 терминалов в школах по всему штату. В 1974 году МЕСС нанял Дона Роуича в качестве «специалиста по связям с местными учебными заведениями».
Воодушевленный возможностью снова вернуться к интересовавшей его теме – применению компьютеров в образовании, – Роуич вспомнил про ту самую распечатку с кодом The Oregon Trail. Во время «длинных выходных по случаю Дня благодарения» он бережно перенес код с пожелтевших от времени листов на UNIVAC, попутно внося исправления, связанные с различиями в архитектуре мини-компьютера и мейнфрейма, а также используемых версиях BASIC.* Кроме того, Роуич расширил и улучшил саму игру, сделав ее более целостной, исторически достоверной и увлекательной. За следующие несколько лет в The Oregon Trail сыграли тысячи школьников по всему штату.
*На самом деле все происходило не совсем так, однако правду я выяснил только во время работы над следующей главой. [здесь и далее прим. автора]
В 1977 году MECC заменил устаревающий UNIVAC на мейнфрейм серии CDC Cyber[19 - https://en.wikipedia.org/wiki/CDC_Cyber] 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 - Архивная подборка статей из ранних выпусков: https://www.atariarchives.org/bcc1/] Обширные разделы, посвященные образовательным программам, появлялись чуть ли не в каждом номере. Словом, нет ничего удивительного, что исходный код The Oregon Trail был напечатан именно в этом журнале. Скорее удивительно, что это не произошло раньше.
К этому времени MECC, который всегда на шаг опережал свое время, уже перешел на новейшие, как их тогда называли, «микрокомпьютеры». С 1978 года в школах Миннесоты начали появляться Apple II. Естественно, The Oregon Trail портировали и на этот компьютер тоже.
Ну что ж, с историей покончено; наконец настала пора взглянуть, что из себя представляет сама игра – ради чего, собственно, и были затеяны все эти танцы с бубном. Но об этом в следующей главе.

4. В поисках «Орегонской тропы», часть 4
Работа над этой главой заняла больше времени, чем ожидалось, но вовсе не из-за нехватки энтузиазма. Дело в том, что к моим археологическим изысканиям подключились Майкл Джемени и Боб Браун, специалисты по HP 2100 из группы в Yahoo, и вместе нам удалось совершить поистине удивительную находку.
Изучая образ кассеты из школы округа Йорк, штат Пенсильвания, Майкл нашел программу с многообещающим названием Oregon. И действительно, запустив ее, мы поняли, что перед нами версия The Oregon Trail от 27 марта 1975 года, то есть на три года старше версии, напечатанной в Creative Computing. Если вам интересно покопаться в исходном коде, то я загрузил его на свой сайт.[21 - https://www.filfre.net/misc/oregon1975.bas] Сравнив, таким образом, две имеющиеся версии, мы узнали немало интересного.
Прежде всего, это позволило мне исправить историческую неточность, допущенную в предыдущей главе. В 1974 году, когда Роуича только взяли работать в МЕСС, он явно не занимался портом The Oregon Trail на UNIVAC – по крайней мере, не сразу. Сначала он, скорее всего, просто заново набрал код на имевшемся у консорциума НР 2100: вполне логично, если учесть, что эти мини-компьютеры стояли почти в каждой школе, причем не только в Миннесоте, но и по всей стране, а к началу 1975 года МЕСС активно распространял игру по образовательным округам соседних штатов.
Нетрудно также заметить, что сам Роуич, программисты из МЕСС – или кто-то еще – в последующие годы продолжали доводить игру до ума, и в таком обновленном виде она попала на Apple II. В версии 1978 года есть ряд нововведений, отсутствующих в версии 1975 года. Возьмем ситуацию, когда игроку – во время охоты, нападения бандитов и т.п. – нужно быстро ввести в терминал какое-то слово. В версии 1978 года появляются уровни сложности: в начале игры программа просит игрока указать, насколько он хороший стрелок – от «меткого аса» до «трясущихся рук». В зависимости выбранного варианта игра определяет, сколько времени будет даваться на ввод. Кроме того, нужное слово каждый раз выбирается случайно: BANG, BLAM, POW или WHAM, – тогда как в версии 1975 года это всегда старое доброе BANG.
Если вам интересно поискать другие отличия, версию 1978 года я тоже выложил у себя на сайте,[22 - https://www.filfre.net/misc/oregon1978.bas] хотя она, конечно, не настолько аутентичная, как версия 1975 года. Мне пришлось довольно долго вычитывать код, чтобы убрать все ошибки распознавания, но зато я бэкпортировал ее с BASIC, которой использовался на мейнфреймах линейки CDC Cyber, на HP-BASIC. Теперь вы тоже можете почувствовать, как The Oregon Trail могла выглядеть на «родном» мини-компьютере серии НР тогда, в 1978 году.
Итак, возьму на себя смелость условно обозначить эти две версии номерами 2 и 3 соответственно. Логично предположить, что следующей моей целью должен был стать поиск версии номер 1… Увы, эта задача при всей ее привлекательности кажется неосуществимой. Поскольку первоначальная The Oregon Trail, по всей видимости, существовала только на том компьютере, на котором Роуич с Хайнеманном и Дилленбергером ее написали, и поскольку в 1972 году, уходя из школы, Роуич ее удалил, единственным источником остается та самая пожелтевшая распечатка, которую Роуич принес с собой в МЕСС. На снимке, сделанном в ТЦ «Молл оф Америка» (г. Блумингтон, штат Миннесота) во время мероприятия, посвященного годовщине выхода The Oregon Trail, Роуич держит в руках нечто очень похожее.[23 - https://www.filfre.net/wp-content/uploads/2011/04/oregon-trail-how-three-minnesotans-forged-its-path.5872975.40.jpg]
Мне удалось связаться с Роуичем, но, увы, распечатки у него не осталось. Если не случится чуда, видимо, ничего старше версии 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, однако после долгих размышлений я решил отказаться от этой затеи. Поскольку нет никакой возможности определить, вносил ли Роуич изменения в основной код (и если да, то какие), все наши попытки будут основаны лишь на догадках.
Что ж, на этом увлекательные поиски завершились. В следующей главе мы наконец поговорим о самой игре.

5. В поисках «Орегонской тропы», часть 5
Весь геймплей The Oregon Trail завязан на управлении ресурсами. В начале игры вы получаете $700, и эти деньги нужно потратить с умом, потому что возможности заработать не будет. Нужно купить волов в упряжку, еду, патроны, одежду и «прочие припасы» (куда входят, в частности, лекарства). Сама игра состоит примерно из 18 «ходов», каждый из которых примерно соответствует двухнедельному отрезку пути по Орегонской тропе. В начале каждого отрезка вы выбираете: поохотиться или продолжить движение. Кроме того, через каждые два хода на дороге попадается форт, где, если понадобится, можно докупить припасы. Необходимо также решить, как будет питаться ваше семейство: скудно, умеренно или плотно, – то есть необходимо взвешивать запасы провианта против возможных последствий недоедания, например, болезней. Также в течение каждого хода могут происходить различные случайные события, как правило, неприятные. Все эти лишения и невзгоды, пожалуй, запоминаются игрокам лучше всего:
«ПОВОЗКА СЛОМАЛАСЬ. ВЫ ТРАТИТЕ ВРЕМЯ И ПРИПАСЫ НА РЕМОНТ.»
«ВОЛ ПОВРЕДИЛ НОГУ. СКОРОСТЬ ПУТЕШЕСТВИЯ УПАЛА.»
«НЕСЧАСТНЫЙ СЛУЧАЙ: ВАША ДОЧЬ СЛОМАЛА РУКУ. ПРИШЛОСЬ ОСТАНОВИТЬСЯ И ПОТРАТИТЬ ПРИПАСЫ, ЧТОБЫ НАЛОЖИТЬ ШИНУ.»
«НА ВАС НАПАЛИ ДИКИЕ ЗВЕРИ!»
Если верить некоторым свидетельствам, в первоначальной версии вместо зверей нападали индейцы – событие гораздо более захватывающее, но менее политкорректное. Признаки вмешательства в код по соседству со строкой 2885 подтверждают эту гипотезу. (Интересный факт: знаменитая фраза «ВЫ УМЕРЛИ ОТ ДИЗЕНТЕРИИ!», породившая множество интернет-мемов[24 - http://www.died-of-dysentery.com/stories/memes.html], появилась только в более поздних версиях.) Череду неудач иногда разбавляют события вроде «ДОБРЫЕ ИНДЕЙЦЫ ПОДСКАЗАЛИ ВАМ, ГДЕ НАЙТИ ЕЩЕ ЕДЫ», но в целом жизнь игрового переселенца весьма трудна, что, насколько мне известно, вполне соответствует действительности.
Роуич приложил массу усилий, чтобы максимально достоверно воспроизвести все особенности путешествия по Орегонской тропе, – немалый подвиг в условиях технических ограничений того времени. Вероятность выпадения тех или иных случайных событий в общем соответствует исторической действительности. Учитываются и изменения ландшафта: при переходе через Скалистые горы путешествие становится медленнее и опаснее. Реализована даже смена погоды, когда семейству игрока требуется больше одежды. На самом деле, за кадром происходит немало расчетов и процессов, которых от столь простой игры и не ожидаешь.
Еще одна особенность The Oregon Trail (которая, впрочем, роднит ее со многими играми той эпохи, написанными на BASIC): от игрока ожидается – и я бы даже сказал, требуется, – что он будет подсматривать в исходный код, чтобы разобраться в игре. В частности, я даже не подозревал, что остановка в форте резко снижает расстояние, пройденное за ход, пока не увидел соответствующую строчку кода! Точно так же легко не заметить, как изменения ландшафта влияют на игру, если предварительно хотя бы бегло не ознакомиться с кодом.
С точки зрения нарратива The Oregon Trail тоже выглядит на удивление достойно. Текста в ней, конечно, мало, но даже несмотря на это создается впечатление, будто действительно отправляешься в полное трудностей и опасностей путешествие. Преодолевая последние мили до Орегона на хромых волах, почти без еды и припасов (а зима близко!), я в самом деле переживал за свою маленькую компьютерную семью. Ощущение «присутствия» дополнительно подкрепляется периодическими экшн-вставками, где за короткое время нужно успеть ввести слово BANG (или другое), чтобы подстрелить добычу на охоте или отбиться от разбойников.
Игра также очень сурова и не прощает ошибок: не сумеешь запасти достаточно еды, лекарств и патронов на очередной ход – все, смерть. Однако в отличие от ранних адвенчур, где внезапные смерти были зачастую абсурдны и жестоки до нелепости, в The Oregon Trail подобный исход выглядит совершенно логичным. Путешествие по Орегонской тропе действительно было подвигом, и множество переселенцев в самом деле погибали по тем же самым причинам, что представлены в игре. Даже в современных сюжетно-ориентированных играх такое единство между геймплеем и нарративом встречается довольно редко.
Для себя я выработал следующую стратегию прохождения: закупиться на старте только самым необходимым минимумом, сэкономив деньги на потом. Еду можно не брать совсем, а вместо этого через ход охотиться (благо я умею печатать вслепую). Если не набирать много вещей, то не так страшно потерять их в результате того или иного несчастья (а они происходят чуть ли не на каждом шагу). С другой стороны, в этом случае приходится чаще останавливаться в фортах. Моя вечная проблема: не успеть до зимы и застрять где-нибудь на горных перевалах. Чаще всего это заканчивается проигрышем. А вообще, у каждого игрока, как правило, есть своя излюбленная стратегия.
История The Oregon Trail после 1978 года задокументирована гораздо лучше, поэтому сильно углубляться в нее я не стану. К 1980 году МЕСС приобрел 500 компьютеров Apple II и распределил их по всем школам Миннесоты. Новенькие компьютеры, помимо, конечно же, образовательных приложений, могли похвастаться и свежепортированной версией The Oregon Trail. В 1985 году в игру добавили цветные иллюстрации, а в 1995 году вышла делюкс-версия на компакт-диске. Кроме того, The Oregon Trail породила ряд пародий и подражаний, в том числе Organ Trail[25 - https://store.steampowered.com/app/233740/Organ_Trail_Directors_Cut/] (2011–2013) в условиях зомби-апокалипсиса. Однако если стереть весь мультимедийный лоск, то окажется, что все они на удивление недалеко ушли от той концепции, которую придумал Роуич в далеком 1971 году.
Ни в коем случае не утверждаю, что в The Oregon Trail самый лихо закрученный нарратив в игровой индустрии, но он на самом деле гораздо лучше, чем от него можно было бы ожидать. Я очень рад, что смог познакомиться с этой игрой поближе, причем в наиболее первозданной форме из доступных. И я, не колеблясь, включаю ее вместе с ELIZA, Hunt the Wumpus и Adventure в список игр, с которыми должен познакомиться каждый, кто желает погрузиться в историю интерактивного повествования.

6. Несколько слов в защиту BASIC
Пожалуй, ни один язык программирования не удостаивался столь единодушного презрения, как BASIC[26 - https://ru.wikipedia.org/wiki/Бейсик]. Из всех саркастических выпадов в его адрес можно было бы собрать довольно пухлый томик для туалетного чтения. Наиболее яркая ремарка, на мой взгляд, принадлежит Эдсгеру Вибе Дейкстре[27 - https://ru.wikiquote.org/wiki/Эдсгер_Вибе_Дейкстра]: «Студентов, ранее изучавших Бейсик, практически невозможно обучить хорошему программированию. Как потенциальные программисты они подверглись необратимой умственной деградации». (Его слова прозвучат еще пафоснее, если прочитать их с голландским – а еще лучше с немецким – акцентом.) Это, безусловно, преувеличение, хотя поводов к таким замечаниям BASIC дает предостаточно. Когда мы в детстве обменивались программами для Commodore 64, фраза «она написана на Бейсике» автоматически означала «отстой». И на сегодняшний день мало что изменилось. Какая среда разработки способна сравниться с Visual BASIC по количеству ужасных программ, созданных в ней? Я, признаться, если узнаю, что программа создана в Visual BASIC, стараюсь ее даже не запускать.
Но несмотря на все это, роль BASIC в истории развития компьютеров и программирования огромна. До его появления компьютерщики делились на два лагеря. Первый был связан с мейнфреймами, прежде всего, производства IBM и немногочисленных ее конкурентов. Приверженцами этого лагеря были программисты на государственных предприятиях и в крупных компаниях. Стивен Леви метко назвал их «жрецами»: представьте себе горстку высокопрофессиональных гуру в белых халатах, поклоняющихся Машине и выполняющих все строго по Писанию (сиречь инструкции от IBM). Никакого творчества и креатива не допускается.
Другой лагерь составляли хакеры. Эта культура возникла в Массачусетском технологическом институте (МТИ) и похожих технических вузах, а также небольших компаниях. В нее входили, как правило, молодые люди, которые предпочитали машинное общество человеческому и для которых программирование и копание в компьютерах (изначальный смысл слова «хакерство») было смыслом жизни. Они презирали коллективизм и консерватизм, навязываемый «айбиэмщиками», а потому испытывали особую любовь к небольшим машинам производства Digital Equipment Corporation (DEC), чья этика была не столь косной. Несмотря на явное противоречие во взглядах, оба лагеря объединяло следующее: ни «жрецы», ни хакеры не стремились сделать компьютеры доступными обычным людям. Те, кто не привык думать в битах, байтах и регистрах, для них просто не существовали.
Ситуация изменилась в 1964 году, когда Джон Кемени и Томас Курц, преподаватели Дартмутского колледжа, разработали Beginner’s All-purpose Symbolic Instruction Code (универсальный код символических инструкций для начинающих), сокращенно BASIC. Они не ориентировались ни на хакеров, ни на ученых-компьютерщиков; их целью было создать инструмент, который дал бы обыкновенным пользователям возможность творить с помощью компьютера. Сегодня идея языка программирования «для широких масс» выглядит бессмысленной. Зачем он, когда мы можем включить компьютер, на котором уже установлена Windows, iOS или еще какая-нибудь операционная система, и пользоваться многочисленными программными пакетами, которые уже кто-то написал за нас? А вот в 60-е – и даже позже – приложений как таковых, по сути, не существовало. Чтобы использовать компьютер для чего-нибудь за рамками самых ходовых (и примитивных) функций – и тем более создавать что-либо с его помощью, – необходимо было уметь программировать. Делая программирование доступным широкой публике, Кемени с Курцем руководствовались не столько техническими, сколько социологическими, политическими и даже идеологическими соображениями.
Итак, в 1964 году в Дартмутском колледже зародился третий лагерь компьютерщиков – я вскользь упоминал о нем в прошлых главах, – и долгие годы его деятельность была связана именно с языком BASIC. Пока «жрецы» занимались своими делами в хорошо освещенных и кондиционируемых дата-центрах, а хакеры уединенно корпели в тесных комнатушках у себя в МТИ, во внешнем мире творилась революция, которая в конце 60-х – начале 70-х годов привела к появлению настоящей программистской контркультуры. Компьютеры перестали быть прерогативой банков и научных институтов – они вышли на улицы. Таким образом, вклад адептов BASIC вполне сопоставим с достижениями хакеров, которые в это же время разрабатывали язык Си, Unix, а также закладывали основы сети Интернет.
Иногда эти два лагеря даже пересекались, и случалось это куда чаще, чем может показаться на первый взгляд (и чаще, чем представители этих лагерей готовы признать). Результатом одного из таких пересечений стала игра Hunt the Wumpus, которой будут посвящены следующие две главы. Исходная концепция зародилась в среде HP-TSB, однако своей новизной она подкупила программистов хакерского склада – и стала предтечей первых произведений так называемой «интерактивной литературы» (ИЛ).
Поэтому давайте не будем забывать, что именно благодаря BASIC компьютеры постепенно стали достоянием общественности и что именно BASIC в немалой степени поспособствовал развитию компьютерного творчества, плоды которого мы наблюдаем и по сей день. С этой точки зрения надменные высказывания элитариев вроде Дейкстры, признаться, выглядят очень некрасиво.
В общем, безусловно, BASIC есть за что уважать… Только не заставляйте меня им пользоваться.

7. «Охота на Вампуса», часть 1
В самый разгар эпохи хиппи программист-аналитик Боб Альбрехт вместе со школьным учителем Лероем Финкелем основал в Сан-Франциско издательство Dymax, чтобы печатать книги по языку BASIC. Интересы Альбрехта, однако, вовсе не ограничивались изданием компьютерной литературы. В те годы широкая публика все еще воспринимала компьютеры как нечто из области научной фантастики: огромные зловещие машины, которые постоянно искрят и сбоят, доставляя массу хлопот капитану Кирку и команде звездолета «Энтерпрайз». Чтобы изменить это представление и сделать компьютер инструментом для развлечения и творчества, был необходим массовый доступ.
Ради реализации этой мечты Альбрехт, обладавший, по всей видимости, большой харизмой и силой убеждения, сумел выпросить у DEC мини-компьютер PDP-8, а у Hewlett-Packard – терминалы с удаленным подключением и выделенное время. Очень скоро офис Dymax в городке Менло-Парк, штат Калифорния (туда издательство переехало после приобретения ЭВМ) превратился в публичный вычислительный центр, куда любой человек мог прийти и поиграться с компьютером.
В конце 1971 года в недрах коммерческого издательства Dymax возникла никак не связанная с ним «Народная компьютерная компания» (People’s Computer Company, или PCC). Это была не совсем «компания» в привычном смысле слова; по крайней мере, задачи извлекать прибыль перед ней не стояло. На самом деле, название было отсылкой к рок-группе Big Brother and the Holding Company[28 - https://music.yandex.ru/artist/21827], которая появилась в Сан-Франциско в 1965 году и в которой пела небезызвестная Дженис Джоплин. Одного этого упоминания, в принципе, достаточно, чтобы понять этику РСС. Даже в 1972 году Сан-Франциско продолжал жить идеалами хиппи, несмотря на разочарование, возникшее после Альтамонтского фестиваля 1969 года[29 - https://ru.wikipedia.org/wiki/Альтамонт_(фестиваль)], и Альбрехт прекрасно вписался в эту контркультуру.
Целью РСС было сделать компьютеры доступными для широких масс. Для этого служил не только публичный вычислительный центр, но и информационный бюллетень, который начали издавать в октябре 1972 года. Заголовок гласил: «Сейчас компьютеры не служат народу, а используются против него. Используются, чтобы порабощать людей, а не освобождать их. Настало время все изменить. Для этого нужна… Народная компьютерная компания».
Атмосферу в Менло-Парке хорошо описывает Стивен Леви в книге «Хакеры»:
«В помещении непрерывно трещали терминалы, один из которых был подключен к PDP-8, а другой – к телефонной линии, через которую связывался с компьютером в компании Hewlett-Packard, бесплатно предоставлявшей для PCC время. Где-то обязательно играли в новенькую игру, написанную кем-нибудь из все разраставшейся команды хакеров PCC. Иногда приходили мамаши-домохозяйки с детьми и неожиданно увлекались программированием, да так, что мужчины с тревогой отмечали, как лояльные до сего момента жены забрасывали и детей, и готовку в пользу радостей BASIC. Бизнесмены пытались запрограммировать компьютер для предсказания котировок на бирже и тратили на эту химеру несчетное количество времени. Когда двери вычислительного центра открыты настежь, возможно все. Saturday Review цитировал Альбрехта: “Мы хотели бы организовать в каждом районе доступные для публики компьютерные центры, куда любой человек мог бы зайти, как в боулинг или в зал игровых автоматов, и поиграться с компьютером”».
Именно в такую среду и попал однажды 27-летний Грегори Йоб. Произошло это примерно тогда же, когда начал выходить бюллетень РСС. В то время особой популярностью пользовались игры-угадайки на поле, написанные самим Альбрехтом. Первой из них, судя по всему, была игра Hurkle[30 - Правила настольного варианта Hurkle: https://mbamp.ucsc.edu/files/8113/8467/0351/Hurkle.pdf].
Суть ее в следующем: где-то на координатной сетке 10?10 прячется загадочный Херкл (Харкл? Хуркл?). Игрок вводит в компьютер координаты точки, где, как ему кажется, нужно искать. Отсчет ведется от «базы», которая расположена в точке (0; 0) – в левом нижнем углу сетки. Если игрок не угадал, программа дает подсказку, в какой примерно стороне (севернее/южнее/западнее/восточнее) следует продолжать поиски – и так, пока игрок не отыщет нужную точку. Вместо итогового счета на экран выводится количество попыток и предложение сыграть снова.
Вот так мог выглядеть один заход в Hurkle:

RUN
HURKLE

WANT THE RULES?Y
A HURKLE IS HIDING IN A GRID, LIKE THE ONE BELOW.

________NORTH
______9. . . . . . . . . .
______8. . . . . . . . . .
______7. . . . . . . . . .
______6. . . . . . . . . .
______5. . . . . . . . . .
WEST 4. . . . . . . . . . EAST
______3. . . . . . . . . .
______2. . . . . . . . . .
______1. . . . . . . . . .
______0. . . . . . . . . .
_______0123456789
________SOUTH

TRY TO GUESS WHERE THE HURKLE IS HIDING. YOU GUESS BY TELLING ME THE GRIDPOINT WHERE YOU THINK THAT THE HURKLE IS HIDING. HOMEBASE IS POINT 0,0 IN THE SOUTHWEST CORNER. YOUR GUESS SHOULD BE A PAIR OF WHOLE NUMBERS, SEPARATED BY A COMMA. THE FIRST NUMBER TELLS HOW FAR TO THE RIGHT OF HOMEBASE AND THE SECOND NUMBER TELLS HOW FAR ABOVE HOMEBASE YOU THINK THE HURKLE IS HIDING. FOR EXAMPLE, IF YOU THINK THE HURKLE IS 7 TO THE RIGHT AND 5 ABOVE HOMEBASE, YOU ENTER 7,5 AS YOUR GUESS AND THEN PRESS THE ’RETURN’ KEY. AFTER EACH GUESS, I WILL TELL YOU THE APPROXIMATE DIRECTION TO GO FOR YOUR NEXT GUESS. GOOD LUCK!

THE HURKLE IS HIDING – TRY TO FIND HIM!

WHAT IS YOUR GUESS?5,5
GO NORTH

WHAT IS YOUR GUESS?5,2
GO NORTH

WHAT IS YOUR GUESS?5,1
GO NORTH

WHAT IS YOUR GUESS?5,0
GO NORTH

WHAT IS YOUR GUESS?5,8

YOU FOUND HIM IN 5GUESSES!!!
LET’S PLAY AGAIN.

Позднее появились и более сложные вариации. В игре Snark игрок вводил радиус окружности поиска вокруг некоторой точки на сетке, а компьютер сообщал ему, находится ли Снарк внутри окружности или снаружи. В игре Mugwump (самой сложной из этой подборки) единственной подсказкой было: в скольких клетках по прямой от точки поиска прячется Магвамп, а направление игрок должен был угадывать самостоятельно. Строго говоря, называть эти программы «играми» некорректно. Проиграть в них нельзя – только потратить уйму времени, перебирая варианты, вот и все. Учитывая атмосферу, царившую в РСС, можно было бы предположить наличие соревнований, но поскольку каждый раз поле генерируется случайным образом заново, смысла в подсчете очков никакого.
Йоб отзывался об этих играх так: «Черт-те что! Ладно одна игра на декартовой координатной плоскости 10?10, но три – уже перебор. И тут мне в голову пришло примерно следующее: “Надо придумать компьютерный вариант игры в прятки – и без этой [вырезано цензурой] сетки!” Точно: написать топологическую компьютерную игру, где игровое поле состоит из узлов, соединенных переходами».[31 - Статья Грегори Йоба в Creative Computing: http://www.atariarchives.org/bcc1/showpage.php?page=247]
«Топологическая компьютерная игра», в которой игрок перемещается по «узлам, соединенным переходами». Кое-что напоминает, вам не кажется?

8. «Охота на Вампуса», часть 2
Если верить словам Грегори Йоба, источником вдохновения для Hunt the Wumpus стала не столько Hurkle и ей подобные развлечения, сколько ненависть к декартовой координатной плоскости, которая в них использовалась. Для своей вариации «охоты на монстра» Йоб решил использовать свое «любимое платоново тело», а именно додекаэдр – правильный двадцатигранник. Мне подобная страсть к геометрии, признаюсь, чужда (и «любимого платонова тела» у меня тоже нет), поэтому меня больше интересуют другие новации, которые ввел Йоб.
Игру Hunt the Wumpus можно считать прародительницей всех тех «лабиринтов из маленьких запутанных переходов», которые спустя несколько лет заполонят экраны компьютеров и блокноты с миллиметровкой. Игровое поле состоит из двадцати узлов-комнат, каждая из которых связана ровно с тремя другими. По умолчанию комнаты пустые, но в некоторых из них случайным образом размещаются бездонные пропасти (попадание туда – мгновенный проигрыш), «супер-летучие мыши» (переносят игрока в случайную комнату) и, конечно же, сам Вампус. Когда игрок попадает в комнату с Вампусом, возможны четыре варианта развития событий: монстр либо уходит в одну из трех примыкающих комнат,* либо остается на месте и съедает игрока. Убить Вампуса, таким образом, можно только с расстояния, и для этого у игрока есть «искривленная» управляемая стрела, которая может пролететь до пяти комнат.
*При этом, даже если Вампус попадет в комнату с летучими мышами или пропастью, с ним ничего не случится. Во-первых, он слишком тяжелый, и мыши его просто не поднимут. Во-вторых, у него присоски на лапах, поэтому он может обойти пропасть по стене. Вот такая условность.
Управление игрой состоит из двух команд: «идти» (М) и «стрелять» (S). Выигрышная стратегия (у осторожного игрока или новичка вроде меня) примерно следующая: не спеша изучить игровое поле, составить карту, указав на ней все ловушки, затем вычислить местонахождение Вампуса и застрелить беднягу. На распечатке с терминала это выглядело примерно так:

HUNT THE WUMPUS

YOU ARE IN ROOM 20
TUNNELS LEAD TO 131619

SHOOT OR MOVE (S-M)?M
WHERE TO?13

I FEEL A DRAFT
YOU ARE IN ROOM 13
TUNNELS LEAD TO 121420

SHOOT OR MOVE (S-M)?M
WHERE TO?20

YOU ARE IN ROOM 20
TUNNELS LEAD TO 1316 19

SHOOT OR MOVE (S-M)?

Ничего особенного, согласен. Сыграв в первый раз, задаешься вопросом: и что? Однако если дать Hunt the Wumpus второй шанс, то можно увидеть, что это пусть и простенькая, но игра, способная увлечь на несколько партий – до тех пор, пока не будет выработана выигрышная стратегия. Единственный недостаток с точки зрения дизайна, пожалуй, состоит в том, что нередко партия начинается вот так:

I FEEL A DRAFT
YOU ARE IN ROOM 4
TUNNELS LEAD TO 3 5 14

Сообщение «I FEEL A DRAFT» (я чувствую сквозняк) указывает игроку на то, что рядом пропасть, то есть один из трех туннелей ведет к мгновенной гибели. Поскольку игра только началась и никакой дополнительной информации у игрока нет, он вынужден делать ход наугад – и надеяться, что ему повезет. Такую ситуацию едва ли можно назвать честной. (Видимо, на этот случай в игре прописана возможность сыграть повторно на том же поле.)
Впрочем, вопросы игрового дизайна как такового меня интересуют мало. Данная книга посвящена истории интерактивного повествования, и с этой точки зрения Hunt the Wumpus выделяется сразу по двум пунктам.
Во-первых, у нее совершенно другой способ подачи, нежели у игр типа Hurkle. Если там игрок смотрит на поле целиком как бы сверху, то в Hunt the Wumpus он находится непосредственно внутри игрового мира, как бы вынужденный пробираться на ощупь по темной пещере. Нарратив как таковой сведен к минимуму (где-то в пещере спит Вампус, его надо убить – все, конец), но переход от третьего лица к первому сильно отличает Hunt the Wumpus от Hurkle и ей подобных. Если там все ощущается как абстракция, то охота на Вампуса уже предлагает определенную степень иммерсивности. И хотя Hunt the Wumpus нельзя считать первой игрой, погружавшей игрока в игровой мир (The Oregon Trail вышла на год раньше, да и с нарративом у нее все гораздо лучше), однако она стала значительным отклонением от стандартов своего времени.
Во-вторых, что даже более важно, игровое поле Hunt the Wumpus стало прототипом географии, которая используется в произведениях ИЛ до сих пор: набор дискретных, изолированных друг от друга комнат, соединенных переходами, по которым игрок может перемещаться. Ориентации по сторонам света еще нет, но основное времяпрепровождение, знакомое всем игрокам в ИЛ, – составление карты – есть. Все ранние произведения ИЛ в той или иной степени представляли собой те самые «лабиринты из маленьких запутанных переходов», которые так выводят из себя современных игроков, пожелавших приобщиться к классике. Благодаря этому небольшому открытию я недавно осознал, что изначальная суть ИЛ заключается именно в исследовании мира и составлении карты, а сюжет и даже загадки вторичны. (Еще нагляднее этот аспект просматривается в первых версиях знаменитой Adventure, о которой пойдет речь в следующих главах.)
Как и в случае с The Oregon Trail, все признаки указывают на то, что первоначальная версия Hunt the Wumpus была написана на HP-BASIC. Именно ее, а также троицу игр-предшественниц, написанных Бобом Альбрехтом, я смог найти на архивных копиях кассет, собранных Бобом Брауном и Майклом Джемени из группы Yahoo, посвященной мини-компьютерам НР. Впервые исходный код Hunt the Wumpus был опубликован в середине 1973 года в бюллетене People’s Computer Company, а затем – в номере Creative Computing за октябрь 1975 года. Единственным отличием от более ранней кассетной версии стало добавление в начале программы строк с комментариями, где указывается авторство Грегори Йоба, а также рекламируются два написанных им продолжения: Wumpus 2 (с вариациями игрового поля) и Wumpus 3 (с новыми ловушками).
В то время как The Oregon Trail была, говоря современным языком, «эксклюзивом» МЕСС и распространялась, по всей видимости, только по учебным учреждениям, Hunt the Wumpus разлетелась в виде портов и адаптаций по всем существующим платформам своего времени (а также тем, которые появлялись впоследствии) кустарным способом. В сопроводительной статье к исходному коду, опубликованной в Creative Computing, Йоб писал: «Мне рассказывали, что будто бы видели код Wumpus, переписанный на RPG и FORTRAN, что в операционной системе одной крупной научно-исследовательской лаборатории есть команда to Wumpus, запускающая игру, и что даже есть иллюстрированная версия для дисплейных терминалов Hazeltine!»
Особо показателен тот факт, что игра сумела преодолеть культурный барьер между BASIC-сообществом хиппи из РСС и «настоящими» хакерами: к появлению Unix 6 версии в 1975 году (а по всей видимости, даже раньше), Hunt the Wumpus была портирована на Unix C (в исходном коде даже есть комментарий, где радостно сообщается, что игра была «украдена из бюллетеня РСС, том 2 № 1»)[32 - Две браузерные вариации Hunt the Wumpus:https://osric.com/wumpus/https://web.archive.org/web/20041010214018/http://www.taylor.org/~patrick/wumpus/].

9. «Приключение» Уилла Краузера, часть 1
Что еще можно сказать об Adventure, давно и по праву признанной самым главным прототипом не только текстовых приключений и ИЛ, но и большинства значимых видеоигр современности? (Взять хоть World of Warcraft, которая ведет родословную от Ultima Online и первого MUD – «многопользовательского подземелья» – Ричарда Бартла, которые, в свою очередь, восходят к Adventure.) Более чем за сорок лет, прошедших с ее выхода, Adventure неоднократно становилась предметом исследований: в 1985 году Мэри Энн Баклз защитила первую в истории диссертацию, посвященную игровому нарративу, под названием Interactive Fiction: The Computer Storygame Adventure («Интерактивная литература: Adventure как сюжетная компьютерная игра»), а в 2007 году в открытом научном журнале Digital Humanities Quarterly была опубликована великолепная статья Денниса Джорджа Джерза Somewhere Nearby is Colossal Cave[33 - http://digitalhumanities.org/dhq/vol/001/2/000009/000009.html] («Где-то неподалеку находится Колоссальная пещера»). Однако поскольку этот блог, так уж сложилось, посвящен истории интерактивного повествования, к истории мы и обратимся. Недавно мне удалось поиграть в оригинальную версию Adventure, написанную Уиллом Краузером, которую Джерз нашел, собирая материал для вышеназванной статьи, и поэтому я, как чуть раньше Джейсон Дайер[34 - http://bluerenga.wordpress.com/2011/03/07/observations-about-crowther%E2%80%99s-original-adventure-1975/], хочу поделиться своими впечатлениями.
В общих чертах история создания Adventure наверняка знакома большинству людей, интересующихся этой темой, поэтому пересказывать ее здесь целиком я не буду. Если вкратце: в 1975 году Уилл Краузер, программист и спелеолог, развелся с женой. Скучая по двум дочерям, оставшимся с матерью, он решил в свободное от работы время написать игру – видимо, в качестве подарка. Эта игра, которую он назвал просто Adventure, объединила в себе три его главных увлечения: программирование, исследование пещер и новую настольную игру под названием Dungeons and Dragons (D&D).
Как такое возможно? Очень просто: игроку предлагается исследовать пещерный ландшафт, примерно соответствующий пещере Бедквилт (часть Колоссальной пещеры, в связи с чем «полное» наименование игры часто приводят как CollossalCaveAdventure) в составе пещерной системы Мамонтова—Флинт-ридж[35 - Здесь важно отметить, что слово «Мамонтова» в названии пещерной системы выступает синонимом к слову «Колоссальная», т.е. «огромная» (одно из значений англ. mammoth). – прим. пер.] в штате Кентукки. Краузер долгие годы изучал ее, составляя подробную карту. В пещере игрок встречается с существами и сокровищами, заимствованными прямиком со страниц руководств по D&D, а для победы должен решать запутанные головоломки, обращая внимание на мелочи, как настоящий программист. Короче говоря, Краузер создал первое в истории текстовое приключение, единолично заложив основы жанра, почти без изменений сохранившиеся до наших дней.
Теперь давайте ненадолго отвлечемся от самой игры и попробуем ответить на вопрос: а кто такой, собственно, Уилл Краузер? Его портрет хорошо выведен в книге Кэти Хефнер и Мэтью Лайона Where Wizards Stay Up Late[36 - https://www.amazon.com/Where-Wizards-Stay-Up-Late/dp/0684832674/] («Там, где волшебники засиживаются допоздна»), где повествуется об истории создания сети ARPANET[37 - https://ru.wikipedia.org/wiki/ARPANET] (предшественницы современного интернета). Краузер обладал множеством причуд характера, которые сегодня привычно ассоциируются у нас с хакерами. Можно сказать, он был «прототипичным» хакером.
Во-первых, он был крайне неразговорчив и практически не проявлял эмоций, отчего окружающим становилось не по себе. Во-вторых, он терпеть не мог костюмы и всегда ходил в повседневной одежде; даже на аудиенции к Комитету начальников штабов ВС США в Пентагоне он приходил в кроссовках. В-третьих, цитирую: «он был чудовищно привередлив в еде (любое блюдо сложнее бутерброда с колбасой могло вызвать у него резкое неприятие), из-за чего его невозможно было приглашать в гости или в ресторан».
В то же самое время он разительно отличался от других увлеченных компьютерщиков, которых мы иногда называем «нердами». В частности, он увлекался туризмом, в том числе экстремальным, таким как скалолазание и, конечно, спелеология. Соответственно, он старался поддерживать себя в отличной физической форме и иногда часами висел на притолоке двери в свой кабинет. И, пожалуй, самое удивительное отклонение от сложившегося образа: несмотря на то, что коллеги Краузера регулярно подпитывались кока-колой, сам он «никогда к ней не прикасался».
Но все эти причуды с лихвой компенсировались другим качеством Краузера – непревзойденным талантом к программированию. На англоязычной странице Википедии, посвященной Уиллу Краузеру, значится: «Программист, спелеолог и альпинист-любитель. Наиболее известен как один из создателей игры Colossal Cave Adventure» – и все. Казалось бы, все правда, но как-то нечестно сводить достижения этого человека только к изучению пещер и одной-единственной игре. Краузер заслужил место в компьютерной истории, даже если бы никогда не написал Adventure.
Уилл Краузер был незаменимым членом небольшой команды разработчиков, которая с конца 60-х закладывала основы современного интернета. Он лично написал ПО для работы IMP’ов (Interface Message Processor – «интерфейсный процессор обработки сообщений») – компьютеров, осуществлявших коммутацию пакетов в базовой подсети ARPANET; иными словами он создал прошивку для первых в мире роутеров. Коллеги не без оснований считали, что он «входит в 1% лучших программистов мира». Особенно ему удавалось писать емкий и эффективный код – весьма ценный навык, учитывая чрезвычайно жесткие ограничения в объемах памяти и процессорной мощности. Главный недостаток Краузера (и то с натяжкой): его куда больше привлекала разработка прототипов. Ему скорее было интересно продемонстрировать принципиальную возможность решения той или иной задачи, нежели шлифовать код и доводить программу до завершенного вида.
И если сопоставить все эти факты друг с другом, становится ясно, как вышло, что Краузер буквально на коленке создал сам жанр ИЛ, причем в том виде, в каком мы его знаем до сих пор… а потом с такой же легкостью забросил: просто потому (вероятно), что возникла более интересная задача, требовавшая решения.

10. «Приключение» Уилла Краузера, часть 2
Оригинальная Adventure[38 - https://jerz.setonhill.edu/intfic/colossal-cave-adventure-will-crowthers-original-source-code/], написанная Краузером, включает в себя довольно полный «наружный» уровень и первый подземный уровень, которые мы помним по завершенной версии игры. Эта своего рода «демо-версия» заканчивается на локации «Большой перекресток», где установлен знак: «РАБОТЫ ПО СТРОИТЕЛЬСТВУ ПЕЩЕРЫ НЕ ЗАВЕРШЕНЫ. МОЖЕТЕ ПРОДОЛЖАТЬ ИССЛЕДОВАНИЕ НА СВОЙ СТРАХ И РИСК». И это не розыгрыш. Начиная с этого места код становится неряшливым и невычитанным настолько, что при переходе в очередную комнату игрока может, например, внезапно выкинуть на поверхность. Да и кроме обычных трудностей с ориентированием, игровых задач как таковых там, в общем-то, нет. Но все равно даже в таком виде Краузер заложил основы для тысяч текстовых приключений, которые будут написаны впоследствии, в том числе даже кое-какие простенькие головоломки – ну и лабиринты, конечно же, куда без них.
На самом деле, Adventure и есть один большой лабиринт. Самая сложная задача во всей игре – понять, как соединены между собой узлы (то есть «комнаты») игрового мира, и как там ориентироваться. Более того, все головоломки, которых и без того немного, так или иначе завязаны на перемещении: игроку нужно догадаться, как прогнать змею, чтобы выйти из «Зала горного короля», затем нужно найти другой выход из пещеры, чтобы покинуть ее вместе с сокровищами и т.д. Современному игроку, в особенности если он воспитан на поздних произведениях ИЛ, это наверняка покажется странным, неинтересным и, вполне возможно, даже раздражающим. Все-таки мы привыкли, что в игре, помимо головоломок и блужданий, должно быть еще и увлекательное повествование. Но стремился ли сам Краузер к сильному нарративу, разрабатывая Adventure? Сильно сомневаюсь.
Уилл Краузер вел и ведет весьма закрытый образ жизни, поэтому пообщаться с ним и узнать, о чем он думал во время разработки и что хотел или не хотел сделать, невозможно. Но здесь нас может в какой-то степени выручить текст, который игра выдает в ответ на команду «HELP» (ПОМОЩЬ):

Я ПОНИМАЮ, ЧТО ТАКОЕ МЕСТА, ДЕЙСТВИЯ И ПРЕДМЕТЫ. БОЛЬШИНСТВО СЛОВ В МОЕМ СЛОВАРЕ ОПИСЫВАЕТ МЕСТА И ПЕРЕМЕЩЕНИЕ МЕЖДУ НИМИ. ЧТОБЫ ПЕРЕМЕЩАТЬСЯ, ВВЕДИ «ЛЕС», «ЗДАНИЕ», «ВНИЗ ПО РЕКЕ», «ВОЙТИ», «ВОСТОК», «ЗАПАД», «СЕВЕР», «ЮГ», «ВВЕРХ» ИЛИ «ВНИЗ». МНЕ ИЗВЕСТНЫ КОЕ-КАКИЕ ПРЕДМЕТЫ, СПРЯТАННЫЕ В ПЕЩЕРЕ, НАПРИМЕР «ЧЕРНЫЙ ПРУТ». Я ПОНИМАЮ НЕКОТОРЫЕ КОМАНДЫ, ПОСРЕДСТВОМ КОТОРЫХ МОЖНО С ЭТИМИ ПРЕДМЕТАМИ ВЗАИМОДЕЙСТВОВАТЬ.

Обратите внимание, что на первый план Краузер ставит именно географию и перемещение, и только потом, как бы походя, упоминает о возможности взаимодействовать с «кое-какими предметами». Увлеченный хакер, Краузер почти наверняка имел знакомство с Hunt the Wumpus. Мне кажется, было бы логичным предположить, что Adventure изначально задумывалась как очередная попытка развить идеи Йоба о «топологической компьютерной игре» и, собственно, так и разрабатывалась, пока автору не наскучило. Весьма вероятно также – почти бесспорно, – что навигация по сторонам света была добавлена позже всего. По всей видимости, Краузер первоначально планировал, что игрок будет перемещаться между комнатами, пользуясь только ключевыми словами – то есть ориентирование в пространстве действительно ставилось во главу угла.* Неудивительно, ведь для Краузера как спелеолога подземная география имела первостепенную важность не столько с позиции фактической точности, сколько как фактор выживания. Разработкой Adventure Краузер, скорее всего, занимался на том же домашнем телетайпном терминале, на котором он компилировал геологические данные и составлял карты настоящей Мамонтовой пещеры для коллег-спелеологов.
*Деннис Джерз, впрочем, упоминает, что разговаривал с кем-то, кто якобы помнит наличие сторон света еще в самых ранних версиях. Но это скорее эффект ложной памяти. Из исходного кода явно следует, что такой способ перемещения был добавлен буквально в последний момент, когда Краузер осознал, что ориентироваться с помощью ключевых слов по масштабному подземному комплексу, состоящему из множества почти идентичных комнат, практически нереально.
С другой стороны, действительно ли нам так важно знать, какую именно игру хотел сделать Краузер? Наверное, нет. Однако необходимо помнить, что в то время ожидания игроков и подходы создателей игр к геймдизайну были совсем не такими, как сегодня, и становится ясно, почему авторам сходило с рук то, что сейчас кажется нам издевательством. К этой мысли я еще буду возвращаться, рассматривая другие игры описываемого периода.
В последнее время в научных кругах продвигается идея о том, что глубинная суть компьютерных игр заключается в концептуализации и реализации пространства, и некоторые даже призывают считать их разновидностью архитектуры. Идея интересная, и, если рассматривать ее через призму ранних произведений ИЛ, даже вполне обоснованная. Я не совсем представляю, как объединить эту гипотезу с моими другими наблюдениями, но, когда изучаешь Adventure, от размышлений об архитектуре отделаться трудно.
Впрочем, если отбросить все эти отвлеченные размышления, есть в оригинальной Adventure некая грубая привлекательность, которая не поддается логическому объяснению. Краузер не обладал ни склонностью к писательству, ни литературным даром, но его краткие и конкретные описания ясно демонстрируют, что он знает, о чем пишет. Именно это, если закрыть глаза на разные недочеты, придает игре достоверность, которой не хватает последующим, пусть и более проработанным с точки зрения дизайна, версиям.
Здесь интересно отметить реакцию других спелеологов, которые имели возможность поиграть в Adventure. Многие из них обратили внимание, насколько скрупулезно воспроизведено устройство пещеры Бедквилт, вплоть до придуманных Краузером сотоварищи названий, таких как «Зал горного короля» или «Птичья клетка» (хотя наиболее опытные, конечно, заметили также, что ряд переходов был убран: их наличие сделало бы навигацию и прохождение чересчур легким). А Мел Парк, участница одной из экспедиций в Колоссальную пещеру, в 1994 году писала про свою напарницу, которая изучила Adventure вдоль и поперек:
«В течение всей вылазки она не умолкая рассказывала нам все, что знала благодаря игре. В пещере под названием “Швейцарский сыр” она вдруг исчезла в незнакомом мне направлении. Вернувшись, она сказала: “Я просто хотела посмотреть, как выглядит “Полный тупик”. В точности так, как я и ожидала”. На обратном пути я разрешила ей вывести нас наружу, что она с блеском проделала, так как помнила все ходы в игре наизусть. Вы не подумайте, пещера представляет собой сложный лабиринт, и для новичка так хорошо ориентироваться в нем – большое достижение».
Что ж, а дальше мы рассмотрим, какое здание возвел на этом прочном фундаменте Дон Вудс.

11. Дон Вудс продолжает «Приключение», часть 1
Дон Вудс узнал об Adventure в начале 1977 года, когда учился в магистратуре Стэнфордского университета по специальности «Информатика». Наводку ему дал однокашник, который нашел игру – не поверите – в компьютерной системе Стэнфордского медицинского центра. Каким образом Adventure попала из BBN Technologies в Бостоне, где на момент ее создания работал Уилл Краузер, в северную Калифорнию, наверное, так навсегда и останется загадкой, поэтому не будем плодить домыслы, а поговорим только о том, что нам более или менее известно. А нам известно, что Вудс, заинтересовавшись игрой, перенес ее копию на мини-компьютер PDP-10[39 - https://ru.bmstu.wiki/PDP-10] в Стэнфордской лаборатории искусственного интеллекта (СЛИИ), где сам занимался хакерством. Досконально изучив все то немногое, что предлагала оригинальная версия, он решил развить наработки Краузера и доделать игру до конца. К сожалению, в его распоряжении был только исполняемый файл, без исходников на Fortran. История о том, как был добыт исходный код Adventure, прочно вошла в анналы хакерских баек, и я с удовольствием ее здесь перескажу.
В тексте программы Краузер оставил одно-единственное указание на свое авторство. В инструкции к игре с неподражаемой лаконичностью написано: «ОШИБКИ, ЗАМЕЧАНИЯ, ПРЕДЛОЖЕНИЯ – КРАУЗЕРУ». По всей видимости, Краузер и не рассчитывал, что его игра, тем более в столь незавершенном виде, когда-либо выйдет за пределы кружка хакеров из BBN Technologies (а уж они-то определенно знали, кто такой «КРАУЗЕР» и как с ним связаться). Задача осложнялась еще и тем, что к тому моменту, как Вудс наткнулся на Adventure, Краузер уже устроился работать в калифорнийский офис компании Xerox (так что есть вероятность, что игра попала на Западное побережье вместе с ним). Но Вудс нашел выход: он отправил электронное письмо по адресу crowther@xxx, где «xxx» обозначает все существующие домены в Сети. Так, став, возможно, первым в истории спамером, Вудс разыскал Краузера и получил от него разрешение на доработку Adventure и, что самое главное, ее драгоценный исходный код. Да уж, в те времена интернет был куда более тесен…
На момент знакомства с Adventure Вудсу еще не было двадцати трех, но он уже заслужил себе место в хакерской истории, выступив соавтором шуточного языка программирования под названием INTERCAL[40 - https://ru.bmstu.wiki/INTERCAL] – одного из самых безумных образчиков хакерского юмора. Cтивен Леви особо подчеркивает контраст в хакерской культуре Восточного и Западного побережья США:
«Различия начинались с местоположения: Стэнфордская лаборатория искусственного интеллекта (СЛИИ) размещалась в полукруглом здании из стекла, бетона и редких пород дерева – бывшем конференц-центре, построенном на холмах над университетским городком. Там к услугам хакеров были шестьдесят четыре терминала, разбросанные по разным кабинетам. Никакой тесноты, характерной для Тек-Сквера. Ни лифтов, ни оглушающего гудения кондиционеров. И атмосфера была куда более расслабленной, чем в МТИ: без желчности, пусть иногда и конструктивной, без громких перепалок в аудиториях Клуба железнодоророжных моделистов, без войн между хакерами и магистрантами, доходивших до уровня религиозных. В то время как в Тек-Сквере была популярна воинственная научная фантастика с космическими кораблями и бластерами, в Стэнфорде отдавали предпочтение уютному фэнтези: эльфам, хоббитам и колдунам со страниц трилогии Дж. Р. Р. Толкина “Властелин колец”. Помещения в лаборатории искусственного интеллекта носили названия различных мест Средиземья, а принтер мог печатать на трех эльфийских шрифтах».
На мой взгляд, Леви несколько преувеличивает культурную «пропасть» между консервативными, по-военному стриженными поклонниками Хайнлайна из МТИ и длинноволосыми толкиенистами из Стэнфорда, ведь несмотря на различия в литературных предпочтениях, они все же работали на одинаковых компьютерах (прежде всего, линейки PDP от DEC), с одинаковой операционной системой (TOPS-10[41 - https://ru.bmstu.wiki/TOPS-10]), на одинаковых языках программирования (что угодно, кроме BASIC!) – и вообще придерживались весьма сходных взглядов касательно принципов работы с компьютером. В этом плане у них было гораздо больше общего друг с другом, чем с популистами-хиппи из РСС. Определенная разница в подходах к программированию, безусловно, прослеживалась, но и то скорее поколенческая, нежели географическая. Прежде чем поговорить о ней, небольшое лирическое отступление на техническую тему.
Adventure была написана под операционной системой TOPS-10 для мини-компьютеров DEC PDP-10. Как уже упоминалось, ЭВМ производства DEC пользовались у хакеров безоговорочной любовью, которая длилась по меньшей мере лет двадцать – с 1960 по 1980 годы. Во-первых, компания-производитель постоянно стремилась к инновациям, причем не только в производимой технике. Во-вторых, сами машины были достаточно мощными, чтобы решать серьезные задачи, но вместе с тем достаточно компактными, чтобы их можно было без особого труда перемещать. Но главное даже не это, а другое: DEC не просто понимала потребности хакеров, а разделяла их. Для нее передовые исследовательские учреждения вроде МТИ и Стэнфорда служили полигонами для разработки и обкатки нового программного и аппаратного обеспечения. Наиболее перспективных хакеров DEC даже время от времени приглашала к себе в штат. Трудно представить более разительный контраст со снисходительным и закоснелым гигантом под названием IBM. Операционная система TOPS-10, разработанная DEC, пользовалась точно такой же огромной любовью, и ее развитие с конца 60-х до середины 70-х годов велось при активном участии хакерского сообщества. TOPS-10 сохраняла свои позиции главной хакерской ОС вплоть до 1977 года, когда начался плавный переход на Unix и TOPS-20, духовную наследницу от все тех же разработчиков из DEC.
Исходный код Adventure был написан на языке Fortran[42 - https://ru.bmstu.wiki/Fortran] (FORmula TRANslating system, т.е. «система перевода формул»), которому на тот момент уже исполнилось два десятилетия. Это был первый высокоуровневый язык программирования, получивший широкое распространение; его разработали в конце 50-х годов в недрах компании IBM для своих же мейнфреймов. Краузер и Вудс программировали на стандарте Fortran IV, который появился в 1965 году. Как бы хакеры ни плевались от BASIC, Fortran, сказать по правде, был не сильно лучше: в нем тоже приходилось вручную нумеровать строки, а также обильно пользоваться вставными структурами с оператором GOTO, без которых ничего не работало. Более не подходящий для текстовых приключений язык отыскать трудно – еще и потому, что Fortran не поддерживал строковые переменные. Именно поэтому Краузер вынес весь игровой текст в отдельный файл: с ним так было удобнее работать. По иронии судьбы, в том же году, когда Вудс завершил работу над Adventure, появился Fortran 77 – крупное расширение, которое, помимо прочего, давало возможность манипулировать полноценными строковыми переменными. Увы, переносить проект на этот стандарт было уже поздно.
Но почему именно Fortran? Дело в том, что выбор языков, поддерживаемых TOPS-10, был невелик. В число альтернатив Fortran входил язык ассемблера (но писать на нем игру вроде Adventure – еще большее мучение), а также ненавистный всем BASIC и, наверное, еще более ненавистный COBOL[43 - https://ru.bmstu.wiki/COBOL_(COmmon_Business_Oriented_Language)] (COmmon Business Oriented Language, «обобщенный язык для применения в сфере бизнеса») – страшно негибкий язык, разработанный исключительно для неинтерактивной работы со структурами данных, т.е. рутинных расчетов и бизнес-вычислений, которые казались хакерам невыносимо скучными. Известный нам Эдсгер Дейкстра, желая, видимо, продемонстрировать, что сарказм не всегда идет рука об руку с изобретательностью, отзывался о COBOL примерно в том же духе, что и о BASIC: «Программирование на Коболе калечит мозг, поэтому обучение ему должно трактоваться как преступление». Собственно, методом исключения выбор и пал на Fortran.
Однако несмотря на то, что Краузер с Вудсом писали на одном и том же языке, подходы к оформлению кода у них коренным образом различались. Оригинальный исходный код, написанный Краузером, представляет собой весьма суровый образчик спагетти-кода и практически лишен комментариев, то есть сам по себе все равно что «лабиринт из маленьких запутанных переходов». Да, он, несомненно, лаконичен и прекрасно оптимизирован, но едва ли кто-то, кроме самого Краузера, был в состоянии его поддерживать или хотя бы прочесть. Окончательная версия Вудса, напротив, —образец чистоты и ясности: множество развернутых комментариев, а структура прозрачная и логичная – насколько, конечно, позволяет ограниченный инструментарий Fortran IV. Впрочем, даже невзирая на эти ограничения, читать код Вудса – одно удовольствие. Именно этим, я думаю, и объясняется, каким образом Adventure впоследствии столь быстро портировали на множество других языков и платформ: код Вудса позволял делать это чуть ли не с закрытыми глазами.
Сравнивать черновую заготовку с законченной версией, конечно, нечестно. Едва ли программа Вудса была такой читаемой с самого начала; ее шлифовкой явно занимались вплоть до самого релиза. Однако определенные выводы сделать все-таки можно. Во-первых, код явно демонстрирует различие в темпераменте: Краузер, хоть и признанный гений программирования, был скорее одиночкой, и потому явно не стремился комментировать свои решения и делать код понятным для последователей. Во-вторых, как уже упоминалось выше, Краузер с Вудсом принадлежали к разным поколениям хакеров. Краузер начал работать в 60-е годы, когда никаких законов «правильного» программирования не было и в помине; главное – добиться результата любым способом, который позволяло хилое «железо» тех лет. Вудс же сложился как хакер уже в 70-е годы, когда структурированность, прозрачность, читаемость и удобство сопровождения кода уже выходили на первый план и когда программисты сформулировали основные правила, которых мы – с некоторыми добавлениями и уточнениями – придерживаемся до сих пор.
В следующей главе мы поговорим о том, чем отличалась законченная версия Adventure с точки зрения геймплея.

12. Дон Вудс продолжает «Приключение», часть 2
Изначальный текст Adventure почти не претерпел изменений; Вудс лишь расширил его, немного переписав лаконичные инструкции, вызываемые по команде «ПОМОЩЬ», и добавив в игровой мир новые локации. Разница в стиле программирования на литературной составляющей не сказывается: Вудс умело подражает лаконичной, но при этом убедительной прозе Краузера. Понять, где заканчивается оригинальная версия и начинаются доделки Вудса, практически невозможно, точно так же как невозможно догадаться, что всю вторую половину игры сочинил совершенно другой человек.
Если действительно задаться целью выискивать различия, то можно отметить, что Вудс позволял себе включать в игру больше фантастических элементов и анахронизмов, а также не стеснялся время от времени ввернуть что-нибудь зрелищное. Хороший пример анахронизма – автомат, в котором продаются запасные батарейки для лампы. У Краузера лампа работала неограниченно долгое время – и логично, думал я, ведь профессиональный спелеолог и в симуляции прописал бы карбидную лампу, но никак не электрическую. Увы, эта гипотеза оказалась несостоятельной, так как даже в оригинальной версии на команду «ПОТЕРЕТЬ ЛАМПУ» следовал ответ: «ТЫ ТРЕШЬ ЭЛЕКТРИЧЕСКУЮ

Конец ознакомительного фрагмента.
Текст предоставлен ООО «Литрес».
Прочитайте эту книгу целиком, купив полную легальную версию (https://www.litres.ru/book/dzhimmi-meher/arheolog-cifrovogo-veka-tom-1-1966-1979-66070868/?lfrom=390579938) на Литрес.
Безопасно оплатить книгу можно банковской картой Visa, MasterCard, Maestro, со счета мобильного телефона, с платежного терминала, в салоне МТС или Связной, через PayPal, WebMoney, Яндекс.Деньги, QIWI Кошелек, бонусными картами или другим удобным Вам способом.

notes
Примечания

1
https://www.filfre.net/

2
https://www.patreon.com/DigitalAntiquarian

3
https://www.patreon.com/AnalogAntiquarian

4
https://www.amazon.co.uk/1001-Video-Games-Must-Before-ebook/dp/B006MX1N50/

5
https://ru.wikipedia.org/wiki/Орегонский_путь

6
Версия 1985 г.: http://www.mobygames.com/game/oregon-trail

7
http://ru.wikipedia.org/wiki/HP_2100

8
http://maher.filfre.net/if-book/

9
https://www.z-machine-matter.com/2011/01/1936-dennis-wheatley.html

10
https://ru.wikipedia.org/wiki/Choose_Your_Own_Adventure

11
https://ru.wikipedia.org/wiki/Разделение_времени

12
http://bitsavers.trailing-edge.com/pdf/hp/2000TSB/22687-90009_LearningTSB.pdf

13
http://simh.trailing-edge.com/

14
https://ru.wikipedia.org/wiki/Star_Trek_(текстовая_игра)

15
https://deserthat.files.wordpress.com/2010/11/oregon1.doc

16
Дон Роуич рассказывает об истории создания The Oregon Trail на конференции GDC: https://www.youtube.com/watch?v=vdGNFhKhoKY

17
https://ru.wikipedia.org/wiki/MECC

18
https://en.wikipedia.org/wiki/UNIVAC_1100/2200_series

19
https://en.wikipedia.org/wiki/CDC_Cyber

20
Архивная подборка статей из ранних выпусков: https://www.atariarchives.org/bcc1/

21
https://www.filfre.net/misc/oregon1975.bas

22
https://www.filfre.net/misc/oregon1978.bas

23
https://www.filfre.net/wp-content/uploads/2011/04/oregon-trail-how-three-minnesotans-forged-its-path.5872975.40.jpg

24
http://www.died-of-dysentery.com/stories/memes.html

25
https://store.steampowered.com/app/233740/Organ_Trail_Directors_Cut/

26
https://ru.wikipedia.org/wiki/Бейсик

27
https://ru.wikiquote.org/wiki/Эдсгер_Вибе_Дейкстра

28
https://music.yandex.ru/artist/21827

29
https://ru.wikipedia.org/wiki/Альтамонт_(фестиваль)

30
Правила настольного варианта Hurkle: https://mbamp.ucsc.edu/files/8113/8467/0351/Hurkle.pdf

31
Статья Грегори Йоба в Creative Computing: http://www.atariarchives.org/bcc1/showpage.php?page=247

32
Две браузерные вариации Hunt the Wumpus:
https://osric.com/wumpus/
https://web.archive.org/web/20041010214018/http://www.taylor.org/~patrick/wumpus/

33
http://digitalhumanities.org/dhq/vol/001/2/000009/000009.html

34
http://bluerenga.wordpress.com/2011/03/07/observations-about-crowther%E2%80%99s-original-adventure-1975/

35
Здесь важно отметить, что слово «Мамонтова» в названии пещерной системы выступает синонимом к слову «Колоссальная», т.е. «огромная» (одно из значений англ. mammoth). – прим. пер.

36
https://www.amazon.com/Where-Wizards-Stay-Up-Late/dp/0684832674/

37
https://ru.wikipedia.org/wiki/ARPANET

38
https://jerz.setonhill.edu/intfic/colossal-cave-adventure-will-crowthers-original-source-code/

39
https://ru.bmstu.wiki/PDP-10

40
https://ru.bmstu.wiki/INTERCAL

41
https://ru.bmstu.wiki/TOPS-10

42
https://ru.bmstu.wiki/Fortran

43
https://ru.bmstu.wiki/COBOL_(COmmon_Business_Oriented_Language)
  • Добавить отзыв
Археолог цифрового века – Том 1. 1966-1979 Джимми Мехер
Археолог цифрового века – Том 1. 1966-1979

Джимми Мехер

Тип: электронная книга

Жанр: Публицистика

Язык: на русском языке

Издательство: Автор

Дата публикации: 15.10.2024

Отзывы: Пока нет Добавить отзыв

О книге: Перед вами перевод блога Джимми Мехера The Digital Antiquarian, посвященный истории развития индустрии компьютерных развлечений. Вас ждут увлекательные рассказы о знаковых играх разных исторических периодах, биографии выдающихся личностей и экскурсы в историю крупных (и не очень) игровых компаний.