Топологические игры — «Охота на Вампуса»

Перед вами вторая статья-компиляция из цикла «Археолог цифрового века» Джимми Мехера (Digital Antiquarian). Желающих следить за регулярными обновлениями перевода приглашаю на страницу книги на сайте Author.Today.

Студентов, ранее изучавших Бейсик, практически невозможно обучить хорошему программированию. Как потенциальные программисты они подверглись необратимой умственной деградации.

Эдсгер Вибе Дейкстра

Невзирая на массу саркастических выпадов в адрес языка BASIC (причем в немалой степени обоснованных), его роль в истории развития компьютеров и программирования огромна. До его появления компьютерщики делились на два лагеря. Первый был связан с мейнфреймами, прежде всего, производства IBM и немногочисленных ее конкурентов. Приверженцами этого лагеря были программисты на государственных предприятиях и в крупных компаниях; Стивен Леви метко называл их «жрецами». Представьте себе горстку высокопрофессиональных гуру в белых халатах, поклоняющихся Машине и выполняющих все строго по Писанию (сиречь инструкции от IBM). Никакого творчества и креатива не допускается.

Другой лагерь составляли хакеры. Эта культура возникла в Массачусетском технологическом институте (МТИ) и похожих технических вузах, а также небольших компаниях. В нее входили, как правило, молодые люди, которые предпочитали машинное общество человеческому и для которых программирование и копание в компьютерах (изначальный смысл слова «хакерство») было смыслом жизни. Они презирали коллективизм и консерватизм, навязываемый «айбиэмщиками», а потому испытывали особую любовь к небольшим машинам производства Digital Equipment Corporation (DEC), чья этика была не такой косной. Несмотря на явное противоречие во взглядах, оба лагеря объединяло следующее: ни «жрецы», ни хакеры не стремились сделать компьютеры доступными обычным людям. Те, кто не привык думать в битах, байтах и регистрах, для них просто не существовали.

Простейшая программа на BASIC
Простейшая программа на BASIC

Ситуация изменилась в 1964 году, когда Джон Кемени и Томас Курц, преподаватели Дартмутского колледжа, разработали Beginner’s All-purpose Symbolic Instruction Code (универсальный код символических инструкций для начинающих), сокращенно BASIC. Они не ориентировались ни на хакеров, ни на ученых-компьютерщиков; их целью было создать инструмент, который дал бы обыкновенным пользователям возможность творить с помощью компьютера. Сегодня идея языка программирования «для широких масс» выглядит бессмысленной. Зачем он, когда мы можем включить компьютер, на котором уже установлена Windows, iOS или еще какая-нибудь операционная система, и пользоваться многочисленными программными пакетами, которые уже кто-то написал за нас? А вот в 60-е — и даже позже — приложений как таковых, по сути, не существовало. Чтобы использовать компьютер для чего-нибудь за рамками самых ходовых (и примитивных) функций — и тем более создавать что-либо с его помощью, — необходимо было уметь программировать. Делая программирование доступным широкой публике, Кемени с Курцем руководствовались не столько техническими, сколько социологическими, политическими и даже идеологическими соображениями.

Итак, в 1964 году в Дартмутском колледже зародился третий лагерь компьютерщиков, и долгие годы его деятельность была связана именно с языком BASIC. Пока «жрецы» занимались своими делами в хорошо освещенных и кондиционируемых дата-центрах, а хакеры уединенно корпели в тесных комнатушках у себя в МТИ, во внешнем мире творилась революция, которая в конце 60-х — начале 70-х годов привела к появлению настоящей программистской контркультуры. Компьютеры перестали быть прерогативой банков и научных институтов — они вышли на улицы. Таким образом, вклад адептов BASIC вполне сопоставим с достижениями хакеров, которые в это же время разрабатывали язык Си, Unix, а также закладывали основы сети Интернет.

Иногда эти два лагеря даже пересекались, и случалось это куда чаще, чем может показаться на первый взгляд (и чаще, чем представители этих лагерей готовы признать). Результатом одного из таких пересечений стала игра Hunt the Wumpus.

Вот Снарка обитель! Готов повторить!

