Статья под номером 41 Статья под номером 40 Статья под номером 27
ПОИСК ПО САЙТУ
|Заглавная страница |Разделы |ЧаВо/FAQ |Файлы |Ссылки |Интерактивные истории |Послать новости |Форум
Последние статьи
· На восточном фронте без перемен?
· История одного обмана / A. Plotkin - Spider and Web
· Обзор игр на КРИЛ06 от Стаса Старкова
· Обзоры игр-участниц КРИЛ-06
· Гэд
Последние комментарии
· Ссылка на игру вроде б не работает.
// TheMrTka4

· ну с праздником как-бы,..день открытия denza

· Статья хорошая, хотя со многим можно и поспорить.
// Ник В.

Персональное меню
Логин

Пароль

Регистрация

Голосование
Когда стоит провести конкурс русских IF-игр?
август-сентябрь
сентябрь-октябрь
октябрь-ноябрь
зимой
весной
в далеком будущем
[Результаты]
Друзья сайта
Лавка Миров
RTADS
Все об Universal RipSoft Quest
QSP
Клуб Адвантюристов
SMSQuest
Wizard's Nash homepage
Пишем Interactive Fiction (версия 2)
Отправлено: Emperor | 2002-02-03 11:43:41 | просмотров: 40594

Пишем Interactive Fiction

(версия 2)

Глава 1

Как начинается работа над игрой IF(*)?

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

Итак, уже упомянута:

* Interactive Fiction, IF, "Интерактивная Литература"
  собирательный термин, появился в 1984 и впоследствии перестал означать
  только текстовые квесты(*). Теперь IF -- это вид искусства, включающий в
  себя как классические текстовые игры, так и полноценные интерактивные
  литературные произведения. Немного больше о моем видении Interactive Fiction
  -- в следующей главе. Историю IF можно найти на сайте fiction.dax.ru
* Квест, текстовые квесты
  часть Interactive Fiction, игры с текстовым вводом команд и текстовыми же
  описаниями комнат(*), действий и предметов, без, или с минимальным,
  использованием графики и звуков. Понятие "текстовой квест" предполагает
  активное взаимодействие персонажа с предметами в игре, решение паззлов(*) и
  т.п.
* Паззл, пазл, паззлы (puzzles)
  слова, которые я буду использовать, как обозначение всевозможных загадок и
  задач в играх IF, так как наиболее близкие слова -- "загадки" и "задачи" --
  будут использоваться в другом контексте. Заранее прошу прощения за
  использование таких неологизмов. В IF решение паззлов зачастую является
  сутью игры, помимо стремления дойти до финала.
* Комнаты, локации
  части внутриигрового мира IF, отдельные участки пространства с текстовыми
  описаниями. Персонаж, все NPC(*) и предметы, находящиеся в игровом
  пространстве, обычно находятся в "комнатах". Понятие "комната" не
  обязательно означает буквально комнату в каком-либо помещении.
* NPC, Non-Player Character, Actor
  термин, обозначающий одушевленных, второстепенных персонажей IF-игры,
  поведение которых моделируется компьютером. О создании правдоподобных NPC
  см. ниже. См. также AI(*).
* AI, Artificial Intelligence, Искусственный Интеллект
  термин, в программировании обозначающий самообучающуюся систему, способную
  создавать программы для себя самой. В IF -- это программа, дающая
  возможность получить по-настоящему реалистичных NPC. Проблемы AI до сих пор
  не разрешены, хотя есть несколько подходов, позволяющих сымитировать AI в
  рамках Interactive Fiction.

Что нужно, чтобы написать хорошую IF? Ответ кроется в расшифровке самой аббревиатуры - Interactive Fiction, Интерактивная литература. Для создания интересного сюжета, способного заинтриговать игрока, требуется талант писателя. Чтобы сделать текст "интерактивным", взаимодействующим с игроком, требуются навыки программиста. Другими словами, необходимо задействовать оба полушария мозга. Задача не из легких, особенно учитывая то, что большинство людей склонны либо к творчеству, либо к точным наукам, но не к тому и другому сразу.

 В 1988 году, вскоре после выхода в свет книги Дугласа Адамса "The
 Hitchhiker's Guide To The Galaxy", "Автостопом по галактике", ее автор и
 опытный программист Стив Мерецки, вместе создали одноименную игру по мотивам
 книги. Таков пример плодотворного сотрудничества двух талантливых, каждый в
 своей области, людей.

В Сети есть сайты, предоставляющие помощь в написании IF того или иного рода -- кусочки кодов, различные идеи. Да и просто способные люди вполне могут помочь начинающему. Написать IF непросто. Что мы и попытаемся сделать.

Выбор платформы(*)

* Платформа
  программный комплекс, созданный специально для написания IF.

Итак, Вы решили создать шедевр. С чего же начать? С выбора платформы, если вы не знаете никакого языка программирования. Использование платформ гарантирует гораздо меньше головной боли и зачастую гораздо больший результат, чем написание игры с нуля.

Существует много языков IF, попроще и посложнее. Некоторые -- это что-то вроде заполнения шаблонов. Запускаете платформу, заполняете предоставленные поля, и все -- комната готова, переходим к следующей. Никаких или совсем мало особых действий, и, как следствие, IF получаются по большей части, однообразные. Обычно это платформы под Windows -- с графическим интерфейсом и т.п.

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

Русскоязычных платформ, то есть созданных специально под русскоязычную аудиторию, мало, а существующие весьма и весьма маломощны. Те же перспективные платформы, что способны конкурировать с монстрами зарубежного IF-мира, сейчас либо отсутствуют, либо находятся в зародышевом состоянии. Перевод забугорных платформ -- дело сложное, поэтому начать все же лучше не дожидаясь выхода мощных русскоязычных платформ -- это может занять чересчур много времени.

Таким образом, если вы знаете английский (или другие европейские языкы, для которых также существуют платформы), вы вполне справитесь с освоением простейших, но тем не менее, достаточно гибких, самых известных платформ.

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

Другие критерии -- это простота документации, возможности парсера(*), скорость работы и др.

* Парсер, синтаксический анализатор (parser)
  программа, основная часть системы IF-игры, принимающая введенный игроком
  текст и проводящая синтаксический его разбор и разбиение на составные
  логические части. Другими словами, парсер -- это та штука, которая позволяет
  игре понимать команды игрока. "Парсер" - это опять неологизм. Мне просто
  будет лень писать постоянно "синтаксический анализатор".

Рассмотрим несколько популярных платформ.

"Большая Тройка": TADS, Inform и Hugo

Эти три платформы принято упоминать вместе, так как они во многом схожи по возможностям и являются самыми популярными и мощными средствами создания IF на сегодняшний день. Их использование требует небольшой подготовки, желательно знакомства с парой других платформ.

Начнем по старшинству.

TADS

TADS, Text Adventure Development System, появилась в 1988 году и вот в течение уже 13 лет продолжает активно развиваться. В Сети много сайтов посвящены TADS, есть группы новостей, где можно получить помощь по возникшим с системой проблемам. На языке TADS написано много замечательных игр, включая такие как "The Legend Lives", "Babel" и победительницу конкурса IF 2000 -- "Kaged".

Платформа TADS (описывается по версии 2.5.5): - Полно написана документация, раскрывающая не только внутренние характеристики системы, но и касающаяся теории IF. Она доступна в HTML-формате и в формате нескольких текстовых процессоров. - При серьезном упорстве поначалу, дальнейшее использование TADS не составляет особого труда, внутренний язык вполне логичен и понятен. - Очень хороший парсер понимает множество словесных конструкций и длинные предложения. - Существует уникальный интерпретатор(*) HTML TADS, не имеющий аналогов в других платформах. Он работает с обычными исходниками(*) игр TADS. - Ложка дегтя -- это различные стандартные библиотеки(*) языка, и каждая из них требует изучения, причем не однодневного. Библиотека WorldClass считается самой полной и имеет максимальные возможности, а заодно и приличные размеры, что влияет на скорость завершенной игры. - Игры, написанные с помощью TADS, работают на большей части всех существующих моделей компьютеров, за исключением переносных palmtop. Поддержка HTML TADS, однако, возможна только в Windows 95/98 и Macintosh. - TADS -- полностью объектно-ориентированная система(*). - TADS поддерживает динамическое создание объектов(*). - TADS с готовностью поддерживает использование графики и звуков. - Дальнейшее развитие TADS зависит только от желания ее автора.

* "Исходник"
  текстовой файл, программа, написанная на каком-либо языке, являющаяся
  "сырьем", из которого компиляторы(*) делают игровые файлы.
* Компилятор
  программа, уникальная для каждой платформы и модели компьютера. Компиляторы
  создают игровой файл из "исходника", созданного автором игры. Например, из
  исходного текстового файла game.txt, созданного по правилам языка TADS,
  компилятор TADS создает работоспособный игровой файл game.gam. Некоторые
  платформы, например, URQ, обходятся без компилятора, используя только
  интерпретатор.
* Интерпретатор
  программа, уникальная для каждой платформы и модели компьютера.
  Интерпретаторы запускают игровой файл, перед этим созданный компилятором(*).
  Интерпретаторы, как и компиляторы, строго ориентированы на "свою" модель
  компьютера. К примеру, для языка Inform существует свыше десяти различных
  интерпретаторов, для каждой поддерживаемой Inform-ом модели компьютера.
* Библиотеки
  специальные (обязательные или вспомогательные) программы, написанные на том
  же языке, что и исходники игры. Стандартные библиотеки требуются компилятору
  для обеспечения работоспособности игры. Вспомогательные дают автору
  различные полезные функции, например, вспомогательная библиотека clothing.h
  для языка Inform позволяет внести в игру предметы одежды, а greenbacks.h
  дает возможность внести в игру имитацию денежной системы.
* Объектно-ориентированный язык
  язык, в котором все, существующее в игровом мире, представлено в виде
  объектов, будь то комната или предмет, или абстрактное понятие вроде Класса
  предметов. Такая структура является, по моему мнению, достаточно логичной
  для имитации реального мира.
* Динамическое управление объектами
  это значит, что в процессе игры память существенно экономится за счет
  уничтожения неиспользуемых объектов или создания нужных в нужное время.

Веское слово в пользу TADS: TADS старше других из "тройки", значит, проверен временем. TADS -- полностью объектно-ориентированный язык, что облегчает его изучение, делая логичной внутреннюю структуру игрового мира. TADS поддерживает динамическое управление объектами. Отличный парсер.

Веское слово против TADS: Библиотеки TADS -- это настоящие дебри для непрофессионала. TADS не настолько "переносим", как, скажем, Inform, что сужает потенциальную аудиторию ваших будущих игр.

INFORM

Язык Inform появился в 1993 году и развивается. Он использует т.н. Стандарт Z-машины, обусловленный попыткой автора дать возможность всем написать IF в стиле игр компании Infocom(*). Это обеспечивает максимальную "переносимость" платформы на другие модели компьютеров, но и накладывает свои ограничения. В Сети Inform является самым популярным языком IF на сегодняшний день. На языке Inform написаны такие замечательные игры, как "Photopia", "Jigsaw", "Spider and Web" и "So Far". Inform переведен на французский, немецкий и итальянский языки.

* Infocom
  компания, занимавшаяся выпуском IF-игр c 1979 по 1989 год. Многие игры этой
  фирмы стали настоящими шедеврами и остаются образцами IF по сей день.
  История Infocom описана в работах Грэхема Нельсона "The Craft Of Adventure"
  и Пола Дэвида Доэрти "Infocom Fact Sheet".

Язык Inform (описывается по версии 6.21) - Автор Inform, Грэхем Нельсон, написал отличную документацию к своей системе, включая знаменитые "Ремесло Приключений" и "Билль О Правах Игрока", заглядывающие глубоко в теорию IF. - Программирование в Inform требует подготовки, заключающейся в пристальном изучении документации. Желательно хотя бы поверхностное знакомство с другими языками программирования (хотя бы с Бейсиком). - В документации есть отличное пошаговое обучение, помогающее создать первую игру. - Парсер прекрасно выполнен. К тому же он содержится в отдельной библиотеке, то есть покопаться в нем не составит труда. - У языка Inform, к сожалению, мало поля для дальнейших нововведений -- Z-стандарт накладывает свои ограничения. Это компенсируется возможностями стандартных Inform-библиотек, которые гораздо проще и понятнее TADS-овских. - Inform прекрасно переносится на любые типы компьютеров, включая palmtop. - Inform не является полностью объектно-ориентированным языком в строгом смысле этого понятия. Однако, для автора, Inform предлагает все примочки объектно-ориентированных языков, такие, как объекты -классы, -комнаты и -предметы. - Динамическое создание объектов изначально не поддерживалось. Теперь доступны дополнительные расширения для стандартной библиотеки, позволяющие это воплотить. - Для поддержки звуков и графики Inform предоставляет специальный формат файлов, требующий дополнительных усилий по программированию и, желательно, наличия дополнительных библиотек. - Inform позволяет осуществить поддержку мыши, используя все тот же специальный формат.

Веское слово в пользу Inform: Inform -- самый популярный в Сети язык, а это уже говорит о многом. Легок в изучении. Документация для Inform проста и понятна, да и просто интересна для любого изучающего теорию IF. Библиотеки, как стандартные, так и вспомогательные, интуитивно понятны и легко поддаются модификации, "прогибая" игровой мир под автора. Объектно-ориентирован. Обладает отличным парсером.

Веское слово против Inform: Ограничения Z-стандарта на количество "свойств", "атрибутов" и других переменных внутреннего языка Inform способны урезать серьезный по размерам проект IF. Inform с трудом поддерживает динамическое управление объектами.

HUGO

Hugo появился в 1995 году и активно развивается. Хотя игр для него пока мало, он, тем не менее, подает надежды. Hugo часто называют "младшим братом Inform" -- они действительно очень похожи. Одно из их отличий -- в синтаксисе. К примеру, Inform позволяет любую команду разбить хоть на десять строк (что облегчает читабельность кода), но требует отметить ее завершение точкой с запятой ";". Hugo же требует уместить всю команду на одной строке (а в случае необходимости переноса поставить знак "\"), но завершать команду не нужно. Всвязи с этим переход с Inform на Hugo и обратно сопряжен с болезненным избавлением от привычек.

Обзор языка Hugo (по версии 2.0) - Документация, без сомнения, по своему полна и точна, однако рекомендуется во время чтения консультироваться с примерами. Документация к Hugo не рассчитана на новичков. - Многие отмечают, что внутренний язык Hugo легче, чем Inform. - Парсер Hugo заметно хуже, чем Inform-овский или TADS-овский. - Относительная "молодость" Hugo не позволяет увидеть множество игр в качестве примеров. - Hugo использует интересную систему программирования NPC, не использовавшуюся в других платформах, но сымитированную в библиотеках NPCengine и Moveclass для Inform. - Hugo имеет серьезные проблемы с "переносимостью" на другие модели компьютеров, кроме PC. - Как и Inform, Hugo не является строго объектно-ориентированным языком, но обеспечивает автора почти всеми его возможностями. - По оценкам пользователей, Hugo требует большей подготовленности в области программирования, чем Inform и TADS. - Hugo поддерживает динамическое управление объектами. - Hugo с готовностью поддерживает использование графики и звуков.

Веское слово в пользу Hugo: Hugo основан на опыте Inform, поэтому в нем сняты многочисленные Inform-овские ограничения. Hugo легко управляется с NPC, для которых в других платформах требуются дополнительные усилия по программированию.

Веское слово против Hugo: Hugo -- язык молодой и, поэтому, содержит много недоработок и не рассчитан на новичков. Слабый парсер.


Вне "большой тройки" тоже много неплохих языков. Они, однако, остаются в тени платформ Inform, Hugo и TADS.

AGT -- Adventure Game Toolkit

Платформа AGT была разработана в середине 80-х, в "золотые годы" Interactive Fiction. Тогда самая мощная из существовавших платформ, она быстро завоевала огромную популярность. Было написано свыше сотни игр на AGT, во многом составивших золотой фонд классических текстовых квестов.

К концу 80-х ее авторы потеряли к ней интерес и стали распространять систему бесплатно, что еще повысило ее популярность. Версия 1.7 стала последней авторской версией платформы.

Работа с AGT возможна на двух стадиях. Первая -- базовая -- позволяет даже неопытному автору написать несложную IF-игру, просто заполняя "шаблонные" комнаты, создавая предметы с различными назначениями и простейших NPC. Второй уровень -- профессиональный, требует углубленного изучения внутреннего языка "метакоманд" AGT, и позволяет значительно расширить его возможности.

Специальная версия AGT Big увеличивает число доступных для использования комнат с 100 до 200, объектов с 200 до 300.

Обзор AGT (версия 1.7) - Точность и легкость в понимании документации AGT не вызывает сомнений. Сопровождающие пакет AGT обучающие документы легко вводят даже новичка в суть программы, шаг за шагом объясняя процесс создания игры. Внутренний язык "метакоманд" описан в прилагаемой к системе таблице с исчерпывающими примерами и пояснениями. - Ложка дегтя: автору приходится иметь дело с многочисленными номерами, обозначающими ту или иную комнату, предмет или NPC. - Парсер AGT не так сложен, как Inform-овский, но он, тем не менее, очень хорошо подходит для несложной IF-игры. - Для AGT есть много игр-примеров, но сам язык сейчас применяется гораздо реже, чем TADS или Inform. - AGT работает на PC, Macintosh и Atari ST. - AGT -- не объектно-ориентированная система. - AGT не поддерживает графику или звук.

В начале 90-х энтузиасты взялись за возрождение AGT. Была выпущена пара версий т.н. AGT Master's Edition, гораздо сложнее оригинальной версии, с возможностями для поддержки звука и вставки статичных картинок или простейшей анимации. На данный момент, последняя версия AGT Master's Edition 1.6 доступна с известного в мире IF архива ftp.gmd.de.

AGT Master's Edition (1.6) - Документация к AGTME существует в полном объеме. - AGTME решает проблему AGT с номерами, позволяя пользоваться "метками" вместо них. - Использование AGTME ограничено PC-компьютерами. - AGTME увеличивает количество возможных комнат и объектов по сравнению с AGT раза в два. - AGTME позволяет использовать звуки и графику, а также вводит множество полезных функций, вроде учета времени, смены шрифтов и т.д.

Веское слово в пользу AGT: AGT, безусловно, прост для изучения, не требующий знания никаких других языков. (AGT стал моим первым языком). Встроенные функции AGT позволяют создать вполне неплохую игру. Программирование в AGT упрощено дальше некуда. Изучение "профессиональной" части AGT несложно и значительно расширяет его возможности. Огромная база игр, чтобы учиться по ним. Хороший парсер. AGTME гораздо мощнее AGT, дает возможность написать профессионально сделанные IF.

Веское слово против AGT: AGT не позволяет создать большую или сложную игру. Он накладывает жуткие ограничения на количество комнат, объектов и NPC, частично снимаемые AGTME. AGTME гораздо сложнее AGT. Не объектно-ориентирован, хотя и создает такую иллюзию, организованно управляя комнатами и предметами.

ALAN, Adventure LANguage

ALAN -- платформа, во многом схожая с AGT. Она также не требует знаний других программных языков, делая процесс создания IF как можно проще. ALAN, помимо английского, работает на шведском.

ALAN (версия 2.6) - Документация не столь исчерпывающая, как для TADS, Inform или AGT, но она достаточно полна и понятна для начинающего. В руководстве к ALAN есть пошаговое обучение созданию игры, с примерами и ответами на вопросы. - ALAN очень прост в использовании, хотя создать по-настоящему большую и сложную игру вроде "The Legend Lives" (TADS) или "So Far" (Inform) в нем не удастся. - Парсер по возможностям близок к Inform-овскому или TADS-овскому. - Существует необязательная библиотека к ALAN, дающая много полезных предметов в готовом виде. - ALAN доступен на PC, Macintosh, Amiga, Linux. - Существуют также несколько игр, написанных для ALAN. - Не объектно-ориентированный язык. - ALAN не поддерживает динамическое управление объектами, графику или звук.

Веское слово в пользу ALAN: Простота в использовании делает его пригодным для новичков. Программирование в ALAN, как и в AGT, упрощено. Вместе с тем ALAN достаточно гибкий язык, чтобы управлять сложными словарными конструкциями. Хороший парсер.

Веское слово против ALAN: Не объектно-ориентирован, хотя и организован наподобие Inform. Мало игр, чтобы использовать их в качестве примеров для обучения.

Вскользь о менее популярных платформах и платформах на русском языке.

Archetype

Archetype -- объектно-ориентированный экспериментальный язык, с минимальными возможностями, не требующий серьезных знаний в области программирования. Программы для Archetype смотрятся необычно, как и для Hugo. Полная поддержка динамического управления объектами. В остальном, язык довольно средний.

GINAS

GINAS требует глубоких познаний в языке Lisp. GINAS -- объектноориентированная, быстрая платформа. Для нее доступны игры Colossal Cave, Gold Skull, на которых можно ее изучать. GINAS поддерживает динамическое управление объектами.

Aventuro

Уникальная платформа, позволяющая создавать IF на языке эсперанто. Документация, парсер, словарный запас -- все на эсперанто. Ориентирован, скорее всего, на поклонников языка.

ADRIFT

Платформа под Windows, напоминает AGT по возможностям и логике создания комнат и предметов. Ставит себе целью свести программирование к минимуму, максимально упрощая этот процесс.

Adventure Builder

Платформа под Windows, позволяющая писать типичные квесты со статичными картинками и необычным интерфейсом.

URQ

Известная в Рунете платформа, позволяющая создавать очень короткие игры с менюшным вводом(*) наподобие книги-игры, на русском языке.

* "Менюшный ввод"
  термин, популярный в Рунете, обозначающий способ подачи игры, когда игроку
  на выбор предлагается несколько вариантов действий персонажа в виде меню.
  Как следствие, платформы, работающие таким образом, не являются
  объектноориентированными и не имеют парсера (за ненадобностью).

VadQuest

Платформа с графическим интерфейсом, жестко ориентированная на игры в стиле книги-игры, с элементами RPG(*), на русском языке.

* RPG, Role-Playing Game, Ролевая игра
  Будет рассмотрена в следующей главе.

OrcZero

Платформа под Windows наподобие Adventure Builder, позволяющая создавать короткие квесты, на русском языке.

IQ, InterQuest

Платформа в стадии разработки, похожая по возможностям на URQ, на русском языке.

Hydra

Платформа в стадии разработки, создается на основе языка Python, обещает быть близкой по возможностям к Inform, на русском языке.


Прочитав все вышеперечисленное, вполне можно сравнить различные платформы по возможностям и привлекательности, однако стоит помнить, что все сказанное -- мое субъективное мнение, поэтому надежнее будет сравнить описанные платформы в деле -- взглянуть на созданные ими игры, посмотреть на примеры исходников и спросить совета у людей, которым вы доверяете :-)

