»нтерактивна€ литература

(текущее состо€ние, тенденции, средства разработки)
ƒата публикации:18.08.2004
ѕоделитьс€ в Twitter ѕоделитьс€ в F******k ѕоделитьс€ в VKontakte ѕоделитьс€ в Telegram

1. ¬ведение

1.1. Ђ»нтерактивна€ литература?ї ј что это такое?

»нтерактивна€ Ћитература (далее »Ћ) Ч это русский эквивалент англо€зычного пон€ти€ Interactive Fiction (IF). ¬ самом широком понимании термина, это Ч люба€ разновидность художественных произведений, сюжет которых не €вл€етс€ фиксированным, а способен мен€тьс€ в зависимости от действий читател€ (в Ђкомпьютерномї варианте Ч пользовател€). Ќапример, попул€рные некогда книжки с нелинейным или Ђветв€щимс€ї сюжетом Ч это тоже вариант »Ћ.

«десь, однако, мы рассматриваем исключительно компьютерную разновидность »Ћ.   ней относ€тс€ любые интерактивные программы, которые преподнос€т пользователю информацию преимущественно в текстовом виде (не в виде графики, анимации, звука и т.п.), а часто (хот€ это и не об€зательно) также получают инструкции от пользовател€ в виде текстовых команд (составленных на €зыке, близком к естественному).  онечно, также обычно предполагаетс€, что у произведени€ »Ћ имеетс€ сюжет Ч чаще всего, это приключение какого-нибудь рода, в котором пользователь обычно участвует в качестве главного геро€ (протагониста). Ќаиболее известна€ и попул€рна€ разновидность »Ћ Ч это текстовые игры (они же Ђтекстовые квестыї, Ђигры с текстовым вводомї и т.п.), но нужно заметить, что пон€тие »Ћ все-таки несколько шире, и не ограничиваетс€ исключительно ими. »Ћ Ч не об€зательно развлечение, это полноправный жанр искусства!

ƒовольно близкими родственниками »Ћ можно считать разнообразные текстовые ролевые игры, MUDы и пр. (хот€ в данном случае, конечно, упор обычно делаетс€ на интерактивность Ч а Ђлитературностьї, в лучшем случае, €вл€етс€ зачаточной J).

1.2.  ак интересно! ƒаже никогда про такое не слышалЕ

Ќу, если ¬ы принадлежите к новейшему поколению пользователей компьютеров, то это неудивительно.  онечно, »Ћ Ч это очень древний жанр компьютерных развлечений (или, если хотите, компьютерного искусства). Ѕолее того Ч возможно, древнейший. Ќеудивительно, ведь дл€ текстовой игры не требуетс€ графический монитор с высоким разрешением, стереосистема и видеокарта с аппаратным 3D-ускорением Ч простейшего текстового диспле€ и клавиатуры достаточно. ѕоэтому текстовые игры по€вились сразу после того, как были созданы первые интерактивные компьютеры Ч т.е. компьютеры, с которыми пользователь мог общатьс€ напр€мую, ввод€ команды и почти сразу получа€ на них ответ! (–еволюционность этого вы легко можете себе представить, если вспомните, что до этого общение пользовател€ с компьютером состо€ло главным образом в том, что пользователь сдавал оператору в машинном зале стопку перфокарт или рулон перфоленты, а потом несколько часов ждал, когда ему выдадут результаты прогона в виде листинга.) ¬ общем, как только интерактивные компьютеры перестали быть экзотикой, отдельные творческие личности начали думать, как бы приспособить их к чему-нибудь менее скучному, чем работа. ћожно сказать, что иде€ компьютерных игр витала в воздухе.

—ейчас общепризнанно, что первой насто€щей текстовой компьютерной игрой была Ђѕриключениеї (Adventure) Ч она же известна под названием Ђѕещераї (Dungeon) и многими другими. Ёту игру создали двое компьютерщиков, ”илл  раутер (Will Crowther) и ƒон ¬удз (Don Woods) в 1976 г. в —тэнфорде. »гра была чисто текстовой, управл€лась простейшими текстовыми командами (в основном из двух слов), и заключалась в основном в блуждании по пещере и поиске разбросанных там сокровищ и магических артефактов. “ем не менее, эта игра сыграла колоссальную роль в истории, положив начало целому жанру компьютерных игр (и похитив, наверное, дес€тки тыс€ч человеко-часов дорогосто€щего компьютерного времени).

»гра ДAdventureУ породила немало подражаний, причем одним из самых удачных стал УZorkУ Ч программа, созданна€ группой студентов из MIT (ћассачусетского “ехнологического »нститута). —южет был очень похож (также блуждани€ по пещере, также сбор сокровищ), но головоломки стали заметно разнообразнее и интереснее, а в игре по€вилось больше NPC с нетривиальным поведением и собственными цел€ми. »гра сумела превзойти оригинальный Adventure по попул€рности, и ее создатели решили всерьез зан€тьс€ созданием текстовых компьютерных игр Ч так летом 1979 г. родилась легендарна€ фирма Infocom. ѕоследн€€ ввела в оборот термин УInteractive FictionФ, и за дес€ть лет своей истории выпустила около 30 игр этого жанра, многие из которых (УHitchhikerТs Guide to GalaxyФ, УLeather Goddeses of PhobosФ, УPlanetfallФ, УTrinityФ, УWishbringerФ) Ч признанна€ классика.