Вам смелость придаст эта фраза.

Вот логово Снарка, да что говорить —

Верь в то, что сказал я три раза!

— Л. Кэрролл, «Охота на Снарка» (пер. Г. Кружкова)

В самый разгар эпохи хиппи программист-аналитик Боб Альбрехт вместе со школьным учителем Лероем Финкелем основал в Сан-Франциско издательство Dymax, чтобы печатать книги по языку BASIC. Интересы Альбрехта, однако, вовсе не ограничивались изданием компьютерной литературы. В те годы широкая публика все еще воспринимала компьютеры как нечто из области научной фантастики: огромные зловещие машины, которые постоянно искрят и сбоят, доставляя массу хлопот капитану Кирку и команде звездолета «Энтерпрайз». Чтобы изменить это представление и сделать компьютер инструментом для развлечения и творчества, был необходим массовый доступ.

Ради реализации этой мечты Альбрехт, обладавший, по всей видимости, большой харизмой и силой убеждения, сумел выпросить у DEC мини-компьютер PDP-8, а у Hewlett-Packard — терминалы с удаленным подключением и выделенное время. Очень скоро офис Dymax в городке Менло-Парк, штат Калифорния (туда издательство переехало после приобретения ЭВМ) превратился в публичный вычислительный центр, куда любой человек мог прийти и поиграться с компьютером.

В конце 1971 года в недрах коммерческого издательства Dymax возникла никак не связанная с ним «Народная компьютерная компания» (People’s Computer Company, или PCC). Это была не совсем «компания»; по крайней мере, задачи извлекать прибыль перед ней не стояло. На самом деле, название было отсылкой к рок-группе Big Brother and the Holding Company, которая появилась в Сан-Франциско в 1965 году и в которой пела небезызвестная Дженис Джоплин. Одного этого упоминания, в принципе, достаточно, чтобы понять этику РСС. Даже в 1972 году Сан-Франциско продолжал жить идеалами хиппи, несмотря на разочарование, возникшее после Альтамонтского фестиваля 1969 года, и Альбрехт прекрасно вписался в эту контркультуру.

Целью РСС было сделать компьютеры доступными для широких масс. Для этого служил не только публичный вычислительный центр, но и информационный бюллетень, издавать который начали в октябре 1972 года. Заголовок гласил: «Сейчас компьютеры не служат народу, а используются против него. Используются, чтобы порабощать людей, а не освобождать их. Настало время все изменить. Для этого нужна... Народная компьютерная компания».

Атмосферу в Менло-Парке хорошо описывает Стивен Леви в книге «Хакеры»:

В помещении непрерывно трещали терминалы, один из которых был подключен к PDP-8, а другой — к телефонной линии, через которую связывался с компьютером в компании Hewlett-Packard, бесплатно предоставлявшей для PCC время. Где-то обязательно играли в новенькую игру, написанную кем-нибудь из все разраставшейся команды хакеров PCC. Иногда приходили мамашки-домохозяйки с детьми и неожиданно увлекались программированием, да так, что мужчины с тревогой отмечали, как лояльные до сего момента жены забрасывали и детей, и готовку в пользу радостей BASIC. Бизнесмены пытались запрограммировать компьютер для предсказания котировок на бирже и тратили на эту химеру несчетное количество времени. Когда двери вычислительного центра открыты настежь, возможно все. Saturday Review цитировал Альбрехта: «Мы хотели бы организовать в каждом районе доступные для публики компьютерные центры, куда любой человек мог бы зайти, как в боулинг или в зал игровых автоматов, и поиграться с компьютером».

Именно в такую среду и попал однажды 27-летний Грегори Йоб. Произошло это примерно тогда же, когда начал выходить бюллетень РСС. В то время особой популярностью пользовались игры-угадайки на поле, написанные самим Альбрехтом. Первой из них, судя по всему, была игра Hurkle.

Так мог бы выглядеть загадочный Харкл
Так мог бы выглядеть загадочный Харкл

Суть ее в следующем: где-то на координатной сетке 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. . . . . . . . . . 0 1 2 3 4 5 6 7 8 9 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 5 GUESSES!!! LET’S PLAY AGAIN.