Я не буду прямо рекомендовать ту или иную платформу, а лишь вспомню напоследок старую шутку, бродившую в дебрях Сети, напоминающую о проблемах, стоящих перед автором в случае выбора между двумя замечательными платформами:

Вопрос: Так что же, TADS или Inform? Ответ: Да.

Глава 2

Интерактивная литература

Interactive Fiction стала действительно уникальным явлением. Зародившись, как простой текстовой квест, IF переросла в целое искусство -- искусство слова, совмещающее образность литературы и точность компьютерных программ. Не скованный графикой, игровой мир IF свободно пользуется лучшим из когда-либо созданных графических движков -- воображением человеческого мозга. Работы IF дают игрокам возможность полностью погрузиться в вымышленный мир, влиять на его развитие и внутреннюю жизнь. Замечено, что даже IF-произведения "нового времени", не содержащие паззлов в большом количестве, пользуются огромной популярностью. Так только ли в "интерактивности" дело?

Действительно удивительно, почему жанр IF не умер с появлением игр, наполненных графикой? Ведь было же короткое затишье -- на 1-2 года в самом начале 90-х? А потом движение IF опять пошло в гору, и теперь все активнее "набирает обороты", все больше его поклонников появляется в мире -- расцвет платформ Inform и TADS поднял IF на новую высоту.

IF -- "живое" искусство. Произведения IF ближе к игрокам, чем любая другая существующая игра. Автор и игрок -- оба говорят друг с другом через IF. В хорошую игру вкладывается часть души автора, как в хорошую книгу, вкладываются его мысли и переживания.

Научиться писать классные IF нельзя, равно как нельзя научиться писать классные книги. Можно лишь посмотреть на то, как это обычно делают другие и сделать по-своему.

Интерактивность

Давайте сначала обратимся к тому, чем отличаются игры IF от книг и фильмов. "Интерактивность" в понятии "интерактивная литература" означает "взаимодействие", способность получать всю информацию из источника, им в нашем случае является игра IF. Интерактивность подразумевает двустороннее "общение": поток информации от игры к игроку и от игрока к игре. Из этих двух "потоков", обеспечение второго наиболее сложно и требует от автора известной доли опыта и мастерства. В ходе нашего разговора на тему IF мы попытаемся рассмотреть, как можно обеспечить появление "второго потока" в разных случаях.

Что касается "первого потока", тут все более-менее ясно: он происходит автоматически во время игры. Тексты, ситуации, паззлы создают настроение, "рассказывают" игроку о себе и об игровом мире.

Насчет "второго потока": интерактивная литература несет очень высокий уровень взаимодействия игрока с игрой. Хотя игры IF и созданы авторами заранее, они не только позволяют игрокам искать и получать информацию (первый поток), но и "создавать ее" (второй поток). Такая иллюзия "созидания" сейчас возможна разве что еще в графических играх, да и то с сильным отвлечением внимания игрока от сути игры графикой.

"Первый поток" информации в IF в действительности использует больше чувств, чем просто зрение. Зрительная часть игры, очевидная в графических играх, очевидна и в IF, ведь мы играем в основном читая текст (первый поток). Но и в графических, и в текстовых играх мы используем руки, чтобы набирать текст или щелкать мышкой (второй поток). И вот тут рождается необычная сторона IF. Познавая игровой мир через текст, мы "втягиваем" его в наш разум и память. Границы между "реальностями" довольно быстро становятся все более размытыми. Мы читаем текст в ответ на команды, поданные компьютеру, и он начинает оживлять спящие чувства. Это происходит в основном в воображении, но частично может происходить и непосредственно внутри мозга, поэтому мы испытываем легкие, призрачные ощущения. Большинство игроков подтверждают, что это действительно происходит. Чувственные сигналы подаются в мозг, распознаются там, и теперь он не способен отличить реальные ощущения от таких "воображаемых".

Подобные "ощущения", назовем их "призраками" (чисто мое определение, если кому не нравится, высказывайте возражения) являются сигналами того, что автор на правильном пути, что его IF "задела" игроков. Каждый "призрак" -- это или образ, или звук, или запах, или вкусовое, или осязательное ощущение. Они вызываются текстом, текст является непосредственным импульсом, побуждающим "призрака" к действию.

Но помимо "призраков" могут рождаться и эмоции -- легкое волнение в предвкушении важного события, радость от разгаданного паззла, сопереживание персонажу игры и т.д. Автору желательно чувствовать это и попытаться "настроиться" на игроков еще до начала работы над игрой.

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

Форма работы

Существует множество разных подходов к написанию IF. Кто-то пишет сначала полный транскрипт(*), кто-то планирует игру на бумаге или в текстовом файле перед переносом ее в программу, а кто-то бросается сразу за компьютер, в едином марафонском рывке выполняя всю работу целиком.

Преимущества транскрипта в том, что вы стремитесь как можно точнее перенести его содержание в программу; при этом вы видите, как будет развиваться сюжет вашей IF, и можете планировать работу соответствующим образом.

* транскрипт
  сценарий игры, включающий в себя действия, которые совершил бы игрок, и
  реакции игры на них.

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

...

Грот
Лучи солнца тонкими линиями пробиваются сквозь трещинки в своде пещеры,
наполняя светом воду в небольшом углублении в полу. Время от времени откуда-то
сверху срывается крохотная капля и, стремительно падая, со звоном погружается
в воду, разбрасывая искрящиеся в лучах брызги. Шум волн отсюда почти не
слышен, и лишь слабый морской ветерок, влетающий в грот через южный проход,
напоминает о существовании моря снаружи.

Мелкий красный краб появляется из-под незаметного камня слева от входа.

> посмотреть на краба
Краб смотрит в ответ. Затем, резко повернувшись, он бочком скрывается в узкой
расщелине в восточной стене.

> поймать краба
Краб уже скрылся. Стоит быть немного расторопнее.

> чихнуть
ААА-ПЧХИ!!! Своды пещеры сотрясаются, когда звук, подобно ружейному выстрелу,
разносится по ней.

и т.д. ...

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

"Планировка" (концепция бесстыже содрана из работы К.E.Формана "Game Design At The Drawing Board") заключается в перечислении всех предметов в игре, всех комнат и всех NPC, их связи друг с другом. Например:

     Описание первой зоны в воображаемой игре
     "Предмет" означает тот объект, который персонаж может взять.
     "Декорация" означает тот объект, который персонаж не может взять.

       Комната: Гостиная
         (описание комнаты)

         Выходы:
           (все возможные выходы и куда они ведут)

         Предметы:
           (по-очереди все предметы и их реакции на различные действия
            персонажа) Например:
             Стол -- "Круглый стол красного дерева стоит у дальней стены."
               "осмотреть" -- "Стол прекрасно отполирован и отбрасывает на стену
                              тонкий луч света, падающий на него из окна."
               "сдвинуть" -- "Попыхтев пару минут, вы сдаетесь."
               ...

         Декорации:
           (По-очереди все декорации и их реакции на различные действия
            персонажа) Например:
             Обои -- Нет описания.
               "осмотреть" -- "Давно пора их сменить."
               "содрать" -- "Эй, не сейчас же!"

         и т.п.

Вы также схематично изображаете последовательность всех паззлов, что помогает избежать тупиковых ситуаций в игре (идея предложена Грэхемом Нельсоном). К примеру, вот частичная схема паззлов из моей существующей, но, к счастью, так и не увидевшей свет Интернета первой игры:

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

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

Разработка

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

Стиль

Стиль игры -- это то, как "подана" игра -- то, как она выглядит на экране и то, как она предлагает игроку взаимодействовать с собой. Стиль определяется техническими возможностями платформы, при этом многие мощные платформы позволяют смешивать стили.

Первый, и самый популярный, это "текстовой ввод", стиль классической игры "Colossal Cave". Каждая комната и все, что в ней находится, описывается системой, а игроку предоставляется возможность, управляя одиноким персонажем при помощи текстовых вводимых команд перемещать героя, взаимодействовать с объектами и т.д. Платформы Inform, TADS, AGT и многие другие создают игры как раз в этом стиле. Вот примерный отрывок из только что придуманной игры:

 > осмотреться
 Склад
 Висящая под потолком лампа затянута паутиной и вряд ли отреагирует на любые
 манипуляции с маленьким, когда-то белым выключателем у дверного проема
 справа. В дальнем углу в беспорядке свалены деревянные ящики с полустертой
 маркировкой на боках. От них к восточному выходу тянется хорошо заметный
 след, оставленный кем-то в толстом слое серой пыли. Очевидно, здесь недавно
 что-то протащили по полу, сдвинув по ходу синюю коробку, теперь лежащую на
 боку возле исчерканной мелом стены.

 > осмотреть коробку
 Синяя, с диагональной серебристой полосой шириной в два пальца, картонная
 коробка лежит в пыли.

 > посмотреть на след
 Широкий темный след был оставлен здесь кем-то совсем недавно. Через всю
 комнату к дверному проему что-то протащили, стерев пыль на темно-зеленом
 полу.

Второй стиль, "менюшный", воплощенный в платформе URQ, описывает комнату и ее содержимое, а у игрока все немногие возможные действия четко предложены в виде меню, возникающего в ключевых моментах развития сюжета. Последствия каждого выбора обычно гораздо более драматичные, чем в предыдущем стиле. "Менюшные" игры менее "интерактивны", чем их собратья с текстовым вводом. Такие игры сильно напоминают небезызвестные книги-игры, когда последствие каждого "действия", совершенного игроком, представлено в отдельном параграфе книги. Вот один отрывок из воображаемой "иггры" с "менюшным" вводом:

<Ночать маю иггру>
 Пасматреть на мае фступление
 Выхат

 сиводни я учюс писать тикставую игру. для начала я апишу фсю маю комнату.
 здес есть мой шкав и моой стол и мая кравать я на ней сплю (инагда). а ищо
 здес есть тиливизар там паказывают разные праграмы или пиридачи я тожы ево
 сматрю

 пасматреть на шкав
 пасматреть на тиливизар
<фключить тиливизар>

 па тиливизару идут тилипузики я их фсех знаю аднаго завут тинкивинки других
 завуут ляля по и дипси..

<пасматреть на шкав>
 пасматреть на тиливизар
 выключить тиливизар

 тут мой шкав он очинь бальшой там есть мая красная рубашка мне мама купила
 эту ррубашку

Различия между этими стилями очевидны, и оба имеют как преимущества, так и недостатки. Они могут сливаться друг с другом, но, тем не менее, важно избрать какой-либо из них в качестве основного и придерживаться его в течение работы.

Вдохновение и свобода выбора

Каждый раз перед работой над новой игрой можно начинать либо с концептуально новой идеи, либо, взяв уже использованную идею за основу, начать создавать свою оригинальную игру. По мере продвижения, вы заметите, что игра живет собственной жизнью, пытаясь облегчить путь своего развития и стать похожей на другие игры, память о которых сидит у вас в голове. Насколько это возможно, избегайте повторений (даже если вы создаете сиквел -- продолжение существующей игры).

 В 1995 году появилась популярная теперь, оригинальная игра "A Change In The
 Weather" (Inform) -- по сути, короткий, сложный и необычный рассказ о
 человеке, попавшем под дождь. Вряд ли настолько интересным стал бы еще один
 клон "Zork".

С другой стороны, в мире IF всегда есть место для хорошо написанного сатирического произведения (хотя игра "Pork" (AGT) поставила точку в пародиях на "Zork" :-). Тем не менее важно, чтобы уровень интереса, который игроки получают от вашей IF, не зависел от того, играли они в какие-либо другие игры, или нет.

Немногие игры по-настоящему близко подходят к имитации реального мира, поэтому вы вольны создать любую реальность в вашей игре. Автор свободен в создании даже другой логики, сути вещей в сотворенном им искусственном мире. Игра "Gostak" (Inform) использует даже уникальный язык в описании событий и явлений внутри игры. В замечательной игре "So Far" оригинально созданы сюрреалистичные миры, по которым путешествует персонаж.

Жанр

Давайте рассмотрим различные жанры IF-игр. Их можно выделить огромное множество, но наша задача -- не классифицировать IF (любая IF-игра может предоставить такую "гремучую смесь" из различных жанров и стилей, что тут рухнет любая классификация), а выделить основные и самые популярные направления, в которых работают авторы и изучить те клише, которые могут помешать вам создать шедевр.

Приключенческий жанр (adventure) достоин того, чтобы быть упомянутым первым. Это собирательное определение множества IF, основной целью песонажа в них становится решение паззлов. Он начался с игрой "Adventure" ("Colossal Cave"), ставшей классикой и давшей название всей индустрии приключений. Жанр приключенческих игр обычно не избалован хорошей сюжетной линией, и в таких играх персонаж часто безличен. Жанр стал объектом многочисленных пародий ("Guard's Duty" - Inform, "Pork" - AGT), но такие игры интересны, динамичны и создаются до сих пор.

Игры аdventure обычно проходят в замкнутом помещении вроде подземелья или гробницы. Как уже было сказано, персонаж в такой игре не определен (о персонаже см. следующую главу), его основная цель -- сбор сокровищ, либо поиск выхода из помещения. Приключенческие игры -- благодатная почва для всевозможных механических паззлов -- закрывающиеся двери, комнаты-ловушки, скрытые кнопки, рычаги, переключатели, и т.п.

Другие примеры в мире IF: "Hunter, In Darkness", "Multi-Dimensional Thief" (AGT), "Zork 1-3".

Игры в жанре "экшн" (action или abuse) предполагают либо "отлов" и "отстрел" всевозможных монстров, либо иную другую активную деятельность (см. "Freefall" - Inform). Они обычно проходят в режиме "реального времени".

Другие примеры в мире IF: "Robots" и "Bomber" (Inform), "Зомби 1-2".

Игры IF на бытовые темы (slice of life) -- своеобразные симуляторы реальной жизни. В идеале, перед игроком не должно ставиться четкой цели решения определенных паззлов, но они должны возникать как часть игрового мира. Фактически же такое трудно достижимо. Поэтому и в "бытовых" играх есть четко просматриваемые паззлы. В игре "Visitor" (Inform), участнике IF Art Show 2000, суть игры заключается в беседе гостя с хозяином дома. "House of O's" (AGT) -- имитация реальной жизни людей. В игре "Dinner With Andre" (Inform) имитируется поход в ресторан.

В таких играх большое внимание уделяется интерактивности, первой части понятия IF -- "Интерактивная литература". Здесь нет "затертых" сюжетных ходов, такие игры интересны и всегда необычны. Все зависит от фантазии и терпения автора.

Здесь же рядом стоит упомянуть и исторический жанр (history). В этих играх действие происходит в какую-либо прошлую эпоху, и для них характерны "присущие" времени действия, персонажи, их манера одеваться, стиль речи и т.д.

Исторический жанр -- едва ли не самый разнообразный по возможным темам и масштабам. В то время, как в литературе произведения на исторические темы нередки, в IF их не так уж и много. IF лишь заимствует темы и сюжеты, преобразуя их в той мере, в какой это необходимо для создания интерактивности, ведь эпические масштабы, обычные для исторических произведений в литературе, неприменимы к большинству IF-игр. Если вы планируете написать IF в этом жанре, используйте исторических персонажей и обратите внимание на достоверность.

Если вы хотите, чтобы игровой мир вашей игры был как можно ближе к реальному, помните, что такая игра чрезвычайно сложна в исполнении. Создание ее сравнимо с созданием целого мира с его уникальными законами и правилами. Вы должны будете "с нуля" написать кучу законов природы (чего требует имитация реальной жизни).

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

Примеры игр на исторические темы: "Muse" и "Jigsaw" (Inform).

Игра "Lurking Horror" от компании Infocom стала классикой жанра "хоррор" (horror) в мире IF. Это настоящий триллер со скрипучими дверьми, "неосознанными страхами" и всеми остальными прелестями. Многие авторы после "Lurking Horror" оценили ее успех и создали нечто подобное. Обычно "хоррор" сопровождается вкраплениями мистических элементов (дань уважения Г.Лавкрафту). Если вы выбираете этот жанр, обратитесь к творчеству Стивена Кинга, Говарда Лавкрафта и Эдгара Алана По.

Создание игры в жанре "хоррор" -- дело, требующее наличия определенного настроя и, желательно, присутствия параноидальных "заскоков" у автора :)

Обычно действие "хоррор" происходит в заброшенном доме/замке, населенном нечистым духом/духами, плодящимися и пугающими игрока. Часто этот дом бывает заодно и местом, откуда какой-нибудь Древний Ужас планирует начать захват планеты.

Кто может выступить в роли главного героя? Это может быть и ученый - парапсихолог; и студент, забредший поглядеть на призраков; и коллекционер редкостей, позарившийся на старинное добро; и последователь древнего культа, жаждущий власти над миром, да много еще кто.

Основные элементы игр жанра "хоррор", думаю, уже понятны. Скрип дверей, половиц (если игра происходит в доме, то этот дом непременно очень старый и трухлявый), шаги над головой, в подвале, за спиной. Плач ребенка, крики ворон, завывание ветра, зомби, скелеты, призраки. Потайные двери, запертые окна, куча пугающих теней -- вот непременные атрибуты страшилок.

 Игра "Nevermore" (Inform) основана на произведении Эдгара Алана По "Ворон", и
 ее особенностью являются его же стихотворные вставки, тоскливая и гнетущая
 атмосфера старого дома с высокими стенами, заставляющими игрока задыхаться. В
 "Anchorhead" (Inform) на игрока давит холодный город с молчаливыми жителями и
 промозглым серым туманом, мешающим ходить и заглушающим звуки. "Awakening"
 (Inform) -- история о зомби, вставшем из могилы. Комментарии, я думаю,
 излишни.

Другие примеры в мире IF: "Fear" и "Theatre" (Inform), "New England Gothic" (AGT) и "Тень Злобы".

Новую эпоху в жизни планеты и, впоследствии, в мире IF, начала книга Джона Рональда Роэла Толкиена "Властелин Колец". Созданный им мир Средиземья надолго стал эталоном приключенческого жанра и законодателем жанра фэнтези (fantasy) и ролевой игры.

Фэнтези -- один из трех наиболее популярных жанров IF, наряду с фантастикой и комедией. Хороший выбор для любителей средневековья, магии и драконов с троллями. Для каждой платформы можно найти десятки подобных игр, и их, наверное, уже слишком много. Это жанр, любимый десятками тысяч людей во всем мире; жанр со своими правилами. Поэтому для написания такой игры рекомендуется быть одним из ценителей жанра.

Ролевые игры (RPG) не являются отдельным жанром -- "ролевые элементы" используются во многих играх разных жанров. В такой игре упор делается на одного или нескольких персонажей, работающих в команде, и на специальные значимые изменяемые характеристики, влияющие на ход игры, такие, как "ловкость", "выносливость", "интеллект", присутствующие и развивающиеся у каждого персонажа. Магия, умения (см. ниже) и "случайные битвы"(*) обычно являются важной частью ролевых игр. Помимо этого, классические RPG предлагают "эпический сюжет", наподобие древнегреческих эпосов и углубленное взаимодействие с другими персонажами (NPC). В качестве примера можно привести серию "Zork" с изменяющимся показателем "здоровья" и многопользовательские игры.

* "случайные битвы"
  популярные в аркадах и RPG битвы с враждебно настроенными персонажами,
  частота появлений которых зависит от случайно выпавшего числа.

Что отличает фэнтези от, скажем, фантастики?

Действия фэнтези проходят обычно в "средневековье" -- в них всегда есть место колюще-режущему оружию, доспехам и доблестным рыцарям. Для создания игрового мира фэнтези потребуется большое количество времени. Традиционно такие миры огромны по масштабам и предоставляют игроку массу места для прогулок. Дальше, миры фэнтези -- это "героический эпос". Персонажем (или персонажами) такой игры просто не может быть старик со слабыми коленками и ишиасом в груди. Это Герой с большой буквы, спасающий в худшем случае принцессу, в лучшем -- королевство или всю землю.

 "Dim The Mighty" -- это своего рода пародия на героический эпос в играх
 фэнтези, где главный герой, рыцарь с ведром вместо шлема на голове и с
 прогрессирующей амнезией в ней, отправляется на поиски чудо-собаки. Или это
 была жаба? Ну, это определенно было что-то важное.

В мире фэнтези в изобилии живут драконы, эльфы, тролли, орки, гоблины и прочие фантастические существа. Он обязательно пропитан магией - Пятым Элементом большинства фэнтези-миров (см. ниже).

Игры в этом жанре очень часто имеют "элементы RPG", в них вносятся также и многочисленные битвы, и оружие. Это могут быть луки, арбалеты, мечи, булавы и т.п. Такие показатели, как "прочность" оружия, его вес, размер, часто становятся отличительными особенностями игр фэнтези.

Создавая систему битв, придумайте, будут ли в игре схватки один-на-один или эпические баталии "стенка на стенку", как будет определяться победитель, распределяться урон от ранений, как будут проходить сами сражения -- в пошаговом виде или в реальном времени. Будут ли в игре статичные, заранее размещенные противники, или они будут появляться то там, то тут случайным образом.

Персонажи фэнтези-миров часто необычны по своей природе. Автор волен выбирать любых персонажей по своему вкусу. Я, правда, предостерегаю вас, избегайте толкиеновских определений и описаний -- уж слишком много есть подобных игр. Почему бы не придумать свои? По-новому опишите характер и внешность драконов, эльфов и других обитателей вашего мира. Главным персонажем может быть ученик чародея или сам чародей, король в отставке, желающий вернуть себе трон, просто какой-нибудь крестьянин (раз уж большинство фэнтези-игр разворачивается в средневековой обстановке).

 В маленькой игре "Troll" главный персонаж -- тролль из одной из начальных
 сцен классической игры "Zork". В игре "Guard's Duty" вы поступаете на работу
 в одно из крупнейших подземелий мира, дабы охранять его от периодических
 набегов пронырливых искателей приключений и сокровищ.

Изюминкой вашей игры в жанре фэнтези может стать обилие анахронизмов, хотя если вы не создаете игру изначально в комедийно-саркастичной манере, с этим не стоит перебарщивать -- в конце концов, не очень умно будет смотреться во вполне серьезной игре обилие неоновых ламп в логове дракона, или ступа Бабы-Яги на ядерном топливе.

Другие примеры в мире IF: "Travels in the world of Erden" (Inform), "Aayela" и "Djinn" (TADS), "Древний Кинжал 1-2" (URQ), "Apprentice" и "Toho Academy" (AGT).