Ќа волне успеха Infocom по€вилось и немало других фирм, специализирующихс€ на коммерческой интерактивной литературе. ћожно упом€нуть британские Level 9 и Magnetic Scrolls, Legend Entertainment (фактически возникшую на руинах Infocom), Adventure International и австралийскую Melbourne HouseЕ этот список можно продолжать еще долго. «амечу, что в свое врем€ в жанре текстовых приключений Ђотметилосьї немало фирм, названи€ которых обычно ассоциируютс€ с играми совершенно другого плана Ч так, можно вспомнить Electronic Arts (УAmnesiaФ) и Apogee (УBeyond the TitanicФ и УSupernovaФ). Ќаконец, существование »Ћ послужило толчком дл€ возникновени€ и развити€ другого (хот€ и родственного жанра) Ч чисто графических приключений, ориентированных на Ђмышиноеї управление, которыми позже так прославились Sierra on-line, Lucasarts, Access Software и многие другие. ќднако, это уже друга€ истори€.  онечно, быстрый прогресс возможностей персональных компьютеров не мог не повли€ть на развитие жанра: в »Ћ-играх начали по€вл€тьс€ и графика (особенно хороша€ у Magnetic Scrolls и Legend), и музыка со звуковыми эффектами, и альтернативные текстовым командам средства управлени€ (многооконный интерфейс игр от Legend можно считать особенно удачной находкой). ќднако, важнейшей составл€ющей этих игр все-таки осталс€ художественный текст, что и позвол€ет говорить о том, что основы жанра остались прежними.

“аково, если вкратце, славное прошлое интерактивной литературы. ¬месте с тем, у этого жанра имеетс€ не менее славное насто€щее (и, хочетс€ наде€тьс€, славное будущее).

1.3. “екстовые игры, - архаика, ретро или современность?

’отите Ц верьте, хотите Ц нет), но текстовые игры весьма попул€рны и сегодн€. ∆анр интерактивной литературы отнюдь не устарел Ч он продолжает жить и развиватьс€.

 онечно, свое коммерческое значение в наши дни он в основном потер€л. —егодн€ вр€д ли кто-либо будет создавать »Ћ исключительно ради прибыли (хот€ до сих пор встречаютс€ и shareware, и даже коммерческие текстовые приключени€). ќсновной движущей силой этого жанра сейчас €вл€ютс€ энтузиасты-любители. ќднако, их довольно много; среди них есть исключительно талантливые люди, и многие современные произведени€ »Ћ нисколько не уступают Ђклассическим образцамї. ћожно даже считать, что декоммерциализаци€ жанра отчасти пошла ему на пользу Ч по€вилось немало по-своему любопытных образцов экспериментальной и нетрадиционной »Ћ, наход€щихс€ где-то на стыке между компьютерными развлечени€ми и литературным авангардом.

ћожно предположить, что общее число пользователей »Ћ никак не меньше сотни тыс€ч. ¬ —ети провод€тс€ конкурсы, такие как IF-contest; выход€т электронные издани€, ориентированные на »Ћ; в сетевых форумах, посв€щенных этому жанру, идет активна€ дискусси€ Ч словом, говорить о Ђсмерти жанраї отнюдь не приходитс€.

1.4. Ќо что такого в них наход€т люди?

Ќу, прежде всего, некорректно сравнивать »Ћ и графические игры. Ќикто не утверждает, что произведени€ »Ћ заведомо Ђлучшеї, чем графические квесты. ¬ажно понимать, что это разные жанры (в какой-то степени даже ориентированные на различную аудиторию).

ћежду »Ћ и графическими приключени€ми имеетс€ разница, во многом похожа€ на различие между традиционной литературой и кино. » книги, и фильмы €вл€ютс€ произведени€ми искусства, но средства воздействи€ на потребител€ они используют разные Ч художественный текст и видеор€д. Ѕезусловно, по книге можно поставить фильм (иногда даже очень хороший) Ч но и в этом случае фильм не заменит книгу.  ино и литература Ч два разных жанра; спорить о том, какой из них Ђлучшеї Ч зан€тие €вно бессмысленное.

≈сли же все-таки попытатьс€ сравнить два этих жанра, мы увидим, что хот€ графические квесты сейчас более попул€рны, у »Ћ есть свои несомненные достоинства.

ѕрежде всего, конечно, это относительна€ нетребовательность к вычислительным ресурсам.  онечно, »Ћ-игры тоже бывают разные (в том числе и довольно объемные), но большинство из них предъ€вл€ют очень скромные требовани€ к мощности компьютера и объему пам€ти. ƒовольно трудно представить себе современный графический квест, занимающий всего 250Ц300  байт, в то врем€ как дл€ »Ћ это нормальный размер (25-300 килобайт - обычный объем повести или небольшого романа - прим. сост.). Ќу и, разумеетс€, отсутствие необходимости в средствах графического и аудио-вывода также расшир€ет набор устройств, подход€щих дл€ »Ћ. ¬ тех современных »Ћ-продуктах, где имеютс€ графика и звук, их обычно можно отключить, ограничившись текстом Ч даже если общее впечатление от игры пострадает, играть это не помешает.  ак следствие, играть в »Ћ-игры часто можно на самых допотопных компьютерах (о потопе и тех временах см. ¬етхий завет - прим. сост.), лэптопах, наладонниках и даже сотовых телефонах.

