Игровая психология. Часть 2. Модель общения

Posted by Anuriel on мая 30, 2004 - 00:00

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

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

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

Модель — упрощенный аналог оригинала
Есть задача: создать алгоритм, который позволит сделать прогноз взаимодействия двух персонажей с учетом их характеристик и особенностей сюжетной ситуации. В простейшем варианте можно поступить так: составляем список возможных итогов контакта и случайным образом определяем, что получится при контакте. В результате получается такая последовательность действий (алгоритм для программной реализации этого варианта):
1. Составить список возможных итогов.
2. Оценить общую вероятность каждого исхода: например, в зависимости от репутации персонажей, уровня сложности, игровой ситуации и т.д.
3. Учесть индивидуальные данные персонажей, способные изменить вероятность того или иного исхода в ситуации: профессия, опыт, умение общаться и т.п.
4. Учесть ситуативные особенности взаимодействия: везение, действующее заклинание, местность, усталость персонажей и т.д.
5. Определить с помощью генератора случайных чисел результат взаимодействия и имитировать его в игре.

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

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

Личность героя — это совокупность качеств
Если общение происходит между персонажами одной расы, то анализируется одинаковый набор качеств, которыми они обладают в разной мере. Мы ограничимся взаимоотношениями людей, но при желании их можно расширить до представителей других рас, населяющих виртуальный мир очередной игры.

В РПГ для описания персонажа широко используется система S-P-E-C-I-A-L, которая стала уже своеобразным стандартом — Strength (Сила), Perception (Чувствительность, или Восприятие), Endurance (Выносливость), Charisma (Харизма, Очарование), Intelligence (Интеллект, Мудрость), Agility (Проворство), Luck (Везение). Если мы воспользуемся этим набором характеристик, то определим их смысловое значение в нашей модели общения для компьютерной ролевой игры:
Сила — непосредственно для определения результата общения значения не имеет, но влияет на активность собеседника: снижает активность у враждебных собеседников и повышает у доброжелательно настроенных.
Чувствительность — дает возможность узнать состояние собеседника до начала общения, помогая по принципу "предупрежден, значит — вооружен". Демонстрация состояния может быть реализована в виде пиктограмм над персонажем или по специальному запросу.
Харизма — улучшает отношение собеседника к персонажу.
Мудрость — способность персонажа регулировать свою активность и отношение к собеседнику в процессе общения — имитация самообладания и способности "подстроиться под собеседника" для достижения цели.
Везение — возможность изменить результат в свою пользу.
В компьютерной ролевой игре у персонажей бывает гораздо больше характеристик, которые можно учитывать при моделировании общения — опыт, лидерство, авторитет, репутацию, внешний вид, качество экипировки, уровень жизненной силы, знание языка и т.д. Если такой набор характеристик присущ каждому персонажу и ситуативно меняется в процессе игры, то мы получаем практически бесконечное количество сюжетных вариантов.
Рассмотрим более подробно, как можно учитывать в игре некоторые из них:
Опыт дает возможность улучшить характеристики и приобрести умения, улучшает знание языка и расширяет доступные действия, косвенно влияет на авторитет, лидерство и другие качества.

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

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

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

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

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

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

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

Это простейшая схема, которая далее может усложняться в самых разных направлениях: Чем занят (спит, ест, работает)? Чем помочь (потратить здоровье или время)? Как отвлечь (силой или магией)? Чем заинтересовать (комплиментом или подарком)? и т.д. Создание такой таблицы в игре позволяет уже в начале взаимодействия персонажей создавать различные стратегии поведения, такой подход разнообразит достижение одинаковых целей и может быть реализован с помощью последовательности доступных действий.
Рассмотренное изменение отношения в начале общения является ситуативным, то есть действует только для данного контакта. В жизни это проявляется тем, что мы можем разозлиться на лучшего друга или терпеть комплименты человека, с которым собирались серьезно поссориться. Поэтому в создаваемой модели выделим два вида отношения — типичное и ситуативное, которые дополняют друг друга. К способам изменения ситуативного отношения, описанного выше, можно добавить использование магии, рекомендательных писем от авторитетных персонажей, репутации и т.п.

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

