«Интерактивная литература?» А что это такое?
«Интерактивная литература» (далее ИЛ) — это русский аналог англоязычного понятия “Interactive Fiction“ (IF). В самом широком понимании термина, это — любая разновидность художественных произведений, сюжет которых не является жестко фиксированным, но способен изменяться в зависимости от действий читателя (в компьютерном варианте — пользователя). Например, популярные некогда книжки с нелинейным или «ветвящимся» сюжетом — это тоже вариант ИЛ.
Здесь, однако, мы будем рассматривать исключительно компьютерную разновидность ИЛ. К ней относятся любые интерактивные программы, которые преподносят пользователю информацию преимущественно в текстовом виде (т.е. не в виде графики, анимации, звука и т.п.), а часто (хотя это и не обязательно) также получают инструкции от пользователя в виде текстовых команд (на языке, близком к естественному). Конечно, также обычно предполагается, что у произведения ИЛ имеется сюжет — чаще всего, это приключение какого-нибудь рода, в котором пользователь обычно участвует в качестве главного героя (протагониста). Наиболее известная и популярная разновидность ИЛ — это текстовые игры (они же «текстовые квесты», «игры с текстовым вводом» и т.п.), но нужно заметить, что понятие ИЛ все-таки несколько шире, и не ограничивается исключительно ими. ИЛ — не обязательно просто развлечение, это полноправный жанр искусства!
Довольно близкими родственниками ИЛ можно считать разнообразные текстовые ролевые игры (RPG), MUDы и прочее в том же духе (хотя в данном случае, конечно, упор обычно делается на интерактивность — а «литературность», в лучшем случае, является зачаточной :)).
Как интересно! Даже никогда про такое не слышал…
Ну, если Вы принадлежите к новейшему поколению пользователей компьютеров, то это и неудивительно. :)
Конечно, ИЛ — это очень древний (возможно, даже древнейший) жанр компьютерных развлечений (или, если хотите, компьютерного искусства). Что и понятно, поскольку для текстовой игры не требуется видеокарта с аппаратным 3D-ускорением, графический монитор с высоким разрешением и стереосистема — простейшего текстового дисплея и клавиатуры вполне достаточно. Поэтому текстовые игры появились сразу после того, как были созданы первые интерактивные компьютеры, т.е. компьютеры, с которыми пользователь мог общаться напрямую, вводя команды и почти немедленно получая на них какой-либо отклик. (Революционность этого вы легко можете себе представить, если вспомните, что еще раньше общение с компьютером состояло главным образом в том, что пользователь сдавал оператору в машинном зале стопку перфокарт или рулон перфоленты, а потом несколько часов ждал, когда ему выдадут результаты прогона в виде листинга.) В общем, как только интерактивные компьютеры перестали быть экзотикой, отдельные творческие личности начали думать о том, как бы приспособить их к чему-нибудь менее скучному, чем работа. Можно сказать, что идея компьютерных игр витала в воздухе.
Сейчас общепризнанно, что первой настоящей текстовой компьютерной игрой была «Приключение» (Adventure), известная также под названием «Подземелье» или «Пещера» (Dungeon) и другими. Adventure создали в 1976 г. в Стэнфорде двое компьютерщиков, Уилл Краутер (Will Crowther) и Дон Вудз (Don Woods). Игра была только текстовой, управлялась простейшими текстовыми командами (в основном, типа глагол + существительное) на рудиментарном английском, и заключалась в блуждании по пещере и поиске разбросанных там сокровищ и магических артефактов. Тем не менее, эта игра сыграла колоссальную роль в истории, положив начало целому жанру компьютерных игр (а также украв, наверное, десятки тысяч человеко-часов дорогостоящего компьютерного времени).
Игра "Adventure" породила немало подражаний. Несомненно, одним из самых удачных стал "Zork" — игра, созданная несколькими студентами из MIT (Массачусетского Технологического Института). Сюжет отличался очень мало (также блуждания по пещере и сбор сокровищ), но головоломки стали заметно разнообразнее и интереснее, а в игре появилось больше NPC с нетривиальным поведением и собственными целями. Так как игра сумела превзойти оригинальный Adventure по популярности, ее создатели решили всерьез заняться разработкой текстовых компьютерных игр — так летом 1979 г. родилась легендарная фирма "Infocom". Именно она ввела в оборот термин “Interactive Fiction”, и за десять лет своей истории выпустила около 30 игр этого жанра, многие из которых (“Hitchhiker’s Guide to Galaxy”, “Leather Goddeses of Phobos”, “Planetfall”, “Trinity”, “Wishbringer”) считаются несомненной классикой.
На волне успеха Infocom появилось немало других фирм, специализирующихся на коммерческой интерактивной литературе. Так, заслуживают упоминания "Legend Entertainment" (возникшая на руинах "Infocom" после распада последней), "Adventure International" Скотта Адамса, британские фирмы "Topologika", "Level 9" и "Magnetic Scrolls", австралийская "Melbourne House"… этот список можно продолжать еще долго. Замечу, что в свое время в жанре текстовых приключений также «отметилось» немало фирм, названия которых обычно ассоциируются с играми других жанров — так, можно вспомнить "Electronic Arts" (“Amnesia”), "Interplay" (“Borrowed Time”) и "Apogee" (“Beyond the Titanic” и “Supernova”). Наконец, существование ИЛ послужило стимулом для возникновения и развития другого (хотя и близко родственного жанра) — сугубо графических приключений, ориентированных на «мышиное» управление. Позднее такими играми прославились "Sierra On-line", "Lucasarts", "Access Software" и многие другие фирмы — но это уже совсем другая история. Конечно, стремительный прогресс возможностей персональных компьютеров не мог не повлиять на развитие жанра: в ИЛ начали появляться графика (особенно хорошая в продуктах "Magnetic Scrolls" и "Legend"), музыка со звуковыми эффектами и альтернативные текстовым командам средства управления (многооконный интерфейс многих игр от "Legend" можно считать особенно удачной находкой). Но важнейшей составляющей новых игр все-таки остался художественный текст — что и позволяет утверждать, что основы жанра остались прежними.
Таково, если кратко, славное прошлое интерактивной литературы. Вместе с тем, у этого жанра имеется не менее славное настоящее — и, хочется надеяться, славное будущее.
Текстовые игры, да еще и с текстовым вводом? Звучит как-то несовременно. Разве сейчас это кому-либо интересно?
Да, интересно (хотите – верьте, хотите – нет). Жанр интерактивной литературы отнюдь не устарел — он продолжает жить и развиваться.
Конечно, свое коммерческое значение в наши дни он в основном потерял — сегодня вряд ли кто-нибудь будет создавать ИЛ исключительно ради прибыли (хотя до сих пор встречаются и shareware, и даже коммерческие текстовые приключения). Основной движущей силой ИЛ-сцены сейчас являются энтузиасты-любители. Однако, их довольно много; среди них есть исключительно талантливые люди, и многие современные произведения ИЛ нисколько не уступают «классическим образцам». Можно даже считать, что декоммерциализация жанра отчасти пошла ему на пользу — появилось немало по-своему любопытных образцов нетрадиционной и экспериментальной ИЛ, находящихся где-то на стыке между компьютерными развлечениями и литературным авангардом.
Можно предположить, что общее число пользователей ИЛ составляет десятки тысяч. В Интернете проводятся конкурсы, такие как IF-competition; выходят ориентированные на ИЛ электронные издания; в сетевых форумах, посвященных этому жанру, идет активная дискуссия — словом, говорить о какой-либо «смерти жанра» не приходится.
Но что, собственно, люди в них находят? Чем они лучше, чем графические квесты?
Ну, прежде всего, такая постановка вопроса вряд ли корректна. Никто ведь не утверждает, что произведения ИЛ заведомо «лучше», чем графические квесты. Важно понимать, что это разные жанры (в какой-то степени даже ориентированные на различную аудиторию).
Между ИЛ и графическими приключениями существует разница, во многом похожая на различие между традиционной литературой и кинематографом. Несомненно, и книги, и фильмы являются произведениями искусства, но средства воздействия на потребителя они используют разные — художественный текст и видеоряд. Безусловно, по книге можно поставить фильм (иногда даже очень хороший) — но даже в этом случае фильм не заменит книгу. Просто кино и литература — два разных вида искусства, и спорить о том, какой из них «лучше» — занятие явно бессмысленное.
Вместе с тем, сравнивая жанры, можно заметить, что, хотя графические квесты сейчас намного более популярны, у ИЛ есть свои несомненные достоинства.
Прежде всего, безусловно, это относительная нетребовательность к вычислительным ресурсам. Конечно, ИЛ-игры тоже встречаются разные (в том числе и довольно большие по объему), но большинство из них предъявляют весьма скромные требования к мощности компьютера и объему памяти. Трудно представить себе современный графический квест размером всего в 250–300 Кбайт, в то время как для ИЛ-продукта это нормальный объем. Разумеется, отсутствие острой необходимости в средствах графического и звукового вывода также расширяет набор устройств, подходящих для ИЛ. В тех современных ИЛ-продуктах, где предусмотрены графика и звук, их обычно можно отключить, ограничившись текстом (даже если общее впечатление от игры пострадает, играть все равно будет можно). Как следствие, играть в ИЛ-игры обычно можно на самых допотопных компьютерах, а также лэптопах, наладонниках и даже сотовых телефонах.
Этому также способствует еще один важный аспект ИЛ — переносимость (кроссплатформенность). Очень многие современные игры, реализованные на основе современных ИЛ-платформ, способны работать везде, где имеется подходящий для данной платформы интерпретатор, а один файл игры подходит сразу для всех платформ. (Подробнее об этом в пункте 1.6.)
Многие достоинства ИЛ являются следствием того, что это — очень демократичный жанр по своей сути. Создать выдающийся продукт вполне под силу одному человеку, ему не требуется для этого армия высокооплачиваемых помощников — художников, аниматоров, композиторов и звуковиков. Вследствие этого, авторы ИЛ менее стеснены в своих творческих планах, и способны реализовывать совершенно некоммерческие и очень интересные идеи. (Собственно, с кинематографом весьма похожая ситуация, т.к. чем более дорогостоящими становятся фильмы, тем более шаблонными — их сюжеты. Как же иначе, если продюсеров больше всего интересует прибыль, и они не хотят рисковать собственными деньгами?)
Другой аспект этой творческой свободы — возможность с минимумом усилий реализовать более сложный и разветвленный сюжет, или больший набор вариантов событий или действий для главного героя. Безусловно, графические квесты сильнее ограничены в этом отношении — даже большая команда художников и аниматоров физически не способна нарисовать больше, чем осилит. А в текстовой игре для добавления какой-нибудь новой ветви сценария достаточно написать десяток-другой строк текста, благодаря чему в ИЛ можно встретить более интересный, продуманный и многовариантный сюжет.
Можно также сказать, что текстовые игры в очень малой степени подвержены моральному старению (если, конечно, Вы не считаете, что жанр устарел морально как таковой). Увы, даже в самых классических рисованных квестах графика сегодня часто выглядит архаично («неплохо, но в 1024x768xTrueColor этот волшебный лес смотрелся бы намного лучше»). Безусловно, это одна из сильных сторон ИЛ — когда графика отсутствует, она в принципе не может устареть :). Совершенно то же, конечно, можно сказать про звуковое сопровождение, и прочие атрибуты мультимедиа. (Конечно, устареть также может сама «программная оснастка» игры, но об этом аспекте проблемы мы поговорим чуть ниже.)
Наконец, в текстовые игры часто можно играть прямо на работе, не вызывая особых подозрений у сослуживцев и начальства. :)
Текстовый ввод команд — это, наверное, ужасно неудобно и непрактично?
Во-первых, еще раз хотелось бы подчеркнуть, что текстовый ввод команд — это не догма! Так, большинство игр от Legend можно пройти с начала до конца, пользуясь лишь мышью. И отдельные игры, и многие современные ИЛ-системы также предоставляют разнообразные альтернативы вводу текстовых команд, зачастую довольно удобные.
Во-вторых, это не обязательно неудобно. Многое зависит от того, насколько качественно в игре реализован синтаксический анализатор введенных команд или парсер (дальше мы будем пользоваться этим термином). Безусловно, основная проблема с «самодельными» играми — некачественный парсер, существенно уступающий сложившимся стандартам. Даже когда сама игра не столь уж плоха, парсер в ней часто реализован настолько убого (крайне ограниченный набор слов и синонимов, только простейшие команды типа глагол+существительное, и т.п.), что сам процесс игры превращается в мучение. В общем-то, это — одна из причин, из-за которых сложилось устойчивое мнение, что игры с «мышью» принципиально удобнее.
Но ведь это не так! В большинстве игр от тех же "Infocom", "Legend", "Magnetic Scrolls" парсер является очень хорошим. Обычно он понимает огромное количество глаголов и внушительный набор синонимов и определений для всех объектов игры (десяток синонимов для одного объекта — в порядке вещей); правильно распознает весьма сложные английские фразы (вроде “use trowel to plant pot plant into plant pot” из "The Pawn" от "Magnetic Scrolls"); автоматически поддерживает механизм «уточнения» (если какое-нибудь слово может относиться к нескольким объектам, игра автоматически уточняет, что именно пользователь имеет в виду) и быстрого исправления неправильно введенных команд; поддерживает местоимения — в общем, способен на многое. Помимо этого, набор глаголов, как правило, хорошо стандартизован, а вместо многих из них допускаются общепринятые сокращения (l — look, x — examine и т.п.). Наконец, обычно поддерживается большой набор стандартных служебных команд (сохранение, восстановление, перезапуск, выход, текущий счет и т.д.). Кроме того, все развитые ИЛ-системы обычно поддерживают достаточно мощные и удобные средства для редактирования вводимых команд (включая механизм «истории», автоматически запоминающий все, что вы вводили раньше) и возможность сохранения во внешнем файле списка выполненных команд и полного транскрипта сеанса игры. В действительно профессиональных играх довольно трудно придумать команду, которую игра бы не сумела понять. Начав играть в такую игру, Вы можете быстро забыть, что у Вашего компьютера вообще имеется мышь.
А есть ли вообще необходимость в специализированных системах для создания ИЛ? Разве нельзя использовать какой-нибудь стандартный язык программирования?
Можно слышать такое мнение: «Вот я хорошо владею Бейсиком (Паскалем, Delphi, C, C++, Java….), так что без труда напишу текстовую игру на этом языке. Это должно быть совсем несложно — не Quake 3, все-таки!»
Распространенное заблуждение. Нет, безусловно, Вы можете попробовать написать свою игру на любом из перечисленных языков. Может даже получиться совсем неплохо — имеется немало вполне достойных ИЛ-продуктов, написанных на самых стандартных языках программирования. Но все-таки, я настоятельно посоветовал бы Вам сначала обратить внимание на какую-нибудь из специализированных ИЛ-систем. Почему?
Во-первых, выше уже шла речь о том, что большинство современных ИЛ-технологий автоматически обеспечивают такое существенное преимущество, как переносимость. Она достигается за счет того, что создаваемый файл игры представляет собой двоичную программу специализированного формата, не привязанную к конкретному процессору или операционной системе. Конечно, для ее выполнения необходима отдельная программа-интерпретатор — но, если она есть, Вы получаете возможность выполнять любые программы, созданные на основе данной технологии. Помимо системной независимости, такие программы обычно являются довольно компактными (поскольку им не надо реализовывать детали взаимодействия с клавиатурой, дисплеем, ОС и пр. — все это уже реализовано в самом интерпретаторе) и, что немаловажно, абсолютно безопасными в смысле вирусов или других компьютерных вредителей.
Другое, не менее важное преимущество ИЛ-систем состоит в том, что в них уже есть многое из того, что иначе придется реализовывать самостоятельно. Прежде всего, конечно, это анализатор команд, т.е. парсер. Эту проблему мы уже затронули выше — приступив к созданию собственной игры, многие обнаруживают, что, хотя сделать примитивный парсер (ориентированный на команды типа «глагол + существительное») нетрудно, пользователь его очень быстро возненавидит (а вместе с ним и саму игру). Реализация же достаточно продвинутого парсера, соответствующего уровню действительно мощных ИЛ-систем — это весьма нетривиальная задача.
Важным преимуществом ИЛ-систем является то, что они обычно самостоятельно умеют создавать рабочий словарь — специальную внутреннюю структуру данных, содержащую все слова, которые может понимать программа (и оптимизированную для их поиска). Все слова, упомянутые в исходном тексте программы, в сгенерированном коде автоматически заменяются ссылками на поля словаря, за счет чего программа становится намного компактнее, а распознавание команд — эффективнее. Поскольку большая часть данных в ИЛ-программах — это текстовые строки, для них часто применяются специальные методы кодирования со сжатием и устранением дубликатов, что очень существенно уменьшает размеры готовой программы.
Помимо парсера, другой источник потенциальных сложностей — корректная реализацией объектной модели игры. Большинство современных ИЛ-технологий являются объектно-ориентированными — иными словами, программа для них является набором объектов, способных взаимодействовать (обычно путем посылки сообщений) с игроком и друг с другом. Конечно, многие современные языки программирования (C++, Java, Delphi) также являются объектно-ориентированными и поддерживают похожую идеологию. Но такая задача, как описание объектного мира игры, часто проще и эффективнее решается в ИЛ-системах — за счет того, что большой набор объектов и логических взаимосвязей между ними может быть создан уже во время компиляции. ИЛ-системы обычно также предоставляют готовую библиотеку классов, на основе которых можно создавать собственные объекты с унаследованными свойствами. Разрабатывая объектную модель игры самостоятельно, без таких наработок, очень просто допустить ошибки (например, связанные с реализацией объектов-контейнеров, способных содержать в себе другие объекты). Использование стандартных библиотек значительно уменьшает вероятность подобных ошибок.
Понятно, что должно быть реализовано также сохранение и восстановление состояния игры. Решить эту проблему средствами стандартных языков не столь уж просто (особенно когда желательно, чтобы файлы сохраненных игр оказались компактными), в то время как в системах ИЛ это обычно делается автоматически, без каких-либо усилий со стороны программиста.
Поскольку какие-то ошибки в процессе разработки программы все равно неизбежны, во всех ИЛ-системах присутствуют довольно мощные и удобные средства отладки. Часто они позволяют отлаживать программу в терминах созданного вами объектного мира, изменяя местоположение и свойства отдельных объектов, позволяя переместиться в любую локацию, приобрести любой предмет и т.п. Дополнительные сервисные возможности, вроде вывода всего текста игры в отдельный файл для проверки орфографии и пунктуации, также весьма полезны.
Наконец, нельзя не упомянуть о том, что существуют и сугубо интерактивные системы разработки ИЛ (Adrift, SUDS, консольные системы), позволяющие создавать и редактировать игры без собственно программирования, исключительно в режиме диалога. Возможности таких систем пока заметно уступают полноценным языкам ИЛ-программирования — но перспективы у этого направления, безусловно, имеются.
Подводя итоги, есть смысл вспомнить старую истину: для решения каждой задачи есть свой инструмент, и то же справедливо и для языков программирования. Конечно, у универсальных языков есть свои несомненные достоинства — но для решения таких специфических задач, подобных разработке ИЛ, специализированные часто подходят намного лучше.
Является ли жанр ИЛ преимущественно англоязычным, или другие языки тоже встречаются? Как обстоят дела с ИЛ на русском языке?
Исторически сложилось так, что первым и основным языком интерактивной литературы стал английский. Это, конечно, не случайно. Прежде всего, этому способствовало место появления первых продуктов ИЛ — сперва США, несколько позднее Великобритания и другие англоязычные страны.
Помимо этого, у английского языка имеются и другие существенные преимущества — в первую очередь его грамматический строй. Из всех европейских (да и мировых) языков, английский — один из самых простых по своей морфологии. Существительные и прилагательные не склоняются; глаголы не спрягаются, а их неопределенная форма ничем не отличается от повелительной (поэтому “take iron key” можно понимать и как «взять железный ключ», и как «возьми железный ключ»), согласования минимальны и т.п. По этим причинам в качестве языка общения с пользователем для ИЛ-системы проще использовать английский, чем другие языки — причем язык системы (как входной, так и выходной) будет достаточно правильным и грамотным, чтобы пользователя это не коробило. Немаловажно и то, что для английского характерны достаточно короткие слова (значительное количество слов не превышает по длине шести букв, или, по крайней мере, различаемо по ним).
С развитием жанра, однако, появились попытки создания ИЛ-игр на других языках — прежде всего, конечно, европейских — как путем создания оригинальных ИЛ-систем, так и путем локализации существующих англоязычных. В настоящее время существует довольно богатая интерактивная литература на французском, итальянском, испанском и немецком языках.
Что же касается ИЛ на русском языке, то это направление пока еще только делает первые шаги. В какой-то степени это обусловлено относительно сложной морфологией языка (склонением существительных и прилагательных, которое, к тому же, часто важно для понимания фразы), разнообразием форм глаголов и глагольных приставок, относительно длинными словами и многими другими факторами. Тем не менее, все эти трудности, несомненно, преодолимы (тем более, что во многих европейских языках, которые не намного проще, чем русский, с ними удалось справиться). На мой взгляд, бороться с этими трудностями лучше всего с помощью одной из уже русифицированных систем.
Материал взят с