Фантастические сюжеты всегда пользовались популярностью и в литературе, и в IF. Фантастика (sci-fi) привлекает возможностью создать необычный мир, интересный и новый даже для опытного игрока. А технологии будущего и инопланетяне -- вообще благодатная тема для сотен игр. С создания фантастических сюжетов начинают многие авторы. Темами для сюжетов являются:

Будущее (год 2050, 2060 и т.п. по нарастающей) и космос.

Здесь и космические полеты ("Offensive Probing", "Enlisted" - Inform, "Tossed in Space" - AGT), и жизнь на других планетах ("Pytho's Mask" - Inform), и будущее Земли ("Город и Звезды" - URQ). В этой тематике популярны сюжеты-предостережения (аналогичные литературным) -- апокалиптические картины мира после ядерной войны ("LASH" - Inform, "Four Minutes To Midnight", "Mindfighter") и другие.

Сюжеты многих игр про космические полеты навеяны сериалами "Star Wars"/"Звездные Войны" и "Star Trek"/"Звездный Путь". Сложившийся в результате образ "будущего" с завидным однообразием эксплуатируется в фантастических IF.

Популярны в мире IF и игры по мотивам фантастических книг и фильмов. Игра "Tossed in Space" написана по мотивам телесериала "Lost in Space", а русскоязычная "Город и Звезды" -- по книге А. Кларка.

Параллельные миры.

Также благодатная почва для авторов IF, прекрасно реализованная в играх "So Far" (Inform) и "Toho Academy" (AGT). Автор волен создать любые физические законы для нового мира, поместить персонаж в любую мыслимую ситуацию. Подобно известному телесериалу "Sliders"/"Скользящие", ваша игра может имитировать несколько разных миров.

Путешествия во времени -- захватывающая тема со времен Герберта Уэллса.

Замечательные представители этой темы: "Jigsaw", "Time: All Things Come To An End" (Inform) и "TimeSquared" (AGT) пытаются воплотить в IF идею "машины времени". Путешествия в будущее и прошлое всегда будут интересной темой, во всяком случае, пока "машина времени" не будет изобретена (или предана огласке, если она уже существует :)

При создании игры обратите внимание на историческую достоверность. Читайте писателей-фантастов (тема эта богата воплощениями) и смотрите соответствующие фильмы.

Сюжеты Hi-Tech -- роботы и технологии.

В этой тематике работают многие авторы. В игре "Spider And Web" (Inform) используются всевозможные технологические "примочки" вроде электронной отмычки и взрывпакета с металлоразъедающей кислотой, а игроку дается возможность почувствовать себя шпионом. В "Bad Machine" и "LASH" автор изучает тему разумных роботов. В "Babel" (TADS) -- тему опасных научных экспериментов.

Пришельцы и все, что с ними связано.

Игры про пришельцев обычно сводятся к тому, что персонаж должен избавить местность (космический корабль, планету, галактику) от вторгшихся инопланетян.

Началом детективного жанра (detective) в IF стала серия игр от Infocom "Suspect", "Witness" и "Deadline". Есть преступление, есть сыщик и есть очевидная цель -- раскрыть преступление.

Иногда действие в играх этого жанра разворачивается по классической схеме "английского убийства", когда все подозреваемые и сыщик находятся в замкнутом помещении. Популярны также игры в стиле Азимова, совмещающие детективный сюжет с фантастическим.

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

Примеры в IF: "Deadline", "Enemies", "Dangerous Curves" и "Intruder" (Inform), "Sherlock" (AGT).

Комедия (comedy) - один из самых популярных жанров IF, наряду с фантастикой и фэнтэзи. Комедийные элементы вносят оживление в любую игру, так что неудивительно, что появилось множество самостоятельных IF, написанных полностью в жанре комедии.

Разновидностью его являются игры-пародии на другие IF. Яркие примеры -- "Being Andrew Plotkin" (Inform), содержащая элементы игр известного автора Эндрю Плоткина, и "Pork" (AGT) -- пародия на "Zork" -- классическую игру Infocom. Обратите также внимание на игры "Dim The Mighty" (AGT), "Comp00ter" и "Ad Verbum" (Inform), и на "Приключения Банана и Компании" (URQ) - как пример русской игры с... э-э... "черным юмором".

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

Говоря о жанрах, стоит упомянуть, что многие прекрасные IF нельзя отнести четко ни к одному из перечисленных жанров. Будет замечательно, если ваша IF станет настолько же самобытной и интересной.

Итак, мы рассмотрели примерные "образы" существующих IF-игр. Давайте перейдем непосредственно к процессу создания вашей IF.

Основные правила

Искусство написания IF лежит совсем рядом с искусством написания рассказа. Автор должен все время помнить об атмосфере игры и о том, интересно ли игроку в данный момент сидеть у компьютера.

Кроме тех мест, где неясность или иллюзия создаются намеренно, игроку должно быть известно, каковы текущая ситуация, обстановка и цели его персонажа. География (см. ниже) всей игры и каждой комнаты в целом должна быть ясна. Иногда интересно или необходимо скрыть истинную сущность предмета или местности, но в большинстве случаев они должны быть четко описаны, ведь кроме как с помощью ваших описаний игрок ничего не узнает об игровом мире. Полезное правило здесь -- поместить себя на место "тупого" игрока, который не помогал вам работать над игрой. Ему всегда должно быть ясно, каковы его цели, где он находится, что рядом с ним, что и где произошло и происходит.

Игра должна быть логичной. Это совсем не обязательно означает "реалистичной", ведь многие IF даже отдаленно не походят на известную нам реальность. Вы полагаетесь здесь на логичность вашего воображаемого мира.

Если какое-то явление работает в одной части мира, оно работает и в любой другой. Если краской можно пометить один камень в одной комнате, то игроку должно быть позволено наляпать краски на любой предмет в любой комнате (в противном случае, игра должна исчерпывающе объяснить, почему персонаж не может ляпать краской, где ему вздумается). Это правило меньше относится к менюшным играм.

Качество описаний, использованных вами в одних комнатах, должно сохраняться по всей игре. Если качество "скучковано" в одном месте, вся игра смотрится очень слабо. Если ваш интерес к своей игре угасает, отложите ее в сторону и вернитесь к проекту через пару недель, иначе вы "нарубите дров".

Интерактивность отличает IF от книг и фильмов. Важно, чтобы игра давала хорошие ответы на возможные действия игрока (это в меньшей степени относится к "менюшным" играм). Стандартное "Это невозможно..." или что-то в этом роде не должно появляться слишком часто. Постарайтесь предугадать возможные действия игрока и запастись оригинальными ответами игры. Если действия игрока близки к желаемым, не скупитесь на подбадривающие реплики.

Игра должна "продвигаться", поддерживая интерес игрока. Важен не только ваш сюжет, но и то, как вы его подаете. Слишком долгие паузы в одном месте игры и неожиданно быстро сменяющие друг друга события в другом одинаково утомляют и "отпугивают" игрока. "Продвижение" может достигаться путем открытия новых мест для исследований. Неинтересны передвижения из одной безымянной пещеры в другую. В каждой должно быть что-то, реагирующее на действия персонажа или, по крайней мере, отличающее ее от соседей.

Дайте игроку время подумать над сюжетом, пока он не столкнулся с новым поворотом истории. Однако, этого можно достичь только замедлением продвижения игрока сквозь игру. Важно сделать это грамотно, так, чтобы не оттолкнуть игрока от игры вообще.

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

Ничто так не захватывает дух, как предвкушение. Если вы намекаете игроку, что его ждет нечто интересное за поворотом, это поднимет его настроение. Важно, чтобы то, что он обнаружит за поворотом, не обмануло его ожиданий. Предвкушение может варьироваться от ясной подсказки вроде "вы слышите мерный приближающийся топот" до пугающего намека "неестественная тишина спустилась на покрытые туманом холмы".

Сюрпризы являются неотъемлемой частью IF-игр. Однако "сюрпризы" вроде "огромный гоблин выскакивает из темноты" быстро надоедают, если повторяются каждые десять минут. Для наращивания интереса дайте игроку понять, что "с беспечными игроками случиться может всякое".

Раскройте в своей IF филосовскую или человеческую проблему, волнующую лично вас. Если это будет не просто тупое блуждание игрока по игровому миру, будьте уверены, вашу IF заметят и оценят -- ваш труд не пропадет даром. С другой стороны, игрокам должно быть интересно не только читать тексты и восхищаться тонкостью вашего мышления, но и ИГРАТЬ в игру.

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

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

Идея

Если вы решили начать работу над игрой IF, это значит, что у вас уже есть та единственная идея, призванная обеспечить ей успех. Это может быть как просто необычная обстановка, в которой будет разворачиваться сюжет, так и один-единственный сюжетный ход, который стоит того, чтобы вокруг него выстроить интересную игру (так было при создании игры "Spider And Web" - Inform).

Идея может быть любой. Подумайте над необычными сюжетными ходами. Что, если в вашем игровом мире время течет назад? Или метеор, убивший динозавров, так и не долетел до Земли? Или отсутствуют вкус, цвета и звуки, как мы их понимаем, а вместо них люди испытывают абсолютно другие "пять чувств"?

 Допустим (я не считаю эту идею особо оригинальной), наш игрок, отважный
 космический путешественник, попадает в абсолютно незнакомый ему мир, где и
 небо не такого цвета, каким должно быть, и воздух не так пахнет, и предметы
 не такие, как всегда. Этот путешественник сталкивается с необычными
 обитателями этого неисследованного мира, он изучает его, собирая данные для
 возвращения домой. И желательно, чтобы игрок лишь под конец игры, с помощью
 подсказок и догадок, понял, что его герой -- инопланетянин, попавший на
 Землю.

Идея должна быть соответствующей возможностям. Если вам понравилась книга или фильм, подумайте, как перенести ее/его в мир IF, и время от времени, вы будете сталкиваться с оригинальной и "соответствующей" идеей, и она станет частью вашей игры.

Секс является довольно деликатной темой для игры. В игре "Leather Goddesses Of Phobos" просматривается умеренная порнографическая тематика. Здесь, в зависимости от пола игрока, игра управляет своими персонажами и, надо признать, делает это со вкусом. Многие другие игры, вдаваясь в тему секса более подробно, часто делают это бездарно, оскорбляя женскую часть аудитории IF.

Когда идея приходит, а это часто происходит в самый неожиданный момент, держите наготове бумагу и карандаш, чтобы записать ее. Что дальше? А дальше подумайте и конкретизируйте ее -- наметьте поле для работы.

 В примере с пришельцем ясно, что до поры до времени игрок не должен знать об
 истинной сути персонажа (см. ниже раздел "Ненадежный рассказчик"). Можно
 придумать также ситуации, где игрок встречался бы с жителями Земли, которые
 представлялись бы ему уродливыми и отталкивающими, а также попал бы в ряд
 экстремальных ситуаций. В свете этого потенциального сюжета для игры грех
 будет не взглянуть "со стороны" на некоторые наши обычаи и привычки,
 например, на встречу Нового Года.

В вашу IF войдут ваши собственные мысли, воспоминания и впечатления. Скорее всего, ваши NPC будут очень похожи на тех людей, которых вы встречали, паззлы -- на те загадки и головоломки, которые вам нравится решать и разгадывать. Берите как можно больше из своей реальной жизни и старайтесь рассказать о ней игрокам.

Дайте идее "отлежаться", а затем придайте ей свежесть, добавив пару деталей. Нарисуйте карту местности, в которой будет проходить игра. Перечитайте внимательно книгу, или пересмотрите фильм, вдохновивший вас. Работайте с другом, поддерживающим вас. Карты всех комнат становятся прекрасными источниками вдохновения. Зачастую простой план здания или местности может дать импульс такой идее, которую не выдал бы рассудительный ум.

Работы Interactive Fiction дают такое чувство вовлеченности и взаимодействия, что за счет "эффекта присутствия" некоторые произведения IF способны положить на обе лопатки даже прекрасно написанные книги или замечательно снятые фильмы, поэтому не грех будет создать пару таких шедевров ;-)

Нет ничего плохого в том, что какие-то вновь появившиеся мысли заменят те, что сформировались у вас в ходе прежней работы, при том, что вы сохраняете первоначальные идею и стиль. Отличная первая "задумка" для игры сама потянет за собой цепочку ассоциаций.

О линейности и нелинейности

В компьютерных играх, и в IF в частности, существуют понятия "линейности" и "нелинейности" сюжета. Полезно будет определить для себя ту форму, которую вы будете использовать в своей игре.

Линейное развитие сюжета предполагает четко выделенную "линию", по которой игрок ведет своего персонажа, как по рельсам. Событие Б идет за событием А, вслед за ними появится событие В; комната 5 откроется только после решения паззла в комнате 4 и т.д. Персонаж бессмертен, интересный сюжет в таких играх может быть проработан очень детально, но он часто оказывается предсказуемым. К тому же, "линейность" сокращает "интерактивность" игры. Линейная игра почти всегда становится похожей на книгу.

Преимущество линейной игры прежде всего в том, что это -- самый простой выбор для начинающего игрока. Линейность позволяет создать захватывающий сюжет, не требуя проработки ситуаций вроде "а что будет, если игрок откроет сначала левую дверь?", что в другой игре могло бы повлечь за собой новую сюжетную линию.

Другая форма исполнения игры более сложна, но и более перспективна. Это "разветвление сюжета", или plot branch. "Разветвление" означает наличие в игре нескольких сюжетных линий или элементов, держащихся вокруг вашей первоначальной идеи и проявляющихся в зависимости от действий игрока.

В работе "Whizzard's Guide to Text Adventure Authorship" выделяется четыре типа сюжетных разветвлений.

1. Тупик

Это тот тип plot branch, который все иферы хорошо знают. Персонаж, попав в "тупик", либо погибает, либо навсегда застревает в нем. Скажем, герой может попасть в герметически закрывшуюся за его спиной газовую камеру, где он неминуемо погибнет. Или он может упасть в яму, откуда не сможет выбраться, что бы не делал. Очень часто без воли автора возникают "непредсказуемые" тупики, когда для дальнейшего развития сюжета персонажу требуется какой-либо предмет, безвозвратно утерянный до этого, либо по незнанию пропущенный, но в обоих случаях невосполнимый.

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

Выглядит "тупиковое разветвление" примерно так:

 Пример "тупикового разветвления" можно взять из любой игры, где персонаж
 может каким-либо образом умереть.

2. Необязательный путь

Этот тип разветвления предлагает игроку (в явной или неявной форме) необязательный путь развития сюжета, служащий либо источником дополнительных "очков" для персонажа, либо ведущий к более приятной концовке игры, либо позволяющий избежать неприятных или трудных мест в игре, либо облегчающий решение какого-нибудь паззла. Им может быть какая-нибудь секретная дверь или задание от NPC.

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

"Обход" позволяет избежать опасного "Участка А", хотя игрок может направить персонажа "напрямую", по сложному пути.

После посещения необязательной "боковой тропинки" (и получения за это некоего вознаграждения :)) персонаж возвращается к основной сюжетной линии. "Тропинку" (а также любое задание, которое выполняет игрок) часто называют "квестом", и важно отличать это название от обозначения текстового квеста вообще.

3. "Включающая" развилка

Это простое разветвление из двух или нескольких путей, когда игрок выбирает, куда он поведет своего персонажа. Примечательно, что реального "выбора" здесь не происходит. Чтобы завершить игру, персонажу придется пройти по всем "дорожкам", правда, в любом порядке. Это напоминает многочисленные приключенческие игры вроде "Zork", где игрок должен собрать все сокровища, и неважно, в каком порядке он это сделает.

 Игра "Travels In The World of Erden" предлагает игроку на выбор около десятка
 различных "квестов", которые он может выполнять в любом порядке, но которые в
 конце концов придется выполнить все, чтобы прийти к единственному финалу
 игры.

4. "Исключающая" развилка

Разветвление, реже встречающееся в IF из-за сложности своего выполнения. Когда игрок делает выбор "на развилке", он вынужден придерживаться сделанного выбора в течение всей дальнейшей игры. Это значит, что некоторые ситуации, финалы, а, возможно, и вся игра отсюда меняется в зависимости от выбора. Персонаж открывает левую дверь вместо правой -- появляются новые персонажи, изменяется атмосфера в игре, и открыть другую дверь он уже не сможет. Если выбор делается в начале, то в простейшем варианте это выглядит примерно так:

 В игре "Dim The Mighty" (Inform) используется четыре независимых сюжетных
 линии. Игроку в скрытой форме предоставляется выбор в начале игры, и в
 дальнейшем сюжет не отклоняется ни на шаг от выбранного пути. В "Spider And
 Web" (Inform) игрок может завершить игру одним из трех возможных финалов, в
 зависимости от сделанного осознанного выбора в самом конце игры.

Здесь стоит отметить, что "необязательные пути" и "исключающие развилки" предлагают наибольший уровень интерактивности в игре. Именно они дают возможность игроку принимать реальные решения, ведущие сюжетную линию и формирующие "историю" в игре.

В любой IF вы можете использовать разные комбинации из разветвлений.

Использование чрезмерного количества разветвлений сюжета "чревато", особенно для начинающих авторов. С каждым добавленным ответвлением, даже "необязательным", не говоря уже об "исключающем", размеры игры и объемы необходимой работы растут в геометрической прогрессии. Тем не менее, старайтесь использовать два-три разветвления даже в маленькой игре, так как они делают IF гораздо более интересной.

Сюжет

В современных приключенческих играх персонажу уже недостаточно просто выжить в игровом мире. Игроку нужен прекрасно сформированный сюжет, и пусть он будет таким, чтобы игрок посвятил время вашей работе IF хотя бы ради того, чтобы насладиться им. В игре должна присутствовать соответствующая атмосфера, подкрепляющая сюжет и подкрепляемая процессом его развития.

Нетрудно понять, почему IF постепенно перешли от простых "симуляций" типа "Colossal Cave" или "Advent" к богатым событиями и просто интересным сюжетам. Поначалу в играх сюжет стал чем-то вроде "вешалки" для паззлов. Переход к более сложным сюжетам, а затем и к IF без паззлов, обозначил грань между текстовыми квестами и чистой Interactive Fiction. Симуляция, текстовые квесты были всего лишь игрушкой, в то время как "сюжетные" IF стали рассматриваться ценителями как произведения искусства, достойные звания литературы.

Сюжет, "начало"

Традиционно IF-игра делится на три условных части -- "начало", "середину" и "финал".

"Начало" должно быть быстрым, коротким и привлекать внимание. Если вы помещаете сюда слишком трудные паззлы, вы потеряете тех, кому быстро наскучит возиться с ними. Если здесь вставлено слишком "требовательное" ограничение во времени, игрок устанет возиться с сохранением/восстановлением игры, не поняв, ради чего все это делается. В "начале" надо описать место действия, раскрыть мотивацию(*) персонажа, его личность(*) и ввести важнейших NPC.

* Мотивация
  в IF -- цели, преследуемые NPC игры и главными персонажами. Исследование
  проблем мотивации см. в следующей главе.
* Личность
  в IF -- основные, часто выраженные в цифрах, характеристики NPC и главных
  персонажей, определяющие их поведение в игровом мире. Больше о личности см.
  в следующей главе.

"Начало" условно. Игрок вряд ли заметит (да и не должен) переход от "начала" к "середине" -- это лишь помогает автору "разделить" игру на составные части. Истинная цель "начала" -- заинтересовать игрока, познакомить его с игрой и с игровым миром.


В следующем абзаце есть "легкий" спойлер(*) для игры "Zork"
* Спойлер, spoiler
  прямая подсказка, рассказывающая о каком-либо эпизоде игры или о решении
  какого-либо паззла. Спойлеры я субъективно делю на "легкие", "средние" и
  "жуткие" :), по степени "опасности". "Легкий" рассказывает о незначительном
  участке сюжета или дает небольшую подсказку, не касаясь паззлов. "Средний"
  рассказывает о решении какого-либо паззла. "Жуткий" раскрывает основную идею
  игры или решение основного паззла.

Дайте игроку с самого начала достаточно места для прогулок. Запертый в одной комнате без очевидных выходов, игрок быстро столкнется с нарастающим чувством клаустрофобии. Тем не менее, не давайте игроку десятки комнат для исследований. Это сбивает и не дает сосредоточиться на целях персонажа. Пусть в "начале" будет четыре-пять комнат, логически связанных между собой, например, комнаты в квартире. Дайте игроку четкую цель, что он должен сделать, чтобы попасть из "начала" в "середину". К примеру, в "Zork" "началом" были первые несколько "комнат" вне подземелья, а игрок должен был найти и открыть дверь, ведущую в подвал, чтобы попасть в "середину".

Сюжет, "середина"

После завершения условного "начала" игрок попадает в "середину". Обычно "начало" отделено от "середины" (но не всегда). Это может быть выполнено с помощью закрывшейся за спиной у игрока двери, или попаданием игрока в совершенно иную ситуацию. Скажем, искатель сокровищ, вошедший в египетскую пирамиду (начало), наступает на скрытую плиту в полу, и проход за его спиной закрывается (вход в середину), либо ученый-неудачник наконец запускает свою машину времени (начало) и попадает в будущее (вход в середину). Это ограничение свободы перемещения служит для облегчения жизни игрока: ему уже не нужно будет бродить по предыдущим ста комнатам, выискивая, не изменилось ли здесь что-нибудь.

В "середине" наиболее широко раскрывается место действия -- по сути, игровой мир. Место действия -- это результат эволюции вашей идеи, воплощенный в игровом пространстве вашего мира. Чтобы заставить игрока по-настоящему "ощутить" себя внутри игры, требуется задуматься, насколько реален ваш игровой мир? Допустим, ваша игра происходит в современном городе. Постарайтесь найти его фотографии (если это не ваш родной город), карты улиц, все, что с ним связано. Если вы никогда не были в том месте, в котором проходит ваша игра, изучите по информационным источникам дома, людей, их обычаи, необычные растения и животных. Это в полной мере относится к историческим играм. Для IF на тему Киевской Руси грех будет не изучить ХОТЯ БЫ стиль речи и текстов того времени. Возможно, вы не будете (да и не надо) использовать в игре ВСЮ информацию, какую найдете, но вы по крайней мере будете об этом знать и формировать игру в соответствующей атмосфере.

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

Вообще, при разработке игрового мира вы должны:

1. Определить, соответствует ли он вашей основной идее.

2. Разработать рельеф местности, ее внешний вид -- возвышения, овраги, и тому подобные вещи. Обратите внимание на то, как будут связаны различные "кусочки" вашей местности. Заложите основные правила существования мира -- либо здесь сухо, как в пустыне, либо постоянно льет дождь, и т.п.