— этим тесно св€зан еще один важный аспект »Ћ Ч переносимость. ќчень многие современные продукты, созданные на основе современных »Ћ-платформ, способны работать везде, где имеетс€ подход€щий интерпретатор. ќдин файл игры подходит к совершенно разным системам. (ѕодробнее об этом в пункте 1.6.)

ћногие достоинства »Ћ вытекают из того, что это Ч очень демократичный жанр. —оздать выдающийс€ продукт под силу одному человеку, ему не требуетс€ дл€ этого арми€ помощников Ч художников, аниматоров, композиторов и звуковиков (честно сказать, мы затрудн€емс€ определить смысл этого слова и предполагаем, что звуковик - это человек, издающий всевозможные звуки различными част€ми своего тела, - прим. сост.).  ак следствие, авторы »Ћ менее стеснены в своих творческих планах, способны реализовывать совершенно некоммерческие и очень интересные идеи. (—обственно, с кинематографом весьма похожа€ ситуаци€ Ч чем более дорогосто€щим становитс€ кино, тем более шаблонными станов€тс€ сюжеты.  ак же иначе, если кинопродьюсеров больше всего интересует прибыль, и они не хот€т рисковать собственными деньгами?)

ƒругое следствие этой творческой свободы Ч возможность легко реализовать более сложный и разветвленный сюжет, больший набор вариантов событий или действий дл€ главного геро€. Ѕезусловно, графические квесты сильнее ограничены в этом отношении Ч даже больша€ команда художников и аниматоров физически не способна нарисовать больше, чем осилит. ј в текстовой игре дл€ добавлени€ какой-нибудь новой ветви сценари€ достаточно написать дес€ток-другой строк текста Ч благодар€ этому в »Ћ часто встречаетс€ более интересный, продуманный и многовариантный сюжет.

ћожно также сказать, что »Ћ в очень малой степени подвержена моральному старению (если, конечно, ¬ы не считаете, что жанр устарел морально как таковой). ”вы, даже в самых классических из рисованных квестов графика сегодн€ часто выгл€дит архаично (Ђнеплохо, но в 1024x768xTrueColor этот волшебный лес смотрелс€ бы куда лучшеї). ¬ этом одна из сильных сторон текстовых квестов Ч если графика отсутствует, то она в принципе не может устареть. “о же, конечно, можно сказать про озвучивание, и прочие атрибуты мультимедиа. ( онечно, устареть также может сама Ђпрограммна€ оснасткаї игры Ч но об этом аспекте проблемы поговорим чуть ниже.)

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

1.5. “екстовый ввод команд Ч это же неудобно!..

¬о-первых, еще раз хочу подчеркнуть: текстовый ввод команд Ч это не догма! “ак, большинство игр от Legend можно пройти до конца, пользу€сь исключительно мышью. » отдельные игры, и многие современные »Ћ-системы также предоставл€ют альтернативы текстовому вводу (зачастую довольно удобные).

¬о-вторых, это не об€зательно неудобно. ћногое зависит от того, насколько хорошо в игре реализован анализатор введенных команд или парсер (дальше мы будем пользоватьс€ этим термином). Ѕезусловно, основна€ проблема с Ђсамодельнымиї играми Ч некачественный парсер, существенно уступающий лучшим стандартам. ƒаже когда сама игра совсем не плоха, парсер в ней часто реализован настолько убого (только простейшие команды типа глагол+существительное, крайне ограниченный набор слов и т.п.), что сам процесс игры превращаетс€ в мучение. ¬ общем-то, это Ч одна из причин, из-за которой сложилось устойчивое мнение, что игры с Ђмышьюї принципиально удобнее.

ј ведь это не так! ¬ большинстве игр от тех же Infocom, Legend, Magnetic Scrolls парсер €вл€етс€ очень хорошим. «ачастую он понимает огромное количество глаголов и внушительный набор синонимов и определений дл€ всех объектов игры (дес€ток синонимов дл€ одного объекта Ч это норма); правильно распознает весьма сложные английские фразы (вроде Уuse trowel to plant pot plant into plant potФ); автоматически поддерживает механизм Ђуточнени€ї (если какое-нибудь им€ может относитьс€ к нескольким объектам, игра сама спрашивает пользовател€, что именно имеетс€ в виду); поддерживает местоимени€ Ч в общем, способен на многое. ѕомимо этого, набор глаголов, как правило, хорошо стандартизован, а вместо многих из них допускаютс€ общеприн€тые сокращени€ (l Ч look, x Ч examine и т.п.). Ќаконец, обычно поддерживаетс€ много стандартных служебных команд (сохранение, восстановление, перезапуск, выход и т.п.). ¬се развитые »Ћ-системы обычно поддерживают достаточно мощные и удобные средства дл€ редактировани€ вводимых команд (включа€ механизм Ђисторииї, запоминающий все, что вы вводили раньше) и возможность сохранени€ во внешнем файле как списка выполненных команд, так и полного транскрипта сеанса игры. ¬ действительно профессиональных играх довольно трудно придумать команду, которую игра бы не пон€ла. Ќачав играть в такую игру, ¬ы можете быстро забыть, что у ¬ашего компьютера вообще имеетс€ мышь.

