Шрифт:
Интервал:
Закладка:
Я В ТЮРЕМНОЙ КАМЕРЕ.
ЗДЕСЬ ЕСТЬ:
ПРИНЦЕССА ЛЕЙЯ
ВЫХОДЫ: СЕВЕР.
>ЧТО МНЕ ДЕЛАТЬ? ВЗЯТЬ ПРИНЦЕССУ
БОЛЬШЕ НЕ МОГУ НИЧЕГО НЕСТИ.
ПОДСКАЗКА: БРОСЬ ЧТО-НИБУДЬ.
>ЧТО МНЕ ДЕЛАТЬ? БРОСИТЬ КЛЮЧИ
ОК
>ЧТО МНЕ ДЕЛАТЬ? ВЗЯТЬ ПРИНЦЕССУ
ОК
Вглядевшись получше, однако, можно заметить нечто весьма занимательное. Во-первых, «сокровища», которые должен собрать игрок (включая принцессу), не выбраны наобум, а вполне логично обоснованы: топливо для корабля; ожерелье принцессы, в котором спрятана микросхема с данными о «дислокации и численности Сил Свободы»; военные планы Генерала Рока, записанные на кассету для TRS-80 (наверняка в нескольких экземплярах – на всякий случай). Во-вторых, игра не заканчивается сразу же после того, как сокровища собраны. Необходимо еще найти способ открыть ворота ангара и улететь с «Собачьей Звезды». Не бог весть какая кульминация, конечно, но такую структуру уже можно назвать зародышем сюжета. А завершается все развязкой в виде победы повстанц… в смысле, Сил Свободы.
ЗАРАБОТАНО 215 ОЧКОВ ИЗ 215 ВОЗМОЖНЫХ.
МЫ ГЕРОИ.
ВОЙСКА ПРИНЦЕССЫ ЛЕЙИ ОДОЛЕЮТ СОЛДАТ ЗЛОДЕЯ
РОКА, И В ГАЛАКТИКЕ ВОСТОРЖЕСТВУЕТ СВОБОДА.
>СЫГРАТЬ СНОВА (ДА ИЛИ НЕТ)?
Первоначально Dog Star Adventure распространялась через TSE на кассетах за ничтожные $9,95. Позднее – для желавших сэкономить (или для мазохистов), – полный исходный код был представлен на страницах журнала SoftSide. Даже тем, кто застал эти времена, сейчас трудно поверить, что огромное количество программ распространялось в таком жутком формате и в 1980-е, причем не только в журналах, но и в книгах, которыми были уставлены целые стеллажи в книжных магазинах. Соответственно, ругаясь на нелогичные загадки и игры в угадайку, от которых страдали поголовно все текстовые приключения того периода, мы не должны забывать, что любой игрок с минимальными познаниями в программировании мог легко найти решение, просто воспользовавшись командой 'LIST' (вывод/печать исходного кода программы). Например, вдоволь намаявшись с парсером Dog Star Adventure, я откопал в коде следующие строки:
30650 VB$(1)="GO":VB$(2)="GET":VB$(3)="LOOK"
30700 VB$(4)="INVEN":VB$(5)="SCORE":VB$(6)="DROP"
30750 VB$(7)="HELP":VB$(8)="SAVE":VB$(9)="LOAD":VB$(10)="QUIT"
30800 VB$(11)="PRESS":VB$(12)="SHOOT":VB$(13)="SAY"
30850 VB$(14)="READ":VB$(15)="EAT":VB$(16)="CSAVE"
30900 VB$(17)="SHOW":VB$(18)="OPEN":VB$(19)="FEED"
30950 VB$(20)="HIT":VB$(21)="KILL"
Здесь перечислены все глаголы, которые воспринимает игра (их 21). Повторюсь: поскольку прочесть исходный код можно было без труда, авторы нередко рассчитывали, что игроки так и будут поступать. В связи с этим некоторые дизайнерские решения больше не кажутся такими уж нелогичными и жестокими.
Как часто бывает при подготовке материала по старым играм, мне пришлось сполна ощутить на себе тяготы перепечатывания исходного кода с листа. Ближе к концу Dog Star Adventure, чтобы выбраться из тюрьмы вместе с принцессой Лейей, игроку нужно пройти мимо робота-охранника. Оказывается, что тот любит гамбургеры из «Макдоналдс» (сейчас я бы заподозрил разработчика в продакт-плейсменте, но тогда это скорее был способ показать полное отсутствие у робота чувства вкуса). К счастью, один такой гамбургер лежит в кают-компании. Заглянув в исходный код, я вроде бы сумел догадаться, чего от меня хочет игра, однако она наотрез отказывалась принимать нужную команду. В конце концов выяснилось, что в код найденной мной версии закралась малюсенькая опечатка:
7350 X=22:GOSUB21450IFY<>-1PRINTM6$:GOTO2125
Тогда как на самом деле должно было быть:
7350 X=22:GOSUB21450:IFY<>-1PRINTM6$:GOTO2125
Вот что может случиться, если пропустить одно-единственное двоеточие, когда перепечатываешь сотни строк кода вручную*. Исправив эту ошибку, я наконец смог накормить голодного робота.
*И да, оригинальный код выглядит именно так – сплошным текстом. Интерпретатор для TRS-80 умеет распознавать выражения и без пробелов, а поскольку пробелы занимают драгоценное место, то от них (как и от прочих мелочей вроде комментариев) избавляются в первую очередь. В общем, читаемым код Dog Star Adventure точно не назовешь.
Несмотря на все это, Dog Star Adventure сыграла весьма значительную роль в истории игрового повествования. Помните, я говорил про толпы энтузиастов, которые тоже хотели создавать свои текстовые приключения? Что ж, теперь у них перед глазами (на страницах журнала; принтеры тогда еще были редкостью) был готовый, ладно скроенный пример. Игры Скотта Адамса тоже были написаны на BASIC, однако впервые их исходный код появился в журналах только в 1980 году. Кроме того, из-за деления игры на файл-интерпретатор и файл с данными разобраться в ней было гораздо труднее. Для начинающих игроделов Dog Star Adventure с ее интегрированным (пускай и менее гибким) дизайном подходила как нельзя лучше.
Сам Лэнс Миклас вскоре переключился на продукты для связи и в сентябре 1979 года основал собственную компанию80. Больше к текстовым приключениям он не возвращался, однако все равно заслужил свое место в пантеоне интерактивной литературы, поскольку именно его игра способствовала появлению множества новых разработчиков. Именно в этом, а также в пока еще робких попытках построить настоящий сюжет и заключается историческое наследие Dog Star Adventure.
В следующей главе мы побеседуем с Лэнсом Микласом, после чего снова вернемся к Скотту Адамсу и ставшему для него очень насыщенным 1979 году.
23. Интервью с Лэнсом Микласом
Мне удалось задать несколько вопросов Лэнсу Микласу, автору Dog Star Adventure. Надеюсь, вам будет интересно почитать кое-какие его ответы.
***
Д. М.: Скотт Адамс несколько раз упоминал, что будто бы это вы убедили его переписать движок для текстовых приключений на ассемблере. Не припомните, при каких обстоятельствах это произошло?
Л. М.: Честно, не помню, чтобы обсуждал это со Скоттом, но если так, то совет и правда был дельным. Да, программы на BASIC можно было легко портировать между разными компьютерами и системами, однако код на ассемблере исполняется быстрее и в целом делает программу более удобной в работе.
Д. М.: Мне было бы очень интересно услышать от вас все, что вы можете вспомнить о своей работе над Dog Star Adventure. Дело в том, что ваша игра имеет большое историческое значение как одно из первых текстовых приключений для TRS-80, наряду с творениями Скотта Адамса, и как первое приключение, исходный код которого был напечатан в журнале. Я как раз прошел вашу игру накануне и готовлю по ней небольшой материал.
Л. М.: В середине 1970-х я работал студийным инженером на Вермонтской общественной телестанции, где, помимо прочего, занимался программированием. Поскольку телестанция принадлежала Вермонтскому университету, нам разрешалось пользоваться университетской компьютерной системой. На одном из компьютеров было установлено то самое первое текстовое приключение, которое называлось Get Lamp [Лэнс, конечно же, имеет в виду Adventure]. Оно было написано на Fortran где-то в 1972 году [если быть точным, первую версию Краузер написал в 1976 году, а законченная игра появилась в 1977 году]. Студенты по ней с ума сходили. Я тоже пробовал