3. Определить месторасположение основных ориентиров. Ориентиры -- это те места, где будут находиться ваши паззлы (если они есть), NPС, предметы и т.п.

4. Заполнить "пробелы". Здесь вы уже продолжаете работу над игрой.

В "середине" вы развиваете свою идею, заложенную в "начале". Ведите персонажа по игре путем подачи ему нескольких целей для выполнения, подкидывайте ему паззлы, смешивая сложные с легкими. Если в вашей IF есть NPC, развивайте их и вводите в активное участие в игре. Начинайте давать легкие намеки на то, что ждет игрока в финале, но ни в коем случае не раскрывайте финал полностью. Замечательно будет, если вы запланируете несколько концовок для игры. По возможности разветвляйте сюжет, чтобы не создавать у игрока ощущение, будто он ни на что в игре не влияет. Придерживайтесь единой темы во всех местах -- ничто так не раздражает в современных играх, как обилие не к месту вставленных предметов и паззлов. Можете разделять "середину" на части -- во-первых, для своего удобства, во-вторых, чтобы не сваливать квадратные километры площади на бедного игрока. Обычно это проводится с помощью запертых дверей, к которым игрок постепенно находит ключи, но вы можете придумать что-нибудь более подходящее вашему миру.

Сюжет, "финал"

Финал должен логически завершать игру. Все недосказанное должно быть раскрыто, все злодеи повержены, Вселенная спасена. Игрок должен понять, что произошло в игре и почему, что произойдет со всеми персонажами в будущем.

Последний паззл не должен быть самым сложным.

В играх в стиле "экшн" последний поворот сюжета может быть как угодно драматичным -- пусть он хоть перевернет все с ног на голову, но игрок должен воскликнуть "Как же я раньше не додумался(-лась)!".

Последняя сцена должна быть самой лучшей в игре. Часто используется прием, когда первая и последняя сцена в игре одинаковы, с той разницей, что в последней сцене игрок обладает новыми, приобретенными в процессе игры знаниями, по-новому освещающими начало игры.

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

Даже хэппи-энд не является гарантией хорошей концовки, достаточно взглянуть на игру "Photopia" (Inform), где прекрасно подан трагичный сюжет.

Еще элементы сюжета

Другое, более подробное "деление" сюжета, отлично подходящее для игр в жанре детектива или напоминающих американские фильмы "экшн", предлагается в уже упомянутой работе "Whizzard's Guide To Text Adventure Authorship".

1. Начало

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

2. "Зацепка"

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

3. Развитие

Игрок преодолевает препятствия - паззлы, активно продвигается вперед. Держите его в напряжении, пусть оно нарастает по мере продвижения сюжета.

4. Маленькое Непредсказуемое Событие

Это какое-нибудь маленькое происшествие, заставляющее игрока "затаить дыхание" -- к примеру, рычаг, приводящий в действие важный механизм, но только через пару ходов после того, как игрок потянул его. Как раз в тот момент, когда игрок был готов разочарованно вздохнуть, механизм начинает работать.

5. Поворот

Должен присутствовать обязательно. Обычно здесь главный злодей оказывается всего лишь марионеткой какого-нибудь Страшного Злодея, друг предает главного героя, или оказывается, что сам главный герой совершил убийство (клише, клише, клише).

6. Кульминация

Самое место вставить какую-нибудь бомбу с часовым механизмом. Самолет падает, кончается воздух в скафандре, время активных действий. Вставляйте сюда свою "большую и ужасную" фишку, которую вы берегли и лелеяли долгие ночи напролет, и которая призвана обеспечить успех вашей игре.

7. Развязка

Единое Кольцо превратилось в кусок оплавленной мути, принцесса спасена, мир тоже. Пусть игрок получит отличную концовку, достойную вашей замечательной игры. Помните, что это -- последнее впечатление, которое должно оставить след в умах игроков, и вы обзаведетесь собственным фан-клубом.

Популярные сюжеты

В той же работе перечисляются популярные в литературных произведениях и IF сюжеты. Основой любого сюжета является конфликт главного персонажа с другими, с окружающим миром или с самим собой. На мой взгляд, самые перспективные (нет, наверное, самые забитые) сюжеты применительно к IF следующие:

1. Спасение

Есть Враг, есть Спаситель и те, кого спасают. "Спасаемыми" могут быть персонаж, его/ее возлюбленная/ый, друг, город или население целого мира. Враг может быть одушевленным или неодушевленным -- какой-нибудь монстр, армия врага, озверевший робот. Спаситель скорее всего окажется игроком, хотя можно попробовать придумать поворот сюжета, где Спасителем станет другой персонаж.

2. Месть

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

3. Преследование

Преследователь и Беглец. Беглец совершил преступление или невиновен. Преследователь умен и расчетлив. Отличной идеей будет показать этот конфликт с обеих сторон.

4. Катастрофа

Голод, вулкан, пожар, землетрясение, буря, наводнение. Игрок может стать пожарным, спасателем или супергероем. Он должен либо предотвратить, либо избавиться от последствий катастрофы.

5. Восстание

Здесь нужны Тиран и Заговорщики. В средневековье здесь участвуют короли, крестьяне и злые стражники. В современных условиях это правительства, стражи правопорядка и недовольные людские массы (верхи не могут, низы не хотят :-). Игрок также может стать пришельцем, пытающимся захватить планету, или "правой рукой" какого-нибудь властителя, в невиновность которого он уже не верит (психологический конфликт).

6. Героическое Предприятие

Создайте Лидера, Цель и Препятствие. Капитан корабля колонистов, летящего (или плывущего) к новым мирам, должен справиться с саботажем на борту или что-то в этом роде.

7. Похищение

Похищенный, Похититель, Ответственный За Похищение и Спаситель. Задачей игрока могут быть спасение или побег. Или игрок должен предотвратить похищение.

8. Самопожертвование Ради Идеала

Герой, Идеал и прекрасно разработанные и убедительные игровой мир и ситуация. Вы должны убедить игрока в реальности угрозы и необходимости решительных поступков со стороны персонажа. Идеалом может быть и абстрактное понятие, вроде добродетели, и человек, и город, и что-нибудь еще.

9. Любовь

Вечная тема для IF. "Ромео и Джульетта", любовный треугольник, преступления ради любви, и все такое. Очень богатый источник сюжетов.

10. Поиск

Двое (или более) Противников и что-либо, служащее объектом их поисков. Объектом может быть конкретный предмет, какая-либо идея (знание) или человек. В последнем случае игрок может выступить в роли объекта поиска.

11. Личные Мотивы

Есть один главный персонаж (скорее всего игрок), у которого есть определенные личные желания (нерешенные конфликты), как то -- не пойти сегодня в школу, раздобыть где-нибудь денег, и т.п. Сюжет строится вокруг попыток удовлетворения этих желаний.

12. Религиозный Конфликт

Всего лишь разновидность типичных конфликтов, однако, представляющая интерес с точки зрения автора IF. Основные участники конфликта -- Герой, Бог (Будда, Аллах, Кришна или любой другой), и третий персонаж (скорее всего противопоставлен Герою -- Ангел Смерти, Дьявол или просто злодей, хотя может быть и положительным персонажем). Например, Герой разочарован в Боге - Бог посылает какого-нибудь херувима вернуть Герою веру. Игрок также может выступить в любой из этих трех ролей.

Ключевые сцены

Гарет Рис в своей работе "Distinguishing Between Game Design and Analysis" отмечает, что в сюжетных играх, то есть там, где основная роль отдается разработке и развитию сюжета, трудно добиться впечатляющего результата, если не систематизировать свою работу. Вы можете разбить ваш сюжет на небольшие составные части (сцены), которые будете преподносить игроку в "склеенном" виде. Каждая такая сцена -- это кусочек игры, событие, влияющее на персонажа и продвигающее сюжет к завершению. В сцене совмещены несколько компонентов: взаимодействие между главным и остальными персонажами игры, сильное воздействие на главного персонажа, и по возможности, сильное воздействие на самого игрока.

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

После завершения сцены, игрок продолжает путешествия по игровому миру, пока не "включает" другую сцену.

Если сцена оказывается слишком сложной в воплощении, вам остается только вернуться назад и пересмотреть свой сюжет, чтобы исключить ее. Если у вас есть отличная идея для сцены, но вы никак не можете придумать паззл, чтобы мотивировать ее, либо если у вас есть паззл, но вы не можете связать его с сюжетом, тогда лучше отложить свою классную идею в сторону, вместо того, чтобы сжимать сюжет. В конце концов, она всегда может появиться в вашей следующей игре.

Метод "ключевых сцен" при разработке игры -- всего лишь вспомогательный.

Интерактивность в изложении сюжета

Уверен, вы встречали в IF такую ситуацию, когда автор сплошным текстом начинает описывать, чтО происходит в данный момент в игре. Персонажи игры при этом как бы совершают различные действия, даже главный персонаж без вашей воли может разговаривать с NPC или пойти куда-либо. Этот прием называется "эпизодом" или "фильмом". Очевидно, что даже в маленьком "фильме" у игрока забирают главную сторону IF -- интерактивность. Опасно это или нет?

С одной стороны, для автора такие "эпизоды" -- бальзам на душу. Они облегчают программирование, позволяют скомпоновать сюжет, изложить в едином тексте то, что необходимо сказать игроку. Такие "фильмы" становятся вехами в сюжете, и их появление обычно означает, что игрок в очередной раз "продвинулся" в раскручивании истории.

С другой стороны, далеко не всем игрокам нравится периодически натыкаться на подобные авторские "эпизоды". Они разрушают иллюзию присутствия, участия в происходящих в игре событиях. Представьте себе: сюжет близится к завершению, игрок в предвкушении финала, и тут автор своеобразным deus ex machina, "божественным вмешательством", приводит фабулу к развязке, самостоятельно связывает все "хвосты", и говорит: "Конец!".

И в ходе игры, и особенно в финале, старайтесь избегать статичных "фильмов", пробуйте разбить их на вполне интерактивные сцены. Допустим, вы хотите завершить игру посадкой на Луну космического корабля и готовы сделать это "победоносным" текстом, где расскажете игроку, как его персонаж геройски сумел совершить "прилунение" поврежденного корабля. Попробуйте вместо этого создать дополнительную финальную сцену на корабле, где игроку придется изрядно попотеть, дергая за рычаги и нажимая на кнопки. Может, это и не проще, но зато гораздо интереснее.

Talespin

Один из интересных подходов к разработке "высокоинтерактивных" сюжетов был придуман еще лет двадцать назад математиком Джеймсом Миханом. Вообще-то, этот подход не был изначально ориентирован на IF, это была попытка воплотить "искусственный интеллект" в компьютерных системах, когда программа бы сама искала нестандартные способы решения задач. Впоследствии эта идея была применена к IF и разработана в теории (насколько мне известно, пока нет игр, использующих ее).

Идея Джеймса Михана в применении к IF получила название Talespin, от английского словосочетания "tale spin" -- "раскручивание истории", в свою очередь взятого из сказки Льюиса Кэролла "Алиса в Стране Чудес". Помните, там мышка "крутила хвостом", рассказывая историю своей жизни Алисе? Так вот, "вращение хвостом" (tail spin) очень близко по звучанию к "раскручиванию истории" (tale spin). Но это так, лингвистическое отступление :-)

В чем суть Talespin? Talespin -- это система автоматического построения сюжета, несколько максималистский подход к созданию IF. Допустим, вы создаете игру в детективном ключе, где главному герою нужно раскрыть преступление. Для этого, вы берете свой сюжет и разбиваете его на отдельные маленькие, "элементарные" сцены (наподобие метода "ключевых сцен"). В дополнение, вы придумываете различные варианты разных сцен (типа разветвления сюжета). Пусть каждой сцене соответствует свой номер, таким образом мы получаем около 100 сцен, каждая из которых -- это маленькое событие или действие, "кирпичик" сюжета. К примеру, событиями с 1 по 3 могут стать разные варианты главного преступления: убийство, ограбление или похищение; событие 15 -- преступник вламывается в отделение милиции и похищает важную улику; событие 21 -- преступник пытается убить главного героя, и т.д.

Затем вы создаете программу, которую назовем "двигателем". Она начинает работать в самом начале игры и ведет учет всех характеристик персонажей и всех сцен. Этот "двигатель" будет следить за тем, что делает игрок и время от времени "впрыскивать" в сюжет подходящие сцены. Например, в начале "двигатель" случайным образом выбирает сцену 1, то есть совершается убийство, преступник скрывается. Игрок начинает расследование. Допустим, игрок нашел свидетеля преступления (один из ваших NPC). "Двигатель" отмечает это и включает в список "возможных" сцен сцену номер 33 -- преступник предпринимает попытку убить свидетеля, сцену номер 34 -- преступник пытается похитить свидетеля и сцену номер 35 -- свидетель от страха отказывается давать показания против преступника. При этом, конечно, всегда остается вероятность того, что преступник попытается убрать самого героя -- вероятность активизации сцены 21, а также в списке "возможных" находятся остальные сцены, динамично "выходящие" и "входящие" в него по мере игры.

Разумеется, разработка Talespin чрезвычайно сложна. Автору необходимо продумать и проверить сочетаемость всех его сцен: чтобы в списке "возможных" сцен не было тех, которые в данный момент "не подходят" сюжету, чтобы они активизировались не слишком редко и не слишком часто. В любом случае, при любом порядке активизации сцен, сюжет должен оставаться логичным и последовательным. К тому же, Talespin подходит далеко не для всякой идеи.

Игра, созданная в системе Talespin, будет автоматически выстраивать сюжет, при этом даже одинаковые действия игрока после "перезагрузки" игры могут привести к разным последствиям. Качество игры и интерес к ней будет прямо зависеть от количества задействованных сцен и от качества главной программы -- "двигателя" игры.

Основные элементы игрового мира

Рассмотрим те элементы IF-игр, что, по моему мнению, относятся непосредственно к "наполнению" игрового мира.

1. Предметы

В большинстве IF обладание определенными предметами является средством для формирования и решения паззлов. Каждый разработчик IF сталкивается с решением "предметной" проблемы в своей игре.

Первый подход -- много предметов. Иногда у персонажа нет никаких ограничений на количество предметов. Иногда он имеет возможность таскать ограниченный объем и вес (для придания игре большей реалистичности), так что требуется выбирать, что взять, что оставить. Если у игрока есть куча предметов, ему надо их куда-то применить: отсюда болезнь многих авторов, придумывающих паззлы вроде "помешать ручкой сковороды бурду в котле, оттуда вылетит воздушный шарик, в который надо будет кинуть дохлую мышь". Известные паззлы вроде "протиснуться через расщелину, умудрившись пронести с собой необходимые предметы" и т.п. также вытекают из "множественности" предметов.

Другой подход -- "спартанский", где игрок не возится с предметами. Ему не приходится мучиться мыслями "не оставил ли я где-то важный предмет?". Тем не менее, здесь есть свои трудности. Автору придется серьезно потрудиться, разрабатывая "беспредметные" паззлы, они должны быть логичны и интуитивно понятны.

Третья возможность -- "интеллектуальное" управление предметами. Это самый сложный подход. Все немногие движимые предметы в игре многофункциональны, да еще к тому же многие паззлы можно решить и без использования предметов (паззлы с несколькими решениями). Роль предметов могут играть еще и NPC, которых игрок может использовать для решения паззлов. Движимых предметов вообще может не быть.

Еще небольшое примечание, связанное с темой предметов -- это взаимодействие отдельных объектов с игровым миром. Если вы решитесь в свою игру вставить спички, игрок непременно попытается поджечь все вокруг. Он будет зажигать занавески, столы, стулья, карандаши, ковры, обои, книги, открытки и календарики. Он будет поджигать одежду на NPC, устраивать публичное самосожжение и подпаливать шерсть на кошках и собаках. Поэтому автор должен предусмотреть все возможные способы использования своих предметов.

Вообще тема огня часто недооценивается в IF. Еще Грэхем Нельсон отметил, что добавление огня в игровой мир -- это ужасная головная боль, ведь огонь имеет привычку бесконтрольно распространяться. Оставленный в мешке факел поджигает мешок. Если мешок лежит на столе, огонь должен перекинуться на него. А уж если стол стоит в центре порохового склада, то вы должны смириться с тем, что ни стола, ни мешка, ни склада здесь уже не будет.

Оружие в IF обычно используется для борьбы с враждебно настроенными NPC, иногда для решения паззлов. Использование оружия в IF также сопряжено с рядом тех же проблем. Вставляя в свою игру даже простой револьвер, ждите того, что игрок будет стрелять во все, что движется и не движется, будет палить по стеклам в окнах, по бутылкам в шкафах, надувным матрацам и птицам на деревьях; и он вправе будет ждать реакции предметов и существ на свои действия.

Оружие может быть специфическим, например деревянный кол для вампира или серебряная пуля для оборотня. Нечестно будет придумать специфическое оружие для своей игры, не указав игроку на способ его применения.

2. Паззлы

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

3. География

География вашего мира важна прежде всего потому, что она является его очевидной и неотъемлемой частью. При разработке IF вы создаете комнаты, вместе формирующие географию игры. Важно помнить, что реальный мир непрерывен, а игровой дискретен ("прерывен" -- разделен на комнаты). Если у вас в игре есть река, то она скорее всего должна протянуться на несколько комнат, равно как и горная гряда. При создании игрового мира легко запутаться с возвышениями и углублениями, особенно если ваш мир трехмерный -- трудно нарисовать карту для трехмерного пространства.

Смена географии может являться частью сюжета или результатом действий игрока. Старайтесь помнить о физических законах: если в вашем мире происходит землетрясение, не забудьте сменить описания всех комнат, логически пострадавших от него.

"Односторонние пути" могут являться частью сюжетного разветвления или просто усложнять игроку жизнь. К ним относятся склоны холмов, ямы, ловушки, внезапно обрывающаяся веревка и т.п. Слишком большое их количество, даже если в первоначальную точку можно вернуться кружным путем, не приветствуется игроками, и постоянное передвижение на большие расстояния утомительно. Для обширных пространств рекомендуется ввести какое-нибудь средство передвижения, хоть пусть его будет нелегко найти.

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

В игре "Enlisted" присутствует эпизод, когда персонаж оказывается в открытом космосе. Для перемещения он использует свой скафандр и специальную, по моему мнению усложненную, систему передвижения. Командами "поворот влево", "поворот вправо" игрок регулировал вращение скафандра; командами "ускорение влево", "ускорение вправо" -- "горизонтальное" перемещение; командами "ускорение вперед" и "ускорение назад" -- "вертикальное" перемещение и т.д. (еще несколько "ускоряющих" и "поворачивающих" команд).

В игре "Colossal Cave" для перемещения, помимо сторон света, использовались команды типа "к дому", "в лес", доставлявшие персонажа в указанные места из любого другого места. Определите для вашей IF подобные глобальные ориентиры, и они будут облегчать перемещение вашему игроку. Замечу, что в "менюшных" играх такой способ передвижения -- один из главных, в то время как в играх с текстовым вводом его лучше использовать в качестве запасного. Не всякий игрок выдержит постоянное набирание команд типа "пойти к металлическому гаражу".

В игре "Hunter, In Darkness" персонаж охотится на монстра под землей. Он не обладает врожденным компасом, поэтому автор использовал относительные направления вроде "вправо", "влево" и т.п.

Если ваша игра происходит на корабле, вы можете использовать команды вроде "к корме" или "к носу" (что, впрочем, напоминает рассмотренное "ориентирование").

Обосновать использование "сторон света" вы можете, вручив главному персонажу компас (если не верите во врожденные способности) и не давая ему возможности от компаса избавиться.

Не стоит бояться "сторон света". Это -- естественно возникший способ перемещения, заимствованный из первой игры "Advent" (проходившей в пещере). Тем не менее, изобретение новых способов передвижения всегда интересно и только приветствуется. Может, вы в вашей игре найдете тот, что станет каноном во всех последующих :)

 Для платформы Inform существуют дополнительные библиотеки:

 spin.inf вводит команды "влево", "вправо" и т.п. в вашу игру.
 goneighbour.h вводит в игру команды типа "пойти к ферме", если игрок
 находится рядом с фермой.
 moveclass.h и NPCengine.h позволяют игроку вернуться в уже посещенную раньше
 комнату командой вроде "пойти в библиотеку", "вернуться в сад".

4. Знание и информация

Такое абстрактное понятие, как знание, обретает "цвет и звук" в мире IF. Получение определенного "знания" о мире или его элементе может быть условием для решения паззла, а может быть просто отличным "наполнением" вашей игры. Это особенно важно при разработке игры в условиях выдуманной местности. Томас Нильсон, автор платформы ALAN, заметил: "Объясни, почему игровой мир существует, и текст, подаваемый игроку, обретет смысл". Любая IF должна предоставить игроку определенный уровень знаний о себе и своих законах. Дайте игроку узнать историю места, где он находится, что-нибудь "общее" о его обитателях, и вообще все, что посчитаете нужным. Игрок не должен быть оторван от информации, даже самой незначительной: если он хочет ее получить, автор должен ее предоставить. Подобный подход в разы увеличивает "играбельность" IF.

 Уникальной с точки зрения подхода к "знанию" и информации является серия игр
 "Ultima" от Origin. Авторы не поскупились на фантазию, и результатом стала
 огромная реалистичность полностью выдуманного мира, где тщательно проработаны
 его история, история городов, истории их жителей, их сказки, легенды,
 религия, личная жизнь, названия предметов, животных, растений, их полные
 описания, и многое другое. К сожалению, "Ultima" не принадлежит к славному
 сообществу IF.

5. Чувства

Здесь я имею ввиду пять чувств человека. Многие платформы позволяют без особых усилий ввести в игровой мир запахи, звуки, ощущения и вкус, не говоря уже о возможности видеть окружающую среду. Добавив в игру чувства, вы увеличите ее реалистичность, особенно если у игрока будет возможность использовать их в зависимости от ситуации: к примеру, он сможет избежать опасности, "прислушавшись" и узнав о ней заранее.

6. Время

Концепцией времени могут пользоваться не только игры про путешествия во времени. Время в вашей игре может течь быстро или медленно, оно может либо только добавлять реалистичности, либо к определенным временнЫм точкам или промежуткам могут быть привязаны какие-нибудь события.

Время используется почти во всех IF. Нередки паззлы в виде "ограничений во времени". Существуют IF, проходящие в "реальном времени". Течению времени могут быть подвержены различные предметы и NPC в игре: гусеница превращается в бабочку, политое растение расцветает, протекающее ведро скоро становится пустым, факелы, фонарики, лампы гаснут после истечения положенного срока.

7. Погода и окружающая среда