1.6. ј есть ли вообще необходимость в специализированных »Ћ-системах?

Ўироко распространено такое мнение: Ђ¬от € хорошо владею Ѕейсиком (ѕаскалем, Delphi, C, C++, JavaЕ.), так что без труда напишу текстовую игру на этом €зыке. Ёто должно быть совсем несложно Ч не Quake 3, все-таки!ї

–аспространенное заблуждение. Ќет, безусловно, ¬ы можете попробовать написать свою программу на любом из перечисленных €зыков. ћожет даже получитьс€ совсем неплохо Ч имеетс€ немало вполне достойных »Ћ-продуктов, написанных на совершенно стандартных €зыках программировани€. Ќо все-таки, € насто€тельно посоветовал бы ¬ам сначала обратить внимание на какую-нибудь из специализированных »Ћ-систем. ѕочему?

¬о-первых, большинство современных »Ћ-технологий автоматически обеспечивают такое существенное преимущество, как переносимость. Ёто достигаетс€ за счет того, что создаваемый файл игры представл€ет собой двоичную программу специального формата, не прив€занную к конкретному процессору или операционной системе. ѕравда, дл€ ее исполнени€ необходима отдельна€ программа-интерпретатор Ч но, если она есть, ¬ы можете выполн€ть любые программы, созданные с помощью соответствующей технологии. ѕомимо системной независимости, такие программы обычно €вл€ютс€ довольно компактными (поскольку им не надо заботитьс€ о детал€х взаимодействи€ с клавиатурой, дисплеем, ќ— и пр. Ч все это уже реализовано в самом интерпретаторе) и, что немаловажно, абсолютно безопасными в смысле вирусов или других компьютерных вредителей.

ƒругое, не менее важное преимущество »Ћ-систем состоит в том, что в них уже сделано многое, что иначе придетс€ реализовывать самосто€тельно. ѕрежде всего, конечно, это анализатор команд (парсер). Ёту проблему мы уже затронули выше Ч приступив к созданию собственной игры, многие обнаруживают, что, хот€ сделать примитивный парсер (ориентированный на команды типа Ђглагол+существительноеї) несложно, пользователь его очень быстро возненавидит (а вместе с ним и саму игру). –еализаци€ же достаточно продвинутого парсера (соответствующего уровню действительно мощных »Ћ-систем и поддерживающего большинство возможностей, перечисленных в пункте 1.5) Ч это весьма нетривиальна€ задача.

¬ажным моментом также €вл€етс€ то, что »Ћ-системы обычно умеют автоматически создавать рабочий словарь Ч специальную внутреннюю структуру данных, содержащую все слова, которые может понимать программа, и оптимизированную дл€ их поиска. ¬се слова, используемые в программе, в готовом программном коде автоматически замен€ютс€ ссылками на словарь Ч за счет этого программа становитс€ намного компактнее, а распознавание команд Ч намного эффективнее. ѕоскольку больша€ часть данных в »Ћ-программах Ч текстовые строки, дл€ них часто примен€ютс€ специальные методы кодировани€ со сжатием и устранением дубликатов, что очень существенно уменьшает размер готовой программы.

“ам, где кончаетс€ парсер и начинаетс€ сама игра, возникают новые сложности. „аще всего они св€заны с корректной реализацией объектной модели игры. Ѕольшинство современных »Ћ-технологий €вл€ютс€ объектно-ориентированными Ч иными словами, программа дл€ них €вл€етс€ набором объектов, способных общатьс€ (обычно путем посылки сообщений) с игроком и друг с другом.  онечно, многие современные €зыки программировани€ (C++, Java, Delphi) также €вл€ютс€ объектно-ориентированными и поддерживают похожую идеологию. Ќо така€ задача, как описание объектного мира игры, часто проще и эффективнее решаетс€ в »Ћ-системах, за счет того, что большой набор объектов и логических взаимосв€зей между ними может быть создан во врем€ компил€ции. »Ћ-системы обычно также предоставл€ют готовую библиотеку классов, на основе которых можно создавать собственные объекты с унаследованными свойствами. –азрабатыва€ объектную модель игры самосто€тельно, без таких наработок, очень просто допустить ошибки (например, св€занные с реализацией объектов-контейнеров, способных содержать в себе другие объекты). —тандартные библиотеки значительно уменьшают риск таких ошибок.

ѕон€тно, что должно быть предусмотрено также сохранение и восстановление состо€ни€ игры. –ешить эту проблему средствами стандартных €зыков не столь уж просто (особенно когда желательно, чтобы файлы сохраненных игр оказались компактными), в то врем€ как в системах »Ћ это обычно делаетс€ автоматически.

¬ процессе разработки программы неизбежны какие-то ошибки Ч поэтому во всех »Ћ-системах присутствуют довольно мощные средства отладки. ќбычно они позвол€ют отлаживать программу в терминах созданного вами объектного мира, измен€€ местоположение и свойства отдельных объектов, позвол€€ приобрести любой предмет или переместитьс€ в любую локацию. ƒополнительные сервисные возможности Ч например, вывод всего текста игры в отдельный файл дл€ проверки орфографии и пунктуации Ч также весьма полезны.

