Автор: Эмили Шорт
Ссылка:
http://ifprint.org/articles/needparser1/
Перевод статьи публикуется с разрешения Эмили Шорт (ссылка на оригинал:
http://emshort.wordpress.com/2010/06/07/so-do-we-need-this-parser-thing-anyway/)
…или: Что значит писать интерактивную литературу?
Когда меня спросили о способах популяризации ИЛ на PAX East, я сказала следующее:
У парсерных игр есть проблема. Даже целых две.
Одна проблема — это интерпретатор: люди не хотят скачивать разрозненные файлы и не хотят разбираться в форматах файлов. Такой подход не слишком привлекателен и абсолютно не соответствует тому, как люди сейчас привыкли играть в игры — и, в особенности, тому, как новые игры пытаются привлечь к себе внимание игроков. Мы (как сообщество) работаем над этой проблемой, разрабатывая все более качественные интерпретаторы для веб и упрощая процесс публикации игр на веб-сайты. Это неправда, что не существует Java версии Glulx, однако этот интерпретатор тоже необходимо скачивать и, к сожалению, он не предоставляет возможности создать привлекательнo выглядящую игру в браузере. В последние несколько месяцев можно наблюдать серьезные подвижки на этом фронте — Quixe и ZMPP уже достигли той стадии, когда они могут исполнять Glulx игры непосредственно в браузере. Zifmia — это проект, позволяющий исполнять игры в веб с помощью серверного интерпретатора, а FyreVM представляет собой эксперимент на основе системы Channel IO. Для TADS 2 есть Jetty, и Майк Робертс активно работает над изменениями в TADS 3, которые позволяют запускать игры на этой платформе как веб-сервисы. В общем, у нас здесь неплохой прогресс.
Вторая проблема — это сам парсер. Когда вы наблюдаете за реакцией новичков на интерактивную литературу — что несложно делать по отзывам на ИЛ на посвященных инди-играм сайтах или по впечатлениям студентов, играющих в ИЛ впервые, — то все, что вы как правило видите — это глубокое разочарование парсером. Первые несколько (или несколько дюжин) ходов новичка в игре обычно состоят из множества неудачных попыток сделать хоть что-то, и все эти ходы, конечно же, никак не продвигают игру вперед.
Это совершенно чуждо большинству игроков в наши дни. Сейчас даже довольно сложные консольные игры обычно гарантируют, что по крайней мере в начале игры практически невозможно сделать что-либо неправильно и, тем более, потерпеть сокрушительную неудачу в попытках освоить игровую механику. Игровая механика приоткрывается постепенно. При этом большинство текстовых игр не имеют ни режима обучения, ни какого-нибудь введения, предлагая вместо этого (да и то, в лучшем случае) лишь длинное меню инструкций. Есть исключения («Dreamhold», «Blue Lacuna»). Моя собственная маленькая игра включает в себя необязательный режим обучения (я предпочитаю считать его чем-то вроде тренировочного уровня сложности), который дает пошаговые контекстные советы игроку, основываясь на том, что происходит в настоящий момент времени.
Мне, правда, неизвестно, насколько преуспели все эти игры в миссии по привлечению игроков к интерактивной литературе (я просто не знаю это — я бы с удовольствием послушала историю о том, как благодаря какой-нибудь «Blue Lacuna» целая толпа людей открыла для себя текстовые игры).
У нас есть однако и куда более фундаментальная проблема, которая заключается в том, что командная строка лжет. Она говорит игроку — «напечатай что-нибудь, а я это пойму». И при этом не понимает.
Впрочем, парсер принимающий (а не понимающий) как можно больше выражений не обязательно решит эту проблему.
Adrift частично основан на распознавании по маске (wildcard) и, благодаря этому, способен принять большее количество вводимых пользователем команд, чем TADS или Inform, однако результатом зачастую является комическое непонимание того, что на самом деле хочет игрок, так как парсер не учитывает множество важных нюансов. Более продвинутые системы анализа естественных языков также нередко разочаровывают пользователей, когда либо не выполняют то, что от них ожидается, либо выполняют это так, что становится непонятно, какое именно влияние на игру оказали предпринятые действия («Starship Titanic», «Façade»). Я (вместе с другими членами нашего сообщества) спорила несколько месяцев назад с Брайаном Мориарти о том, нужны ли текстовым играм продвинутые системы анализа естественных языков. С тех пор мое мнение несколько изменилось, однако я по-прежнему считаю, что Мориарти заблуждается, когда считает, что ИЛ-сообщество не заинтересовано в улучшениях в парсере, и я по-прежнему в основном придерживаюсь высказанной точки зрения о том, что системы анализа естественных языков не очень хорошо подходят для игр. Многие, конечно же, все равно работают в этом направлении. Но я считаю, что даже парсер, который гораздо лучше справляется с разбором пользовательского ввода все равно создает значительные проблемы для гейм-дизайнера, если он начинает принимать выражения, которые требуют гораздо большей проработки игрового мира, чем в действительности нужно самой игре.
Именно поэтому работа над парсером в основном сфокусировалась в нескольких областях: лучше угадывать, что именно хочет игрок, не запрашивая дополнительную информацию (т.е. не спрашивая игрока, хочет ли он открыть дверь черным ключом или черным эклером); производить более качественный разбор ошибок ввода и, соответственно, выводить более вразумительные сообщения об ошибках. Аарон Рид провел некоторые исследования в этой области и предложил свои корректировки для Inform-а в виде набора расширений, воспроизводящих то поведение, которое он реализовал для своей «Blue Lacuna».
Но в конце концов я согласна с Майком Робертсом, что задача вовсе не сводится к тому, чтобы заставить парсер понимать все, что может ввести новичок, так как среднестатистический игрок в ИЛ, недавно открывший для себя этот жанр, предпочтет интеллектуальному парсеру более компактный словарь глаголов, который к тому же будет ему заблаговременно известен.
Т.е. задача заключается в том, чтобы игра лучше доносила до пользователей, какие именно действия она понимает, явно бы показывала, что именно она позволяет сделать, а что — нет.
Это помогло бы и с другой проблемой, с которой часто сталкиваются новички — своего рода параличом выбора. Если ты можешь совершить любое действие, ввести любую команду, то с чего, собственно, нужно начинать?
Вот такие дела, да. Командная строка — это проблема.
* * *
Пока что я еще не успела сменить тему, я должна упомянуть, что парсер и для авторов игр — тоже не подарок. И все благодаря этой надоедливой командной строке, из-за которой столько времени тратится на то, чтобы запрограммировать реакцию игры на совершенно дурацкие и безумные действия, причем так или иначе ваша игра будет выдавать неадекватный ответ на какое-нибудь >потрогать луну или >почесать попугая, просто потому что в принципе невозможно учесть все комбинации глаголов и существительных в игровом мире.
Конечно, сейчас есть кое-какие инструменты, способные немножко помочь с этой проблемой, и зачастую можно сузить симуляцию игрового мира, вместо того, чтобы разбирать каждый подобный случай в отдельности. Например, если в ваших играх есть недоступные для игрока объекты, то самый простой путь — это воспользоваться расширением Джона Ингольда «Недоступные предметы», которое позволит вам описать объект «луна» как находящийся за пределами досягаемости игрока и тем самым ловко разобраться со всеми попытками его потрогать.
Однако по-прежнему огромное количество сил и времени тратится на не слишком-то увлекательную задачу программирования осмысленных ответов на бессмысленные действия, которые никак не продвигают игру вперед, не приоткрывают интересные факты о мире и персонажах, да и о чувстве юмора играющего свидетельствуют не лучшим образом — они являются по сути чем-то таким, что никогда не введет ни один игрок, который не хочет сломать игру.
А если вы это огромное количество сил и времени не тратите, то игра ваша выглядит забагованной и слегка недоделанной. И она действительно далека от совершенства, так как игрок, путем ввода бесхитростных команд, может полностью сломать старательно создаваемую вами иллюзию.
Но я бы соврала, если бы сказала, что, убивая долгие часы на программирование ответов на маловероятные действия игрока вместо того, чтобы заняться чем-то таким, что игрок действительно будет делать, я ни разу не задумывалась, зачем я вообще трачу на это время.
Так что же теперь? Должны ли мы отбросить парсер и перейти к другим системам, где возможности игрока явным образом описываются в виде списка?
Об этом тоже задумывались многие. Один из подходов — это заполнить экран множественными подсказками. Тут будет и компас, показывающий направления, и карта, и что-то вроде изображения локации, ну и, конечно же, меню или россыпь кнопок, демонстрирующие все основные глаголы, доступные игроку в текущий момент.
Но и этот способ далек от идеала. Если я играю в текстовую игру, то предпочитаю, чтобы окно, в которое текст выводится, не было сдвинуто к самому краю экрана, уступая место картинкам, компасам и прочим подсказкам. Это некрасиво — а еще это представляет собой тот самый тип пользовательского интерфейса, который сейчас стремительно уходит из моды. Все больше и больше игр в коммерческом секторе вообще убирают все эти бесчисленные элементы управления, стараясь не захламлять экран, на котором происходит основное действие.
* * *
Другой путь — это CYOA. Мы не создаем кучу подсказок, помогающих разобраться с комплексным механизмом игры, а вместо этого упрощаем саму игровую механику, сужая весь выбор к нескольким четко оформленным опциям.
Когда люди говорят о CYOA, они имеют в виду игры, в которых игроку предлагается список четких действий («Чтобы пройти через дверь слева, перейдите на страницу 51. Чтобы пройти направо, перейдите на страницу 75. Чтобы выпрыгнуть в окно, перейдите на страницу 9»).
CYOA также зачастую ассоциируется со своей ранней реализацией в книжном виде — Выбери свое собственное приключение (Choose Your Own Adventure), от которой и пошла эта аббревиатура. Книжные CYOA либо заставляют игроков вести заметки (и верят в их честность), либо вообще отказываются от какого-либо моделирования мира и состояния, кроме того, что может быть отражено в номере книжной страницы. Некоторые компьютерные CYOA также исповедуют этот подход, представляя собой игры без состояния и моделирования мира.
Это ведет к большим проблемам при построении сюжета.
Если все игровое состояние выражается в номере страницы, то либо все ваше повествование должно быть абсолютно нелинейным — и каждый выбор, который делает игрок, должен создавать по сути новую параллельную вселенную, — либо вы должны успевать объединять различные веточки повествования до того, как подобное объединение становится невозможным (ведь в такой игре вы никак не можете учитывать, что именно делал и чего не делал ваш игрок). Если вы хотите получить хорошее представление о том, как все это работает, то есть неплохой структурный анализ многих классических CYOA игр, опубликованный онлайн. Проблема состояния объясняет, почему тот выбор, который дается в этих книгах игроку, зачастую такой своенравный и бесчестный — стоит вам открыть не ту дверь, как вы с большой вероятностью попросту погибнете, вместо того, чтобы стать свидетелем каких-нибудь интересных событий позже в истории, так как проще отрезать параллельную веточку повествования, чем продолжать ее.
В плане структуры это не сильно отличается от самого простого гипертекста. Литературный гипертекст часто предлагает схожую, лишенную состояния модель, хотя и подходит к ее созданию с несколько иных позиций. Впрочем, некоторые платформы для литературного гипертекста идут дальше, предлагая (к примеру) специальную систему ссылок, которые становятся доступными, только если вы уже видели какой-то другой контент.
Я практически полностью уверена в том, что CYOA без моделирования мира слишком ограничены и не позволят мне выразить множество вещей, которые интересны мне в моих интерактивных историях.
* * *
Однако «менюшные» игры с моделированием мира тоже существуют. Мое (пока бездоказательное) впечатление заключается в том, что последнее время они становятся все более и более популярными. (На самом деле меня даже попросили написать обзор одного сайта, посвященного подобным играм: это «Неизвестные истории», однако я пока что ничего не могу сказать о нем, так как была занята написанием этой статьи…).
В визуальных новеллах на Ren’Py как правило можно увидеть явный список с доступными игроку действиями, однако в играх на этой платформе можно также устанавливать значения переменных и хранить необходимую статистическую информацию.
Серия текстовых игр «Выбор…» пользуется некоторой популярностью у казуальных игроков, используя модель, при которой развитие протагониста в игре отражается через специальную статистику, хотя сами игры сконцентрированы (согласно их же собственному манифесту) на том, чтобы игрок принимал «интересные решения». (Я думаю, Крис Кроуфорд поддержал бы этот подход, но, возможно, не остальные элементы тамошнего геймплея).
«Echo Bazaar» певернул эту модель: он целиком полагается на «статы» и заставляет игроков много заниматься «гриндингом» — т.е. постоянно совершать одни и те же действия, чтобы эти «статы» поднять, — однако предлагает при этом и большое количество побочных историй-приключений, в которых игрок может принять участие (причем некоторые из этих приключений также включают в себя интересные развилки, где определяется сюжет истории). В «Echo Bazaar» многое зависит от статистики вашего персонажа; игра также сохраняет информацию обо всех «квестах», в которых принимает участие игрок. А еще в «Echo Bazaar» есть инвентарь, деньги и ограниченное взаимодействие с другими игроками, благодаря чему «Echo Bazaar» кажется куда больше похожим на игру, чем типичный представитель сериала «Выбор…». Платой за это является серьезное ослабление повествовательной части и то, что игрокам приходится выполнять одни и те же утомительные действия.
Однако ни у серии «Выбор…», ни у «Echo Bazaar» не получается добиться того, что мне хотелось бы видеть в идеале. «Echo Bazaar» слишком медленный и слишком полагается на «гриндинг», тогда как я предпочла бы более сильную повествовательную часть. Играм серии «Выбор…» не хватает того погружения, за которое я ценю интерактивную литературу, так как они не дают действительно почувствовать изменения своего персонажа, глубже понять мотивы, на которых основываются решения. Однако и «Выбор…» и «Echo Bazaar» гораздо, гораздо ближе к идеалу, чем CYOA без моделирования мира.
Возможно, кстати, что большой интерес к «менюшным» играм в ИЛ-сообществе объясняется не только «духом времени», но и, не в последнюю очередь, популярностью «Выбора…» и «Echo Bazaar».
* * *
Это однако не означает, что CYOA игры совсем потеряли свою актуальность. В IFDB можно найти 43 таких игры, и наверняка это не полный список игр, исповедующих подобную модель и представленных ИЛ-сообществу и/или реализованных на какой-либо ИЛ платформе. (Это, конечно, не исчерпывающая коллекция всех компьютерных CYOA, однако ИЛ-сообщество имеет склонность не замечать или не обращать внимание на все, что не было сделано с использованием популярных ИЛ платформ, либо не было представлено на каком-нибудь конкурсе).
Платформа «Книга приключений» Джона Ингольда позволяет создавать CYOA с моделированием мира и инвентарем, и сейчас есть официальное расширение для Inform 7, которое по сути воспроизводит эту систему.
В течение нескольких лет также проводился Lotech comp, соревнование исключительно для CYOA игр. Две игры из этого конкурса особенно интересны в контексте нашего текущего разговора — это «Одна неделя» Папиллона и «Королевство без конца» Шэннон Кочран.
«Одна неделя» — это игра по управлению ресурсами с сильной моделью мира, которая близка к симуляторам свиданий и виртуальным новеллам, в которых действия игрока определяют, сколько времени протагонист потратит на зарабатывание денег, общение с людьми и обучение, что в конечном счете влияет на всю историю.
«Королевство без конца» использует движок «Книги приключений», чтобы создать нечто такое, что больше всего напоминает традиционную парсерную ИЛ — игрок может совершать привычные для таких игр действия (передвигать предметы, подбирать вещи), что позволяет создавать головоломки в духе самых настоящих «парсерок», однако с гораздо более ограниченным диапазоном возможных действий.
* * *
Критика «менюшных» игр часто основывается на том, что они фактически уничтожают саму возможность создавать головоломки. Если игрок всегда выбирает из списка опций, то ему и решать в действительности ничего не нужно, правда?
Но в реальности я не считаю, что это такая большая проблема, как некоторые думают — мы говорили об этом на нашей апрельской встрече в Сиэтле. Если за вашим «меню» стоит стройная и непротиворечивая модель игрового мира, то и в «менюшной» игре можно будет сделать то же самое, что и в парсерной: совершать выбор, изменяющий мир так, что появляются новые возможности для выбора.
На мой взгляд, наиболее серьезной проблемой является то, что «менюшные» игры сужают поле взаимодействия игрока с игрой. В среднестатистической ИЛ игре можно найти дюжины глаголов и сотни существительных, и все это складывается в непомерное множество возможных действий. В «менюшном» стиле представить такое количество команд попросту невозможно, в противном случае интерфейс подобной игры будет находиться где-то за гранью добра и зла. И хотя я до этого жаловалась на ту работу, которую приходится выполнять, чтобы научить парсер давать вразумительные ответы на невразумительные действия игрока, мне вовсе не хочется значительно сужать диапазон возможных действий в своих играх.
Наличие большого количества глаголов — это отличительная черта ИЛ, и это наполняет интерактивную литературу повествовательной глубиной. Количество действий, которые вы можете совершить, к примеру, в «Halo» совсем не велико — и это имеет прямой эффект на то, какие именно истории вы можете рассказывать с помощью подобной системы. Консольные игры вообще можно считать в каком-то смысле «глагольными», хотя бы на основе того, как именно они демонстрируют игроку все его игровые возможности — вы всегда держите в руках игровой контроллер с довольно-таки небольшим количеством кнопок на нем, и всегда есть эти индикаторы на экране или тренировочные миссии, которые помогают вам разобраться, с каким именно глаголом связана та или иная кнопка.
Но сужение количества глаголов (и тут я снова начинаю говорить как Крис Кроуфорд) означает, что вам приходится рассматривать весь игровой мир через призму весьма ограниченного набора возможностей. Иногда результатом может быть четкая и сфокусированная интерактивная история, но иногда результат вовсе не так хорош, как хотелось бы.
В этом плане ИЛ ближе к игре «Sims 3»: здесь есть мир с большим количеством различных объектов (существительных), с каждым из которых могут связаны определенные действия. Так, двери в ИЛ могут быть открыты, лампы зажжены; в «Sims 3» телевизор можно использовать, чтобы заниматься тренировкой по аэробике или же смотреть видео-фильмы.
Другая проблема заключается в том, что когда я просто щелкаю мышкой или каким-либо иным образом выбираю нужный вариант из списка действий, я по какой-то причине чувствую себя менее вовлеченной в игровой процесс. Я не знаю, почему это так, но это так. Меня вполне устраивает щелкать по картинкам или радиальным меню в «Sims 3», но ведь в этой игре весь интерфейс тоже графический. Есть что-то привлекательное в том, чтобы общаться с компьютером на том же самом «языке», на котором он общается с тобой.
Итак, лично я пока не готова окончательно распрощаться с парсером, однако и «менюшные» игры, которые построены на основе стройной модели игрового мира, мне тоже интересны — особенно, если эти игры делают то, за что я и ценю интерактивную литературу, сочетая в себе элементы исследования, возможность контролировать динамику повествования и интересные, важные для игрового мира сюжетные развилки.
Но все-таки я считаю, что нужно сделать интерактивную литературу более доступной для игроков.
В некоторых играх вполне работает графический интерфейс c меню или кнопками для глаголов — Дэйв Корнельсон недавно предложил некоторую вариацию такого подхода, — но во многих случаях игры, оформленные подобным образом, выглядят довольно-таки уродливо, и всевозможные подсказки и кнопки занимают слишком много полезного места на экране. Мне лично некомфортно читать текст, когда текст этот помещен в маленькое окошко, которое сдвинуто в самый угол экрана. Более того, довольно сложно представить, как подобный перегруженный интерфейс будет работать на мобильных устройствах. (Добавлено: Дэйв утверждает, что нам пока что неизвестно, как все эти вещи проявят себя в реальности, и он, конечно же, совершенно прав — все, что я здесь пишу, представляет собой лишь мое частное мнение, а не указания для других по поводу того, что им стоит делать. Однако лично меня это решение с интерфейсом не устраивает).
Другой подход заключается в том, чтобы оставить визуальные подсказки, однако интегрировать их непосредственно в сам текст. «Бронза» и «Blue Lacuna» подсвечивают в тексте (жирной гарнитурой или цветом) важные существительные. «Blue Lacuna» идет дальше и позволяет игроку вводить лишь сами существительные без глаголов, чтобы совершить наиболее очевидные действия с ними (например, рассмотреть объект или пройти через дверь). «Walker and Silhouette» делает еще один шаг вперед и практически полностью управляется с помощью таких вот ключевых слов без каких-либо глаголов, хотя и позволяет игроку вводить что-либо, кроме ключевых слов, если он сам того пожелает.
Можно также отображать подсказки непосредственно в командной строке, например, предоставляя механизм автодополнения, который будет показывать список осмысленных завершений открытой фразы как только вы начали ее печатать. Одной из вещей, которую предложил Рубен Ортега на нашей встрече в Сиэтле, был умный алгоритм автодополнения, который учитывает, какие команды вводили другие игроки, которые играли в игру. У такого подхода, конечно, есть и свои недостатки — так, он зачастую может раскрывать решения для головоломок или же, напротив, покажет, что другие игроки очень любят печатать не самые печатные выражения.
Еще один подход — это делать подсказки, однако разрешать игроку набрать все, что он хочет, а не только предлагаемую команду. Именно в таком ключе реализован тренировочный режим «Бронзы». Также, в немного измененной форме, работает и игра Джона Ингольда «Мертвые города», предоставляя и командную строку и самую простую гиперссылку, кликнув на которую, можно ввести предлагаемую команду. Разница между этими играми (помимо, собственно, интерфейса) заключается в том, что «Мертвые города» предоставляют по сути «солюшен» для игрока, через который можно прокликать, при этом ни разу не введя команду вручную и рассматривая игру скорее как обычную книгу (хотя я подозреваю, что наиболее интересные игровые ситуации таким образом не откроются). («Черные кольца» также исповедуют этот подход, позволяя игроку выбрать режим — от традиционного парсерного до простого просмотра прохождения игры).
Есть и такой вариант — предоставлять что-то в стиле диалоговых подсказок на манер TADS 3/Alabaster, однако делать это для всех действий. К сожалению, это нарушает ритм игровой прозы, прерывая повествование механическими инструкциями и опциями для дальнейших действий, гораздо менее интересными и разнообразными, чем они обычно выглядят в игре. Я не представляю, как подобная система может оказаться приемлемой.
* * *
У меня нет полного и окончательного решения для этой проблемы, однако есть некоторые мысли, которыми я хотела бы поделиться.
Подсказывать игроку то, что он может сделать, не открывая всех игровых возможностей — это интересная тактика, но ее пробовали реализовать несколько раз, и это пока не привело к революции в текстовых играх.
С другой стороны, в типичной парсерной игре мы в принципе не можем отображать все возможные варианты действий игрока в заданный момент времени, не превратив игровой интерфейс в уродливое нагромождение кнопок. Даже просто перечислить список всех глаголов — это не слишком привлекательное решение и, как я уже говорила ранее, не лучший способ подойти к решению этой проблемы, так как интересное пространство игровых возможностей лучше описывается через существительные (и те взаимодействия, которые они позволяют), а не через глаголы. (Есть несколько исключений — смотреть, инвентарь — однако все эти вещи можно рассматривать как действия над игроком или над комнатой, в которой он находится. Inform делает внутреннее преобразование «без-объектных» команд слушать и нюхать в слушать {звуки в текущей комнате} и нюхать {запахи в текущей комнате}).
Если бы у нас была система, в которой игрок может выбрать существительное, посмотреть список действий, которые он может с ним совершить и выбрать одно из этих действий, то это (в стиле игры «Sims») прояснило бы игроку его возможности и одновременно позволило бы нам избавиться от проблемы с потрогать луну.
Реализация такого подхода в графическом ключе имеет однако некоторые сложности. Одно дело кликнуть по картинке телевизора в «Sims» и открыть радиальное меню. Совсем другое — кликнуть подсвеченное слово на странице и получить радиальное меню с еще большим количеством слов. А что делать в случае, когда то или иное существительное подразумевается в текущий игровой момент, однако явно ни в одном из описаний не упомянуто? Это заставляет игрока набирать осмотреться и инвентарь гораздо чаще, чем ему бы хотелось, что не слишком позитивным образом влияет на игровой процесс и повествование. Наконец, это не совсем то, что текущие интерпретаторы умеют хорошо делать (и, соответственно, предполагает серьезную разработку новых инструментов), и мне не совсем понятно, как все это может работать для пользователей с нарушением зрения.
Реализовать все это на уровне командной строки кажется более реалистичной идеей, хотя тут тоже есть недостаток в том, что, набрав, скажем, дверь, получив список возможных действий с дверью и выбрав действие через этот список, мы будет захламлять историю команд, отображаемую в основном окне, уродливым косноязычием.
Вообще я думаю следующее: делайте так же, как сделал Джон Ингольд для повествовательного режима «Моего ангела» и переносите командную строку в отдельное окно, которое обновляется при каждом шаге. Оставьте место в основной части экрана только для игрового вывода. Тогда набор существительного (или щелчок по этому существительному непосредственно в тексте, если гиперссылки у нас тоже работают), будет приводить к открытию окошка автодополнения там, внизу, в отдельной области для текстового ввода, и игра не будет показывать вам всю историю вводимых вами команд.
Подобный многооконный режим может оказаться не слишком удобным для людей с ограниченными возможностями, но мне кажется у него тут меньше проблем, чем у интерфейса, который целиком полагается на визуальные подсказки. Можно также добавить возможность переключать игру между однооконным и многооконным режимами для тех, кто хочет использовать программу чтения с экрана.
Все это потребует однако специальной поддержки со стороны языка — вы же не захотите, чтобы авторы игр вручную прописывали соответствия между существительными и глаголами. Также система с «автоматическими» ответами на действия от парсера уже не потребуется: игра просто должна будет определять, прописана ли та или иная реакция на действие и, если нет, то считать, что глагол для выбранного существительного попросту не реализован и не показывать его.
Действия над несколькими объектами одновременно будет реализовать несколько сложнее, однако вполне возможно; игрок будет выбирать существительное, получать список глаголов, а затем указывать следующее существительное.
Можно дальше совершенствовать эту систему, сортируя список глаголов так, чтобы сначала показывались наиболее очевидные и часто используемые опции. Можно сделать и по-другому — дать игроку возможность вводить глагол, а затем показывать список объектов, с которыми этот глагол будет работать, так, чтобы привыкший к традиционным «парсеркам» игрок мог бы набирать по старинке открыть дверь вместо дверь открыть, и попросту не давать возможности выбрать глагол (или объект), которые недоступны на текущей сцене.
Все это можно комбинировать с подсветкой текста — так, чтобы игрок мог видеть уже по текстовому описанию, какие объекты являются интерактивными. Если мы при этом не станем заставлять игрока щелкать по этим объектам с целью их активировать, то избежим и проблем, которые могут возникнуть у людей с ограниченными возможностями, а также не будем вынуждать игрока постоянно печатать осмотреться, чтобы получить доступ ко всем объектам в текущей комнате.
Здесь вы можете найти очень грубый прототип того, о чем я говорю.
Система, подобная этой, способна полностью устранить игру в «угадай глагол», хотя и за свою цену — те ситуации, в которых мы как раз и хотим, чтобы игрок угадал глагол (например, покрутить усы) станут невозможными. Что-то, бесспорно, будет потеряно.
* * *
Однако только представьте себе — нет больше никаких потрогать луну. Не нужны интеллектуальные системы, помогающие разбираться с неоднозначностями пользовательских команд и предоставлять реакции на действия «по умолчанию». Мы можем вводить новые действия и глаголы совершенно прозрачно даже для новичков в ИЛ — такие как шантажировать, анализировать или сопротивляться. Мы можем отойти от строго физической природы текстовых игр и делать интерактивными более абстрактные существительные и идеи. У нас появляются прямые пути к организации более систематичного бета-тестирования. Гораздо меньше проблем и ловушек для авторов-новичков. Более гибкая и удобная система, благодаря которой написание больших игр перестает быть таким обременительным.
Не знаю, я сошла с ума?