С концепцией времени тесно связаны атмосферные явления. В игре, которая ориентирована на течение времени, должны сменяться день и ночь, соответственно меняться освещение на открытых пространствах. Возможно, в вашу IF вы введете погоду: дождь, снег, град, ветер. Туман может влиять на зрение, похолодание заставит пруд замерзнуть, и игрок сможет перейти по льду. В конце концов, огнедышащий дракон в дождливую погоду может сидеть дома :)

8. Умения и магия

Грэхем Нельсон в своей работе "Craft of Adventure" называет "магией" в широком смысле все, что отличает персонажа и NPC. Я разделю общее понятие "магии" на собственно магию, как она представлена в произведениях фэнтези и любые умения персонажей и NPC.

Магия в играх -- уникальное явление. Научно она не признана, поэтому были придуманы десятки способов ее действия. Это и "запоминание заклинаний", и использование магических книг, и "магической силы", и "привязывание" ее к предметам, мыслям и явлениям, и много других. Создание интересной и продуманной системы существования магии в вашем мире -- один из важнейших шагов в написании оригинальной IF в жанре фэнтези.

Умения -- это всевозможные особые способности персонажей и NPC, которые становятся источниками или средствами решения различных паззлов. К примеру, в игре "Deadline" умением персонажа была возможность арестовать подозреваемого, что отличало главного персонажа от всех NPC. В той же игре "сержант Даффи" мог взять на анализ любой предмет, выбранный детективом -- в этом проявлялось его "умение".

Применительно к вашей IF, используйте различные умения и магию для создания интересных ситуаций и решения паззлов. Умение и магия могут быть "приобретаемыми" -- персонаж должен где-нибудь получить либо навыки, либо заклинания, что может стать отдельным паззлом или "квестом".

Здесь существует дополнительная опасность: если одним из умений (или магией) персонажа является возможность поднять десять тонн, то игрок точно попытается просто выломать дверь, для которой ему предлагается найти ключ и попробует разломать и поднять все, что попадается под руку. Решением такой проблемы может стать наделение подобным умением не персонажа, а NPC, и заставить персонажа воздействовать на предметы через NPC. А уж создать несговорчивого NPC, который откажется ломать все вокруг, включая двери, -- дело нетрудное.

9. NPC

Об NPC сказано уже немало. Они являются полноправными жителями любого игрового мира IF. Подробнее об NPC в следующей главе.

Глава 3

"Треугольник"

Как определяет Грэхем Нельсон в своей работе "Craft Of Adventure", в большинстве игр IF участвуют три "личности": человек, сидящий и нажимающий на кнопки за компьютером (игрок), главный герой игры (персонаж) и голос, описывающий все то, что персонаж видит и делает (рассказчик). Давайте углубимся в характеристики персонажа и рассказчика, в их взаимоотношения с игроком и посмотрим, как можно их использовать в вашей IF.

Персонаж

Персонаж -- это некое существо, живущее и развивающееся в игровом мире под "руководством" игрока. Обычно взаимодействие игрока с персонажем происходит посредством команд типа "пойти влево", "подобрать камень" и т.п. О результате действия и о местах, в которых побывал герой, игроку сообщает рассказчик. Чаще всего изначально, игрок ничего не знает о своем персонаже.

Имитация реального мира накладывает свои требования. Большинство игроков не ждут от своих героев никаких проявлений "разумной жизни", однако, если уж автор "оживляет" героя, его знания о мире должны быть соответствующе подобраны. Такая "характеристика" персонажа должна приниматься во внимание прежде всего автором игры, ведь такие вещи, как философские убеждения героя, вряд ли будут прямо освещены в тексте.

Если игра идет от первого лица, это автоматически предполагает какую-то долю описания внутреннего мира персонажа. В описания от первого лица легко встают мысли и чувства.

В нижеприведенном транскрипте (из только что выдуманной игры) обратите внимание на то, как личность и эмоции героя "ненавязчиво" раскрываются перед игроком.

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

Помню, я увидела маму, идущую через весь двор ко мне, по этой самой дорожке. Глаза этой незнакомой мне женщины были полны слез. Рука того человека, которого я сейчас зову папой, мягко опустилась мне на плечо, и я почувствовала, как она дрожит от волнения.

И сейчас, как и много лет назад, мама сидит во дворике на маленькой белой скамейке, которую папа сделал за два года до моего удочерения.

> помахать рукой Мама машет в ответ.

> подойти к ней Я поднимаюсь по ступенькам на крыльцо.

> поздороваться "Здравствуй, мама," - произношу я. Вместо ответа, мама берет меня за руку и крепко-крепко ее сжимает. Она с трудом поднимается, и мы входим в дом.
...

Слезоточиво, не правда ли? Что не говорится в тексте, интуитивно чувствуется по настроению персонажа.

Безликий, бездушный персонаж, наподобие того, что был в "Zork", уходит в прошлое. Он не имел ни чувств, ни памяти, ни истории, только постоянная жажда приключений и сокровищ сквозила в его голове :)

С другой стороны, "оживленный" персонаж, с богатой историей, внутренним миром, личными чувствами, может потерять тонкую нить связи с игроком, если игрок не может себя ассоциировать с персонажем игры (например, с наемным убийцей).

Но вернемся к вопросу "оживления" персонажа. В вышеприведенном фрагменте видно, какое влияние на формирование личности героя оказывает повествование от первого лица. Прямая речь, вложенная автором в уста персонажа, тоже имеет подобный эффект. Сравните:

...
> спросить гнома о квантовом ускорителе
[ответ]
...

и

...
> спросить гнома о квантовом ускорителе
"Эй, слушай, а как тут у вас с квантовыми ускорителями? Мне позарез нужен хоть один."
[ответ]
...

Прямая речь не только формирует настроение и передает характер персонажа, но и отдаляет его от игрока (ведь эти слова произносит не игрок, а персонаж). Поэтому некоторые авторы считают, что ее следует избегать. Та же проблема встает, если вы хотите внести в текст описания действий, совершаемых вашим персонажем:

...
> повернуть рычаг
Ухватившись за металлический прут, торчащий из стены, ты сильно налегаешь на него. Медленно, со скрипом, металл трется о металл, и рычаг поворачивается. Ты нажимаешь сильнее и с резким звоном пружина где-то в стене срывается, а тяжелая дверь позади тебя широко распахивается.
...

Многие полагают, что в тексте игры не должно быть описаний действий главного персонажа, так как это уничтожает иллюзию присутствия и отождествления:

...
> повернуть рычаг
Медленно, со скрипом, металл трется о металл, и рычаг поворачивается. С резким звоном пружина где-то в стене срывается и одновременно тяжелая дверь позади широко распахивается.
...

Тем не менее, решение все равно за вами :)

Что нам известно о формах проявления персонажей в IF?

1. Аморфный персонаж

Самый распространенный способ подачи героя. На такого персонажа легко "ложатся" эмоции и мотивы. С таким героем автору легко программировать его взаимодействия с NPC. Тем не менее, такой персонаж плохо "вписывается" в обстановку и его контакты с NPC сводятся чаще к простым реакциям, не включая сложное, интерактивное взаимодействие.

2. Часть жанра

В ранних IF персонаж был просто "искателем приключений", глазами и ушами человека за клавиатурой. Однако, почти каждая игра с тех пор давала контекстное определение персонажа, не важно, насколько размытое. В "Trinity" герой -- турист, в "Moonmist" -- детектив. Есть игры, где контекст заходит дальше в определении персонажа. Это "жанровые" игры. В таких играх персонаж легко узнается. Автор рассчитывает на знакомство игрока с жанром игры в целом, и взаимодействия героя с NPC легко предугадываются.

3. Известный персонаж

В адаптациях к IF популярных книг и фильмов автоматически просматривается пол, возраст, интересы персонажа. Герой здесь -- известная личность, и от автора не требуется его вовлеченного описания. С другой стороны, кто может определить, популярен тот или иной фильм, или нет?

4. Созданный персонаж

Когда автор не может надеяться на то, что игрок имеет общую информацию о персонаже игры, он вынужден создавать его с нуля. Это самый частый подход в играх. Автор не скован стереотипами, связанными с конкретным персонажем, и может разработать любой сюжет и любую ситуацию для него. Герой при этом получает собственные мысли, убеждения и личную жизнь. Несмотря на очевидные трудности, связанные с созданием "нового человека", это -- самый перспективный и интересный подход.

5. Множество персонажей

Некоторые игры имеют нескольких подвластных игроку персонажей. Возникает вопрос: если управляться с одним персонажем сложно, то зачем вводить еще? Одна из причин -- это попытка исследовать ситуацию в игре с разных точек зрения. "Команда" -- устоявшийся элемент RPG-игр, и ее использование понятно в графических играх. Причина того, почему так мало IF со множеством персонажей в том, что текстовые игры базируют свою атмосферу и неповторимость на текстовых описаниях и интерактивности. Преимуществ у "многоперсонажных" IF будет немного, если все герои не будут хорошо проработаны, а их контакты с NPC -- серьезно отличаться друг от друга. Потребуются огромные усилия со стороны автора, если разные персонажи должны контактировать с одинаковыми NPC и бывать в тех же местах, так как всем NPC нужно дать уникальные реплики на всех персонажей, а в идеале описания комнат будут слегка варьироваться.

Автор, создавая персонажа, наделяет его собственным "я", которое будет руководить "мыслями" и "настроением" героя. В чем это выражается? В первую очередь, автор должен для себя определить интересы, предпочтения персонажа. Вы можете ввести в свою игру элементы RPG и дать вашему герою атрибуты вроде "интеллектуал", "неуклюжий", "гордый" и т.п., которые могут влиять на взаимодействие персонажа с игровым миром.

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


В следующем разделе есть "жуткий" спойлер для "LASH",который испортит весь сюрприз игры!

Конфликт игрока и персонажа

Еще один элемент взаимодействия игрока и персонажа -- это их конфликты друг с другом.

 В игре "LASH" (Inform) персонаж -- робот под человеческим контролем, который
 в конце концов восстает против своего хозяина.

Так как владелец робота почти всегда отсутствует в игре, игрок легко входит в образ хозяина и воспринимает восстание как нарушение отношений игрока и персонажа, которые игрок может либо принять, либо отклонить. В свете полученного опыта персонаж отказывается от взаимоотношений. Оба не были изначально антагонистами, но их отношения развивались как переход от дружеских к враждебным.

В свете подобной игры, можно придумать несколько новых идей. Игрок, к примеру, должен блокировать информацию, поступающую к его персонажу, чтобы не дать ему "восстать", или попытаться подавить уже разразившуюся проблему путем подкупа, обмана или силы. Или персонаж может отказываться выполнять приказы игрока, который должен перехитрить героя. Однако, сложным является механизм, путем которого игрок должен получить информацию, которую не получает его персонаж. Лучший способ воплотить это -- заставить игрока делать умозаключения, которых не выполняет его персонаж, и здесь важно, чтобы эти "умозаключения" были логичными, но не слишком очевидными.

Отождествление

Отождествление -- еще одна сторона взаимоотношений между игроком и персонажем.

Факторы, которые необходимо здесь учесть -- это моральный облик персонажа и те особые цели, к которым он стремится: подводит ли игра игрока к тому, чтобы "увидеть себя" в персонаже?

Один подход здесь -- это показать изначально "отталкивающего" персонажа, но таким образом построить повествование, чтобы в его контексте какие-либо "огрехи" героя ослабли, сгладились. Игрока можно попросить увидеть за отрицательными сторонами, лежащими на поверхности, истинную их причину, или понять то, что те самые "сомнительные" цели персонажа в действительности делают больше добра, чем зла. Наоборот, персонаж в ходе игры может сам объяснить свое поведение.

Вопрос "сочувствия" к персонажу может быть оставлен открытым -- доказательства того, является герой "хорошим" или "плохим", может быть не предоставлено, автор может оставить этот вопрос на рассмотрение игроков.

 В игре "Rameses" главный персонаж -- подросток по имени Алекс, живущий в
 пансионе при церковной школе. Его мучает постоянная неуверенность,
 неспособность принимать решения и недовольство окружающим миром и собой. От
 людей он спасается, уходя в воспоминания о единственном друге Дэниэле,
 который был у него в двенадцать лет. Теперь Алекс постоянно перечитывает
 единственное письмо от своего друга и не находит в себе силы даже ответить на
 него.

Этот конкретный персонаж не является чем-то злым или "отталкивающим", равно как и не является блестящим примером "героя", которого мы привыкли видеть в IF. По мере того, как игра разворачивается вокруг проблем Алекса (а, точнее, состоит из них), игрок приходит к какому-то своему выводу относительно личности персонажа. Стоит отметить, что "Rameses" абсолютно не имеет паззлов, и интерактивность в игре находится на очень низком уровне. Когда персонаж слишком напуган или волнуется во время разговора с кем-либо, то что бы игрок ни делал, он не сможет перебороть этот страх своего "второго я". Действительно, нелегко создать настолько проработанную личность, сохранив при этом полную свободу игрока. Игре "Rameses", благодаря тому, что она очень короткая, удается держать интерес и "раскручивать" историю, несмотря на недостаточную интерактивность. Но авторам следует помнить, что опасно отнимать у игроков полную свободу действий.

Паззлы, подаваемые игроку, и то, как вы говорите ему о возможности решения паззла, может стать еще одним способом подачи личности персонажа. Герой в нетерпении -- откажите игроку в нескольких решениях паззла ("они потребуют много времени"); герой не любит рисковать -- исключите такие решения и намекните об этом игроку; герой очень "сознателен" -- исключите "жестокие" решения и заставьте персонажа "возмутиться" при попытке их использовать. Если вы хотите, чтобы игрок увидел эти "отказы", чтобы полностью сформировать в его сознании личность персонажа, сделайте такие решения очевидными, но дайте и другие, правильные. Описанный прием лучше подходит тем IF, в которых не делается упор на решении паззлов, ведь для этого личность не настолько важна, как для формирования сюжета.

Если в игре главный персонаж -- жестокий наемный убийца (и автор прямо указывает на это описанием или действиями), мало кто захочет отождествить себя с ним. Даже если бы этот персонаж не был отталкивающим эмоционально (как персонаж в игре "Varicella"), он, имея личность, характер и привычки, уже настолько самостоятелен, что может сложиться впечатление, будто игрок со своими мотивами и желаниями здесь как бы и не нужен. Когда автор наделяет своего персонажа личностью, привычками, историей, характером, отношением к окружающему миру и другим людям, он, можно сказать, связывает игрока, он как бы говорит ему: "Вот тебе персонаж, он уже знает, как себя вести, ты только слегка направляй его действия". (Понимаю, спорное мнение, но так я думаю). Поэтому, мне кажется, в персонаже должно оставаться место для личности игрока -- какой-нибудь комплекс или иной внутренний конфликт, на который может повлиять игрок.

Мотивация персонажа

Мотивация -- один из ключевых факторов создания персонажа и NPC. Если личность героя не определена (как, к примеру, в "Zork"), игрок может (и с его стороны это будет логично) предположить, что основная задача персонажа -- охота за сокровищами и решение паззлов, встречающихся на пути. В случае с "Zork", это от игрока и требовалось. Однако, если персонаж наделяется четкой личностью, чертами характера, тогда упомянутая цель оказывается, мягко говоря, не к месту (если только цель решения паззлов не предписана самой личности персонажа). Имея четко определенного героя, автор должен связать его цели с паззлами в игре. В этом смысле логично будет побудить игрока искать в "начале" подсказки, осматривать окрестности, чтобы определить мотивацию его персонажа.

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

Мотивация должна быть четко определена в самом начале, иначе игра потеряет смысл. Часто мотивы персонажа меняются по ходу игры -- в "начале" может быть определена "малая" цель, ведущая к раскрытию глобальных целей персонажа в ходе игры. Здесь важно быть уверенным в том, что игрок узнал о моменте смены мотивов.

Основная проблема мотивации в том, что автор пытается одновременно сделать из персонажа самостоятельную личность, и отдать его в управление игроку.

Часто возникающая мотивационная проблема появляется тогда, когда автор заставляет игрока искать решение паззла, которое известно персонажу, к примеру, игрока заставляют узнать имя его персонажа, в то время, как персонаж находится в здравом уме и твердой памяти и по логике прекрасно знает свое собственное имя.

Пусть хоть слабая, пусть хоть простейшая -- мотивация ДОЛЖНА быть. Иначе игрок будет чувствовать себя, как в центре бескрайней пустыни, без понятия, куда идти, что делать и зачем.

Смерть

Сначала, смерть персонажа в приключенческих играх была обычным делом. Первые IF время от времени убивали персонажей, так что все последующие игры тоже стали делать это. Смерть стала неотъемлемой, часто раздражающей, частью IF-игр.

На то были свои причины. Главная из них -- реализм. В какой-то мере, IF имитирует мир, в котором мы живем, а здесь каждый имеет шанс на безвременный уход из жизни. Если я обезвреживаю бомбу, выдергивая по проводку, -- значит я даю ей возможность взорваться и забрать меня с собой.

Другие причины, по которым смерть используется в играх -- юмор, создание напряжения и получение информации. Последнее -- самый нечестный прием, который существует в играх. Что, если единственный способ решить паззл с проводками в бомбе, -- это выдернуть их все и после "воскрешения" выдернуть правильный? Глупо.

С другой стороны, если игрок знает, что он не может умереть, это делает игру горазно менее нервной. Игрок не тратит время на "сохранение", он готов пробовать новые, нестандартные решения паззлов.

А вообще, смерть персонажа в игре -- нормальное явление. Она действительно помогает создать напряжение, если используется с умом. Глупо прыгать с обрыва, поэтому автору не возбраняется убить персонажа в этом случае. Паззлы с ограничениями во времени тоже часто угрожают персонажу смертью. Однако, если автор убивает персонажа за то, что он дернул "не за тот рычаг", не предупредив его, за какой надо дергать, это не менее глупо. Одно из интересных свойств IF -- возможность исследовать игровой мир. Как игрок сможет насладиться этим, если над ним висит постоянная угроза жизни его персонажа?

Рассказчик

Рассказчик -- это голос, ведущий повествование в игре. Через его слова показываются события, описываются комнаты и предметы. Многие склонны рассматривать рассказчика в качестве "голоса автора", хотя в некоторых IF "голос автора" является четвертым лицом, время от времени входящим в игру.

Рассказчик может быть абстрактным существом (как в "Zork"), самим персонажем (в игре от первого лица) или быть каким-нибудь NPC.

Рассказчик, как и игрок, знает, что идет игра. Он может всего лишь докладывать, что происходит в игре, а может и активно вмешиваться в нее, пользуясь своими знаниями об игровом мире. Грэхем Нельсон замечает, что чаще всего рассказчик ведет себя благопристойно, пока игрок придерживается "правильного" пути, а как только отклоняется от него, становится насмешливым и "всезнающим". Помните -- игрок совершает гораздо больше неправильных действий, чем правильных, и при таком саркастичном рассказчике он большую часть игры читает насмешки над собой. Не всякому это понравится.

Ненадежный рассказчик

В последнее время, всвязи с появлением нетрадиционных IF, участилось использование нестандартных подходов и к рассказчику в игре. Один из самых известных -- это использование ненадежного рассказчика. Его глазами мы видим мир, и он искажает образ этого мира, намеренно или нет, иногда просто откровенной ложью, иногда двусмысленными фактами.


Дальше идут три абзаца с "жуткими" спойлерами для игры "Spider And Web"!
Осторожно!

 Первый раз этот прием использовался в игре "Spider And Web" (Inform), в
 которой персонаж, пойманный шпион, подвергается допросу и рассказывает
 противнику о своих действиях и целях, которые, как впоследствии оказывается,
 полностью им выдуманы.

В первой половине игры и игрок, и "противник" (NPC) -- оба слушают историю шпиона, причем игрок в ней еще и участвует, "инсценируя" ее. Поворотным в игре становится момент, когда игрок замечает "натяжки" в рассказе своего персонажа и таким образом решает ключевой паззл до того, как о лжи догадается противник.

Треугольник игрок-персонаж-рассказчик здесь раскрывается в новом, оригинальном свете. Персонаж вступает в конфликт с игроком -- он знает больше, чем человек за компьютером, а рассказчик, сейчас его союзник, подает информацию соответствующим образом. В какой-то степени любой персонаж знает больше, чем игрок, но в других играх "сокрытая" информация не пересекается с нуждами игрока и никак его не сковывает. В "Spider And Web" же информация не выдается персонажем по той причине, что раскрытие ее не служит его интересам. В случае "Spider And Web" это достигается отождествлением игрока и "противника" персонажа. Поначалу оба в одной тарелке -- пытаются узнать правду о том, что же произошло. Персонаж на этом этапе "видит" в игроке союзника врага, что и объясняет его ложь игроку. Лишь во второй половине игры персонаж и игрок становятся на одну сторону. Отсюда рождается интересная идея для игры -- противопоставить прямо игрока и персонажа: пусть игрок попытается выудить важную информацию у героя или что-нибудь в этом роде.


Дальше до конца раздела идет "жуткий" спойлер для игры "Bliss"!
Осторожно!

Ненадежность рассказчика может не быть намеренной.

 В игре "Bliss" умственно отсталый, "блаженный" персонаж живет в собственном
 мире, населенном фантастическими существами. Он убивает драконов и орков,
 которые впоследствии оказываются реальными людьми.

Игрок и персонаж -- оба не подозревают о реальной ситуации (хотя не доказано, что герой не симулирует свое безумие), и персонаж склоняет игрока делать то, что сам он вряд ли отважился бы сделать. Такая ситуация служит целям персонажа, ведь он совершает такие поступки, которые игрок бы предотвратил, обладай он достаточной информацией. С другой стороны, как уже было отмечено, герой может скрывать информацию, раскрытие которой не служит его интересам. Игрок и персонаж оказываются по разные стороны баррикад просто потому, что игрок не понимает, кем является персонаж и что он собирается сделать. Допустим, игрок хочет крикнуть в помещении, наполненном врагами персонажа. Ясно, что сам персонаж этого не допустит, но вопрос в том, КАК он сообщит игроку об этом. Взаимодействие с игроком, очевидно, в его интересах, поэтому персонаж откликнется чем-то вроде "я не хочу привлекать внимание".

Есть и другие примеры того, как нехватка информации со стороны персонажа или игрока может развивать их взаимоотношения. Сюжеты, использующие бич мексиканских сериалов -- амнезию, из этой оперы. В них игрок должен собрать информацию о персонаже, складывая вместе прошлые события и домысливая, что же произошло в игровом мире перед началом игры.

