(С) С.Симонович, перевод с английского, 1995 г.
Интервью Грэхэма Нельсона
Имя Грэхэма Нельсона известно
многим тысячам поклонников
текстовых адвентюрных игр,
знакомым с его завораживающей
игрой "Curses". Известен
он и как автор системы INFORM,
предназначенной для создания
адвентюрных игр.
Сегодня мы представляем интервью
с этим интересным человеком.
Оригинал интервью был опубликован
в электронном журнале XYZZY,
выпуск N1, 1995 г.
В:
Скажите, как Вы пришли к программированию игр адвентюрного
жанра, и с чего Вы начинали? Какой у Вас компьютер, и на каких языках
Вы программируете.
О:
Мне двадцать семь лет, я занимаюсь математикой в Оксфордском
Университете и упоминаю свой возраст только для того, чтобы Вы
понимали, что я был еще ребенком, когда Краутер и Вудс выпустили
самую первую адвентюру под названием "Advent". Это было в конце 70-х
годов.
Наш
сосед по дому был одним из руководителей Digital UK, и
иногда по выходным он брал меня с собой на бисквитную фабрику в
Рединге, где я мог поиграть на ЭВМ. Меня, десятилетнего, компьютер
просто завораживал и, я думаю, что это самый лучший возраст для
развития воображения.
Чуть
позже произошел взрыв домашних компьютеров, и у меня
появился один из первых. Это был Acorn Atom. На нем я начал писать
примитивные адвентюры. Оперативной памяти было всего 10 К (и это
научило меня многому).
Открытием
для меня стала идея, что локации можно представлять
числами, а каждому объекту можно дать переменную с номером локации...
и прочее. Я был тогда юн... Я и сегодня работаю с машинами фирмы
Acorn, только теперь это Acorn Archimedes A5000, операционная
система которого произошла из старой операционной системы Acorn Atom.
Пользуюсь
я двумя языками. Это превосходный компилятор ANSI C
фирмы Норкрофт и система INFORM.
В:
Как развивались Ваша система INFORM и программа Curses?
Сколько времени заняла разработка различных частей программы Curses?
О:
Прежде всего, я никогда не собирался писать систему INFORM. Я
немного играл в "Инфокомовские" игры в конце 80-х годов (запуская их
под CP/M на древнем "Амстраде") и не мог не восхититься ими. Мне
стал интересен рабочий формат программных данных, и в начале 1993 года
я разыскал некоторые обрывочные документы на эту тему в системе
"ИНТЕРНЕТ".
Я
обратился к Марку Ховеллу с запросом, не знает ли он о
существовании компилятора для игр в формате фирмы Infocom. Он мне
ответил в том духе, что мол: "Кто только об этом не мечтает". Тогда я
попробовал подправить файл игры так, чтобы она выдавала сообщение
"Hello World" и останавливалась. Всякий раз, когда у меня ничего не
получалось, я думал: "Ах, не стоило мне выбрасывать таблицу свойств,
устанавливаемых по умолчанию", - и опять брался за программирование.
В
конце концов у меня все заработало, но на экран ничего не
выдавалось, пока не набралась первая полная страница текста. Я ввел
30 новых строк и вдруг моя "игрушка" сказала "hEllO woRlD". Часом
позже я разбирался в структуре алфавита игры гораздо лучше. Моя
первая реальная программа раскладывала числа от 2 до 100 на простые
множители. Для нее я сымпровизировал ассемблер (отличный дисассемблер
Марка помог мне это сделать).
Свой
первый компилятор я назвал "ZASS" (Zork Assembler). К этому
моменту он представлял собой такую жуткую путаницу всевозможных
исключений, что мне пришлось запастись достаточным количеством бумаги
и выработать некие правила, лежащие в основе системы. Эти правила я
воплотил в гораздо более простом ассемблере, в который включил
обработку операторов "if", блоков кодов, циклов и калькулятор
выражений. Результатом стала система INFORM 1.
Первой
большой программой системы стала самая трудная -
анализатор текста. Я был намерен использовать все "инфокомовские"
ухищрения, в частности задание играющему дополнительных вопросов для
выяснения его намерений.
Добавка
обычных адвентюрных глаголов (TAKE, DROP, INVENTORY...)
была простым делом. В конце концов я выбросил свою глупую тестовую
игру и начал писать "Curses". В голове у меня уже сформировался
проект вчерне и примерно через две недели появились Чердак, Призрачный
Город и Сад.
Мой
первый опыт был не очень хорош. Мне следовало бы быть более
аккуратным. Например, самая слабая головоломка в игре (замена
батарейки в фонарике) относится к тем дням. Некоторые из моих друзей
развлекались, отыскивая "жучки" по нескольку штук в минуту. Мне
пришлось забрать игру и работать над ней еще примерно месяц до весны
1993 года. Потом я передал игру на тестирование Ричарду Таккеру и
Гаррету Рису. Они раскопали еще сотню ошибок, а я пополнил игру еще
несколькими головоломками (например с мышью-роботом). В конце апреля
я запаковал "Curses" и систему INFORM и объявил о них в сетях. Две
недели никто не отзывался. "Неужели никому нет до этого дела?", -
думал я. Оказалось, что моя программа для работы с электронной почтой
вышла из строя. Когда же информация по-настоящему пошла к людям,
обратно пошел медленный, но нарастающий поток ответов. К концу
первого года он превратился в лавину.
Первая
публикация "Curses" (выпуск 7) была чуть больше половины
нынешней версии. Катакомбы, Александрия и Деревня тогда еще не
существовали. Они добавлялись постепенно в последующих версиях.
Сегодня
игра завершена окончательно. Самым последним добавлением
стала пометка, сделанная на часах Вильямом Снельсоном, который жил в
18-м столетии, работал часовщиком и был далеким предком главного
героя игры.
Такие
добавления стали возможными потому, что система INFORM
со временем становилась все лучше и лучше (с помощью программистов
Боба Ньювелла и Дилипа Сикейры). К началу 1994 года уже существовала
INFORM 4, которая позволяла делать игры вдвое более емкие, чем ее
предшественники.
Правда,
язык системы по-прежнему оставался трудным. Сейчас я
морщусь, когда гляжу на оригинальный исходный текст программы
"Curses". Так я решился на полную переработку и начал с того, что
написал "информовскую" версию классической игры "Advent". Ее я взял с
отличной версии Дэвида Бэггета, выполненной в системе TADS.
Одновременно я продолжал работать над улучшением системы INFORM, пока
она не стала приобретать черты объектно-ориентированной системы.
После
этого до начала 1995 года язык системы оставался
неизменным, хотя значительные перемены коснулись анализатора текста.
Эти месяцы я работал над сопроводительной документацией. Сейчас я
доволен новыми руководствами - система преодолела тот рубеж, когда
она как юный подросток непрестанно вырастала из собственных ботинок.
В:
Для системы INFORM и своих игр Вы избрали свободную и
бесплатную форму распространения. Что стоит за этим решением?
О:
Когда я начинал, настроение групп любителей жанра Adventure было
элегическим: "Все хорошие игры уже давно написаны". Я надеялся, что
моя игра изменит это мнение. Мне хотелось "оживить" мертвый формат
"инфокомовских" игр, а переубедить людей оказывается труднее, когда
они должны платить деньги за то, чтобы тебя услышать. Во времена
раннего Возрождения молодые итальянские художники бродили по
древнеримским развалинам и говорили: "Мы ведь тоже можем делать и это
и это...". Так же и я. У меня те же чувства, что у этих художников. А
деньги?.. Существуют ведь другие способы зарабатывать себе на жизнь.
В:
Вам встречались интересные игры, созданные другими авторами с
помощью Вашей системы INFORM?
О:
Да, встречались. Но в основном это были импорты с других
компьютерных платформ, фрагменты и незавершенные труды. Сейчас я знаю
десяток авторов, серьезно работающих в этой системе, и я как могу
стараюсь помогать им технически. INFORM 5 пока еще остается новинкой,
и у многих с ней возникают проблемы. Из тех игр, с которыми я
сталкивался, я рекомендую "Busted" Йона Друкмана.
В:
Возвращаясь к "Curses", скажу, что в последние несколько
месяцев вопросы по этой игре и просьбы о подсказках буквально
подавили все остальные обсуждения в телеконференциях, посвященных
интерактивной литературе. Скажите, какие пожелания и сожаления Вы
слышите об этой игре наиболее часто?
О:
Обратите внимание на то, что "Curses", будучи игрой
свободного распространения, циркулирует гораздо более широко, чем
многие Shareware-игры. Сегодня круг играющих в "Curses" достиг
десятков тысяч человек - это уже примерно соответствует среднему
количеству продаж типичной игры фирмы Infocom в период ее расцвета.
Так что постепенно игра завоевывает себе долю внимания публики. К
сожалению, часто игру переоценивают, и как ответная реакция
появляются "злые молодые критики", которые стоят на позиции "Что тут
такого? Из-за чего вообще весь этот шум?".
Наиболее
частая жалоба по игре - что игра трудна. Это
действительно так. Победить в ней очень трудно, хотя я удивлен тому,
сколько человек сумели это сделать. Во вторую половину средней части
игры я вложил самый интересный материал для того, чтобы поддержать
наиболее настойчивых.
Многие
также спрашивают о том, как можно воспользоваться
секретными отладочными командами; очевидно, у них почему-то сложилось
впечатление, что я им отвечу.
В:
Если оглянуться назад, что бы Вы сделали не так в программе
"Curses"?
О:
Мне нравится эклектический дух игры и большое разнообразие
головоломок - это бы я сохранил, хотя местами игра выглядит
несвязной, особенно для тех игроков, которые не докопались до глубоко
упрятанных подсказок. Я мог бы сделать игру немного меньше. В том
виде, как она есть, в ней могли бы быть еще добрых два десятка
комнат, но нам с плейтестером никогда они особо не нравились, поэтому
я удалил из игры две целых области.
Я
вообще рекомендую делать переработку карты игрового
пространства после тестирования. Тестирование - это не просто поиск и
устранение ошибок. Я бы уделил больше внимания некоторым точкам, в
которых игрок принимает непоправимые решения.
В:
Пожалуйста расскажите о тех играх, которые приложены к
системе INFORM для демонстрации ее возможностей.
О:
Во-первых, это программа "Advent" - достаточно простая, но
все-таки хорошая игра. Затем идет "Toyshop". Игра имеет маленькое
игровое поле, которое очень плотно заполнено объектами. Это пример
для тех, кто будет работать с системой INFORM.
Следующая
программа - "Balances", которую я написал за полтора
вечера. Она не является серьезным произведением искусства - это как
бы попурри на тему всенародно любимой трилогии "Enchanter" фирмы
Infocom. Частично, признаюсь, она была написана для развлечения, но в
основном для того, чтобы продемонстрировать возможности анализатора
текста для создания сложных головоломок, например лотерейных билетов
с номерами от 1 до 10 0000 и неразличимых объектов, на которых можно
писать названия.
Там
есть еще несколько небольших примеров и конверсия игры
Скотта Адамса "Adventureland".
В:
В телеконференциях, посвященных интерактивной литературе,
разгорелись горячие дискуссии на тему трудности Ваших игр и
"честности" некоторых головоломок из программ "Balances" и "Curses".
Как Вы ответите на обвинения в Ваш адрес, что некоторые из Ваших
головоломок нарушают основы Вашего собственного "Билля о Правах
Играющего".
О:
Виноват. Но в качестве смягчающего обстоятельства прошу
учесть тот факт, что почти всегда я играю честно и испытываю
чистосердечное раскаяние по поводу нескольких ударов ниже пояса в
игре "Curses". Я стараюсь ввести в игру головоломки разного уровня -
от очень простых до очень сложных (на большинство никто не жалуется)
и держать открытыми сразу несколько одновременно. Я специально сделал
так, что продвигаясь вглубь игры, Вы будете не только открывать новые
локации, но и новые возможности в самых первых, давно освоенных
локациях. Мне кажется, что это создает особую атмосферу, хотя и
пропадает четкий раздел между прологом и средней частью игры.
Надо
также иметь в виду, что пользователи очень сильно
расходятся во мнении (особенно со мной) в вопросе о том, что считать
трудным, а что - легким. Самый лучший комплимент, какой мне иногда
приходится услышать - это: "Я прикончил игру, но это было чертовски
трудно".
В:
Какие у Вас планы на будущие игры? Можно ли ожидать
продолжения "Curses"?
О:
Сейчас я работаю над более серьезной игрой под названием
"Jigsaw". С переменным успехом работа продолжается последние 18
месяцев, но конца пока не видно. Основное время уходит на приведение
в форму системы INFORM для широкого распространения.
Что
же касается продолжения, то мне кажется, что сценарий
"Curses" относится к таким, для которых продолжения более вероятны,
чем для иных (в сравнении, например, с "Гамлетом"), но пока оно не
планируется.
В:
Кто Ваши любимые авторы? Какие компьютерные игры Вам нравятся
больше всего?
О:
Я очень люблю поэзию Филипа Ларкина и Примо Леви, хотя между
ними нет ничего общего. Кроме них мои любимые авторы: Эллиот, Доннэ,
Броунинг и Элизабет Бишоп, - в общем-то предсказуемый набор. Из
драматургов это Том Стоппард, Кристофер Хэмптон, Давид Хар. Мой
любимый роман - трилогия Джона Кристофера "Белые горы", "Город золота
и свинца" и "Огненный источник". Это автор для старшего школьного
возраста, но его сюжеты немного более закручены, чем, скажем, у
Толкиена. Его проза не без изъянов, но сюжет, образы и дух
произведений безупречны.
Что
же касается компьютерных игр, то по моему мнению самые
лучшие адвентюры - это "Spellbreaker" и "Trinity", которые сейчас
справляют свое десятилетие. Нынешний рынок компьютерных игр приводит
меня в уныние. Я думаю, что он деградирует так же, как американское
телевидение. То, что сегодня называют "адвентюрами" - игры типа
"Седьмого гостя" на двух CD-ROM, имеющие размер в 20 тысяч раз
больше, чем оригинальная игра "Advent" и при этом в 10 раз глупее и
скучнее. Готов признать, что "Alone In The Dark" - немного лучше.
Было время, и у меня были проблемы с "Тетрисом". Я неплохо отношусь к
аркадным стрелялкам, но люблю их абстрактно. Я, по-видимому
старомоден, потому что меня беспокоят такие обзоры игр, в которых
пишут: "... я видел военнопленных, истерзанных пытками и плывущие по
реке трупы своих товарищей... Великолепная игра!" (пример подлинный).
В:
Мы много слышали о том, что система INFORM легко переносится
на различные, почти любые, компьютерные платформы. Не могли бы Вы
пояснить эту идею?
О:
Сам компилятор работает далеко не на всем, а на наиболее
распространенных системах - в первую очередь на РС и на "Маках". Но
игры, которые он создает, могут работать почти на всем, начиная от
персональных органайзеров и до больших ЭВМ.
Интерпретатор
же - это программа, которая "разыграет" игру,
записанную в формате фирмы Infocom, при этом неважно, что это -
"родная" инфокомовская игра (их сейчас продает компания Activision по
очень низким ценам) или же это современная игра, сделанная с помощью
системы INFORM. Таких свободнораспространяемых интерпретаторов
полным-полно для любой машины (и требуется совсем немного усилий,
чтобы "перетянуть" интерпретатор с одной машины на другую).
Так
что "Curses" работает совершенно одинаково на десятках самых
разнообразных машин.
В:
Какими Вам видятся основные направления развития
интерактивной литературы?
О:
Я не очень верю в "направления" в искусстве. Здесь все
развивается не по прямой, а по спирали. По-моему, форма
"интерактивной литературы" не претерпела фундаментальных изменений
после начала 70-х точно так же, как форма художественного романа не
претерпена существенных изменений после 1700-го года. И не верьте
киберпанкам - большинство авторов художественных произведений не
перейдут на гипертекстные технологии просто потому, что они
появились.
В:
А чем Вы занимаетесь в свободное время?
О:
Как раз тем, о чем мы сейчас и говорим, я и занимаюсь в
свободное время. А в рабочее время я занимаюсь дифференциальной
геометрией, теорией малых размерностей и топологией, да еще и
преподаю в университете.
Последнюю
неделю я провел в собеседованиях с абитуриентами, а
сейчас, когда пишу этот ответ на Ваш вопросы, на часах уже час ночи и
я слушаю "Искусство фуги" Баха. Немножко пишу стихи, делаю это
очень медленно и публикуюсь по чуть-чуть.
В:
В справочном руководстве к системе INFORM Вы написали, что
"автор текстовой адвентюры должен быть в известной степени
шизофреничен, в то время как автор обычного литературного
произведения - нет". С какими наибольшими трудностями сталкивается
программист, пытающийся объединить разветвленную структуру игры и
линейную содержательность сценария.
О:
Самая большая проблема - уберечь играющего от того, чтобы он
застрял где-то в начале игры и от того, чтобы игра ему быстро
наскучила. Надо научиться думать одновременно и как игроку и как
разработчику. Это достигается одновременным открытием многих путей
для движения героя, а значит неизбежно требуется такой сценарий,
который состоит как бы из нескольких параллельных сюжетов. И этот
сценарий должен как бы открываться самим играющим, а не объявляться
автором игры. Надо как бы больше показывать и меньше рассказывать. Не
надо забывать и о том, чтобы разбрасывать временами отвлекающие
приманки и вводить суб-сценарии. В итоге получается совершенно
необычное произведение.
В:
С точки зрения перспективы играющего завершение хорошей
текстовой адвентюры имеет налет грусти в том же смысле, как и
завершение хорошего романа означает расставание с полюбившимися
героями. Какой совет Вы можете дать авторам, желающим создать
запоминающееся игровое окружение?
О:
Атмосфера игры имеет чрезвычайное значение и требует очень
высокого искусства. После того как жанр игры определен, надо твердо
его придерживаться. Если действие Вашей игры происходит во время
Карибского кризиса, надо тщательно проработать библиотечные материалы
- узнайте, что люди тогда носили, какие другие события происходили в
это время, какой была домашняя обстановка в помещениях, на каких
машинах тогда ездили. Обязательно надо включить в игру головоломки,
которые сейчас кажутся чужеродными, например, набор телефонного
номера по чьему-то имени. Тогда существовали телефонные аппараты, на
которых за каждой цифрой была закреплена какая-то буква - сейчас
таких уже нет (по крайней мере в Англии). Я люблю также использовать
некоторую форму повторяющихся действий, в которых отдельные элементы
могут выглядеть одинаковыми, но результат - различный, причем
неожиданный.
В:
Что Вам кажется наиболее важным в проектировании анализатора
текста? До какой степени может программист позволить себе отвергать
наиболее очевидные и напрашивающиеся действия игрока?
О:
Мне кажется, что в хорошей игре примерно до трети кода должно
быть уделено реакциям на неправильные решения пользователя. Если
больше, то еще лучше. Я люблю предугадывать идеи, которые могут
возникнуть у моих плейтестеров во время разгадывания загадок. Иногда
я разрабатываю их как параллельное решение, если оно соответствует
здравому смыслу и не нарушает баланса игры. Почему нет? Насколько я
помню, в "Curses" есть шесть альтернативных способов открыть бутылку
с лекарством.
Создание
некоего универсального анализатора текста -
грандиозное, но трудноисполнимое предприятие. Самым трудным при
этом является учет контекста и угадывание намерений игрока. Мой
главный вывод - не искать коротких и простых путей. Луче написать
анализатор, который понимает слишком много (то есть "понимает" нелепо
сконструированные запросы, которые следовало бы не обрабатывать, а
отвергать), чем слишком мало, поскольку имеет ограниченный запас слов
и слишком узкие грамматические алгоритмы.
(С) С.Симонович, перевод с английского, 1995 г.