Мы продолжаем публиковать монументальный труд по древнейшему из компьютерных искусств — РПГ-строению. "Новый ролевой завет" содержит в себе ценнейшие по своему теоретическому и практическому значению сведения. Они станут базисом для любого разработчика, посвятившего свое время и силы благороднейшему из занятий — созданию Ролевой Игры. Данный материал поможет новичкам сориентироваться в море возможностей, не потеряться в океане идей и не заблудиться в дебрях технических решений. Маститым разработчикам тоже полезно почитать "Библию" на досуге — можете быть уверены, что найдете массу оригинальных и практичных решений, настолько полезных, насколько и простых. Все остальные, еще не запятнавшие себя благородным занятием РПГ-строения, прочитав "Новый Ролевой Завет", смогут понять внутреннее устройство ролевых миров и приоткрыть завесу тайны над одним из самых необычных и увлекательных процессов — созданием новых Вселенных. Сегодня вы познакомитесь с принципами создания персонажей и написания диалогов — без сомнения, одними из самых сложных, но вместе с тем интересных моментов во всей теории и практике РПГ-строения. Персонажи Они же NPC. Расшифровывается как Non-Playing Characters. К сожалению, многие разработчики слишком четко следуют этому определению, создавая не персонажей — лишь бездушных манекенов, которые только и существуют, чтобы раздавать квесты направо и налево, а также быть объектом краж и уничтожений взбесившимся игроком. Поэтому давайте называть вещи своими именами — в данной статье я расскажу вам, как создавать именно персонажей, а не NPC. Что такое игровой персонаж? Это иллюзия живого человека (хотя когда как — персонажами могут быть и мертвецы, и животные — везде свои исключения), наученная разговаривать с игроком, давать ему задания, бесцельно шататься из стороны в сторону и усердно изображать личность. Как бы мы ни старались, иллюзия никогда не превратится в реальность. Значит, нам остается только многократно усилить эту иллюзию и заставить игрока поверить в нее хотя бы на время. Как сделать это — вопрос! В любом случае, стоит постараться, так как именно на персонажах держится любая РПГ. Уберите из РПГ персонажей — и перед нами, в лучшем случае, стратегия, в худшем — аркада (хороший повод лишний раз попинать Diablo). В современной РПГ персонаж представляет собой визуальную модель, которая может быть снабжена своей диалоговой и поведенческой линией, набором действий и тактик для различных ситуаций. Помните, в первой части статьи я возносил до небес Fallout, считая его чуть ли не идеалом, верхом современного РПГ-строения? Так вот, с прискорбием заявляю, что по части персонажей у него туговато. Несмотря на это, мы рассмотрим типовую модель персонажа именно на его примере. Несмотря на все недостатки, Fallout и Planescape Torment являются лидерами в этой области. Начнем с облика. Нереально нарисовать и анимировать несколько тысяч совершенно разных личностей и лиц. Как в этом случае поступают разработчики? Для сверхважных и ключевых личностей рисуется или моделируется уникальное визуальное представление. Это несложно, так как в средней РПГ таких ключевых личностей обычно не более нескольких десятков. Подчеркнуть их индивидуальность
Обратите внимание: на одном экране имеем три соцгруппы - грабители, мирные жители и герои. Если нападем на одного грабителя - на нас нападут остальные грабители, а мирные жители разбегутся. Если нападем на мирных жителей - кто-то из них убежит, а кто-то нападет на нас. А разбойники останутся в стороне. Если же кто-то нападет на нас, этот милый череп Морте скушает их всех. можно приданием собственного голоса, так, например, было в Fallout и Arcanum (когда же наступят те времена, когда для каждого персонажа будет синтезироваться речь?). А вот с остальными, второстепенными персонажами, коих обычно гораздо больше, поступают по-варварски. Создается несколько десятков типажей, например "толстый низкий лысый человек — обычно лавочник" или "высокий мускулистый воин в потрепанных доспехах — обычно вольнонаемник". Каждый типаж обладает своим набором визуальных представлений и анимаций. Для каждого персонажа в игре подбирается соответствующий облик из библиотеки типажей. Этот метод довольно прост и эффективен, но, к сожалению, малопривлекателен. Кому понравится, что в пределах одного города живет пара десятков разных персонажей с одинаковой внешностью? В принципе, эту несправедливость можно обойти, создав специальные алгоритмы видоизменения базовых модельных каркасов "на лету". Тогда мы получим совершенно различные облики для всех персонажей. Пока разработчики не торопятся реализовывать этот механизм в своих играх из-за его сложности и трудоемкости. А зря. Если немного постараться, не придется рисовать вообще никаких типажей (а это месяцы работы) — все облики можно будет создавать автоматически. Подумайте об этом, когда будете работать над своей игрой — быть может, не так страшен черт, как его малюют, и создание оригинальных алгоритмов займет куда меньше времени, чем "ручной труд" художников и моделлеров. Каждый персонаж имеет свои свойства и атрибуты. К ним относятся: принадлежность к определенной группе, отношение к главному герою, свойства производителя и потребителя (см. первую часть статьи), навыки и умения, возможности владения тем или иным оружием, методы боя, стандартные характеристики (сила, ловкость) и т.д. Вы можете спросить, не много ли я написал, ведь последние свойства — прерогатива главного героя и его спутников, а не обычных персонажей. Вовсе нет. Вспомните, что это не NPC, а именно персонажи. Они вольны делать все, что угодно. Раз мы им дали личные свободы, почему бы не наградить их индивидуальностью? Разве персонаж не может воевать? Может — значит, надо дать ему боевые навыки и умения. Может воровать, если это вор? Значит, персонажу нужны характеристики и навыки, присущие и главному герою. Первая заповедь индивидуализации — уравнять в правах главного героя и всех персонажей. Если главный герой может что-то сделать, почему этого не может сделать персонаж? Как показала практика, старая упрощенная модель персонажа себя изжила. Да здравствуют живые люди вместо бездушных манекенов! Систему взаимодействия персонажа с окружающей средой лучше сделать по образу и подобию объектно-ориентированногопрограммирования. Не пугайтесь. Речь идет не о маньячном ООП в MSVC++, а о нормальном, например как в Delphi. Каждый персонаж обладает рядом возможных для совершения действий (в ООП их называют методами), набором разнокалиберных свойств и событий. Каждому персонажу соответствует свой скриптовый файл, где прописаны все методы, свойства и события персонажа, а также дополнительная информация (например, траектории путей). Диалоговые деревья зачастую прописывают там же, в виде довольно сложных скриптовых конструкций. Я считаю, что это очень нерационально — создавать диалоги через скрипты долго и нудно. Вместо этого предлагаю воспользоваться моей системой диалогов, которую изложу чуть позже. Рассмотрим скриптовую систему типового персонажа. Допустим, это воин, который охраняет деревянный мост через каньон. При этом он ходит по мосту взад-вперед. Это обеспечивается заданием свойства пути. Сам путь задается там же, в скриптовом файле по опорным точкам. Если охранник не может
Стоять! Если мы нападем на мирного жителя, полиция будет не в восторге. А вот Триады как раз наоборот. продолжать идти (например, игрок встал на пути), вызывается событие on_notway. На это событие можно назначить диалог, в котором охранник удостоверится, все ли у игрока в порядке, и вежливо намекнет, что неплохо бы уйти с дороги. В случае повторного вызова on_notway можно прописать атаку. Допустим, игрок решил украсть у охранника ключ. В случае провала вызывается событие on_steel_fail. На это событие можно назначить атаку. Хотя можно поступить пооригинальнее: при первом вызове on_steel_fail охранник восклицает что-то вроде "Положи обратно!", а атакует только при повторном вызове. При инициализации разговора происходит стандартное событие объекта on_use, к которому у персонажей определен диалог. Начинается стандартная диалоговая ветвь. Допустим, в процессе разговора игрок попросил охранника посмотреть, "что это за подозрительный тип там за углом!?". Диалог прерывается, и вызывается скрипт, который переключает путь охранника со стандартного (взад-вперед) на некий другой, вроде "неторопливой походкой идти за угол, оглянуться по сторонам и возвратиться на прежнее место". Естественно, все опорные точки этого маршрута определены в скрипте заранее. Никого за углом не обнаружив, охранник возвращается на свой пост, при этом инициализируется событие on_way_finish. На это событие можно прописать поиск охранником игрока и начало нового диалога, в котором охранник будет распинаться о том, что за углом никого нет. Там же можно прописать ухудшение отношения охранника к игроку (режим "подозрительный"). Все эти действия можно легко описать даже очень простой системой скриптов, в чем вы могли сейчас убедится. В реальных РПГ (да хоть в том же Fallout) скрипты персонажей строятся именно по такому принципу. Диалоги Итак, мы подошли к самому интересному — диалогам персонажей. Я рассмотрю только классическую систему диалогов (реплика персонажа и возможные варианты ответа игрока), так как она на сегодняшний день является самой оптимальной и распространенной. Запомните простое правило: диалог ни о чем — пустая трата времени. При написании диалога следует отталкиваться в первую очередь от личности персонажа и его отношения к игроку. Главнейшая ошибка очень многих разработчиков (Fallout, увы, не исключение) состоит в том, что все диалоги в игре написаны в одном стиле. Это в корне неверно. На момент написания диалога сценарист должен отрешиться от своих эмоций, пристрастий и убеждений. Ему следует вжиться в роль персонажа, почувствовать его среду и окружение, выработать сообразную обстоятельствам манеру и стилистику речи. И простые "э-эээ", "кхе, кхе" и "эх-хехе" для размечтавшегося алкоголика здесь явно недостаточны. Манера поведения, как и манера речи, вырабатывается у персонажа под влиянием среды обитания. Официант в придорожной таверне и видный политик разговаривают совершенно по-разному. Более того, крестьянин и заводской рабочий также разговаривают по-разному. При определении стилистики общения персонажа важно составить представление о его личностных качествах и особенностях мировоззрения. У каждого человека (и персонажа) есть свои слабости, и эти слабости надо соответствующим образом отразить в его речи. Более или менее правильная стилистика (да и то со многими огрехами) присутствует в Planescape Torment и местами в Arcanum. Хотя в том же "Аркануме" мастеровые и торговцы с одной улицы настолько одинаковы и безлики, что их вполне можно принять за одного расклонированного человека. Почему так важно обращать пристальное внимание на стилистику персонажей? Потому что это способствует лучшей вживаемости игрока в игровой мир — как раз то, к чему мы так стремимся. Постарайтесь сделать диалоги
В Planescape Torment пошли еще дальше - каждый герой внутри группы имеет собственное отношение к каждому ее члену. Если два дружка главного героя не поладят, то они либо передерутся, либо разбегутся в разные стороны, оставив вас удивленно хлопать глазами. разнообразными, разноплановыми, насыщенными интересными моментами и поворотами, но, между тем, предельно реалистичными. Человек (в данном случае реальный человек, то есть игрок) — существо бесконечно ленивое. Пусть вы самый трудолюбивый человек в мире, но доля подсознательной лени в вас имеется. И проявляется эта лень также подсознательно. Человек не станет долго читать однообразный, скучный текст (если это не вопрос жизни и смерти). Также игрок не станет читать ваши длинные, на пару страниц, нудные и запутанные объяснения о том, почему у гиппогрифа растут на крыльях бородавки. Помилуйте, если сам факт этого в пределах вашего игрового мира еще может кого-то заинтересовать, то на ваши объяснения уж точно никто не обратит внимания. И нет ничего обиднее для сценариста, чем текст, который, кроме корректора и руководителя проекта, никто не прочтет. В диалогах это требование еще жестче. Диалоги вообще воспринимаются человеком как нечто быстрое, мимолетное. Конечно, когда-то следует остановиться и подумать, но не каждый же раз! Помните о человеческой лени, когда в диалогах помимо разговорных реплик будете приводить какие-то описания или пространные рассуждения. Пусть меня обвинят в манчкинизме, но я тоже человек, и не выдерживаю порой, "проматывая" скучные диалоги. И сценарист не сможет обвинить меня в невдумчивости — я читал ровно столько, сколько хватило терпения после того, как читать стало неинтересно. Помните, в Deus Ex была интересная находка — новости и дополнительные сюжетные сведения сообщать с помощью газет. Не ошибусь, сказав, что их там было не меньше сотни. Вероятно, на написание всех газет у разработчиков ушли месяцы. Скажите мне, только честно, вы читали их? Каждую десятую? Пару-тройку в начале и в конце? Как вы думаете, если ли игрок, которые прочел все эти газеты? Есть, наверное. Но таких очень и очень немного. В результате можно сказать, что труд сценаристов и литераторов пропал впустую — большую часть этих газет не прочел никто. Не повторите эту ошибку. Терпение игрока надо уважать. Если довольно длинное описание или рассуждение все-таки необходимо, постарайтесь скармливать его игроку порциями, перемежая фразами общего характера, комментариями персонажа или интересными заявлениями. Так и быть, игрок проглотит и впитает подслащенную горькую пилюлю (я не преувеличиваю — сходные чувства испытывал каждый игрок). В 1995 году Грэхам Нельсон, личность легендарная в определенных кругах, написал "Билль о Правах Игрока", в котором изложил основные требования, которые игрок имеет право предъявлять к игре. Написано все это было применительно совсем к другому жанру — Interactive Fiction, но я считаю, что все постулаты, изложенные в нем, вполне применимы к РПГ, особенно к диалогам персонажей. Последней по списку, но далеко не последней по значению идет реалистичность диалогов. Это именно тот пункт, который наиболее часто нарушается разработчиками. Проведите эксперимент: выпишите диалог из любимой РПГ и попробуйте воспроизвести его со случайным прохожим на улице. Естественно, предварительно подгоните диалог под современные реалии, иначе при упоминании об орках и гоблинах вас пошлют в психушку. Оставьте только стилистику и логическое направление диалога. Уверен, что четко следовать ему у вас не получится. После пары фраз разговор незаметно уйдет в другое русло, поменяются и смысл, и стиль, и проявится вся сценарная иллюзорность того, что вы считали диалогом. Этот опыт покажет, что диалоги в современных РПГ очень далеки от жизни. Люди так на самом деле не разговаривают. Что же делать? Повторяю еще и еще раз: при составлении диалога постарайтесь войти в образ персонажа, оставаясь при этом живым человеком! Что такое диалог? Толковый
"Привет, товарищ Майрон. Не хотите ли прогуляться со мной? Мы не надолго, вот только убьем вашего хозяина, взорвем его склады и познакомим вас со стаей скелетов в шкафу". Майрон от моего предложения явно не в восторге. Да куда он денется! А вот наркобаронам без него будет ой как туго. Было бы. К сожалению, создатели Fallout такой возможности не предусмотрели. разговор по делу, в результате которого игрок узнает от персонажа что-то интересное и полезное для дальнейшего прохождения игры. К сожалению, в современных играх этот процесс можно охарактеризовать не иначе как допрос. С негласной угрозой расправы в случае неправильного ответа. Представьте, к вам на улице неожиданно подходит человек с восточной физиономией и в чалме и начинает бомбардировать вас вопросами о вашем городе, о вашей улице, о ближайшем гастрономе, о мэре города, о ваших соседях... Что бы вы ему ответили в реале? В лучшем случае, вежливо послали бы. Но в РПГ такое почему-то дозволяется. Опасаетесь, что чрезмерный реализм может на корню погубить процесс получения информации? Отнюдь; если сделать диалог человечным разговором, а не допросом, это будет восприниматься игроком естественно. Есть еще много подводных камней в разговоре игрока с персонажами. Например, персонаж совсем не обязан три часа распинаться перед незнакомцем о красотах его края. Доверие собеседника надо еще заслужить. Персонаж не может знать все. Есть очень много скрытого знания, которое его alter ego, то есть сценарист, так и хочет выплеснуть наружу, потопив игрока в океане информации. Персонаж обладает вполне человеческими качествами, может обмануть, с целью, и даже без цели, послать вас куда подальше, предать, ограбить, наконец. А может помочь, приободрить, посоветовать. Заметьте: не сообщить алгоритм выигрышных действий игрока на ближайшие сто лет, а именно посоветовать, причем не факт, что совет будет полезным и действенным. Персонаж — почти живое существо, только в цифрах. Я обещал вам рассказать мой способ записи диалогов. Внимайте. Каждый диалог лучше помещать в отдельный текстовый файл, который будет восприниматься отдельной частью движка игры, отвечающей за персонажей. Каждая строка (реплика персонажа или вариант ответа игрока) обладает собственным индексом. После реплики персонажа в квадратных скобках указываются индексы возможных ответов игрока. После ответа игрока в квадратных скобках указывается индекс реплики персонажа на этот ответ. Например: 1. Здравствуй, добрый господин. Зачем пожаловал в наше захолустье? [2,3,4] 2. Не господин я тебе, а бог великий. Проваливай, пес смердящий! [5] 3. Из дальних мест я прибыл, батюшка. Имею честь представиться — воевода я муромский, Илья Тропин. [6] 4. Думаю, мне пора идти. [выход] 5. Зачем обижаешь меня, бог ложный заморский? Нет тебе места в родимой землице нашей. Всюду встретишь ты ненависть лютую. Поворотись-ка с миром отсюда. 6. Очень приятно доброго человека увидеть во времечко наше тяжкое. Ты, чай, воин знатный? Ну и так далее в таком же духе... Этот способ хорош тем, что одинаково легко реализовывается и на бумаге, и в программном коде. * * * Засим разрешите откланяться до одного из ближайших номеров "Мании", где вы сможете почерпнуть массу интересных и полезных сведений по РПГ-строению из новой, возрожденной Библии — "Хроник Второго Пришествия". Времена меняются, люди уходят, но игры остаются. Да и как могут исчезнуть игры, если вся наша жизнь — Игра? Тогда исчезнут и люди, а нашим кукловодам — маленьким зеленым человечкам размером с галактику — станет не во что играть... И мир погибнет. Значит, мастера РПГ-строения должны, не щадя себя, день и ночь разрабатывать Жизнь, частицей которой они вскоре станут. И тогда не произойдет Армагеддона, и люди будут жить долго и счастливо... и играть в маленьких зеленых человечков, величиной с песчинку и размером с галактику.