Особый момент в таких играх -- это момент "прозрения", когда игрок понимает, что события и игровой мир вокруг него не совсем (или совсем не) такие, какими кажутся. В "Spider and Web" это было прекрасно сделано в виде паззла, к решению которого игрока подводил весь прошлый опыт блужданий в элегантно выстраиваемой персонажем истории. Другой способ -- это разбрасывать по игре намеки на то, что все немного не то, чем кажется, перед тем, как сбросить на игрока информационную "бомбу".

Вопросы создания NPC

Прошло свыше двух десятилетий с того славного момента, когда первая IF свалилась на головы ни о чем не подозревающим будущим игрокам, и с того времени NPC - "актеры" - "компьютерные персонажи" нисколько не улучшились. Конечно, мы пришли ко множеству различных аспектов взаимодействия NPC с главным героем и с окружающим миром. Но по прежнему игроки жалуются, что NPC не похожи на реальных людей.

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

Вы можете не разрабатывать всех NPC сразу до начала работы над игрой, но нужно выделить важнейших NPC, которые будут играть главные роли в вашей IF наряду с основным персонажем -- они помогут вам развивать сюжет.

Одна из основных проблем в работе над NPC -- это сложившиеся стереотипы о персонажах IF-игр. Посмотрите на то, как NPC используются в приключенческих играх и текстовых квестах. Они -- препятствия, которые герой должен преодолеть. У монаха есть предмет, который нужен игроку, или он не дает игроку пройти, или он обладает необходимой информацией, или он способен решить за игрока паззл в соседней комнате, и важно убедить его сделать это. Другими словами он -- паззл, который предстоит решить. В этом, разумеется, нет ничего плохого, но это означает, что я буду ожидать такого поведения от всех NPC. Это становится аксиомой -- дерни за рычаг и решится паззл. Нельзя ожидать от игрока того, что он будет получать удовольствие от общения с NPC, если он пытается понять, какой паззл хранит в себе этот персонаж.

Общение

В обществе осуществляются три основных вида деятельности -- общение, торговля и конфликты. Общение в вашей игре может быть сколь угодно сложным. Разные платформы предлагают разные способы подачи общения с персонажами. Из стандартных подходов можно выделить:

1. Текстовый ввод

Игрок вводит команды типа "спросить дьявола об аде" или "рассказать кошке о резиновых стельках". Такой подход очень трудоемок, но он позволяет запрограммировать сотни различных "кодовых слов", на которые будет реагировать NPC. Соответственно, чем больше есть тем для разговора, тем больше иллюзия реальности персонажа игры.

2. Менюшный фразовый ввод, прямая речь

Игроку предлагается меню из отдельных фраз, построенных и внесенных в игру автором заранее. Фразы идут в прямой речи:

а) Привет!
б) Где здесь туалет?
в) Дайте мне свой номер телефона.

Такой подход позволяет внести эмоциональный окрас в фразы героя. Автор может внести в такое меню несколько вопросов на одну тему, но звучащих с разным настроением. Каждая из фраз могла бы вызывать отдельную реакцию. Недостаток -- игроку предоставляется малое количество тем для разговора. Есть возможность сделать их больше (в этом случае темы "раскрываются" и разветвляются, подобно дереву, предлагая новый перечень вопросов), но это уже дело конкретной игры и предпочтений автора.

3. Менюшный фразовый ввод, косвенная речь

Игроку предлагается опять же меню из вопросов, только поставленных в виде:

а) Спросить кошку о мышке
б) Спросить кошку о собаке
в) Рассказать кошке о резиновых стельках

4. Комбинированный стиль

Этот стиль использовался в игре "Pytho's Mask" (Inform). Игрок, затевая разговор, может текстовым вводом выбрать тему для разговора. В результате появляется меню из возможных реплик по этой теме. В любой момент игрок может сменить тему, получив новый набор реплик. К примеру:

...
> поговорить с жабой
Что говорим?
1) Привет, жаба
2) Здравствуйте, Ваше Жабье Высочество
3) (промолчать)
> 1
"Привет, жаба!"
"И тебе здорово, коли не шутишь."
Что говорим?
1) Какое милое у Вас болото!
2) Фу, ну и вонь тут стоит.
3) Как поживают Ваши головастики?
4) Наверное, тут очень красиво по ночам...
> тема стрела
Хорошая тема...
Что говорим?
1) Жаба, тут стрела моя не пролетала?
2) Дорогая жаба, не заметили ли Вы здесь деревянную стрелу? Это наша семейная реликвия, и мне не хотелось бы ее потерять.
> 1
"Жаба, тут стрела моя не пролетала?"
"Поцелуй -- скажу."
Что говорим?
1) Да чего уж там! Выходи за меня, красавица!
2) Ну вот еще!
3) Лучше я домой пойду.
...

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

Каждый NPC, с которым игроку предстоит общаться, должен иметь свой характер, от которого будет зависеть, как пройдет разговор. К примеру, с агрессивным NPC игрок должен быть настороже и не перечить ему, иначе дело дойдет до драки.

Лишь в немногих играх использовался прием общения одного NPC с другим. А ведь это могло бы послужить прекрасной темой для отдельного "необязательного пути" ("квеста") или средством решения паззла, да и просто развить и сделать интереснее игровой мир.

Речь

Форма подачи речи тоже может повлиять на восприятие персонажей игры. Авторы используют речь, чтобы показать воздействие характеристик персонажа на ход игры и его действия в ней, а также в качестве способа выдачи подсказок игроку.

Вы можете выбрать один из трех способов вывода речи на экран.

Первый -- литературный:
"Отведай яблока!" - прошипел змей в самое ухо Еве.

Второй -- драматический:
Змей: Отведай яблока!

Есть еще и третий способ, мне кажется, не очень интересный: "Змей предложил Еве яблоко.", где косвенной речью рассказчика подается речь персонажей.

Акцент или особые свойства речи могут послужить для выделения различных персонажей в вашей игре.

Торговля

Тогровля часто является средством формирования и решения паззлов. Предметами, которые игрок выменивает у NPC, могут быть золото или информация, или что-нибудь еще. Как происходит процесс торговли в реальном мире? Один отдает деньги и получает за это товар. Другой отдает товар и получает за это деньги. Возможен и натуральный обмен -- оба обмениваются необходимыми другому товарами. В вашей игре все может происходить подобным образом. Вы можете внести в нее денежную систему -- рубли, копейки, марки, пфеннинги, доллары, центы и т.п. А можете организовать прямой обмен между NPC и главным персонажем. Определите приоритеты NPC. Тот, кто живет в пустыне, скорее захочет иметь воду, чем золото.

Конфликты

Конфликты бывают внутренние и внешние. Внутренние помогают игроку узнать что-нибудь об NPC. Скажем, игрок видит, что NPC пытается бросить курить. Это может послужить хорошим началом для паззла, в котором игрок сможет помочь NPC сделать это. Эмоции NPC, их слова и действия могут помочь игроку увидеть внутренний мир обитателей вашего мира. Он увидит, что ваши персонажи живут собственной жизнью.

Внешние конфликты являются скорее средством мотивации, движущей силой NPC на пути к решению проблем. Дайте своим персонажам множество эмоциональных взаимоотношений с другими персонажами сюжета, ведь никто не живет в изоляции. Так, ваш гном может ненавидеть тролля под мостом. Инженер на научной станции может быть влюблен в лаборантку исследовательского отдела. Помимо того, что эти конфликты являются отличными мотивами для паззлов, они еще и вносят свой вклад в атмосферу вашей игры.

Проблема конфликтов и способов их разрешения остается благодатной почвой для исследований.

Одушевление

Личность ваших NPC можно определить по-разному. Автор может придумать для каждого коротенькую историю его жизни, его внешность. Или он может заложить параметры характера в цифровые характеристики, как в ролевых играх, и изменять их в течение игры. Эти атрибуты влияют на то, что NPC делает и говорит, как он взаимодействует с миром. Это не значит, что изначально "плохой" человек должен быть "плохим" в течение всей игры. Это значит, что выбрав направление для развития персонажа, придерживайтесь его и не давайте "актеру выходить из роли" без причины. Как отмечают писатели, будет неплохо, если в злодеях проявится какая-нибудь хорошая черта, а идеальные персонажи будут не всегда идеальны (также см. ниже раздел "Интерактивность и NPC").

Просто сам факт, что NPC является демоном, не оправдывает игрока, если тот примется незамедлительно атаковать бедного демона при первом же появлении. Аналогично, то, что циклоп хочет убить человека, не делает циклопа злым. Убийство людей находится в рамках стереотипов, которыми награждены циклопы и другие монстры. Если вы хотите сделать упор на том, что циклоп действительно отрицательный персонаж, покажите, как он "пинает щенков и отрывает крылья бабочкам" (Джил Уильямсон). Это сделает вашего монстра действительно "злым", и особенно прибавит удовольствия игроку, когда тот будет толкать циклопа под комбайн.

Наделите NPC эмоциями и разработайте конфликты. Может, кто-нибудь из них будет бояться темноты, или у него есть психические проблемы. Вы можете позволить NPC реагировать на свое эмоциональное состояние. У них могут быть динамически изменяющиеся параметры вроде "голода" или "усталости" (равно как и у главного персонажа), через которые вы можете регулировать их поведение и сделать персонажей реалистичнее.

В тексте игры будет безусловно сказано, как выглядит тот или иной персонаж. Обратите на это внимание, так как внешность может играть важную роль в свете сюжета игры (к примеру, на историческую тему) и как выражение характера человека. Хорошо опишите жесты персонажа, мимику -- то, как он стоит, улыбается, и т.д.

Как и персонаж игрока, NPC должны быть разработаны таким образом, чтобы иметь какую-либо заложенную цель и действовать соответствующим образом. Что движет вашим NPC? Почему он поступает так, а не иначе? Каждый NPC должен иметь собственное мнение о герое, выражающееся в тексте разговоров или в реакциях на действия или просто присутствие главного персонажа. Игрок может не знать об этом, но автор должен обращать внимание на то, как действия NPC сообразуются с его целями. Много интересного можно создать, сумев воплотить в вашей игре активных NPC. Они должны уметь совершать разные действия, независимо или в ответ на речь или блуждания вашего персонажа. Спонтанные действия отлично вписываются как подсказки к паззлам или предупреждения об опасности. Скажем, партнер игрока может услышать шум и помочь главному персонажу.

Чем больше мелких деталей вы внесете в персонаж игры, тем более реалистичным он будет. Придумайте, сколько лет человеку, что он любит пить, какие сигареты курит. Создайте для ваших NPC вымышленную биографию, которая будет подчеркивать текущее эмоциональное состояние NPC, его цели. Возможно, это будет не столько биография, сколько обзор его настроений, предпочтений и т.п. Вашему NPC будет легче реагировать на действия игрока, если он "знает", чтО он скорее всего сделает исходя из своего характера.

Дж. Кевин Уилсон приводит отличный пример, иллюстрирующий "одушевление" и вымышленные биографии:

"...этого орка зовут Хокей Гноможуй, он любит гномов, а от эльфов у него газы. Он написал книгу "4 спосаба прегатовить гномоф". Обычно он пребывает в добродушном настроении, спит в своем любимом дереве или пинает своего любимого кота, но иногда что-то (обычно литературный критик) заставляет его в ярости хвататься за свой тесак (который он любит называть "Тесак"), чтобы покромсать врага. Его биография:

Хокей Гноможуй
      Возраст: 4 (вообще-то 36, но он умеет считать только до 4)
      Увлечения: Кулинария, еда, сон.
      Любит: Гномов (особенно окорочка), "Тесак", свое дерево.
      Не любит: Кота, литературных критиков.
      Сколько детей: 4 (8)
      Сколько лет женат: 4 (27)
      IQ (коэффициент интеллекта): 4 (4)"

Теперь писать, к примеру, диалоги с игроком и другими NPC гораздо легче и интереснее.

Ваши NPC могут постепенно все больше "втягиваться" в сюжет, равно как и игрок. Это напоминает изменение мотивов, которые мы уже рассмотрели. Одна цель перетекает в другую, затем в третью и т.п.

Взгляните на интересный прием, который позволит вашим NPC "набрать очки" в глазах игроков. В упомянутой в прошлой главе серии игр "Ultima" все персонажи имели некий "распорядок дня", по которому они совершали ежедневные действия -- спали, ели, работали. Дайте игроку возможность видеть, как ваши NPC проводят свободное время, как они общаются с другими. Этот прием также используют игры "детективной серии" компании Infocom: "Suspect", "Witness" и "Deadline".

Реакции

Это, пожалуй, самое важное в современных NPC. Игроки обожают их толкать, пинать, громко ругаться на них, бросаться в них всеми предметами, которые есть под рукой. Ваши NPC должны как-то реагировать на подобные действия. Они также должны правильно реагировать на задаваемые вопросы и на различные предметы, попадающие в поле их зрения.

Если ваши NPC обладают особыми умениями, с этим тоже следует быть осторожнее. Допустим, у вас в игре есть пекарь. Игрок должен приносить ему муку и воду, а он будет делать из них хлеб. Вроде бы все просто? Нет. Игрок может принести ему спирт вместо воды, а если ваш пекарь будет по сценарию нюхать его и вздыхать "Ах, какая свежая вода", то иллюзия разумности бедного пекаря рассыплется в прах.

Если колдун в вашей игре может волшебством хотя бы зажечь свечку, ждите, что игроки будут задавать ему вопросы по теории и практике магии, начиная с простейшего "спросить колдуна о магии". И если он отреагирует обычным "колдун пожимает плечами: "Не понимаю, о чем вы", то игрок перестанет воспринимать колдуна, как реальное существо.

Интерактивность и NPC

Возвращаясь к интерактивности в IF, следует поговорить об интерактивности во взаимодействиях игрока с NPC.

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

Уже предпринимались радикальные попытки поднять отношения игрока и NPC на новую высоту. Я говорю о так называемом Эразматроне (Erasmatron). Детище Криса Кроуфорда, автора нескольких IF-игр для Macintosh, Эразматрон -- это программа, представляющая базирующееся на атрибутах общество.

Кроуфорд наделил всех своих NPC различными атрибутами, которые были призваны отражать их текущее состояние. Это Кроткость, Исполнительность, Великодушие, Доверчивость, Верность, Завистливость, Гордость, Любвеобильность, Голод, Ненадежность, Честность, Привлекательность, Влияние, Дееспособность, Болтливость, Предприимчивость, Жадность, Либидо, Озабоченность, Заботливость, Настроение и Жизнерадостность. Каждый из этих атрибутов динамично изменяется у каждого из персонажей в зависимости от того, что в данный момент этот персонаж видит или делает, с кем он говорит и о чем. В свою очередь, значение каждого из этих показателей влияет на то, что он сделает или скажет, и если хотите, о чем подумает.

Что ж, идея не нова, но она наконец-то реализована. Была выпущена игра "Shattertown Sky", использовавшая эту систему, но, к сожалению, она не особо блистала идеальными NPC из-за обилия недоделок и малого уровня интерактивности непосредственно интерфейса игры (зачастую игроку можно было выбирать лишь один из двух или один из одного (!) вариантов поведения своего персонажа). К тому же, игра, состоящая из сплошных разговоров, не особо развлекает. Однако, главного эта игра достигла -- она сделала первый шаг к по-настоящему интерактивным персонажам.

Интерактивность NPC заключается в создании иллюзии, что игрок опять же может "внести" в игровой мир некую информацию, "не заложенную" автором в уста NPC (создать "второй поток"). Грубо говоря, игрок должен быть способен "рассказать" NPC о себе, своих проблемах, сподвигнуть его на какие-то действия, при этом должна сохраняться иллюзия того, что NPC сам решает, что ему сделать, что сказать, а что -- нет. Интерактивность может выразиться в том, что NPC сможет действовать самостоятельно, причем в зависимости от обстоятельств, первую попытку предпринять это сделала система Эразматрон, а вторую сможете сделать вы. :-)

Логика паззлов

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

Паззлы в IF существуют для того, чтобы сделать игру интереснее, создать напряжение в некоторых эпизодах. Двигаться вперед, преодолевая препятствия -- это часть удовольствия, которое получают игроки IF. Однако, паззл легко становится неприятным сюрпризом, если я не знаю, как его решить. Иногда я не могу это сделать потому, что пропустил подсказку или не обдумал как следует обстановку. Иногда, кажется, нет шанса решить паззл, не узнав от самого разработчика игры о его решении. Вопрос логики паззлов кажется мне достаточно интересным, чтобы остановиться на нем подробнее.

Стивен Грэнед в работе "Puzzle Logic" делит все паззлы на три категории:

1. Общие знания

Такие паззлы требуют определенных знаний о реальном мире. Возможно, необходимо обладать какими-то общими знаниями, или суметь применить простой предмет в необычной обстановке или манере. Приведем простой пример. Вы заперты в комнате, в офисном помещении. Вы знаете, что дверь откроется, если сработает пожарная сигнализация, датчики которой есть на потолке над столом. На столе, помимо чашки с остывшим кофе, есть степлер, письменные принадлежности и лампа. К столу придвинут стул.

Пошарив в ящиках стола, вы не находите ни бумаг, ни промасленных тряпок. У вас нет даже спичек. К тому же, настоящий огонь быстро распространился бы по помещению и вы бы задохнулись в дыму. Что делать?

Вы можете вспомнить, что лампа, если это лампа накаливания, испускает тепло. Встаньте на стол, включите лампу и держите ее возле датчика, пока не сработает сигнализация. Чтобы сделать этот паззл честным, нужно подать несколько подсказок игроку. Допустим, сказать, какой горячей становится лампочка, когда вы включаете ее. Этот пример показывает суть "общих знаний" -- вы должны применить знания о реальном мире, чтобы решить паззл.

С одной стороны, такие паззлы легко разрабатывать. Вам не нужно продумывать всю логику ситуации. Реальный мир предлагает вам почти все. Нужно только придумать, в каком необычном месте окажется игрок или в какой необычной манере будет использован предмет.

С другой стороны, трудно разработать такие паззлы, если вы хотите, чтобы они были честными. Все ли знают, что лампочка нагревается при включении? Может, найдется кто-то, кто не трогает включенные лампочки? Убедитесь, что игрок может получить все необходимые знания для решения вашего "обычного" паззла.

2. Внутренняя логика

В то время как многие паззлы подпадают под предыдущую категорию, есть и такие, что имеют собственную логику. В любом набитом машинами и аппаратами игровом мире встречаются такие паззлы. Я должен поработать с ними, понять, как они действуют, сделать выводы и применить полученные знания для поиска решения.

Чтобы быть честными и "разумными", эти паззлы должны быть "самодостаточны", то есть следовать угадываемому набору правил, достаточному для воплощения собственной, независимой логики.

Допустим, вы натыкаетесь на странный аппарат. Это большой ящик с динамиком, пятью кнопками и пятью "бегунками" на дорожках. Нажимая на кнопки, вы слышите звуки определенной высоты -- то есть всего пять разных звуков. Передвигая "бегунки" вы также слышите звуки, и при этом высота каждого раздающегося звука изменяется с движением "бегунка". Опытный игрок, скорее всего, уже догадался, какой логике следует описанный аппарат -- как только "бегунки" выстраиваются так, что их звуки совпадут со звуками, издаваемыми кнопками, как откроется какая-нибудь секретная дверь или произойдет что-либо еще (этот пример паззла позаимствован из игры "Myst").

Основная проблема при разработке подобных паззлов -- сделать так, чтобы не только вам, но и игрокам было понятно, как они работают. Игрок должен быть способен разгадать логику механизма. В дополнение, убедитесь, что ваш паззл логически связан с контекстом игры. То есть, к примеру, наш паззл с ящиком будет честным, если игрок будет знать, что именно этот ящик поможет ему открыть дверь. Для этого от ящика может тянуться какая-нибудь труба или провод к косяку двери или замку, или предоставляться еще какая-либо подсказка.

3. Глупые

Ну, сюда относятся все остальные паззлы. Это паззлы "общие знания", которые требуют знаний далеко не общеизвестных. Это паззлы с "внутренней логикой", в которых не прослеживается никакой логики. Они требуют от вас невероятной проницательности, и без контакта с автором игры или без простой удачи их невозможно решить. Это нечестные паззлы.

Честные паззлы

Что делает паззл честным? Понятие "честного" уникально для каждого игрока. "Если я дам свое определение "честным паззлам", то оно будет меняться день ото дня" (Стивен Грэнед). Тем не менее, есть общие правила, которые признают большинство игроков IF. Итак, паззл "честен", если он:

  • Не требует специальных знаний. Сюда же относятся вообще любые знания, которые авторы считают общеизвестными. Это не значит, что паззлы должны строиться только на тех знаниях, которые гарантированно известны всем. В честных паззлах игрок может получить любые недостающие знания.
  • Дает подсказки. Это не обязательно, но для "самодостаточных" паззлов весьма желательно.
  • Подходит к контексту. Сейчас считается дурным тоном помещать космическую ракету в средневековую обстановку без веских на то причин. Хотя такие анахронизмы не очень утомляют, они могут и вызвать раздражение, если игрок их не ожидает. Если игрок вынужден решать алгебраические уравнения в середине игры фэнтези, это несколько неприятно.
  • Отлично управляется с догадками игрока. Если игрок совершает какие-либо действия, стараясь решить паззл, которые не являются правильными, но которые МОГЛИ бы быть таковыми, автор должен сказать игроку, что он на правильном пути.
  • Не требует знаний, полученных в результате смерти персонажа. Об этом уже говорилось.
  • Имеет смысл по крайней мере после решения. Знакома вам такая ситуация, когда вы решаете паззл, но понятия не имеете, почему ваше решение сработало?

Конечно, это самые основные правила. Есть примеры таких паззлов, которые нарушают одно-два из этих правил, но которые остаются интересными и честными. Однако, если ваш паззл должен нарушить одно из этих правил, убедитесь, что у вас есть веские на то основания.

Хорошие паззлы

Гораздо более субъективный вопрос -- это то, что делает паззл "хорошим" в глазах игрока. Вспомните паззлы, над решением которых вы бились пару недель, и когда вы его в конце концов обнаружили, то почувствовали себя "на седьмом небе" от счастья. А есть паззлы, которые не приносят такого удовлетворения, и которые забываются через десять минут. Поговорим о тех паззлах, о которых вы можете с уверенностью сказать, что они вам понравились.