Ќаконец, нельз€ не упом€нуть о том, что существуют и чисто интерактивные системы разработки »Ћ (Adrift, SUDS, консольные системы), позвол€ющие создавать и редактировать игры вообще без программировани€, исключительно в режиме диалога.  ак правило, мощность таких систем пока заметно уступает полноценным €зыкам »Ћ-программировани€ Ч но перспективы у этого направлени€, безусловно, есть.

ѕодвод€ итоги, стоит вспомнить старую истину: дл€ решени€ каждой задачи есть свой инструмент, то же справедливо и дл€ €зыков программировани€.  онечно, у универсальных €зыков есть свои достоинства Ч но дл€ решени€ таких задач, как разработка »Ћ, специализированные часто подход€т лучше.

1.7. явл€етс€ ли жанр »Ћ преимущественно англо€зычным?

¬ силу традиций получилось так, что первым и основным €зыком »Ћ стал английский. Ёто, конечно, неудивительно. ѕрежде всего, этому способствовало место по€влени€ первых »Ћ-игр на свет Ч сначала —Ўј, чуть позднее ¬еликобритани€ и другие англо€зычные страны.

ќднако, у английского €зыка есть и другие существенные преимущества Ч прежде всего, его грамматический строй. »з всех европейских (да и мировых) €зыков, английский Ч один из самых простых в смысле морфологии. —уществительные и прилагательные не склон€ютс€; глаголы не спр€гаютс€; их неопределенна€ форма ничем не отличаетс€ от повелительной (Уtake iron keyФ можно понимать и как Ђвз€ть железный ключї, и как Ђвозьми железный ключї - не совсем верный подход, ибо автор приводит два варианта русского перевода английской фразы, но в английском €зыке такой двусмысленности нет - прим. сост.), согласовани€ минимальны и т.п. ѕо этой причине »Ћ-систему, общающуюс€ с пользователем английском, реализовать проще, чем дл€ другого €зыка, причем €зык системы (как входной, так и выходной) будет достаточно правильным и грамотным, чтобы пользовател€ это не коробило. Ќемаловажно и то, что дл€ английского характерны достаточно короткие слова (значительное количество слов не превышает по длине шести букв, или, по крайней мере, различаемо по ним).

“ем не менее, с развитием жанра по€вились попытки создани€ »Ћ-игр на других €зыках Ч прежде всего, европейских. ќсновными направлени€ми стали как создание оригинальных »Ћ-систем, так и адаптаци€ англо€зычных (в первую очередь, конечно, тех, в которые уже заложены возможности дл€ локализации). ¬ насто€щее врем€ существует довольно богата€ интерактивна€ литература на французском, испанском и немецком €зыках.

„то же касаетс€ »Ћ на русском €зыке Ч это направление пока еще только делает первые шаги. ќтчасти это обусловлено относительно сложной морфологией €зыка (склонение существительных и прилагательных, которое, к тому же, часто важно дл€ понимани€ фразы), разнообразием приставок и форм глаголов, относительно длинными словами и многими другими факторами. “ем не менее, все эти трудности, несомненно, преодолимы (тем более, что во многих европейских €зыках, которые не намного проще, чем русский, с ними удалось справитьс€). Ќа мой взгл€д, лучший способ их преодолеть Ч использовать какую-нибудь из готовых русско€зычных или русифицированных систем, перечисленных в разделе 2.

2. ƒоступные €зыки и технологии разработки »Ћ

2.1. Adrift

(пока нет информацииЕ)

2.2. Hugo

ќтносительно молода€ (по сравнению с Inform и TADS), но довольно успешно набирающа€ попул€рность »Ћ-система.

ѕоследн€€ верси€: Hugo engine Ч 3.0.X.

–азработка и поддержка:  ент “ессман (Kent Tessman) занимаетс€ разработкой системы с 1995 года вплоть до насто€щего времени.

ƒоступность: freeware. »сходные тексты также доступны.

ѕринципы технологии: компилируемый €зык программировани€. ‘айлы с исходным кодом (обычно имеющие расширение Т.HUGТ) обрабатываютс€ Hugo-компил€тором. ‘айлы-результаты (С.HEXТ) выполн€ютс€ Hugo-интерпретатором.

ѕереносимость: широка€. “ехнологи€ доступна на: Acorn RISC OS, Amiga, BeOS, MS-DOS, большинстве Unix-систем, OS/2, Win95/NT. »нтерпретатор также переносим на любую систему, поддерживающую Glk (например MacOS), хот€ с поддержкой мультимедиа при этом хуже.

ќсновные возможности. язык программировани€, заметно напоминающий Inform Ч но, по мнению разработчика, с более Ђпрозрачнымї синтаксисом. ѕарсер качественный (хот€, по некоторым отзывам, слегка уступает уровню Inform и TADS). »з возможностей, заслуживающих отдельного упоминани€, присутствуют иерархическое наследование (можно даже использовать объекты в качестве суперклассов), динамическое формирование словар€, глобальные и объектные событи€ (?), предпарсерна€ обработка командной строки.

