Как сделать игры лучше

Материал из Wiki о русской интерактивной литературе (текстовых играх)
Перейти к: навигация, поиск

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

© Майкл Дж. Робертс, перевод с английского Валентин Коптельцев.

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

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

Вопросы стиля при написании адвенчур

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

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

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

Проблемы с приключенческими играми

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

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

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

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

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

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

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

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

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

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

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

Написание игры

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

(Примечание переводчика: вот уж воистину - легко посоветовать, трудно воплотить. Но стремиться к этому надо...)

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

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

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

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

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

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

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

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

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

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

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

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