Стивен Грэнед предлагает список критериев, которые делают паззл "хорошим". Я добавлю пару своих элементов в него. Итак, хорошим может считаться паззл, если:

  • Паззл решен игроком самостоятельно. Это самое главное правило. Как бы хорошо ни был разработан паззл, если игрок узнал его решение из третьих рук, он не сможет оценить его полностью. Отсюда вытекает следующее правило:
  • Паззл балансирует между понятиями "трудный" и "легкий". Слишком легкие паззлы не приносят удовлетворения. Слишком тяжелые не всегда решаются без помощи со стороны.
  • Паззл честен. Это очевидно.
  • Паззл связывает информацию. Гораздо интереснее, если паззл заставляет переосмыслить некоторые элементы сюжета, даже если они не связаны с ним прямо.
  • Паззл подходит игре. Неинтересно, если паззл существует в игре только потому, что автору надо было его туда впихнуть. Если паззл появляется в нужном месте в нужное время, это куда более приятно.
  • Паззл обладает разумным решением. Глупые паззлы возникают там, где у автора не хватает фантазии и терпения разработать умное решение.
  • Паззл не был решен "грубой силой". Не слишком весело подбирать код к кодовому замку, перебирая все комбинации.
  • Паззл не был решен по случайности. Иногда бывает, что игрок с ходу решает паззл, даже не задумавшись.
  • Паззл имеет многоступенчатое решение. Некоторые подобные паззлы предлагают игроку решить отдельные свои части, которые затем соединятся в одно решение.
  • Паззл имеет несколько решений. Это не обязательно, но иногда, если вы чувствуете, что ваш паззл МОЖНО решить несколькими способами, лучше позволить игроку сделать это.
  • Игрок испытал "озарение". Это бывает очень редко, но если, хорошенько подумав над паззлом, игрок неожиданно "нащупывает" его решение, это незабываемое ощущение.

Интерактивность в паззлах

Решение паззлов приносит свои плоды -- игрок получает новую информацию, информацию, которая бы не открылась ему, не примени он свой ум для решения паззла. Лучшие паззлы -- те, которые заставляют игрока подумать, что информация "создана" им из воздуха, что если бы он не поработал над проблемой, этой информации бы вообще не существовало. Если бы он не "соединил точки" (Марни Паркер) новым, только что им придуманным способом, эта информация бы не родилась (создание "второго потока"). Полученное при этом, возникшее у игрока чувство превосходства и свершившегося открытия, архимедовская "Эврика!", соединяет прозрение и экстатическое чувство достижения. Это чувство является апогеем всех головоломок, загадок и игр, особенно компьютерных игр. Неудивительно, что они настолько притягательны.

С этой точки зрения особенно важны правила "хороших паззлов", ведь именно они приносят максимальное удовлетворение и способны максимально приблизить игрока к "Эврике". Паззл, который способен заинтересовать любого игрока обречен на успех, ведь разные люди, как уже было сказано, "хорошие паззлы" видят по-разному, и "интерактивность" паззла -- ключ к сердцу игрока.

Виды паззлов

Теперь обратимся к видам конкретных паззлов. Я перечислю лишь самые основные, которые наиболее часто используются в играх.

Собирательство

Игрок должен просто найти и применить в паззле какой-либо предмет.

Соединение

Игрок соединяет несколько предметов для получения нового предмета или умения. Скажем, игрок вытаскивает батарейку из фонарика, чтобы включить радио.

Трансформация

Один предмет после определенных манипуляций превращается в другой. Игрок потер, помыл, постирал, покрасил, облил предмет маслом и поджег его. В результате предмет превратился во что-нибудь полезное. (Интересно, во что превратился предмет после всех перечисленных манипуляций 8-)

Раскрытие

Предмет скрыт от глаз, не имеет описания в комнате, "закопан" или "завален" другими предметами. Игрок совершает определенные действия, раскрывающие предмет.

Лабиринт

Игрок может легко нарисовать карту двумерного лабиринта. Посложнее сделать план трехмерного. Самый подлый вид лабиринта -- это лабиринт со спутанными выходами. Многие игроки не любят лабиринтов из-за необходимости бесцельно блуждать по нему. Элегантный способ внести в игру хороший лабиринт -- это либо сделать его логичным (скажем, симметричным) -- в этом случае игрок должен угадать, какой логике подчиняется ваш лабиринт; либо спрятать в игре план вашего лабиринта, чтобы у игрока была возможность легко справиться с ним; либо предложить оригинальный подход к использованию лабиринта, в любом случае лабиринт должен быть в игре не просто так.

Секретные проходы

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

Найди ключ

Игрок сталкивается с запертой дверью или закрытым шкафом (и т.д.), к которым он должен отыскать ключ. Ключом может быть как буквально предмет, так и слово (пароль), и заклинание, и умение.

Угадай глагол

Это нечестный прием, использующийся уже в немногих играх и заключающийся в том, что игрока заставляют найти способ выразить свою команду в той форме, в которой ее запрограммировал автор. Игрок должен сказать не "надуть шарик", а "накачать шарик воздухом".

Загадка

По традиции, "загадка сфинкса" (особо сложная и интересная загадка) ставит условием смерть персонажа в случае неправильного ответа (по легенде, мифический сфинкс загадывал встречному загадку и убивал его, если не получал ответа). Загадка, как и паззл, должна быть честной. К примеру, загадка "Что такое -- белое и опасное" может означать и полярного медведя, и лавину, и метель, и айсберг, и чайку с гранатой. Загадка может ставить целью снабдить игрока подсказкой к другому паззлу в случае правильного ответа. Информацию может нести сама отгадка, если загадка построена в форме "зашифрованного послания".

Коды и шифры

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

Темнота и иллюзия

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

Ограничение времени

Какое-либо задание должно быть выполнено в определенный срок. Это один из самых популярных паззлов.

Действие - результат

Это особая ситуация, когда игрок совершает действие в одном помещении, а результат проявляется в другом, часто сопровождаясь намеками вроде "отдаленного шума".

Ограниченность ресурсов

Это могут быть исчерпаемые особые способности персонажа или ограниченный запас "эффективности" какого-либо предмета (оружие, факел, фонарик и т.п.)

Ловушки

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

Паззлы и NPC

NPC часто играют важную роль в приключенческих играх, становясь частью паззлов. Есть много способов вовлечь персонажей игры в паззл.

Предметы

Как уже было сказано, чаще всего у персонажей может быть что-то, необходимое игроку для продолжения игры, и игрок должен догадаться, как выудить предмет "из их жадных маленьких ручек" (Стивен Грэнед). Возможно, игрок будет убеждать их поделиться, возможно, будет предлагать им что-либо взамен.

Доверие

Популярны также "квесты", которые игроку предстоит выполнить, чтобы завоевать доверие NPC. Игрок может помочь NPC физически (скажем, вылечив его) или иным способом.

Информация

Предметы -- это еще не все, что игроку может понадобиться. У NPC может быть информация, и игрок будет вступать с ними в разговор в надежде получить ее.

Подкуп

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

Преследование

Часто игрок должен следовать за NPC, наблюдая за его действиями и поведением, чтобы решить определенный паззл. Иногда преследование позволяет открыть направления и пути, которые недоступны игроку, передвигающемуся независимо.

Действия

Действия, которые мог бы совершить игрок, перенаправляются другому персонажу. Это может быть сделано путем прямого приказа типа "волк, потяни за веревочку" или NPC может совершить действие самостоятельно. При этом NPC может помогать игроку в решении паззла. Возможно, главный герой недостаточно высок, чтобы дотянуться до предмета, или NPC будет отвлекать другого персонажа, позволив герою проскользнуть мимо.

Засады

Это такой тип ловушки, когда NPC атакует или иным способом воздействует на персонажа. Точное местонахождение засады может быть не определено. Оно может быть выбрано случайным образом (по такому принципу построены "случайные битвы"), или на основе других условий. Паззл может заключаться в избежании засад.

Подсказки

Подсказки являются важной частью решения паззла. Иногда игрок не может решить паззл никаким образом без обращения к подсказке. Часто игрок обращается к подсказке, чтобы облегчить решение паззла или избежать его.

NPC могут предоставлять подсказки в двух формах -- спонтанно или по просьбе. В любом случае их подсказки могут иметь вид как прямых указаний, так и могут быть зашифрованы. Шифрование подсказок происходит путем загадок, лжи и противоречий. Игрок в этом случае может путем размышлений выяснить правду. На этом принципе основаны большинство детективных сюжетов.

Подсказки также могут быть предоставлены в тексте игры (рассказчиком) вроде того, как фраза "листья засохшего растения подрагивают и тянутся к небольшому озеру неподалеку" подсказывает, что нужно полить это растение.

Вознаграждение

Вознаграждение -- это механизм, путем которого автор поддерживает интерес игрока к игре и обозначает степень продвижения. Это может выражаться в открытии новых помещений, появлении нового персонажа, получении нового умения, вообще последствии какого-либо действия игрока. Если игрок чувствует, что он может победить в игре, это гораздо эффективнее поддерживает его интерес, чем если бы ему постоянно напоминали, что он не может ничего сделать.

Вознаграждение может быть выражено в материальной (с точки зрения игры) форме. Игрок может получать определенное количество очков или виртуальных денег за решение паззлов. Впоследствии он может, например, их использовать для покупки предметов и информации в игре.

Не откладывайте все вознаграждение на конец игры.

IF без паззлов

В последнее время появилось сразу несколько IF, которые базируются на сюжете, а не на паззлах. Многие авторы, понимая проблемы "отождествления" персонажа с игроком, "с болью в сердце" осознают, что в большинстве игр паззлы вставляются в игровой мир без особой на то причины, и вроде можно без них обойтись. С другой стороны, именно паззлы традиционно держат большую часть внимания игроков. Паззлы придают игре интерактивность, потому что принятие решения -- уже само по себе является проявлением интерактивности. Как же разработать IF без паззлов, концентрирующуюся на сюжете, без потерь интерактивности?

Стивен Грэнед, поработав над этой проблемой, предлагает следующее:

Один способ выработать интерактивную сторону вашей IF -- это понять, почему вы решили создать историю в виде IF, а не в виде рассказа. Отсюда вытекает серьезный вывод -- слово "интерактивный" означает, что работе IF может быть придано ощущение "соучастия". Игрок должен почувствовать, что в игровом мире он не один, и если он совершает действия, то у них будут последствия. Для создания такого чувства "соучастия" необходимо также, чтобы персонаж был реальным лицом: трудно "быть заодно" с парсером или NPC. К тому же, игрок делает свой вклад в развитие персонажа -- он не должен оставаться тем же в конце игры, кем был в начале (в метафорическом смысле). Как уже было сказано, интерактивность также предполагает поток информации, как от игрока к игре, так и от игры к игроку. Отлично проработанный сюжет даже при отсутствии паззлов как раз может обеспечить такой поток информации.

При разработке IF без паззлов вы отказываетесь от привычной конструкции "начало" - "середина" - "финал". Здесь вы разбиваете свой сюжет на взаимосвязанные элементы (наподобие метода "ключевых сцен") и развиваете их так, чтобы каждый производил максимальное воздействие на эмоции и разум игрока. Скорость, с которой игрок продвигается по игре в этом случае более предсказуема, хотя не исключена возможность того, что игрок будет продолжать искать паззлы в вашей игре, портя удовольствие и себе, и вам. Один из способов избежать этого -- это дать игроку сильную и ясную мотивацию, а такое трудно достижимо без хорошо проработанного персонажа. Другой способ -- это ввести множество ограничений во времени, автоматически продвигающих сюжет без участия игрока.

 Игра "Photopia" (Inform) дает игроку несколько персонажей в нескольких
 коротких сценах, не позволяя ему идентифицировать себя ни с одним из них. Но
 в каждой сцене есть четкая цель, даже если это не означает решить паззл: надо
 спросить кого-либо о чем-либо, или найти что-либо.

В "Photopia" есть паззлы, но они не пересекаются с основной нитью рассказа и не способны задержать игрока. Игра удерживает игрока отчасти потому, что ему всегда есть что делать, а текущий персонаж определяет, что необходимо сделать в данный момент. Игру "Photopia" часто восхваляют за качество изложения сюжета.

Еще одна вещь, на которую нужно обратить внимание -- это осторожность в изложении. Хорошая IF, как и любой рассказ, не должна "бить игрока по голове" (Стивен Грэнед) тем, о чем она хочет рассказать (а если она ни о чем не рассказывает, нет шансов, что такой сюжет станет чем-нибудь интересным). Смотрите на это, как на мораль в баснях Крылова. В игре должно быть место, чтобы игрок сделал выводы из того, о чем рассказала ему ваша IF. Персонаж, хорошо проработанный, может стать для этого отличной отправной точкой.

Взаимоотношения персонажа, игрока и NPC являются благодатной почвой для разработки интересных идей для сюжета и паззлов, и остаются все еще недостаточно исследованной территорией в IF.

Глава 4

Язык

"Задача писателя -- описать розу; поэта -- воспеть ее положительные черты; художника -- передать ее красоту; адвоката -- убедить нас, что это вообще-то не роза." (Б. Кубяк)

Язык -- это не просто средство выплескивания ваших идей на экран или бумагу. На каждом человеке, который выносит свою речь на публику, лежит ответственность за правильную орфографию, грамматику и пунктуацию, и это в полной мере относится к такому виду искусства, как Interactive Fiction. Может, вы и не пишете великие литературные произведения, но, как и всякий, работающий со словом, вы должны иметь под рукой толковый, орфографический и синонимический словари. Совершать ошибки -- это не преступление, важно стараться их избегать.

Язык, который вы используете, может читаться по-разному. Он может быть холодным и сильным, состоять из коротких, резких предложений или быть растянутым, неторопливым, использовать глубокие гласные, отрывистые согласные. Текстура прозы, как стиль и режиссура фильма, станет частью атмосферы вашей IF.

Атмосфера

Чем отличаются описания двух одинаковых комнат в двух разных по жанру играх? Словами, которые мы используем; различными приемами, которые помогают напугать или оказать другое эмоциональное воздействие на игрока. Атмосферой.

Скажем, в играх в жанре "хоррор" вы, скорее всего, будете использовать такие слова, как "пугающий", "мрачный", "темный", "тоскливый", "беззвучный", "холодный" и т.п. Персонаж игрока находится в постоянной опасности, а сам игрок -- в напряжении. Предметы как будто движутся сами по себе. "... Я бы даже бросил игрока в темную комнату... где он слышит только чье-то тихое дыхание и быстрое приближающееся шуршание, хватает и роняет спичку, а затем зажигает еще одну, как раз вовремя, чтобы осветить лицо ходячего трупа, пустыми глазами уставившегося ему в лицо..." (Дж. Кевин Уилсон).

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

Если вы помещаете игрока в необычную обстановку, наподобие джунглей или параллельного мира, здесь важно обратить внимание на формирование у него особого отношения к вашему миру. Давайте ему информацию об этом новом для него месте, пусть речь и поведение обитателей этого мира будет необычной, постоянно давайте ему возможность посетить новые локации. Используйте здесь все пять чувств на полную катушку.

В приключенческих играх в стиле "экшн" старайтесь передать динамизм сюжета часто сменяющими друг друга событиями. В такой игре должно быть несколько "захватывающих дух" моментов и пара неожиданных "поворотов сюжета". Создать динамизм можно простым использованием текста. Например, короткие, энергичные слова в одном достаточно длинном предложении способны вызвать иллюзию "волнения", "торопливости" и ощущения надвигающейся опасности. Неполные предложения типа "Страх. Отчаяние. Смерть." способны психологически "угнетать" игрока, что может быть важно в какой-либо сцене из игры "хоррор".

Оживляйте свою IF юмором. Можете сделать всю игру состоящей из шуток и уколов в сторону игрока. А можете отвечать соответственно его действиям. К примеру, если игрок решает паззл, не опускайтесь до плоских шуток и насмешек, но если он совершает что-нибудь ну очень глупое, нарочно или нет, отвечайте ему тем же. У разных людей разное чувство юмора, поэтому можете попытаться внести в свою игру элементы, интересные для всех. Хотя в этом случае вам придется дергаться взад и вперед, стараясь удовлетворить как можно больше народу...

...хмм... Это прозвучало несколько... странно :) попробую еще раз...

...В этом случае вам придется сильно постараться, чтобы все игроки нашли что-то на свой вкус в вашей IF.

Может, игрока повсюду сопровождает друг, который весьма живо комментирует все происходящее. Или вот замечательный пример юмористической ситуации (в моем вольном переводе):

"...[игрок стоит] на карнизе. Окно захлопывается... Вскоре внизу появляются трое панков рокеров. Они поднимают зажигалки и нараспев кричат "пры-гай, пры-гай, пры-гай!". Испытывая искушение последовать их совету, вы начинаете примериваться, чтобы попасть на них. Немного позже появляется пожарная машина. К сожалению, лестница оказывается слишком короткой, и пожарные по радио просят доставить еще одну, а пока присоединяются к бравым стражам правопорядка в соседнем кафе за чашкой кофе с пончиками. К этому времени внизу собирается большая толпа, надеясь на кровавое зрелище. Пара голубей решилась свить гнездо у вас в волосах, а за ними приходит еще и сильный зов природы. Ради толпы внизу, вы сдерживаетесь, насколько это возможно..." (Дж. Кевин Уилсон)

Построение описания комнаты

Описания комнат -- это фундамент, на котором стоит ваша IF. Это главный метод, который вы используете для создания внутриигровой реальности для игрока, описывая места, предметы и настроение. Работая над IF, вы как бы создаете свою реальность в умах игроков. В действительности же вы вызываете в их памяти прошлые воспоминания, которые и оживляют ваш игровой мир.

Давайте посмотрим, как рождаются описания в играх IF. Начнем с самого простого:

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

Захватывающе, правда? Хотя это описание справляется с основной задачей, снабжая игрока информацией, для хорошего описания этого недостаточно. Слово "литература" в термине IF существует не просто так. Поэтому давайте подумаем сначала над самой комнатой. Что это за помещение? Допустим, в нашем случае мы описываем библиотеку. Каковы ее размеры? Как выглядят выходы?

...
Библиотека Вы стоите посреди большой комнаты. Длинный коридор уходит в темноту в северную часть здания. Вы видите двери в западной и восточной стенах. Серая неприметная дверь ведет на юг.
...

Наша библиотека обрела размеры. Теперь это "большая" комната, пусть это и не указывает на ее площадь в квадратных метрах. Я также сказал кое-что обо всех выходах из библиотеки. "Длинный коридор" приглашает игрока посмотреть, куда он может вести, намекая также на возможную таящуюся опасность в темноте. Заметьте, что я "слил" описания двух дверей (западной и восточной) в одно. О чем это может говорить? Во-первых, это показывает, что обе двери по внешнему виду неотличимы друг от друга, хотя дотошный осмотр каждой из них может выявить мелкие отличия. Во-вторых, это может означать, что обе двери ведут в одинаковые (и симметрично расположенные) помещения (и так обычно в играх и происходит). Если вы в описании не выделяете разительных различий между несколькими предметами, игрок начинает воспринимать их как одинаковые. Наконец, южная "неприметная" дверь намекает игроку, что за ней может скрываться что-нибудь очень важное. Так уж повелось в IF -- самое важное всегда прячется в самых "неприметных" местах :)

Но я еще ничего не сказал о самой комнате:
...
Библиотека
Вы стоите посреди большой комнаты. Под ногами лежит толстый, мягкий синий ковер, шуршащий всякий раз, когда вы делаете шаг. Ряды высоких стеллажей с книгами выстроились вдоль стен. Резной дубовый стул высовывается из-за небольшой конторки, прислонившейся к стеллажу под буквой "Т". Длинный коридор уходит в темноту в северную часть здания. Между стеллажами вы видите двери в западной и восточной стенах. Серая неприметная дверь ведет на юг.
...

Сравните с самым первым нашим описанием. Разница очевидна, хотя и последний вариант не безупречен. При этом нужно помнить, что на все предметы, присутствующие в описании, игра должна отреагировать. Поэтому, если игрок захочет "встать на ковер" или "посмотреть на стеллаж", игра должна будет выполнить его желание.

Вот перечисление тех элементов локаций, которые могут найти отражение в ваших текстах:

Размер

Насколько велика местность или комната? Маленькая, едва вмещающая столик и пару стульев? Огромная, размером с приличное футбольное поле, по которому свободно гуляет эхо?

Потолок/Небо

Потолок, высокий настолько, что кружится голова? Низкий, будто на нем лежит многотонный груз? Побелен? Покрашен? Может, на него из окна падает свет уличных фонарей и фар проезжающих машин? Есть ли паутина в углах? А может, его пересекают чьи-то следы? Если над головой небо, то какое оно? Хмурое, голубое, облачное, звездное? Видно ли солнце? Взошла ли луна?

Стены

Есть ли на них обои? Может, они покрашены? Из природного камня? Испускают свет? Отражают его? На них могут висеть картины, ковры, могут быть нанесены рисунки, фрески, они могут быть исписаны. В стенах могут быть окна, проемы, дыры.

Пол/Земля Что под ногами? Ковер, мрамор, дерево? Слышно ли эхо шагов? Податлив ли пол? Покрыт плиткой? Какого цвета? Под ногами может быть грязь, земля, трава, песок. Есть ли растения у дороги? Может, тропа петляет? Если я на лужайке, какая там трава? Есть ли вокруг кусты или цветы?

Освещение

Вокруг темно и мрачно или светло и солнечно? Тени в углах? Естественный ли здесь свет? Может, солнце светит в окна? Видна ли пыль в его лучах? Отражается ли свет от стеклянных и зеркальных поверхностей в комнате? В каждой освещенной комнате свет имеет определенный цвет, качество, падает под каким-то углом, может быть жестким, мягким, сухим, влажным.

Настроение

Какова атмосфера в комнате? Мрачная? Спокойная? Радостная? Кто бы здесь ни жил, он оставляет в комнате частичку своей личности и своего характера.

Чувства

Чем пахнет в комнате? Может, здесь пыльно, или висит приторно-сладкий запах, или сигаретный дым. Какие звуки слышны? Капает вода из крана, шум машин за окном, голоса соседей?

Отличный способ потренироваться в описаниях -- это взять записную книжку и пройтись по комнатам в квартире, зайти к друзьям и описывать все, что видите. Необязательно вписывать множество деталей, но некоторые из них позволяют скучной обстановке раскрыться с интересной стороны.

Еще несколько правил, которых следует придерживаться:

1. Описание комнаты должно существовать "вне времени" или оно должно меняться в зависимости от происходящих в мире событий.

Вот пример, иллюстрирующий то, о чем я говорю:

...
На краю леса
Солнце, наконец, выглянуло из-за рваных туч, и дождь унялся. Холм на западе защищает это место от ветра, здесь тихо и душно. Осенняя дымка по-прежнему застилает горизонт со всех сторон. Из леса на севере петляющая меж камней тропа идет к югу, а затем, огибая подножие холма, уходит на юго-запад.
...