¬ систему входит мощный отладчик (HD), позвол€ющий следить за выполнением программы, устанавливать контрольные точки и т.п. »меетс€ также специальный набор отладочных подпрограмм (HugoFix).

ћощной особенностью системы изначально были ее мультимедиа-возможности. —ейчас вполне сравнимые возможности предоставл€ют Glulx/Inform и HTML-TADS. “ем не менее, Hugo может поддерживать многооконный интерфейс (с не перекрывающимис€ окнами), графику (JPEG), аудио (MOD, S3M, MP3, MIDI, XM, WAV; до 32 аудиоканалов), а, начина€ с версии 3.0 Ч даже видео (MPEG, AVI)!

»нтернационализаци€ и русска€ верси€. ѕока нет информации.

—сылки:

2.3. Inform

(родственные технологии: Z-code, Glulx, Blorb)

Ѕезусловно, в англо€зычном (и не только) мире, это Ч одна из самых попул€рных платформ (по общему количеству программ, созданных на этой основе, она €вно может претендовать на мировое лидерство).

ѕоследн€€ верси€: компил€тора 6.30, стандартных библиотек 6/11.

–азработка и поддержка: €зык Inform в 1993 г. создал √рэхем Ќельсон (Graham Nelson). ѕомимо него, к созданию технологии приложили усили€ еще многие: компани€ Infocom (оригинальный формат Z-файлов), группа InfoTaskForce (его последующа€ Ђрасшифровкаї), Ёндрю ѕлоткин (Andrew Plotkin) Ч технологии Glk, Glulx и Blorb. ¬ насто€щее врем€, поддержкой и развитием технологии занимаетс€ группа, которую возглавл€ет –оджер ‘ирт (Roger Firth).

ƒоступность: freeware. –аспростран€етс€ свободно, при условии неизменности. »сходные тексты библиотек, компил€тора и большинства интерпретаторов доступны.

ѕринципы технологии: компилируемый €зык программировани€. ‘айлы с исходным кодом (обычно имеющие расширение Т.infТ) обрабатываютс€ компил€тором »нформ, поддерживающим две целевых платформы Ч Z-code и Glulx.

‘айлы первого типа имеют расширени€ типа .Z# (# Ч цифра, номер версии Z-формата) и содержат исполн€емый код 16-битовой виртуальной Z-машины. — помощью Inform обычно создаютс€ программы ее п€той (.Z5, до 256 Kb) и восьмой (.Z8, до 512 Kb) версий.  онечно, дл€ их выполнени€ требуетс€ Z-интерпретатор Ч наиболее попул€рен Frotz, имеющий много портов и модификаций. «амечу, что поскольку этот Z-формат отсчитывает свою историю от той самой Infocom, то все Z-интерпретаторы также выполн€ют большинство классических игр этой фирмы.

‘айлы Glulx (имеют расширение .ULX) содержат 32-битовый виртуальный код. ƒл€ их выполнени€ требуетс€ свой интерпретатор (обычно он называетс€ Glulxe, или наподобие этого). –азмер Glulx-игр практически не ограничен, как и большинство внутренних лимитов.

ѕереносимость: технологи€ доступна очень широко. ¬от список (не самый свежий), платформ, где компил€тор Inform доступен: Acorn RISC OS, BeOS, Macintosh, Atari ST (верси€ 5.4), Amiga, MS-DOS (также верси€ дл€ GO32), Linux, OS/2, UNIX, VMS (DEC VAX или Alpha) и EPOC (Psion 5/Revo/7), Windows. Z-интерпретаторы доступны еще шире Ч в частности, есть дл€ большинства маломощных устройств, вроде наладонников. Glulx-интерпретаторы пока распространены меньше, но дл€ Windows, Linux (консольный и X) и MacOS X имеютс€.

ќсновные возможности. Inform Ч полнофункциональный объектно-ориентированный €зык программировани€, во многом похожий на C и SmallTalk. ќн позвол€ет описывать игру в виде иерархии объектов с определенными свойствами и атрибутами; поддерживаютс€ классы и наследование, в т.ч. множественное. —истемный парсер весьма развит и соответствует стандартам лучших продуктов от Infocom. ѕо умолчанию поддерживаетс€ около полусотни стандартных глаголов; можно легко определ€ть новые глагольные фразы (с альтернативными вариантами синтаксиса), равно как и замещать или переопредел€ть стандартные.

ѕлатформе присуща очень открыта€ архитектура Ч Inform в значительной степени реализован на себе самом. Ќапример, парсер реализован в виде набора Inform-подпрограмм, что позвол€ет легко измен€ть любые его модули; то же справедливо дл€ библиотеки стандартных глаголов. ¬ €зыке также имеетс€ специальное средство дл€ Ђзамещени€ї стандартных подпрограмм на определенные пользователем. »меетс€ более сотни дополнительных модулей и полезных расширений дл€ стандартных библиотек. »меютс€ даже полные альтернативы стандартным библиотекам Ч например, пакет Platypus.

