(С) Сергей Симонович, 1995.
В 1985 г. средняя адвентюра занимала
40К и проходилась за месяц.
В 1990 г. средняя адвентюра занимала
4 Мб и проходилась за неделю.
В 1995 г. средняя адвентюра занимала
400 Мб и проходилась за вечер.
В 2000 г. средняя адвентюра занимала
40Гб и не проходилась совсем.
Красочное интро само плавно
переходило в захватывающий
финал без вмешательства
со стороны игрока.
"PC-Review", вып. 117, апрель 2004г.
Новый жанр для любителей ADVENTURE.
__________________________________
Открытие нового жанра - редчайшее событие в мире компьютерных
игр. Если бы один человек мог сделать такое, то он обессмертил бы
свое имя. Но создание жанра - это не создание игры, и мало создать
игру - надо, чтобы новое направление стало признанным, чтобы оно было
подхвачено другими - вот тогда только и появляется новый жанр. Иначе
говоря, надо, чтобы не только появилась новая программа, а чтобы еще
созрели объективные условия для ее развития.
Обычно такое событие происходит не чаще раза в год. За те два
года, что существует PC-Review, мы стали свидетелями появления
двух новых жанров компьютерных игр - 3D-Action (DOOM и т.п.) и APG
(адаптивные программируемые игры). И вот сегодня мы представляем
нашим читателям новый жанр компьютерных игр, который сейчас активно
набирает обороты под скромным именем IF, а если полностью, то это
Interactive Fiction.
Что это за жанр, как он развивается, и в какой среде
функционирует, мы сейчас Вам расскажем, но сначала немного истории.
1. Первые адвентюры.
Самая первая адвентюрная программа называлась - Advent.
И создали ее в конце 70-х, когда еще никаких персоналок не было и в
помине. Работала она на большой ЭВМ, общалась с игроком через дисплей
или через распечатку и, конечно, была чисто текстовой. Разумеется,
"играть" приходилось тайком от начальства, по ночам и среднее время
игры оценивалось восемью неделями.
Правда, возникает вопрос: "А откуда брались игроки?", - ведь и
сегодня с текстовыми адвентюрами может работать не каждый. К счастью,
адвентюры родились, когда игроки для них уже были.
Во-первых, в 1973 году была впервые четко сформулирована и
документально оформлена система правил D&D - Dungeons & Dragons,
которая впоследствии развилась в AD&D (Advanced Dungeons & Dragons).
Если кто не знает, что это такое, то подскажем, что на этой системе
строились первые настольные, групповые и компьютерные ролевые
игры. Об этой системе мы подробно писали в PC-Review N9...13.
Тем, кто хорошо знал правила D&D и раз в неделю собирался с
друзьями в какой-нибудь тихой пивной для розыгрыша очередной партии,
влились в Advent без напряжения.
Во-вторых, по своей сути текстовые игры представляют интересную
задачу для программистов-профессионалов. Язык каждой текстовой
адвентюры неповторим и своеобразен. Для победы в такой игре нужно
прежде всего разобраться со словарем программы и с ее системой
команд. Установление диалога с программой, таким образом, становится
главной задачей играющего. Это делается постепенным "прощупыванием"
того, что игра понимает, а что нет. Методика такого "прощупывания"
очень похожа на методику тестирования и отладки программ. Поэтому
чисто логически программисты были готовы немедленно принять жанр как
родной и близкий, что на самом деле и произошло.
Для тех, кто никогда не имел дела с классическими текстовыми
адвентюрами и воспитан на современных графических квестах, трудно
понять, какую важную роль в игре играло установление диалога.
Приведем пример. Допустим, программа сообщает, что перед Вами
яблоко.
- You see an apple Вы видите яблоко.
> Get apple Взять яблоко.
- You cannot Вы не можете.
> Take apple Взять яблоко.
- You cannot Вы не можете.
> View apple Рассмотреть яблоко.
- I don't understand Не понимаю.
> Look apple Рассмотреть яблоко.
- Nothing special Ничего особенного.
> Examine apple Исследовать яблоко.
- It's a picture of an apple Яблоко нарисовано на картинке.
Итак, целью всего предыдущего диалога, оказывается, было только
установление того факта, что яблоко перед Вами не натуральное, а
нарисованное, и потому не может быть взято.
Может быть приведенный выше пример и выглядит надуманным, но
ситуация в текстовой адвентюре, когда стоишь перед дверью и решаешь
головоломку на тему какой командой ее открыть, совершенно нередка и
доставляет много больше удовольствия, чем "лазание" мышкой по экрану
в поисках спрятанного под ковриком ключа. Вспомним программу
~Kayleth~, в которой для того, чтобы открыть дверь, надо было вставить
специальный картридж в прорезь в... собственном лбу. Это потому, что
Вы начинали игру в роли робота-андроида, а именно так и
перепрограммировался робот в этой игре.
Чуть позже появились первые персоналки, а вместе с ними на
поддержку ~Advent~ появились игры ~Colossal Adventure~, ~Dungeon~
~Adventure~ и мн.др. К середине восьмидесятых годов жанр достиг
расцвета. В это время творили такие фирмы как Level 9, AdventureSoft,
Adventure International, Gargoye Games в Великобритании, Melbourne
House в Австралии и, конечно, бессмертный Infocom в США. Всех не
перечислить, хотя лидером была Великобритания. По количеству адвентюр
она на порядок опережала весь остальной мир вместе взятый. Парк
текстовых адвентюр, если рассматривать только самые успешные,
вошедшие в золотые фонды классики, составлял к 1987 году примерно
200-300 программ, всего же их были тысячи. Большинство лучших игр
были импортированы на все основные виды 8-разрядных бытовых
персоналок (Atari 800, Atari 65/130, Commodore 64/128, Amstrad
464/6128, MSX/MSX2, ZX-Spectrum 48/128, Enterprise, Acorn и др.).
Сегодня бы эти игры назвали мультиплатформными, хотя тогда такого
понятия еще не было.
2. Интерактивная графика
Ситуация стала меняться в середине восьмидесятых с развитием
компьютерной техники. Сначала появилась иллюстративная компьютерная
графика, которая начала вытеснять текст из описаний. Рассмотренная
выше задачка про яблоко уже не могла родиться после 1987 года,
поскольку стало принято показывать на экране то, что "видит" герой и
"прятать" головоломку в графике. Впервые этот прием применили в игре
~Valkiria 17~ где-то году примерно в 1984.
За иллюстративной графикой появилась интерактивная. Сначала
"мышь" сделала ненужными команды перемещения героя, ведь
достаточно ткнуть мышкой в нужную точку, и все будет сделано само
собой. Потом она "упростила" работу с объектами. С ними стало можно
сделать только три (а потом и два) действия - ВЗЯТЬ, ПОЛОЖИТЬ и
ИСПОЛЬЗОВАТЬ. Под словом ИСПОЛЬЗОВАТЬ можно понимать все, что угодно:
СЪЕСТЬ, РАЗБИТЬ, ПОДАРИТЬ, РАЗВИНТИТЬ и т.п. Если Вам встретится в
игре синхрофазотрон, сделайте ему USE - что-нибудь да получится. А
если встретится пуговица, то ей тоже надо сделать USE. В итоге можно
не думать, а "юзить" по программе.
Самые же последние адвентюры отличаются графикой SVGA, живым
видео и огромными размерами, от которых становится больно и
грустно. Ну что можно сказать о какой-нибудь ~Prisoner of Ice~ или
~Lost Eden~, занимающих целый CD-ROM, если они проходятся за вечер
без напряжения мозговых извилин? Ну как можно их сравнить с ~Witch's~
~Couldron~, которая умещалась в 40 килобайтах и даже коллективными
усилиями не проходилась и за месяц? Причем это был месяц побед, а не
месяц бесплодных блужданий в потемках.
3. Структурные перемены
Мы давно наблюдаем за вырождением жанра Adventure. Развитие
техники неуклонно вело к его деформации, и мы об этом писали
(см. PC-Review N6, N19), но рассматривали только внешнюю сторону игр,
"от пользователя", а ведь есть еще внутренняя - "от программиста".
Изменились не только система команд и интерфейс. Изменилось
и кое-что большее - структура данных. Современная Adventure типа
King's Quest VII представляет собой ничто иное, как четырехмерную
графическую базу данных. Два измерения дает разбивка каждого экрана
на довольно крупные квадраты невидимой сеткой. Третье измерение - это
сами экраны и четвертое - это текущий вид курсора. Работа с такой
программой мало отличается от работы с системой управления базами
данных. По виду курсора, его координатам и номеру экрана отыскивается
номер соответствующей записи и, в соответствии с установленными
флагами, выдается реакция (герой идет, говорит, стреляет или делает
еще что-нибудь). Реакцией является запуск той или иной процедуры.
Устройство классических адвентюр было совсем не таким. Прежде
всего, в их основе лежал словарь, причем не один. Словари были
статические и динамические. Искусство "распознать" фразу, введенную
пользователем, и дать на нее осмысленный ответ - это задача, во многом
близкая концепции искусственного интеллекта и решалась она совсем
другими структурами. Для обработки данных в классических адвентюрах
использовались приемы, применяемые в интерпретаторах и компиляторах и
можно считать, что каждая классическая адвентюра представляла как бы
отдельный "язык программирования". Для того, чтобы пройти игру, этот
"язык" надо было изучить и правильно применить - чем не задача для
программиста? А кто, скажите, пожалуйста, видел в современных
графических адвентюрах хотя бы намек на искусственный интеллект?
Таким образом, при переходе от текстовых адвентюр к графическим
произошла не только смена пользовательского интерфейса, внешнего вида
игры и ее системы команд. Произошло коренное изменение структуры
данных самих программ и изменение стиля программирования. Если раньше
оно было скорее процедурным, то теперь стало больше функциональным.
4. Рождение интерактивной литературы.
Все в мире, как известно, развивается по спирали. Все
возвращается, но уже на новом уровне. Так произошло и с классическими
адвентюрами. Это ж ведь не только мы пишем о том, что жанр
деградировал. Об этом пишет весь мир, а производители продолжают
штамповать игрушки разового использования.
И вот спираль завершила свой виток. Развитие графических средств
компьютера погубило старый классический жанр, но в то же самое время
развитие коммуникационных средств компьютера (модемы, сети и пр.)
сегодня его возрождают и притом на довольно высоком уровне.
Всегда были люди, желавшие сохранить классические текстовые
адвентюры. Были сотни людей, желавшие их создавать и сотни тысяч,
желавшие в них играть. Ни те, ни другие не могут рассчитывать на
поддержку крупных издательских гигантов, но они нашли уютную гавань в
океане глобальной сети ИНТЕРНЕТ.
Так в рамках ИНТЕРНЕТ'а и некоторых его ответвлений, таких как
USENET, COMPUSERV и др., стали работать группы любителей текстовых
адвентюр. Ими были созданы специальные системы для создания игр
и дело пошло. Правда, сегодняшние текстовые адвентюры уже не те, что
были раньше. Они стали гораздо мощнее. По размерам они вышли за
пределы "рассказов" и "повестей" и приближаются к "романам". По
уровню головоломок они тоже стали много мощнее. И за "новым"
возрожденным жанром закрепилось новое название - Interactive Fiction
(IF), которое можно было бы перевести как "Интерактивная литература".
Interactive Fiction сегодня существует как "виртуальный" жанр.
Несмотря на то, что уже созданы десятки и сотни программ, их нельзя
купить на прилавках магазинов. Все они, как и системы их породившие,
"живут" только в каналах сети ИНТЕРНЕТ. Это некоммерческие программы
и системы. Все это циркулирует бесплатно. Платным является только
доступ к информации и ее доставка. Сами же продукты - условно
бесплатны (SHAREWARE) или совсем бесплатны - (FREEWARE).
О некоторых системах для создания IF-программ мы сейчас и
расскажем, но сначала немного терминологии.
5. Терминология.
Локации (Locations) - элементарный узел игрового пространства.
Все поле игры состоит из локаций. Грубо говоря - это место, в котором
может оказаться играющий, где он сможет выполнить какие-то
действия.
Объекты (Objects) - предметы, принимающие участие в игре. Это не
все предметы, с которыми Вы встретитесь по ходу игры, а только те, с
которыми можно выполнить какое-то действие (ВЗЯТЬ, ПОЛОЖИТЬ,
ПРИМЕНИТЬ, РАЗБИТЬ, БРОСИТЬ и т.п.).
Персонажи (Actors) - одушевленные субъекты, с которыми можно
встретиться по ходу игры. Ими нельзя управлять прямыми командами (они
находятся под управлоением компьютера), но с ними можно вступать в
диалог и можно управлять ими через этот самый диалог.
Запалы (Fuses) - отложенные события. Они могут быть
запрограммированы так, например, чтобы через несколько ходов после
какого-то события произошло другое событие.
Демоны (demons) - это процедуры, к которым компьютер
обращается по разу на каждом ходу.
6. Система TADS.
TADS расшифровывается как "Text Adventure Development System" -
"Система для разработки текстовых адвентюр". В настоящее время TADS
существует для MSDOS, Atari ST, Macintosh, Sun, SGI, Linux, DEC/MIPS
и компьютеров NeXT. Адрес для поиска этой системы:
ftp.gmd.de:if-archive/programming/tads/
Последняя версия TADS носит номер TADS 2.1. Она поддерживает
виртуальную память и СИ-подобное расширение своего языка. Для
зарегистрированного пользователя к системе прилагается мощный пакет
документации и усовершенствованный отладчик.
TADS разрабатывается фирмой High Energy Software и является
Shareware. Игры, созданные (и создаваемые) с ее помощью также
являются Shareware, хотя нет причин, мешающих их коммерческому
распространению.
Состоит TADS из компилятора (конвертирует исходный написанный
Вами код в код игры) и интерпретатора (читает код игры, исполненный
компилятором и обеспечивает общение с пользователем).
Зарегистрированные клиенты получают особую версию
интерпретатора. Этот интерпретатор может быть "пристегнут" к файлу с
кодом игры, что дает в итоге один исполнимый файл, удобный для
дистрибуции. Сам интерпретатор лицензирован для использования как
shareware, и если Вы сделали игру и собираетесь ее распространять как
shareware, то можете ни цента не платить авторам TADS. Если же Вы
хотите наладить коммерческую продажу, то должны войти в контакт с
авторами системы для уточнения своих прав.
Язык системы TADS - декларативный и объектно-ориентированный. Он
очень похож на СИ и синтаксис языка легко понятен тем, кто знает СИ
или ПАСКАЛЬ. Язык имеет набор правил синтаксиса, некоторые средства
для манипуляции с текстами и поддерживает объектно-ориентированное
программирование.
Интерпретатор исполняет грамматический разбор лексических
конструкций, введенных играющим, обеспечивает диалоговый режим работы
(вопрос-ответ) и активирует методы, связанные с объектами, в
зависимости от того, что ввел играющий. Язвк поддерживает также
персонажей [actors], запалы [fuses] и демонов [demons].
К системе прилагаются два исходных текста адвентюр, служащие как
бы образцами для самообучения. Первый - тривиальная типовая адвентюра
для начинающих. Второй исходный текст - для адвентюры инфокомовского
класса - Ditch-Day Drifter.
Зарегистрированным пользователям выдается также печатное пособие
(manual). Учебник для первой версии TADS был очень хорош, хотя не
вполне внятно объяснял содержание файла стандартной библиотеки adv.t.
Учбник ко второй версии в два раза больше.
Стоимость регистрации Shareware-версии 2.0 - 25$ США.
Стоимость регистрации Shareware-версии 2.1 - 40$ США.
Стоимость упаковки и доставки в пределах США - 3$
Стоимость упаковки и доставки за границу - 8$
Контактные адреса:
BBS: 415 493 2420 (set modem to 14400-N-8-1)
СompuServe: 73737,417
GEnie: M.ROBERTS10
Internet: 73737.417@compuserve.com
Почта: High Energy Software,
PO Box 50422,
Palo Alto, CA
94303.
Примечание: Дэйв Бэггетт (Dave Baggett) создал библиотеку
WorldClass Library, совместимую с TADS, и полностью заменяющую
библиотеку ADV.T, к тому же в три раза больше по размеру и,
соответственно, более мощную.
Ее можно разыскать по адресу:
ftp://ftp.gmd.de/if-archive/programming/tads/worldclass
7. Система ALAN.
Система ALAN - это как бы специализированный язык
программирования для создания интерактивных литературных произведений
или текстовых адвентюр. Она состоит из компилятора, который
компилирует исходный текстовый файл в некоторую промежуточную форму и
интерпретатора, который обеспечивает взаимодействие играющего с этим
самым промежуточным кодом.
В основу этой системы была заложена идея обеспечения
максимальной функциональной пригодности при минимально возможном
кодировании. Достигается это следующими средствами:
- система действует "по умолчанию" в большинстве ситуаций (автор
может в любом месте это действие подавить так, как ему надо);
- система напрямую поддерживает такие понятия как локации,
объекты, персонажей и другие концепции, принятые в адвентюрах и в
интерактивной литературе.
- автор может расширить разрешенный формат ввода информации от
играющего и "привязать" к такому расширению некоторые действия.
Кроме всего прочего, это самая "безопасная" система в том
смысле, что во время очень длительной компиляции проходит
столько всевозможных проверок, что почти невозможно в результате
выпустить игру, которая будет сбоить или вести себя неестественно.
Язык системы декларативный и очень близок к обычному
английскому. Он поддерживает "запалы" и "демонов" путем использования
понятия событий и, хоть и не вполне объектно-ориентирован, все-таки
объектно-инспирирован. Все объявления являются локальными и нет
принципа наследования.
Система ALAN - это не shareware, а requestware, то есть не
распространяется бесплатно, а высылается по запросу. Желающие
получить подробную информацию, могут послать E-mail по адресу:
alan-request@softlab.se
с единственной строчкой: SEND INFO
Полный дистрибутивный пакет включает в себя компилятор,
доккументацию, более чем 100-страничное руководство, несколько
образцов, интерпретатор и отладочные утилиты. Сам интерпретатор
можно распространять вместе с Вашими играми, произведенными с помощью
системы ALAN, так что ограничений для коммерческого или
Shareware-распространения произведенной продукции нет.
Последняя версия ALAN несет номер 2.4. Она существует для
компьютеров: Sun/UNIX, Amiga, PC (MSDOS и OS/2) и VAX/VMS.
С авторами можно связаться:
alan-request@softlab.se
thoni@softlab.se
gorfo@ida.liu.se
8. Система ADVSYS.
Система ADVSYS расшифровывается как ADVenture SYStem. Она
написана Дэвидом Бетцем (David Betz), ее последняя версия - 1.3, а
а предпоследняя - 1.2 относится к далекому 1986 году и была, кстати
сказать, весьма плодородной.
Пакет поставки содержит:
- документацию;
- исходные модули на языке СИ для компилятора и интерпретатора;
- исходные модули для нескольких адвентюр (как образцы);
- демонстрационную библиотеку.
Язык, используемый системой, LISP-подобен. Сама игра ничего не
знает о взаиморазличиях персонажей, локаций, объектов и пр. Все это
должно быть в коде. В результате динамическая библиотека оказывается
более сложной, чем бы того хотелось. Персонажи, "запалы" и "демоны"
встраиваются легко.
В сопроводительном документе сказано, что система предназначена
не для коммерческого применения. Если же таковая задача возникнет,
следует связаться с автором и заручиться его согласием.
Найти систему ADVSYS можно на некоторых ftp-серверах, например:
ftp://ftp.uu.net/usenet/comp.sources.games/volume2/advsys
ftp://wuarchive.wustl.edu/usenet/comp.sources.games/volume02/advsys
9. Система ADL
Система ADL (Adventure Design Language) была написана Россом
Каннифом и Тимом Бренглом. Пакет включает в себя:
- документацию (ASCII);
- исходный текст компилятора на языке СИ;
- исходный текст интерпретатора;
- исходный текст отладчика;
- несколько образцов адвентюр в диапазоне от очень простых до
очень сложных, которые иллюстрируют различные возможности ADL.
ADL - декларативный полу-объектно-ориентированный язык. Он
поддерживает концепцию методов (процедур, связанных с объектами). Это
означает, что стиль объектно-ороиентированного программирования
применим при работе с ADL.
Язык напрямую распознает персонажей, локации и объекты и
поддерживает "демонов" и "запалы". Имеет стандартную библиотеку с
хорошей документацией. В документации ничего не сказано о правах на
распространение и предполагается, что прикладывать откомпилированный
интерпретатор к созданной игре можно без проблем.
При желании можно связаться с автором:
Ross Cunniff
636 La Grande, #7
Sunnyvale, CA 94087
10. Система OASYS
OASYS расшифровывается как Object-Oriented Adventure System. Она
начала распространяться в 1992 г. и была написана Расселом Уоллисом,
с которым можно связаться по электронной почте по адресу:
RWALLACE@vax1.tcd.ie.
Пакет имеет документацию, два образца адвентюр, исходный текст
для компилятора и интерпретатора на языке СИ и двоичные коды MSDOS. В
исходном тексте отсутствует include-файл, но Рассел поставляет его по
запросу.
Язык системы декларативный и не вполне объектно-ориентированный.
Основным ограничением текстового анализатора является то, что он
вынуждает играющего вводить прилагательные вместе с существительными.
Например, приходится писать "Take Gold Key" (Взять золотой ключ) даже
если никаких других ключей рядом и нет. Возможно, этот недостаток
будет устранен в последующих версиях.
Язык поддерживает персонажей и играющий может отдавать им
команды. Непонятно, есть ли поддержка "демонов" и "запалов".
Никаких видимых ограничений на дистрибуцию откомпилированного
интерпретатора вместе с игрой не наблюдается.
**********************************************************************
* Систему OASYS с переводом документации на русский язык мы *
*прикладываем к данному номеру журнала в директории \SHAREWARE. *
*Желающие создавать собственные адвентюрные игры могут этим заняться *
*уже сегодня. В будущем мы разберем и другие системы. *
* *
* i-ПРЕСС *
**********************************************************************
11. Система INFORM.
Система INFORM была написана Грэхэмом Нельсоном в Оксфордском
университете (Великобритания). Это компилятор, производящий сценарные
файлы игры в формате, созданном когда-то фирмой Infocom для ее игр.
Доступных интерпретаторов для таких файлов существует много,и они
доступны на различных серверах, хранящих IF-архивы.
Компилятор написан на ANSI C и открыт для использования, хотя и
не является Public Domain. Он производит файлы версии-3 (типа ZORK-1)
из СИ-подобных исходных текстов, но может производить и файлы
версии-5 (типа Trinity). Последние примерно раза в два больше по
объему.
Сопроводительная документация для версии INFORM 5.4 состоит из
четырех документов:
- руководство проектировщика игр (учебник с подробным справочным
приложением и разбором примеров);
- техническое руководство (описание характеристик, подробности
по установке на разные компьютерные системы, история модификации);
- технические данные на Z-машину (все известные сведения об
Infocom-формате, и Infocom-Ассемблере);
- "Искусстов Adventure" - книга о том, как создаются адвентюрные
игры и об играх, но не о самой системе.
К системе прикладываются четыре игры:
Advent - переработка Colossal Cave;
AdventureLand - классическая игра Скотта Адамса;
Toyshop - пример игры с очень малым количеством локаций, но с
экзотическими объектами, демонстрирующий головоломные приемы
программирования игр.
Balances - продолжение инфокомовской трилогии "Enchanter",
демонстрирующее умелую работу с анализатором текста.
Система INFORM распространяется как Freeware и все права на
игру, произведенную с помощью этой системы принадлежат только автору
самой игры.
***********************************************************************
* В следующем номере PC-Review (N22) мы даем интересное интервью с*
*самим Грэхэмом Нельсоном, а также прикладываем (как Shareware) его *
*программу ~Curses~, написанную в системе INFORM. Сегодня это одна из *
*самых известных (если не самая известная) текстовых адвентюр. Очень *
*рекомендуем ее Вам, уважаемые читатели и открываем "мозговой штурм" *
*по ее прохождению. *
* Вы также получите русский перевод вышеупомянутой книги *
*"Искусство Adsventure", который начинаем публиковать с продолжением в*
*нескольких выпусках нашего журнала. *
* i-ПРЕСС *
***********************************************************************
12. Как создать собственную Adventure-игру.
Для того, чтобы научиться создавать адвентюры, надо просто
начать писать игру. Только практика даст желаемый результат. Многое
даст и метод проб и ошибок.
Но прежде всего, какой бы системой Вы ни пользовались, Вам нужна
обязательно документация к ней. Может быть, Вам придется
зарегистрироваться у автора системы для получения полного комплекта
документации.
Еще Вам понадобятся распечатки прилагаемых образцов игр.
Скрепите их степлером, чтобы странички не путались между собой и
обязательно распечатайте содержимое прилагаемой к системе стандартной
библиотеки.
Ознакомьтесь с основами языка. Такие премудрости как "демоны",
"запалы", особенности синтаксиса оставьте на потом. Сначала уясните
главные принципы манипуляции с объектами и принципы наследования
(если Ваша система - объектно-ориентированная).
Очень хорошо, если Вы уже знаете какой-нибудь язык
программирования того же стиля (процедурный типа LISP или
функциональный типа ПАСКАЛя и СИ), как и система, на которой Вы
работаете.
Прочитайте образцы адвентюр. Почувствуйте, как задаются объекты
и комнаты. Этот шаг очень важен. В дальнейшем Вы будете создавать
большинство своих адвентюр путем "стратегической кражи" чужих
конструкций. В этом нет ничего плохого и это не плагиат.
Профессионалы называют это "повторным использованием кода - Code
Reuse". Этим пользуются в той или иной степени все.
Сделайте копию одной из образцовых адвентюр. Удалите из нее все,
что имеет к ней специфическое отношение (комнаты, персонажи, объекты
и т.п.). Останутся только глаголы, инициализирующие процедуры и
задание параметров героя. Отсюда и начните писать собственную
адвентюру. Начните с простого - с пары комнат и с нескольких
объектов.
Когда что-то получится, усложните игру. Для того, чтобы родились
идеи, что можно добавить, невредно самому поиграть в такие игры.
Попробуйте задать двери, контейнеры (объекты, внутри которых есть
другие объекты), других персонажей, новые глаголы и т.п. Прилагаемую
к системе образцовую адвентюру используйте как справочник.
Если образцовая адвентюра, с которой Вы начали, содержит код из
стандартной библиотеки (например, для системы TADS это библиотека
STD.T, а для системы ADL - это standard.adl), то подключите эту
библиотеку и настройте ее по своему вкусу.
Когда соберетесь вносить существенные изменения в поведение
своей адвентюры, Вам надо будет перерабатывать стандартные
библиотеки, приложенные к системе. Всякий раз, когда внесете
изменение в библиотеку, обязательно в начале файла пишите
комментарий, что и как Вы изменили, а также зачем. Это нужно для
того, чтобы в будущих адвентюрах Вы смогли пользоваться
нововведениями без проблем. Это также поможет в тот момент, когда
появится новая версия системы со своей библиотекой. Вы сможете
перенести в нее изменения с минимальными хлопотами.
То, что Вы в итоге получите, станет Вашей первой игрой. Не
ждите от нее многого - это ведь только учебно-тренировочная игра.
Может быть она неудачно спланирована, может быть в ней есть
логические неувязки. Чтобы написать Настоящую Игру, Вам придется еще
много и много практиковаться.