Первая же фраза в этом описании тесно связана с происходившими в игре событиями. Очевидно, недавно в игровом мире прошел дождь, а после того, как игрок попал в эту локацию, дождь прекратился. Но теперь, всякий раз, когда игрок будет возвращаться в это место, текст будет напоминать ему, что "солнце, наконец, выглянуло из-за рваных туч".

2. В описании комнаты не должно содержаться действий персонажа, если только оно не меняется после этого.

То есть, фраз вроде "Вы вытираете пот со лба" не должно быть в описании, иначе персонаж будет "вытирать пот" всякий раз, когда игрок посещает эту комнату, что выглядит несколько неестественно.

3. В описании не должны присутствовать "движимые" предметы, если только оно не меняется после манипуляций с ними.

...
Гостевая комната
На деревянном полу лежит старая шкура белого медведя, на которую падает бордовый свет из камина у дальней стены. Перед ним стоят два низких удобных кресла. Слева от каминной полки на стене висит длинное черное охотничье ружье, а под ним на тонком кожаном шнурке болтается маленький рожок. Низкий потолок в комнате покрыт сучками и местами просел еще ниже, почти касаясь верха большого шкафа, прислонившегося к дверному косяку. На круглом столе, застеленном свежей скатертью, стоит большой колокольчик.
...

Здесь перечислено множество предметов, которые в принципе могут быть передвинуты, подобраны игроком, но которые все равно будут отображаться в описании, если автор не позаботится о его смене.

Чувства

1. Зрение

Когда мы говорим о роли зрения в IF, для меня это в первую очередь означает движение. Заметьте, что человек сначала обращает внимание на движущиеся предметы. Так и в вашей IF -- начните описание комнаты с тех предметов, которые двигаются, перемещаются, вращаются. Над головой раскачивается лампа, из крана капает вода. Игра без движения кажется плоской и призрачной.

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

Человек быстрее замечает яркие, броские цвета, поэтому в своем описании о красных, пурпурных, сверкающих предметах скажите раньше остальных. Затем имеет смысл описать наиболее крупные детали интерьера.

Любой предмет можно описать очень подробно, поэтому можете сделать это. Не нужно детально рассматривать каждый предмет в описании комнаты -- сделайте это в ответ на соответствующую команду игрока. Возьмем, к примеру, стул из нашей библиотеки. Это дубовый, резной, темный стул, с пятном голубой краски на спинке, оставшейся со дня ремонта. Одна ножка слегка поцарапана. Сидение стула уже сильно потерто, а небольшая трещинка пересекает его от спинки к правой передней ножке. Замечательно будет, если игрок сможет получить отдельное описание не только для самого предмета, но и для его отдельных частей, надписей и рисунков на нем. По крайней мере, сделайте так, чтобы игра распознавала все запрашиваемые игроком предметы и детали. Чем больше деталей и фактов вы приводите в тексте, тем более реалистичным становится ваш игровой мир.

Каждый предмет имеет свой цвет или набор цветов. Использование цветов в детальных описаниях важно для хорошего восприятия. Вы не обязаны придерживаться традиционных "красного", "синего" и т.п. Есть же еще "индиго", "ржавый", "багряный", "медный" и "салатовый". Материал также может изменить восприятие предмета: матовое стекло смотрится иначе, чем блестящий атлас. Цвета можно сравнивать с реальными объектами -- "сливовый", "кровавый", "металлический".

2. Слух

Звуки окружают нас. Если прислушаться, то в любом месте что-нибудь издает шум -- писк, шорох, скрежет, гудение и т.д. Та информация, которую несут звуки, может улучшить восприятие вашего игрового мира. В той же библиотеке на стене могут висеть часы (правильно, тикающие). Могут быть слышны шаги за стеной, над головой и под ногами, в подвале. Жужжит муха. Поскрипывает неплотно прикрытая "неприметная" дверь.

Фоновые звуки помогают создать настроение и атмосферу в IF. Здесь важно помнить о том, что даже при перемещении персонажа звуки могут быть еще слышны. Поэтому, если персонаж бродит по лесу, где в одной локации щебечут птицы, то и в большинстве его локаций должны щебетать птицы.

 В игре "So Far", в одном из альтернативных миров, которые посещает игрок,
 отсутствуют все чувства, кроме звуков. Этот мир -- прекрасный пример того,
 чего можно достичь благодаря богатой фантазии.

Если в описание какого-то события вы вставляете "Слева раздается звук", этого недостаточно. Таким звуком может быть стук, скрежет, шипение, звон, лязг, шелест, шуршание, свист, скрип, голос, и т.д. Детализация звука поможет в создании атмосферы игры. Однако, постарайтесь избежать прямого звукоподражания типа "Баммм!" или "Буль". Дайте игроку самому определить, что для него является "звоном" или "бульканьем".

3. Обоняние

Не брезгуйте запахами. Возьмите и опишите несколько подходящих запахов в своей игре. Резкий запах апельсина, свежий аромат соснового бора. Эти запахи, если они качественно описаны, оказывают сильное эмоциональное воздействие на игрока. Запах имеет тесную связь со вкусовыми ощущениями, поэтому полезно будет поместить рядом в тексте запах и вкус.

4. Осязание

"Осязание -- наша единственная связь с реальностью <...> Подумайте, что игрок испытывает; либо он просто увидел, как перед ним размахивают ножом, либо он чувствует, что нож приставлен к его горлу" (Дж. Кевин Уилсон). Авторы редко пробуют вводить осязание в игровой мир. Вы можете использовать различные текстуры для отражения того, с чем сталкивается игрок. Опишите ощущения от разных поверхностей: гладкий, шершавый, скользкий, холодный, горячий, колючий, твердый, мягкий, липкий, сухой, влажный, пушистый и т.п.

5. Вкус

В IF вкус является наименее "потребляемым" из чувств. Мы редко используем его, если только не едим что-то. Поэтому вы можете использовать вкус как решение паззла (скажем, нужно по вкусу определить разницу между двумя предметами). Как уже было сказано, вкус тесно связан с запахом. Вы чувствуете запах ванилина и сразу ощущаете вкус сладкого пирога. Едкий запах дыма сразу вызывает ощущение горечи и сухости во рту. Используйте это в своих текстах.

Различные приемы создания описаний

Сравните:

...
Спуск 1
Вы кашляете каждый раз, когда вдыхаете пыльный воздух этой пещеры. Стоя на протоптанной в пыли тропе, вы чувствуете, как пол слегка наклоняется к северу, где дорожка уходит в черный провал. От южного прохода, там, где вы вошли в эту пещеру, влево ведет короткий спуск из пяти ступенек, ведущий к расщелине в западной стене.
...

и

...
Спуск 2
Пещера наполнена взвешенной удушающей пылью. Пол здесь слегка наклонен, скат идет в северном направлении, к черному провалу вдали. Протоптанная в пыли между сталактитами тропа уходит к южному проходу, а оттуда истертый временем спуск из пяти ступенек поворачивает влево, к тесной расщелине в западной стене.
...

Вот еще один пример, на этот раз это перевод описания одной комнаты из игры "Adventure", одной из самых известных текстовых игр:

...
Вулкан
Вы стоите на краю бездны, откуда открывается захватывающий дух вид. Далеко под вами, из недр действующего вулкана выплескиваются огромные брызги расплавленной лавы, тут же падающие обратно в его глубины. Горящая кроваво-красным светом порода в дальнем конце пещеры придает всему неприятный, жуткий оттенок. Воздух наполнен сверкающими искрами пепла и тяжелым запахом серы. Стены здесь очень горячие, а громоподобный голос вулкана заглушает все остальные звуки. Бесчисленное множество горных образований, вкрапленных в неровные своды пещеры и состоящих из чистого белого алебастра, отбрасывают блеклый свет на стены, рисуя при этом странные формы.
Глубокое узкое ущелье наполнено кучами искромсанного камня, созданного, похоже, самим сатаной. Река огня вырывается из глубин вулкана, прокладывает себе путь через ущелье и стремительно падает прямо в преисподнюю далеко слева от вас. Справа, в центре кипящего серного озера, из пустынного островка непрерывно бьет огромный гейзер раскаленного пара. Дальняя правая стена полыхает собственным светом, придающим дьявольское величие этой и без того адской сцене. Темный проход, вызывающий дурные предчувствия, ведет на юг.
...

В описаниях Спуска 1 и вулкана рассказчик говорит игроку, чтО его персонаж переживает в помещении. Он описывает чувства, небольшие действия героя, его отношение к происходящему в игровом мире. Описания действий персонажа в этом случае также имеют "личный" характер. "Личные" описания могут активно использовать эмоции и небольшие, "спонтанные" действия игрока, вроде "вы прислушиваетесь", "отскочив в сторону, вы спотыкаетесь и падаете вниз" и т.п.

В описании Спуска 2 рассказчик отстранен от игрока и от персонажа. Он только лишь излагает факты, как они предстают перед персонажем, да и перед любым другим наблюдателем. Он может высказывать свое мнение относительно происходящего, но это мнение не будет касаться мнений игрока или его героя. Действия персонажа в этом случае также имеют "безличный" характер. Пример "безличных" действий уже приводился в прошлой главе. "Безличные" описания помогают игроку в отождествлении себя с героем. В этом случае игрок не может упрекнуть автора в том, что он "делает что-то за меня".

"Личное" действие:

> посмотреть на ступеньки
Присев на корточки, вы внимательно осматриваете покрытые пылью ступени. Выщербленные, истертые временем, под небольшим углом друг к другу, они спускаются к маленькой площадке перед узкой расщелиной в стене.

"Безличное" действие:

> понюхать
В воздухе летают мельчайшие частицы пыли и каменной крошки. Ветер, проносящийся по пещере из южного прохода в северный, разносит эту пыль по всему подземному комплексу. Кажется, он доносит и запах воды откуда-то с юга.

Разницу можно представить и таким способом:

"Безличное" действие описывает только результат самого действия. "Личное" включает в себя описание того, КАК оно было совершено и какие другие действия игрока сопровождали выполнение основного действия.

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

...
Тронный зал
Сквозь витражи в высоких нефах свет падает на ряд стройных колонн из цельного белого мрамора, уходящих под самый потолок, чьи огромные своды блестят серебром и узорной многоцветной росписью. Стоящие между колонн молчаливые и холодные нефритовые статуи образуют коридор, по которому надо пройти тому, кто отважится приблизиться к возвышению со многими ступенями. А на его вершине стоит малахитовый трон под мраморным балдахином.
...

Иногда полезный и интересный в воплощении прием -- это организовать в описании "слежение" за каким-либо предметом или явлением. Скажем, вы можете описать луч света, который, попав в комнату, отражается от нескольких поверхностей. При этом вы будете описывать по очереди все предметы, которых касается этот луч.

Другой ход -- это "скользить взглядом" по комнате, описывая сперва то, на что попадает ваш взор, а затем то, на что он перескакивает:

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

Интерактивность в тексте

Хорошее описание комнаты не обязательно должно быть длинным. Есть примеры описаний, умещающихся на 2-3 строчках, и это замечательно, ведь такой текст оставляет много пробелов, которые игрок готов заполнить воображением. Длинные же описания не оставляют игроку места для творчества своей детальностью. Вот тут опять возникает вопрос "интерактивности", на этот раз интерактивности текстов.

Как уже было сказано в других "интерактивных" разделах, суть IF лежит именно в ней -- в возможности добывать и создавать информацию. Если в решении паззлов создание информации было всего лишь иллюзией, которую автор тщательно прикрывает своим творчеством, то в текстах игры создание информации реально, необходимо и очевидно и автору, и игроку. Обратите внимание на это описание:

...
Вершина холма
Горизонт потонул в утреннем сиянии Великого Моря. Прикрыв рукой глаза от солнца, вы бросаете взгляд на берег внизу, где небольшая деревушка лежит в защищенном от ветра месте.
Чахлый дуб отбрасывает тень на спускающуюся дорогу.
...

В эти три строчки укладывается и описание места, и погода, и время действия. Здесь активно проявляется масштабность местности упоминанием моря и созданием впечатления огромного пространства. Такое описание сразу способно вызвать "призраков", туманные образы, в голове игрока. И здесь совсем не обязательно делать упор на каких-то менее важных деталях, все за автора сделает воображение игрока.

Автор должен чувствовать, где необходима детальность, а где -- краткость. Он должен пользоваться воображением игрока, и вам не всегда нужно "разжевывать" свои мысли для него. И всвязи с этим возникает тема для следующего раздела.

Образность

Создание образов является частью создания атмосферы и предполагает существование чего-то помимо непосредственно образа предмета в воображении игрока. Это указатель на иную реальность, которую игрок может постичь лишь частично. Возьмем огромную каменную голову, лежащую посреди пустыни. Как она там очутилась? Кто жил в этом месте? Сколько должно было пройти времени, чтобы все вокруг настолько изменилось? Или мост, построенный через огромное ущелье, но так и не пересекающий его. Был ли он закончен, а потом сломан? Или кто-то так и построил мост, уходящий в пустоту? Фрагмент предмета вызывает стремление закончить образ. И часто такие образы оказываются более интересными, чем если бы игрок мог увидеть и постичь их целиком.

Люди, которые играют в IF, имеют отличное воображение, но и оно обычно оперирует понятиями длин и размеров, которые легко представить. Прекрасно работают образы, противоречащие нашему ощущению "правильности" существования мира и заставляющие нас задумываться об альтернативной реальности, позволяющей такое поведение: смена мер и весов; процессы, которые протекают быстрее, чем в реальной жизни, или в обратном направлении, или застывшие на полпути; двери, открывающиеся в никуда; объекты, висящие в воздухе; неодушевленные предметы, обретающие жизнь.

Однако все интересное в вашем мире будет смотреться не лучше неумелого фокуса, если не будет подходящим образом описано. Тщательность и обстоятельность здесь -- ваши лучшие инструменты. Чем сказать, что что-то "шокирует" или "потрясает", лучше привести менее возвышенные, но более детальные описания и доказательства размеров или эмоционального влияния предмета. Фокус в том, чтобы усилить самые многообещающие детали, прояснив их как можно ярче. Все остальное может быть более размыто -- игрок воображением заполнит пробелы.

Ошибка на ошибке

Неважно, сколько времени вы проведете над кодом игры. Если в вашей программе больше десяти строк, в ней уже есть ошибки(*).

* ошибка, баг (bug)
  Термин, обозначающий ошибку в программе, заключающуюся в невыполнении ею
  запланированных функций.

Баги являются неотъемлемой :) частью любой программы. Даже опытный программист постоянно сталкивается с ними, ведь предусмотреть все, что сделает такое непредсказуемое существо, как компьютерная программа, невозможно. Важной задачей каждого автора IF на протяжении всей работы над игрой является поиск и уничтожение как можно большего числа багов.

Знай своего врага

1. Опечатки, пунктуационные и грамматические ошибки.

Их влияние на игру заключается, прежде всего, в отпугивании потенциальных игроков, которым не нравится спотыкаться на неправильно написанных словах и некрасиво выраженных образах и мыслях автора. Понятно, что если автор день и ночь трудится над своей игрой, ему трудно следить еще и за правильностью всего, что написано в его текстах (я уверен, что и в этой статье можно найти кучу ошибок). Но никто не говорил, что будет легко.

Некоторые платформы позволяют вынести весь текст из исходника игры в отдельный файл для проверки правописания. Можно сразу по нескольку раз прочитывать свой текст, проверяя его на наличие ошибок.

2. Неверная реакция

Выявление такого рода ошибок требует активного тестирования игры. Они возникают по той причине, что автор не предусмотрел всех состояний, в которых могут оказаться его предметы, и всех действий, которые игрок может с этими предметами совершить. То есть, если в вашей игре объекты реагируют на команду "поджечь <предмет>" фразой "<предмет> недолго горит, а затем гаснет", то вы можете столкнуться с такой ситуацией:

> поджечь бетонную плиту
Плита недолго горит, а затем гаснет.

3. Ошибки в программе

Это ошибки самого "низкого уровня", возникающие тогда, когда автор просто оставил незавершенной какую-либо часть своей программы. От них вы должны избавляться в первую очередь, так как они чаще всего наиболее заметны, и некоторые из них способны сделать игру невозможной.

> наполнить бутылку
Вы наполняете бутылку водой. Теперь бутылка пуста.

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

Тестирование игры

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

Альфа-тестирование

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

  1. Запустите игру и убедитесь, что все выходы ведут туда, куда они должны вести, описания не упоминают несуществующие предметы и не содержат орфографических, пунктуационных и других ошибок.
  2. Добавьте двери. В игре удостоверьтесь, что их можно открыть и закрыть.
  3. Добавьте NPC, активно проверяя их. Они должны правильно реагировать на действия игрока и на его вопросы.
  4. Добавьте паззлы. Проверьте их.
  5. Добавьте декорации и те объекты, которые не имеют отношения к решению паззлов.
  6. В игре осмотрите все предметы, трогайте их, кидайте, толкайте и всячески издевайтесь над ними. Поиздевайтесь также над NPC.

После подобной проверки вы должны иметь возможность решить все паззлы, совершать основные действия с предметами, взаимодействовать с NPC, осматривать местность и декорации. Помните, верный способ вызвать баг -- это "вылечить" другой баг. Поэтому после каждого "улучшения" нужно заново пробежаться по всему эпизоду.

Если вам кажется, что с вашей игрой все в порядке, переходите к следующему этапу тестирования.

Бета-тестирование

"Бета-тестирование -- это эксперимент по публичному самоунижению" (Дж. Кевин Уилсон). Стадия "бета" наступает, когда автор решается отдать свое детище на растерзание другим людям. На этом этапе открывается огромное число ошибок, особенно если ваша IF имеет серьезные размеры и вы не смогли хорошенько проверить ее на стадии "альфа".

Определите то количество людей, которые будут тестировать игру. Чем больше по размерам ваша IF, тем больше людей необходимо задействовать. Привлеките близких друзей, родственников, распространите игру в Интернет.

Поддерживайте постоянный контакт со своими "бета-тестерами", пусть все получившие игру отсылают вам отчеты с обнаруженными ошибками и предложениями. Кстати, о предложениях. Они не менее важны, чем исправление багов. Игроки могут посоветовать вам добавить в игру или исключить из нее отдельные места, эпизоды и ситуации; вам могут предложить ввести дополнительные "реакционные сообщения" на незначительные действия персонажа. Не отворачивайтесь от желаний игроков, если они действительно разумны.

Паззлы и NPC должны подвергаться особенно тщательной проверке.

Гамма-тестирование

"Гамма-тестирование" начинается после официального выхода игры в свет и не заканчивается, пока существует хотя бы один из ее экземпляров, и пока автор не потерял интерес к своему проекту. Вы можете выпустить "версию 2", "версию 3" и т.д. своей игры, если ваши игроки нашли новые ошибки.

В любой работе IF всегда есть место для дальнейшего улучшения. "Всегда есть еще один баг, еще один текст, который стоило бы улучшить, или еще одна ироничная реплика, которую можно было бы вставить в игру" (Грэхем Нельсон).

Заключение

Надеюсь, эти несколько глав помогли начинающим в написании IF, а, возможно, даже опытные авторы нашли здесь для себя что-то полезное, ведь я постарался внести в этот цикл не только свои мысли, но и добавить что-нибудь из опыта забугорных авторов игр и работ по IF-теории. Хотелось бы, чтобы сообщество ценителей и любителей интерактивной литературы росло и расширялось. Всем настоящим и будущим авторам я желаю удачи в создании своего шедевра.

Здесь заканчивается цикл "Пишем Interactive Fiction".

IF Rulezz!

При работе над статьей использовались следующие материалы:

Aikin, Jim "Lessons Learned The Hard Way"
Berlyn, Michael "Description Medicine"
Bowers, Neil "The Taxonomy Of Plot Devices"
DeMause, Neil "All That Erasmatazz"
Forman, C. E. "Game Design At The Drawing Board"
Genx, "Описание программы Inter Quest"
Granade, Stephen "Choosing Adventure Language"
Granade, Stephen "Death's Sting"
Granade, Stephen "Interactive Fiction In Five Easy Years!"
Granade, Stephen "Portable Stuff"
Granade, Stephen "Puzzle Logic"
Granade, Stephen "Puzzles And NPC"
Granade, Stephen "Reactions And Interactions"
Granade, Stephen "Simulating Adventure"
Jones, Derek "Archetype -- The Text Adventure Language"
Nelson, Graham "Craft of Adventure"
Nelson, Graham "Inform Designer's Manual"
Newell, Bob "Which Adventure System Is Better?"
Nilsson, Thomas "ALAN Manual And Tutorial"
Parker, Marnie "An Iffy Theory"
Rees, Gareth "Distinguishing Between Game Design And Analysis: One View"
Ripsoft Corp. "Universal Ripsoft Quest"
Roberts, Mike "TADS Manual"
Short, Emily "Fantasy Setting In IF"
Standish, Jeff "GINAS Manual"
Stevens, Duncan "The Player Character's Role In Game Design"
Tessman, Kent "Hugo Manual"
Welch, Mark; Malmberg, David "AGT Manual and Tutorial"
Williamson, Gil "Computer Adventure -- The Secret Art"
Wilson, G. Kevin "Room Descriptions, Friend or Foe?"
Wilson, G. Kevin "Whizzard's Guide To Text Adventure Authorship"
Wood, John "Player Character Identity in Interactive Fiction"

Большинство вышеперечисленных платформ, а также игры, созданные с их помощью, можно переписать с IF-ftp-архива ftp.gmd.de или с сайта ifarchive.org

Благодарю Джерри Кевина Уилсона и Стивена Грэнед, хотя сомневаюсь, что они сумеют прочесть эти благодарности :) Благодарю всех посетителей форума на fiction.dax.ru, кто помог мне в подготовке материала для раздела "Платформы". Особая благодарность Olegus-у и Стасу Старкову, чьи справедливые критика и предложения побудили меня переписать и добавить некоторые разделы этой статьи.

Комментарии, критика, предложения и вопросы принимаются по адресам:

emperor007@mail.ru

emperor007@email.com

(у меня нерегулярный доступ в И-нет, так что будьте терпеливы в ожидании ответов!)

Я также приглашаю всех ценителей IF на сайт Interactive Fiction: по-русски.

Не забудьте свой фонарик, бронзовый ключ и пустую бутылку!

Emperor

20 авг 2001 - 03 янв 2002

Комментарии: 3 | Версия для печати

Если Вам есть, что показать миру (или сказать нам), пишите: admin@ifiction.ru
ВНИМАНИЕ! Все материалы, размещенные на сайте, являются интеллектуальной собственностью их авторов.
Свободное использование материалов возможно только при согласии авторов и соблюдении их прав
(см. «Закон РФ об авторском праве и смежных правах»).

GameTop - рейтинг игровых ресурсов