ќтдельного отладчика дл€ Inform не предусмотрено Ч зато предусмотрен специальный отладочный режим компил€ции игры. ¬ нем доступно большое количество дополнительных отладочных глаголов, позвол€ющих следить за работой парсера и внутренними процессами игры, просматривать структуру объектного дерева и свойства отдельных объектов, мгновенно переместитьс€ в любую локацию и заполучить любой объект и т.п. ≈ще более мощных дополнительным средством €вл€етс€ встроенный отладчик УInfixУ, позвол€ющий произвольно мен€ть переменные игры и атрибуты объектов и понимающий выражени€ с Inform-подобным синтаксисом.

 омпил€тор поддерживает множество дополнительных опций, включа€ выдачу разнообразных листингов и дампов создаваемой программы в Ђчитаемомї виде, выдачу статистики (например, общий объем текста в исходном коде) и пр. ƒл€ Z-формата доступно много дополнительных инструментов Ч декодеры и дисассемблеры (TXD, InfoDump), верификаторы целостности Z-файла и пр. »мели место даже попытки (пока, правда, не слишком удачные) создать дисассемблеры, автоматически восстанавливающие Z-файл до исходного кода на »нформе.

ќригинальный формат Z-кода предлагал весьма ограниченные (и плохо совместимые с новыми интерпретаторами) возможности дл€ управлени€ цветом и стил€ми текста, делени€ экрана на окна и вывода графики. Ќовый формат, Glulx, призван исправить этот недостаток. Glulx-программы могут открывать и использовать произвольное количество неперекрывающихс€ окон (причем их размеры и расположение можно мен€ть при выполнении программы), управл€ть стил€ми и форматированием выводимого текста, выводить графические изображени€ в отдельные окна или встраивать их в текст, внедр€ть в текст гиперссылки, воспроизводить музыку и звуковые эффекты по нескольким каналам, работать с произвольными внешними файлами и пр. Glulx-программы управл€ютс€ событи€ми, позвол€ющими асинхронно обрабатывать ввод от клавиатуры, мыши и таймера. —тандартные »нформ-библиотеки теперь расширены таким образом, что программист может создавать Glulx-игры с поддержкой графики, аудио, мыши и т.п. ничего в них не мен€€ Ч надо лишь подключить собственные обработчики к заложенным в библиотеку Ђпереходникамї. Ќовым стандартным форматом дл€ хранени€ графики и мультимедиа €вл€етс€ Blorb (расширение .BLB). ¬ файлы этого формата могут упаковыватьс€ графические изображени€ (в форматах JPEG и PNG), музыка и звуки (в форматах MOD, SONG, AU, RIFF/WAV и OGG) и собственно программа (как Z-code, так и Glulx), что дает возможность распростран€ть программу в одном BLB-файле вместе со всеми мультимедиа-ресурсами.

— использованием этих технологий есть возможность создавать »Ћ-игры, дополн€ющие стандартный парсер мощным Legend-подобным многооконным интерфейсом. Ѕолее того, уже по€вились библиотечные пакеты, помогающие это делать (например, GWindows).

»нтернационализаци€ и русска€ верси€. Inform Ч одна из самых широко локализованных систем »Ћ, причем возможность локализации заложена непосредственно в стандартные библиотеки. ¬се €зыково-специфичные детали (сообщени€, грамматика, союзы и служебные слова и пр.) изолированы от прочего кода, собраны в двух библиотечных файлах (English.h и Grammar.h), и в принципе достаточно правильно перевести их содержимое дл€ локализации всей системы. ’от€ изначально система создавалась дл€ такого грамматически простого €зыка, как английский, в ней предусмотрено многие пон€ти€ (концепции рода и числа, различные артикли и их contraction forms и пр.), также необходимые дл€ европейских €зыков. ћеханизм предпарсерной обработки командной строки позвол€ет справитьс€ со многими €зыково-специфичными трудност€ми. ”же имеютс€ переводы на немецкий, французский, испанский, италь€нский, шведский, искусственные €зыки эсперанто и lojban; в процессе перевод еще на несколько €зыков Ч португальский, финский, польский. ¬ спецификации Z-форматов сейчас заложена полна€ поддержка набора символов Unicode.

–усска€ верси€ системы (RInform) активно разрабатываетс€ с 2003 года по насто€щее врем€. ќсновной ее разработчик Ч автор этого документа. —осто€ние Ч Ђстабильна€ бетаї (верси€ 0.80 готовитс€ к выходу), принципиальных изменений не ожидаетс€. —истема самосто€тельно умеет генерировать падежные формы дл€ имен объектов (достаточно выделить флексии, например Ђмассивн/а€ стальн/а€ двер/ьї, присвоив объекту правильные род и число), и распознавать падежные формы в командах (и Ђоткрыть дверь ключомї, и Ђоткрыть ключом дверьї понимаютс€ правильно). “акже распознаетс€ большое число дополнительных глагольных форм с приставками.

  сожалению, сейчас Glulx не поддерживаетс€ в качестве выходной платформы дл€ RInform, т.к. в спецификации этого формата поддержка наборов символов, отличных от Latin-1, не заложена вообще!   счастью, это будет исправлено.  роме того, не все Z-интерпретаторы правильно поддерживают Unicode Ч под Windows рекомендуетс€ использовать WinFrotz 2002.

—сылки:

2.4. TADS (Text Adventure Development System)

