Wander: забытые истоки IF

Автор: true-grue
Опубликовано

Введение

Любой поклонник интерактивной литературы знает, что начало этому жанру положила знаменитая Colossal Cave Adventure (1975). Но текстовые игры на мэйнфреймах существовали и до нее. Можно вспомнить, например, Highnoon (1970) или The Oregon Trail (1971). Однако, их сложно назвать текстовыми приключениями в классическом смысле. И вот сейчас, похоже, пришла пора внести некоторые коррективы в известную нам историю жанра. Речь далее пойдет о системе для создания «недетерминированных фантастических сюжетов» под названием Wander.

Описание изображения

Питер Лэнгстон

Это имя должно быть хорошо знакомо специалистам по истории компьютерных игр. Лэнгстон — человек незаурядный и обладает многими талантами: UNIX-хакер (в классической интерпретации этого слова), профессиональный музыкант и, конечно же, разработчик знаменитых компьютерных игр. C середины 70-х он начал бесплатно рассылать сборник игр собственного сочинения под названием «PSL Games Tape» (среди которых была, например, известная Empire) на магнитной ленте по всему миру. Неудивительно, что именно Лэнгстону не кто иной, как Эд Кэтмелл (нынешний президент Pixar Animation Studios) предложил возглавить еще не сформированный на тот момент отдел в Lucasfilm по созданию компьютерных игр. С этого момента началась славная история Lucasfilm Games, но об этом как-нибудь в другой раз. В данном контексте важно, что в той «магнитной коллекции» из 70-х была и Wander.

Система Wander

Первую версию Wander автор реализовал на языке HP Basic еще в 1973 году. Затем, в 1974, система была переписана на Си под UNIX. В интернете доступен архив с Wander более поздней версии, он датирован 1978 годом. Что же содержит этот архив?

В нем можно обнаружить интерпретатор игровых сюжетов в виде объектного файла, а также три игры-приключения в текстовом формате. Одна из таких игр, Library, происходит в мире постапокалипсиса, в руинах библиотеки, где имеются сокровища и разнообразные опасности. Встречающиеся в игре комнаты, посвященные Муркоку, Андрэ Нортон и Дюне напоминают о популярной фантастике того времени. Еще одна игра из архива, Aldebaran III, представляет собой своеобразный фанфик на произведения Кейта Лаумера, еще одного известного фантаста. По сюжету третьей игры, Castle, герой проваливается в сказочный мир сквозь экран телевизора.

Хотя эти игры и представляют известный интерес, более существенно в историческом отношении, что они написаны на удобном скриптовом языке с использованием инструментария Wander, созданном еще до выхода знаменитой ADVENT. Игры разбиваются на два файла: файл с общеигровой информацией (вводный текст, синонимы, начальные позиции объектов, состояния переменных, глобальные действия) и файл с локациями (в нем задаются локальные действия и описания). Любопытно, что выбор действий в Wander задается с помощью высокоуровневого механизма сопоставления с образцом. Далее разбирается код одной из игровых локаций.

Пример кода

#1      Aldebaran III Spaceport
You're in the Aldebaran III spaceport.  An electrified chain link fence
surrounds the area with gates leading west and south.
     south   2
     west    100
     north|east|ne|nw|se|sw  m="ZZZAAAAPPPP!       OUCH!"
     take\ card  o?card  t+card  m="\
Done
Your account has 50 credits left.
(You can type "balance" any time to find current status)."
     drop\ card  t?card  o+card@101  m="\
Done
A southeast wind blows your credit card over the fence."
     drop\ papers  t?papers  o+papers@2  m="\
Done
A brisk north wind blows your identity papers away."

В первой строке указан номер локации (по этому номеру в нее можно вернуться) и краткое описание. Далее идет подробное описание. Остальные строки представляют собой правила, где описываются действия и их результаты. Правила «south 2» и «west 100» означают, что если пользователь ввел «south», то следует перейти в локацию 2, а если же было введено «west», то переход осуществляется в локацию с номером 100. Если были введены прочие стороны света (они задаются единообразно с помощью оператора альтернативы), выдается сообщение. Если пользователь ввел «take card» и объект «card» находится в данной локации, то забираем его и выдаем сообщение. При вводе «drop card» и наличии самой карты она «улетает» в локацию 101. Наконец, при вводе «drop papers» и наличии этих самых бумаг они тоже «улетают», теперь в локацию с номером 2.

Выводы

Помимо очевидного исторического значения данная система может представлять некоторый интерес и для любопытствующих создателей IF-движков, в первую очередь благодаря новаторскому использованию правил и сопоставлению с образцом. Подробную документацию по Wander из архива 1978 года я перевел в html-формат, тексты доступны ниже. За первоначальную информацию о Wander я благодарю Virgil’а.

Источники

  1. Wander (1974) — a lost mainframe game is found! ahopeful.wordpress.com/2015/04/22/wander-1974-a-lost-mainframe-game-is-found/

  2. Wander (1974) release, and questions answered (тут же имеется ссылка на архив с Wander) bluerenga.wordpress.com/2015/04/23/wander-1974-release-and-questions-answered/

  3. Сайт Питера Лэнгстона www.langston.com/

  4. Выдержка из книги Droidmaker: George Lucas And the Digital Revolution www.gamasutra.com/features/20051221/Droidmaker.Ch18.pdf

  5. Документация sovietov.com/tmp/wander/wander.html sovietov.com/tmp/wander/misc.html sovietov.com/tmp/wander/wrld.html