«Вы знаете, за свою карьеру я совершил множество замечательных вещей, забавно, что единственное, за что меня помнят, — это «Adventure». © Уилльям Краудер

Прежде чем написать код своей легендарной игры, Краудер помог нанести на карту сложную сеть пещер, а до этого он уже занял место в истории благодаря своему вкладу в другую сеть. В составе команды программистов Bolt, Beranek and Newman он помог создать ARPANET, предшественницу Internet.

Краудер — один из разработчиков ARPANET, спелеолог и любитель D&D. А еще у него были две маленькие дочки, которые не знали программирование. На пересечении всего этого родилась первая версия «Colossal Cave Adventure».

Уильям Краудер написал игру «Colossal Cave Adventure» (чаще Adventure или ADVENT) в 1975 году. Это первый пример «interactive fiction» и предок квестовых игр. Adventure вдохновила разработчиков на множество игр, в т.ч. Zork (1977), Adventureland (1978), Mystery House (1980), Rogue (1980) и Adventure (1980), которые впоследствии стали основой для жанров интерактивная фантастика, adventure, roguelike и action-adventure.

Я веду ламповый Telegram-канал GameDEVils и блог на Substack . Заглядывайте в гости, я делюсь там материалами про геймдизайн, разработку и историю игр ^__^

Краудеры


В «Adventure» игрок путешествует по огромной фентезийной пещере, а игра выступает в роли рассказчика, описывая местонахождение игрока и результаты предпринятых игроком действий. Пещера в игре основана на карте реальной Мамонтовой пещеры в Кентукки, которую помогали составлять Уильям и его жена Патриция Краудер.



Краудер и его первая жена Пэт были спелеологами. В 1960-70-х годах Краудеры проводили все каникулы под землей, вместе участвовали в экспедициях и исследовали связь Мамонтовой пещеры и пещерной системы Флинт-Ридж.

Патриция Краудер (29 лет, 1972 г.):



Краудер был одним из сильнейших программистов в компании Bolt, Beranek & Newman, которая разрабатывала ARPANET. Коллеги в офисе рассказывали, чтобы сосредоточиться, Краудер иногда подтягивался на пальцах на дверном косяке. Он всю жизнь занимался альпинизмом и обучил скалолазанию жену.

На фото второй справа, в бороде и очках:



А вот фото Краудера 10-летней давности, свежее не нашла:



В Массачусетсе Пэт и Уилл отслеживали картографические данные каждой экспедиции Фонда исследования пещер. Супруги вводили необработанные данные из «запутанных книжечек» в терминал телетайпа в их гостиной, который был подключен к мейнфрейму PDP-1 на рабочем месте Уилла. Из этих данных они генерировали «команды для нанесения на огромные рулоны бумажной ленты» с помощью программы, которую написал Уилл. Пэт написала подпрограмму для добавления цифр и букв к итоговой карте. Они использовали трофейный барабанный плоттер Cal-comp, подключенный к Honeywell 316.

Honeywell 316:



Карты Краудеров представляли собой упрощенные линейные графики, это одни из самых ранних попыток компьютеризации пещер.

В пещерах


В сентябре 1972 года Патриция Краудер отправилась в экспедицию одна, Уилл остался готовить дочерей Сэнди и Лору к школе. 9 сентября 1972 года Патриция (единственная девушка в экспедиционной группе) смогла втиснуться в узкий каньон и первая прошла по пути, соединяющему Мамонтову пещеру и Флинт-Ридж. Это стало значимым событием в спелеологии.



Вернувшись домой, Пэт ввела координаты съемки, которую они провели в Кентукки, через терминал телетайпа в их гостиной. Она запустила программу координат, и данные попали ей в руки в виде длинной бумажной ленты. Утром Пэт и Уилл принесли рулон в офис и компьютер BBN проложил связь, которую она установила под землей.

Через несколько лет после того, как Краудеры использовали миникомпьютер Honeywell 316 для составления своих карт пещер, он был перепрофилирован и усилен, превратившись в интерфейсный процессор сообщений, или IMP — то, что мы сейчас называем маршрутизатором. Эти маршрутизаторы образовывали подсеть из небольших компьютеров в ARPANET, перемещая данные и переводя их между основными узлами.

В 1975 году Краудеры развелись. Уильям тогда часто играл в Dungeons and Dragons и много программировал по ночам. А вот со спелеологией стало туго — из-за общего с бывшей женой круга знакомых он перестал ходить в экспедиции, считал такие встречи неловкими.

Краудер скучал по дочкам и по пещерам. Он решил отвлечься, создав свою воображаемую пещеру с элементами D&D:

I had been involved in a non-computer role-playing game called Dungeons and Dragons at the time, and also I had been actively exploring in caves — Mammoth Cave in Kentucky in particular. Suddenly, I got involved in a divorce, and that left me a bit pulled apart in various ways. In particular I was missing my kids. Also the caving had stopped, because that had become awkward, so I decided I would fool around and write a program that was a re-creation in fantasy of my caving, and also would be a game for the kids, and perhaps some aspects of the Dungeons and Dragons that I had been playing. My idea was that it would be a computer game that would not be intimidating to non-computer people, and that was one of the reasons why I made it so that the player directs the game with natural language input, instead of more standardized commands. My kids thought it was a lot of fun.


Технологии


Оригинальная игра Краудера состояла примерно из 700 строк кода на Фортране и еще около 700 строк данных, написанных для PDP-10 компании BBN. Для работы программе требовалось около 60 КБ слов (почти 300 КБ) основной памяти, что было значительным объемом для систем PDP-10/KA, работающих только с 128 КБ слов.

Как-то восемь знакомых Краудера зашли к нему в офис, чтобы посмотреть его программу. Игра произвела впечатление на его коллег:

«Уилл был очень горд — или, точнее, удивлен — тем, как хорошо он мог обмануть людей, заставив их думать, что за игрой стоит какой-то очень сложный ИИ». M. Kraley


Самый ранний исходный код игры Краудера PDP-10 «Adventure» существует в двух файлах FORTRAN — один для данных и один для кода, датированных 11 марта 1977 года.

Файл данных состоит из шести отдельных таблиц, содержащих большую часть текста игры:

  1. подробные описания;
  2. короткие названия комнат;
  3. данные карты;
  4. сгруппированные словарные слова;
  5. статические состояния игры;
  6. подсказки и события.


В файл кода встроены статические компоненты переменных строк, таких как «I SEE NO», «A5», «HERE», где «A5» представляет собой имя объекта. Весь текст был написан заглавными буквами из-за ограничений PDP-10.

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

Одним из тех, кто открыл для себя эту игру, был Дон Вудс, аспирант Стэнфордского университета. Вудс нашел игру в 1976 г. на PDP-10 в медицинской школе Стэнфорда и захотел расширить возможности игры. Он связался с Краудером, чтобы получить доступ к исходному коду, отправив электронное письмо «crowther» на каждый домен, который существовал в ARPANET.

Вудс использовал исходный код Краудера, но ввел больше фэнтези элементов. Он добавил новые головоломки, события и объекты, ввел систему подсчета очков в игре и добавил еще десять сокровищ в дополнение к пяти из оригинальной версии Краудера.

Версия Вудса, выпущенная в 1977 году, расширила игру Краудера примерно до 3000 строк кода и 1800 строк данных. Игра увеличилась до 140 местоположений на карте, 293 словарных слов и 53 объектов. Вудс также добавил в игру средства контроля доступа, позволяющие администраторам мэйнфреймов ограничивать запуск игры в рабочее время.

В 1977 году Джим Гиллогли (Jim Gillogly) из корпорации RAND провел несколько недель, перенося код с Фортрана на C под Unix, с согласия Вудса и Краудера.

Unix-версия игры на компьютере Osborne 1 около 1982 года:



Игра также была перенесена на супермини-компьютер Prime Computer под управлением PRIMOS в конце 1970-х годов с использованием Fortran 4 и на мейнфреймы IBM с VM/CMS в конце 1978 года с использованием PL/1.

Более поздние версии игры отошли от языков программирования общего назначения, вроде C или Fortran. Для них использовали специальные движки для «interactive fiction», наподобие Z-machine Infocom.

Дональд Кнут в 1998 году использовал версию 1.0 «Adventure» Вудса на Фортране в качестве своего единственного примера в руководстве по программированию. Кнут переводит код Краудера/Вудса с FORTRAN на CWEB, начиная каждый раздел кода с обсуждения, как правила, определенные в каждом разделе кода, влияют на игровой процесс.

Исходники


Оригинальный исходный код версии Краудера 1976 года.

Открытый исходный код Adventure порта версии Crowther and Woods 1995 года.

Моды


В 1976 году аспирантом Дон Вудс обнаружил Adventure на компьютере в Стэнфордском университете и внес значительные расширения и улучшения с разрешения Краудера. Вудс был поклонником Толкина и добавил больше фэнтези, так в игре появились эльфы, тролль, дракон и магические заклинания.