Алгоритм моделирования общения в ролевой игре
Сопоставляя активность и отношение персонажа к герою, можно определить его ответное действие, наиболее вероятное в текущей ситуации, для чего составим и используем таблицу 2.

Своими качествами и действиями в общении игрок может изменить отношение персонажа к герою. Активность, так же, как и отношение, состоит из типичной (характеристика персонажа) и ситуативной (таблица 1) активности. Повышение активности достигается финансовым или магическим воздействием на персонажа, который был предан герою (отношение 5), но при этом на новом уровне отношение переходит в дружественный нейтралитет: например, если персонажу в ситуации 15 дать денег на повышение активности, взаимодействие с ним перейдет в ситуацию 23. После выполнения задания героя активность персонажа снижается. Нападение на персонажа всегда делает его враждебным (отношение 0), а победа героя в схватке снижает показатель типичной активности персонажа и наоборот.

Раскроем подробнее содержание ситуации и возможные действия персонажа в ролевой игре по нашей таблице (первая цифра — активность, вторая — отношение):
30. Нападает без предупреждения — автоматическое начало схватки. Победа в схватке снижает активность персонажа (или убирает его из игры, но аналогичный персонаж генерируется в другой локации).
31. Нападает с предупреждением, когда у героя есть время подготовиться к схватке.
32. Угрожает, но активен: может дать задание, продать информацию или умение, за выполнение которого или за товары платит мало.
33. Говорит комплименты, но информацию и умения продает. За выполнение задания и товары платит нормальную стоимость.
34. Может выполнить поручение героя, бесплатно передать информацию или умение.
35. Может стать спутником (следовать за героем, помогать ему в схватках, нести предметы и т.д.) или получить от него задание (в том числе и квест). Персонаж на этом уровне активности и отношений передает новую информацию автоматически, как только герой оказывается в его поле зрения (например, в дневнике сразу появляется запись, о чем сообщается игроку), бесплатно обучает своим умениям, но после любой услуги герою (кроме сопровождения) активность снижается.

20. Предупреждает о нежелании общаться и переходит к схватке, если герой не прекращает контакт.
21. Предупреждает о нежелании общаться, при агрессии со стороны героя переходит к схватке, но может продать информацию, хотя заданий герою не доверяет.
22. Не прерывает контакт, может дорого продать информацию и умения, за выполнение задания платит мало.
23. Готов бесплатно поделиться информацией и нормально заплатить за выполнение задания.
24. Бесплатно обучает новым умениям и может дать задание.
25. Навязывает общение, бросая все свои текущие дела. Может дать задание, но деньги предлагает только за выполнение квеста (за услуги по мелочам друзья деньги не берут!). Предлагает за определенную сумму повысить типичную активность.

10. Угрожает и разрывает контакт.
11. Не разрывает контакт и может продать информацию, хотя и дорого.
12. Продает информацию и может дать задание, но за выполнение платит мало.
13. Может бесплатно дать информацию и заплатить за выполнение задания.
14. Предлагает контакт с обменом информации, выдачей задания.
15. Навязывает контакт и свои небольшие задания, но не платит за них. Сообщает сумму, за которую в будущем повысит типичную активность.

00. Прячется или уходит из поля зрения. Чтобы повлиять на такой персонаж, следует дать кому-то поручение "Найти и улучшить отношение" с помощью денег (подарка).
01. Не поддерживает контакт. Повлиять можно косвенно — через другого персонажа.
02. Если заплатить, то может дать информацию.
03. За информацию просит мало, но мало платит и за выполнение задания.
04. Если есть новая информация, то сигнализирует герою и дает ее бесплатно, а за выполнение задания платит обычную цену.
05. Просит сумму денег, за которую изменяет свой статус и увеличивает типичную активность в будущем — персонаж может стать торговцем, ремесленником, лекарем
и т.п.