Позднее появились и более сложные вариации. В игре Snark игрок вводил радиус окружности поиска вокруг некоторой точки на сетке, а компьютер сообщал ему, находится ли Снарк внутри окружности или снаружи. В игре Mugwump (самой сложной из этой подборки) единственной подсказкой было: в скольких клетках по прямой от точки поиска прячется Магвамп, а направление игрок должен был угадывать самостоятельно. Строго говоря, называть эти программы играми неправильно. Проиграть в них нельзя — только потратить кучу времени, перебирая варианты, вот и все. Учитывая атмосферу, царившую в РСС, можно было бы предположить наличие соревнований, но поскольку каждый раз поле генерируется случайным образом заново, смысла в подсчете очков никакого.

Йоб отзывался об этих играх так:

Черт-те что! Ладно одна игра на декартовой координатной плоскости 10×10, но три — уже перебор. И тут мне в голову пришло примерно следующее: «Надо придумать компьютерный вариант игры в прятки — и без этой [вырезано цензурой] сетки!» Точно: написать топологическую компьютерную игру, где игровое поле состоит из узлов, соединенных переходами.

Из этого можно заключить, что источником вдохновения для Грегори Йоба стала не столько Hurkle и ей подобные развлечения, сколько ненависть к декартовой координатной плоскости, которая в них использовалась. Для своей вариации «охоты на монстра» Йоб решил использовать свое «любимое платоново тело», а именно додекаэдр — правильный двадцатигранник. Подобное увлечение геометрией для меня чуждо (и «любимого платонова тела» у меня тоже нет), поэтому меня больше интересуют другие новации, предложенные Йобом.

Рисунок, предваряющий статью в Creative Computing
Рисунок, предваряющий статью в Creative Computing

Игру Hunt the Wumpus можно считать прародительницей всех тех «лабиринтов из маленьких запутанных переходов», которые спустя несколько лет заполонят экраны компьютеров и блокноты с миллиметровкой. Игровое поле состоит из двадцати узлов-комнат, каждая из которых связана ровно с тремя другими. По умолчанию комнаты пустые, но в некоторых из них случайным образом размещаются бездонные пропасти (попадание туда — мгновенный проигрыш), «супер-летучие мыши» (переносят игрока в случайную комнату) и, конечно же, сам Вампус. Когда игрок попадает в комнату с Вампусом, возможны четыре варианта развития событий: монстр либо уходит в одну из трех примыкающих комнат,* либо остается на месте и съедает игрока. Убить Вампуса, таким образом, можно только с расстояния, и для этого у игрока есть «искривленная» управляемая стрела, которая может пролететь до пяти комнат.

*При этом даже если он попадет в комнату с летучими мышами или пропастью, с Вампусом ничего не случится. Во-первых, он слишком тяжелый, и мыши его просто не поднимут. Во-вторых, у него присоски на лапах, поэтому он может обойти пропасть по стене. Вот такая условность.

Управление игрой состоит из двух команд: «идти» (М) и «стрелять» (S). Выигрышная стратегия (у осторожного игрока или новичка вроде меня) примерно следующая: не спеша изучить игровое поле, составить карту, указав на ней все ловушки, затем вычислить местонахождение Вампуса и застрелить беднягу. На распечатке с терминала это выглядело примерно так:

HUNT THE WUMPUS YOU ARE IN ROOM 20 TUNNELS LEAD TO 13 16 19 SHOOT OR MOVE (S-M)?M WHERE TO?13 I FEEL A DRAFT YOU ARE IN ROOM 13 TUNNELS LEAD TO 12 14 20 SHOOT OR MOVE (S-M)?M WHERE TO?20 YOU ARE IN ROOM 20 TUNNELS LEAD TO 13 16 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. Впервые исходный код был опубликован в середине 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»).

Вы можете поддержать автора оригинала через PayPal:

1313
3 комментария

лабиринты из маленьких запутанных переходовХех. All alike, all alike indeed.

2
Ответить

Да-да, они самые twisted little passages)

Ответить

Комментарий недоступен

1
Ответить