Дон Вудс (Don Woods; 30 апреля 1954 года) — американский хакер и программист, один из разработчиков языка программирования INTERCAL, разработчик приключенческой компьютерной игры Colossal Cave Adventure. Один из авторов «Словаря хакера» (англ. The Hacker's Dictionary). (с) Википедия


Версия Вудса расширила игру и обе версии были распространены в зарождающейся сети ARPANET.

По словам спелеологов, игравших в ADVENT, большая часть оригинальной версии Краудера соответствует Мамонтой пещеры, хотя Краудер удалил некоторые проходы в игровых целях. Дополнения Вудса этого не делают, поскольку он никогда там не был. По словам Уильяма Манна, товарища Краудера по спелеологии, который играл в обе версии, Кроутер был сосредоточен на создании системы пещер в качестве декорации для игры, в то время как Вудс был заинтересован в создании игры, а не в воспроизведении ощущения спелеологии.

Colossal Cave Adventure была одной из первых игр для телетайпа и пользовалась огромной популярностью в компьютерном сообществе в конце 1970-х годов, поскольку на основе исходного кода Вудса было создано множество портов и модифицированных версий.

Вудс продолжал выпускать обновленные версии на Фортране до 1995 года.

Вот полное дерево модов на игру:



Кстати, этой осенью должен выйти 3д ремейк игры. Вот сайт игры с новостями, а вот трейлер:



Может я избаловалась, но мне трейлер по графике напомнил игры 10-летней давности, а не обещанный “захватывающий, вручную проработанный мир”. Текст + воображение любопытных игроков гораздо красочнее, чем 3D графика.

Игровые приколы


До 2007-2008 учебного года от студентов Стэнфордского университета требовалось заново реализовать игру в качестве задания на первом курсе программирования.

Вы находитесь в лабиринте извилистых маленьких проходов, похожих друг на друга...


«You are in a maze of twisty little passages, all alike» — это запоминающаяся фраза из игры, популярная в хакерской культуре (где «passages» могут быть заменены другим словом, в зависимости от ситуации). Этот лабиринт, где «all alike» («все одинаково») создал Краудер.

Вудс пошел дальше и создал лабиринт «all different» («все по-другому»). Ниже 11 версий его «по-другому»:

  1. Little maze of twisting passages
  2. Little maze of twisty passages
  3. Little twisty maze of passages
  4. Maze of little twisting passages
  5. Maze of little twisty passages
  6. Maze of twisting little passages
  7. Maze of twisty little passages
  8. Twisting little maze of passages
  9. Twisting maze of little passages
  10. Twisty little maze of passages
  11. Twisty maze of little passages


Проще, чем кажется


Иногда квесты в игре очень простые.

К примеру, когда вы встречаете дракона, и вам надо его победить. Спойлер.



Волшебное слово XYZZY


«Xyzzy» — это волшебное слово, которое телепортирует игрока между двумя конкретными локациями.

Есть две истории о его происхождении. Первая — что это вроде «абракадабры», просто забавные звуки. Скукота.

А вторая, что «xyzzy» — мнемонический прием для запоминания перекрестного произведения.

Перекрестным произведением двух трехмерных векторов является вектор, длина которого равна площади параллелограмма с двумя заданными векторами в качестве смежных сторон и направлением, перпендикулярным плоскости этого параллелограмма.



Второе и третье уравнения можно получить из первого простым поворотом индексов x -> y -> z -> x. Проблема в том, как запомнить первое уравнение. Вы делаете это, запоминая «волшебное слово», состоящее из нижних индексов, взятых по порядку: xyzzy.

Карты


Вот схематичная карта пещер:



Взяла ее из видео-обзора игры. Кстати, друзья-спелеологи Краудера обычно не испытывали никаких проблем с «ориентированием» в игре.

На этом сайте я нашла две версии, первую можно использовать как подсказку во время прохождения, она просто визуализирует путь:



А вот вторая версия со спойлерами, на ней указаны все сокровища и названия комнат



Если интересно, вот огромное исследование и анализ «Adventure» от Денниса Джерца: Somewhere Nearby is Colossal Cave: Examining Will Crowther's Original “Adventure” in Code and in Kentucky.



Еще про игры:





Если было интересно, подписывайтесь на мой канал в Telegram с находками про разработку игр, историю игр и геймдизайн: GameDevils (на русском) и блог на Substack (на английском).

Комментарии (13)


  1. victor_1212
    10.12.2022 20:12
    +5

    Ув. Анастасия, спасибо за статью и разрешите небольшие поправки относящиеся с работе Уилльяма Краудера в bbn -

    "... терминал телетайпа в их гостиной, который был подключен к мейнфрейму PDP-1 на рабочем месте Уилла"

    - PDP-1 это можно сказать первая mini,

    " Через несколько лет после того, как Краудеры использовали миникомпьютер Honeywell 316 для составления своих карт пещер, он был перепрофилирован и усилен, превратившись в интерфейсный процессор сообщений, или IMP то, что мы сейчас называем маршрутизатором ... "

    - Honeywell 316 это было второе поколение, самые первые IMP (на основе Honywell 516) был переданы заказчику в сентябре 1969, уже в октябре первое текстовое сообщение Sigma-7<->IMP <-> IMP<->SDS 940, следующее поколение именно на основе Honeywell 316 обычно называют, TIP (Terminal IMP) они позволяли прямо подключать терминалы (до 63) для выхода в сеть, без host типа SDS 940 и Sigma-7, это произошло в 1971 примерно за год до событий сентября 1972 связанных с Мамонтовой пещерой ,

    sw для IMP и TIP было написано в общем двумя программистами bbn - Will Crowther, Dave Walden, за hw отвечали Severo Ornstein, Ben Barker, руководителем группы был Frank Heart, собственно эти 5 человек сдинули снежную лавину которая превратилась в internet, заметим что вся группа пришла в bbn из mit, где несколько лет работали вместе над real time, (позже к группе sw присоединились Bernie Cosell, Paul Wexelblat и др.),

    bbn конечно не создала internet как иногда пишут, это просто была головная организация, которая осуществляла техническое руководство проектом выполнявшимся по контрактам arpa несколькими десятками организаций всключая ведущие университеты, следующей разработкой bbn router после TIP был Pluribus IMP (уже multi-processor),

    так выглядели IMP (первое поколение) и TIP (второе) :


    1. Asya_Dyu Автор
      11.12.2022 07:50

      Вот за это я люблю Хабр.

      Спасибо, что дополнили и поправили! Могу включить это в тело публикации?


      1. victor_1212
        11.12.2022 18:10
        +3

        конечно, как сочтете нужным,

        интересно что та самая PDP-1 из bbn, была не просто первой mini машиной, но буквально первым изготовленным образцом поставленным digital для bbn (1961), примерно в то же время одна из машин первой серии была подарена mit, см. письмо ниже, заметим что PDP-1 в письме Ken Olsen называет просто PDP, других машин PDP не было,

        второе письмо через год уже из mit про опыт использования этой PDP-1 в одной из лабораторий, отмечается что запуск машины занял 12 часов после снятия упаковки, еще 48 часов потребовалось для тестирования и замены пары блоков, далее втечение года не было никаких сбоев в работе PDP, что было необычно по тому времени,

        на последней фотографии сборка PDP-1 в старом фабричном здании в Maynard


  1. PeterFukuyama
    11.12.2022 07:51

    Есть перевод информ-версии на русский за авторством Дениса Гаева.


    1. Asya_Dyu Автор
      11.12.2022 07:51

      Перевод самой игры? А можно ссылку?



  1. longtolik
    11.12.2022 09:57

    Один мой коллега постоянно играл в эту игру на "ДВК-3". Памяти было 28 Кслов (56Кбайт), возможно, части подгружались с дискеты. (Overlays, Swapping). Он расхваливал игру, говорил, что ее сделали в MIT, в лаборатории искусственного интеллекта.


    1. longtolik
      11.12.2022 10:02
      +1

      Кстати, еще была игра на Basic. Совсем шпионский квест. Там надо было путешествовать по странам и вести расследование. Сообщалось, что, например, Джон Смит - работает на того-то, коэффициент честности у него - 0.5. То есть, верить ему можно было наполовину. И т.д.

      Вот эта текстовая игра была интересна для широкого круга.


      1. Asya_Dyu Автор
        11.12.2022 21:25

        А название помните?


    1. Asya_Dyu Автор
      11.12.2022 21:24

      Даже коллеги Краудера поверили, что за игрой есть какой-то ИИ, поверю, что байки про лабораторию искусственного интеллекта ходили.


  1. Bedal
    12.12.2022 12:17
    +1

    Вот схематичная карта пещер:

    А-а-а! Сколько времени мы провели, воссоздавая её! Эхх, ностальгия.

    Дополнительный неупомянутый прикол был в том, что направление на выход из пещеры задавалось по компасу, но выход в западном направлении вовсе не означал, что в следующую пещеру ты попадёшь с востока.


    1. Asya_Dyu Автор
      12.12.2022 21:10

      О, прикольно, про это никто не писал.


      1. Bedal
        13.12.2022 16:30

        Так понятно же, ходы ведь кривые :-) Но голову это изрядно морочило. Вкупе с тем, что разные заходу в одну и туже пещеру выдавали разные описания. Впрочем, вариантов описания было не так много, и это запоминалось.