Таким образом, в процессе общения игрок формирует систему взаимоотношений своего героя с другими персонажами, а для наглядности стратегии действий предлагаю следующие рисунки.

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

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

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

В таблице 3 представлены возможные исходы взаимодействия, которые могут комбинироваться и охватывают потребности большинства ролевых игр.
Теперь у нас есть все необходимое для создания общего алгоритма моделирования общения в ролевой игре. Соединив воедино различные особенности и этапы взаимодействия, получаем следующую последовательность действий:
1. Персонаж оказался в поле зрения. Если персонаж:
• стремится к общению, то приближается и сам начинает разговор;
• враждебен и пассивен, то он убегает, но чаще даже не попадает в поле зрения;
• враждебен и активен, то он приближается и нападает с удобной дистанции.
2. Если Чувствительность героя позволяет, то пока контакт не произошел, например персонаж еще не заметил героя или бежит к нему, можно изучить его состояние (или изменить свое в более сложных моделях).
3. Определение программой доступных герою действий и демонстрация их игроку для выбора намерений перед началом взаимодействия.
4. Оценка состояния персонажа и намерений героя (таблица 1).
5. Если позволяет Мудрость, то возможность изменить результат на ближайшую (по таблице 2) ситуацию, иначе — возможность прервать общение (позволяет избежать потери предмета, получения задания, перехода к схватке и т.п. необратимых изменений).
6. Определение результата взаимодействия (таблица 3) и его имитация.
7. Конечное изменение состояния участников общения (типичных отношений, предметов, опыта, информации, умений и т.д.).

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

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

Не является полностью новой предлагаемая форма имитации общения и для компьютерных игр — пиктограммы действий, изменяемые отношения и другие интересные находки разработчиков мы видим, в частности, в серии Sims. Но здесь правильнее говорить не о заимствовании идей, а о единстве их источников — психологических особенностей взаимодействия людей. Использование нашей модели общения в компьютерных ролевых играх дает возможности:
• регулировать уровень сложности игры, изменяя начальные характеристики персонажей и их числовые значения;
• показать логику отношений между персонажами, создать индивидуальные стили общения, частично или полностью заменить диалоги пиктограммами;
• использовать для решения своих задач в игре практически любого персонажа;
• создать оптимальный круг общения, когда неиспользуемые игроком персонажи избегают контакта с ним;
• организовать оригинальную систему взаимоотношений, когда персонажи общаются не только с героем, но и между собой;
• генерировать для героя задания по общению с другими персонажами: например, кого-то уговорить что-то сделать, в чем-то помочь и т.д., что снижает воинственность игры и приводит к возможности ее мирного прохождения;
• передать выполнение задания другому персонажу;
• создать уникальное развитие сюжетной линии для каждого прохождения игры;
• общение персонажей в игре становится самостоятельной задачей, когда учитываются особенности игровой ситуации и степень развития персонажей.

Сегодня я не знаю компьютерных игр, где была бы реализована рассмотренная в статье модель общения, но РПГ-проект питерских энтузиастов Catarsis ( http://mudart.narod.ru/about.htm) уже включил ее в разработку. А пока я мечтаю о том времени, когда любимые игры будут не только уводить нас в свои миры, но и с волшебной мудростью указывать прошлые и настоящие ошибки в реальной жизни, которую, как известно, не перезагрузишь заново. Присоединяйтесь — помечтаем вместе…

Владимир Сивицкий, зав. кафедрой психологии МГЭИ,член-корр. Международной академии психологических наук
vladimir@sivitsky.by

№ 53

Geek Bar Подвал

Перепечатка материалов разрешается только с указанием индексируемой ссылки на первоисточник.

Наши самые актуальные статьи вы найдете в газете "Виртуальные радости".