¬тора€ по попул€рности, после Inform, платформа в мире.

ѕоследн€€ верси€: 2.5.X (TADS 2), 3.0.X (TADS 3).

–азработка и поддержка: TADS Ч профессиональна€ система дл€ разработки »Ћ Ч создана ћайклом –обертсом (Michael Roberts) в конце 1980-х годов. ќн ее продолжает развивать и поддерживать до насто€щего времени (при участии и поддержке множества энтузиастов).

ƒоступность: когда-то система разрабатывалась как shareware-продукт; теперь (вместе с исходными текстами) распростран€етс€ свободно.

ѕринципы технологии: компилируемый €зык программировани€. TADS-компил€тор обрабатывает исходные файлы (обычно имеющие расширение Т.TТ), и генерирует переносимый двоичный файл игры (расширение .GAM), дл€ выполнени€ которого необходим TADS-интерпретатор.

ѕереносимость: широка€. —истема TADS доступна на: Acorn RISC OS (только интерпретатор), AmigaDOS, Atari ST/TT/Falcon, DECStation, Linux, Macintosh, MS-DOS (есть также верси€ дл€ GO32), NeXT, OS/2, SGI Iris/Indigo, SunOS & Sun 3, все версии Windows. »нтерпретаторы TADS предъ€вл€ют несколько большие системные требовани€, чем Z-интерпретаторы, поэтому на очень маломощных системах (старые ѕ , наладонники) могут не работать.

 

ќсновные возможности. TADS Ч объектно-ориентированный €зык программировани€, напоминающий гибрид между C и ѕаскалем. ќбычна€ программа состоит в основном из описаний объектов (локаций, предметов, NPC); поддерживаютс€ суперклассы и наследование (множественное). —тандартный парсер весьма развит (не уступает стандартному Ђинфокомовскомуї уровню).  онечно, есть возможность переопредел€ть и расшир€ть набор глаголов и их синтаксис, а также переопредел€ть библиотечные подпрограммы. TADS также поддерживает динамическое управление пам€тью и создание новых объектов при выполнении. —истема располагает развитыми средствами ввода-вывода Ч в частности, можно работать с любыми внешними файлами. ѕредусмотрена даже возможность св€зывани€ с двоичной TADS-программой фрагментов кода, написанных на других €зыках (хот€ то, что получитс€ в результате, вр€д ли будет переносимым). ≈сть возможность создавать Уstand-alone gameФ, т.е. TADS-программу, св€занную с интерпретатором в один исполн€емый файл.

¬есьма мощное дополнительное средство Ч TADS-отладчик (TDB), позвол€ющий просматривать и измен€ть любые данные программы, выполн€ть ее в пошаговом режиме, устанавливать контрольные точки и пр.

ядро TADS технологии (стандартные суперклассы, глаголы, системные сообщени€) реализовано в виде двух библиотечных файлов (Уadv.tФ и Уstd.tФ), легко доступных дл€ модификации. (ѕравда, по крайней мере, в TADS 2, возможности вли€ть на работу парсера существенно меньше, чем в Inform.) “акже реализовано множество полезных расширений дл€ стандартных библиотек, существуют даже полные альтернативы им (WorldClass, Pianosa).

ќтносительно новое расширение технологии Ч HTML-TADS Ч позвол€ет лучше управл€ть выводимым текстом, путем включени€ в него тегов разметки (подмножество HTML). «а счет этого можно управл€ть шрифтами, размерами, цветом и прочими стилевыми атрибутами текста; можно включать в текст гиперссылки и графику (GIF, JPEG, PNG), воспроизводить многие попул€рные аудиоформаты (MIDI, WAV, MP3, OGG). ѕрограммы, ориентированные на HTML-TADS, работают и в более старых TADS-интерпретаторах (хот€, конечно, без перечисленных Ђизлишествї). —ейчас HTML-TADS интерпретаторы доступны дл€ Windows и MacOS X.

Ќовые версии системы (TADS 3) представл€ют собой существенный шаг вперед, прежде всего, в плане описани€ объектной модели игры. ѕока TADS 3 пользуетс€ несколько меньшей попул€рностью, чем TADS 2.

»нтернационализаци€ и русска€ верси€. TADS поддаетс€ локализации, хот€ требуетс€ несколько больше усилий, чем дл€ Inform. —обственно, дл€ перевода системы необходимо адаптировать к другому €зыку оба библиотечных файла.

–усска€ верси€ TADS 2 (далее RTADS) разрабатываетс€ с лета 2002 г. ¬едущий разработчик Ч јндрей √ранкин. —осто€ние разработки на сегодн€шний день Ч стабильное, обновлени€ по€вл€ютс€ раз в три-шесть мес€цев.

¬строенной в саму систему поддержки падежей нет. ќднако, в системе предусмотрен внешний генератор дл€ падежных форм.

ќфициальное руководство по TADS переведено на русский €зык ¬алентином  оптельцевым (URL?).

–усска€ локализаци€ TADS 3, насколько мне известно, пока не планируетс€.

—сылки



–аспространение материалов сайта означает, что распространитель прин€л услови€ лицензионного соглашени€.
»де€ и реализаци€: © ¬ладимир ƒовыденков и јнатолий  амынин,  2004-2022