Генерация персонажей: научные аспекты
Заканчивая цикл, посвященный генерации персонажей в ролевых играх, нам бы хотелось обратить внимание уважаемых читателей на один интересный нюанас, который состоит в том, что дело это совсем не «игрушечное», а наоборот очень даже серьезное. Хотите смейтесь, а хотите нет, но через эту проблему, характерную для компьютерных игр, сегодня проходит фронт научных исследований математиков (искусственный интеллект), психологов (когнитивная психология), философов (теория познания), биологов (поведенческие реакции), социологов (личность и общество), а также специалистов в области культуры (театр, кино, литература) и бизнесменов (как из всего этого сделать деньги).
1. Формулировка проблемы.
Компьютер — вычислительная машина, которой от роду положено иметь дело с понятиями, которые можно выразить числами. По сути своей единственное, что он умеет делать — это складывать числа. Вычитание — это сложение наоборот. Умножение — это серия многочисленных операций сложения. Все прочие операции как математические, так и логические — это все действия вторичные. Первично: 1 + 1 = 2.
А дальше начинаются фокусы, такие например как:
СИЛА + СКОРОСТЬ = УДАР
УДАР — БРОНЯ = ПОРАЖЕНИЕ
ЗДОРОВЬЕ — ПОРАЖЕНИЕ = СОСТОЯНИЕ
если СОСТОЯНИЕ < 0, то СМЕРТЬ
Вот так, через компьютерные игры и началось проникновение компьютеров в сферу человеческого общения. Правда, пока это происходит только в ролевых играх, а они, как известно, ориентированы на силовое решение проблем, возникающих между персонажами. Это, конечно, атавизм, но ничего другого пока не придумали. Не пришло еще время, но ведь это только пока.
2. История проблемы.
Когда-то, когда появились первые игры, их создатели поставили перед собой задачу: «А как математически выразить все многообразие возможностей поведения человека в игре?» Решение пришло быстро — через некоторые персональные атрибуты (характеристики). Тогда же появилось желание разделить эти атрибуты на первичные и вторичные (производные).
Например:
Здоровье, сила, выносливость, скорость, интеллект, лояльность (ответственность) — первичные атрибуты.
Смелость (трусость), решительность, ловкость — производные.
Тогда в играх начали появляться первые алгоритмы, описывающие поведение персонажа в критических ситуациях типа:
СМЕЛОСТЬ = (СИЛА+ЛОЯЛЬНОСТЬ)*ЗДОРОВЬЕ/ИНТЕЛЛЕКТ
При слабой силе и плохом здоровье умный персонаж предпочтет отступить, а не ввязываться в рукопашную схватку. Впрочем, высокий уровень ответственности может его заставить все-таки это сделать.
Какие атрибуты делать основными, а какие — производными — дело автора игры. Он же сам и придумывает формулы, описывающие связь между ними, и расставляет в них коэффициенты.
Впрочем, очень скоро такие простейшие модели уступили в играх место другим, более совершенным, например модели AD&D, в которой предполагается, что:
1. Каждый персонаж может обладать:
— персональными атрибутами;
— персональными навыками;
— персональными предметами (оружие, доспехи и пр.)
2. Определенное сочетание исходных персональных атрибутов определяет расу героя. То есть, герой с одним набором может быть ТРОЛЛЕМ или ОРКОМ, но никак не может быть ЭЛЬФОМ и т.п. Введение понятия расы героя упростило первичный выбор персонажа. Вы выбираете себе ЧЕЛОВЕКА и получаете вместе с ним набор исходных параметров.
3. Определенное сочетание исходных персональных навыков определяет профессиональный класс героя. Класс связан с расой, то есть не всем расам доступны все классы, а значит они по-разному развивают свои навыки.
4. Персональные предметы связаны с профессиональным классом. Есть только два класса — ВОИН и ПАЛАДИН, которые могут с успехом владеть любыми видами оружия и доспехов.
5. Важнейшую роль играет функция, которую называют «кривая обучаемости». Она определяет, как быстро персонаж развивает свои навыки по ходу игры, применяя их на практике.
Наилучшая кривая обучаемости у тех героев, которые гармонично сочетают расу, класс и навыки. Плохо происходит обучение у нетипичных героев. (Попробуйте представить себе ТРОЛЛЯ, имеющего профессиональный класс СВЯЩЕННИК и занимающегося хореографией). Обычно навык в хореографии способствует повышению ловкости, но для нашего тролля «кривая обучения» пойдет так плохо, что долго такому троллю в игре не прожить.
Вывод: создатели системы правил AD&D не смогли своей системой выразить все многообразие возможностей поведения компьютерных персонажей и для решения проблемы переставили ее с ног на голову. Вместо того, чтобы моделировать поведение героев, сделав его близким к человеческому, они предложили игрокам слиться со сгенерированным персонажем, стать с ним одним целым, проникнуться его духом и своими действиями в игре добиваться гармоничного развития этого персонажа.
На этом стоят сегодня ВСЕ РОЛЕВЫЕ ИГРЫ. Ваша задача — войти в роль и, если Вам это удается, Вы получите удовольствие от игры, а если нет, то… хороните своего несостоявшегося тролля-священника балетных дел мастера и попробуйте сгенерировать что-нибудь более гармоничное.
3. Другой подход к проблеме.
На самом деле современное состояние дел требует совсем других подходов. Вы, конечно, представляете себе, как может происходить генерация новых случайных уровней в игре. Тогда Вы не сможете дважды сыграть в одном и том же лабиринте. А вот как бы сделать так, чтобы и персонажи в игре тоже генерировались случайным образом? Да при этом нужно, чтобы они обладали бы не только набором силовых атрибутов, а еще и человеческими свойствами, такими как печаль, любопытство, снисходительность, мстительность и т.п. Вот о чем сегодня ведут речь ученые мира.
Это нужно уже не только производителям компьютерных игр. Киностудии, выпускающие мультсериалы типа «Том и Джерри», готовы платить бешеные деньги за решение такой задачи. Им это нужно для автоматической генерации новых сценариев. Заинтересованы в автоматических генераторах сценариев театральные деятели, писатели, киносценаристы и многие другие. Конечно, это не значит, что скоро мы начнем читать литературные произведения, написанные машиной, и смотреть мультфильмы, которых не касалась рука художника, но раскрепостить сценаристов и дать им инструмент для генерации десятков тысяч заготовок, из которых они отполируют десятки произведений, все-таки хотелось бы.
Если с генерацией сцен и сюжетов дело как-то получается, то с генерацией поведения человека — пока не очень. Вот и работают над этой проблемой психологи, философы, социологи и математики.
4. Основные труды.
Дальше всех в решении этой проблемы продвинулись психологи. Их работы начались где-то в конце восьмидесятых и в последние годы наконец родилось несколько любопытных программ, как-то моделирующих поведение компьютерных персонажей.
Основоположником направления считают Дж. Бейтса, который в 1992 году создал «Проект ОЗ». Его сгенерированные персонажи действуют в системе ВОСПРИЯТИЕ — ОСОЗНАНИЕ — ЭМОЦИИ — ДЕЙСТВИЯ. Интересно, что он первым пришел к мысли о том, что правдоподобное поведение персонажа должно выводиться из ЭМОЦИЙ. (Вы чувствуете, как рождается новая система параметров?).
Б.Хэйес-Рот пошла дальше и в 1995 году, опираясь на труды группы Бейтса ввела понятие «направленной импровизации». Эта техника позволяет получить от сгенерированных персонажей такие вещи, как личностность, интеллект и неожиданные действия (сюрпризы). Ее работы были опробованы в проекте «Виртуальный театр» для детей.
На эмоции оперся и К.Эллиот в проекте «Affective Reasoner» (1994). Он создал карту из двадцати четырех видов эмоций и использовал ее как фильтр для выбора образа действий сгенерированных персонажей. В последующих работах (1995) он пошел дальше и ввел понятия ЦЕЛЕЙ (желаний) и ПРИНЦИПОВ (установок). При оценке ситуации персонаж сравнивает текущие цели со своими принципами. Возникает конфликт. Из него рассчитываются эмоции, за которыми следует выбор способа действия.
Другой подход разрабатывает Кроуфорд (1994) в проекте Trust & Betrayal. Он опирается не на эмоции, а на индивидуальность. Идея состоит в том, что образ действий персонажа рассчитывается при разрешении противоречий между параметрами индивидуальности и параметрами внешней среды. В своей более поздней работе (1995) он добавил к индивидуальности еще и манеру поведения, которая также участвует в определении образа действий персонажа.
5. Основные понятия.
Большинство современных исследователей сходятся в том, что поведение персонажа определяется пятью составляющими:
ОЦЕНКА — МОТИВАЦИИ — ЭМОЦИИ
ИНДИВИДУАЛЬНОСТЬ — ПРИНЯТИЕ РЕШЕНИЯ
Здесь под оценкой надо понимать всю информацию от внешней среды, приходящую по каналам органов чувств, и добавить к ней информацию из памяти, оставшуюся от предшествующего «жизненного» опыта.
Эмоции отражают личные переживания персонажа по поводу того, как у него идут дела (разумеется, у разных персонажей могут быть разные понятия о том, что есть ПЛОХО, а что есть ОЧЕНЬ ПЛОХО. Это уже определяется индивидуальностью).
Мотивации — это разные ценностные критерии и разные целевые установки, которые могут иметь персонажи. Для восьмидесятилетнего банкира главным ценностным критерием может быть здоровье, а главной целевой установкой — заработать побольше денег, чтобы его поддерживать. Для восемнадцатилетнего камикадзе — главным ценностным критерием может быть месть, а целевой установкой — прорваться как можно ближе к максимально крупной цели.
Некоторые ученые еще разделяют два вида мотиваций — врожденные (инстинктивные) и приобретенные (полученные из предшествующего жизненного опыта). Интересно, что при этом образуется обратная связь со сценарием. Развитие сюжета может менять мотивации героев, а мотивации могут влиять на развитие сюжета.
Принятие решения — это выбор способа реакции на сложившуюся ситуацию. Из того, насколько соотвестствует оценка ситуации мотивации, определяются эмоции, а самая сильная из них и определяет образ действия. Таким образом, сгенерированный персонаж не должен действовать ТОЛЬКО в соответствии со своими целями. Он должен действовать ТОЛЬКО ПОСЛЕ ТОГО, как противоречия между ситуацией и целями привели к эмоциям. Это уже более правдоподобное поведение.
Индивидуальность. И все-таки, как показывает жизнь, в одной и той же ситуации разные герои могут иметь одну и ту же цель и испытывать одинаковые эмоции и действовать все-таки по-разному. Значит, необходимо учитывать еще и такой параметр как индивидуальность.
Рассмотрим простой пример. Возьмем взвод солдат в окопе под обстрелом. Ситуация для всех одна. Целевую установку командир дал всем одну: «В атаку!». И ценностный критерий у всех может быть один — скорейшая победа. И все-таки выпрыгнут из окопа и побегут в атаку солдаты по-разному. А кто-то, может быть, и вообще не сможет сделать первый бросок. Это влияет индивидуальность, которую, кстати, неслучайно в армии подавляют всеми возможными средствами. Это целая наука, без которой, увы, пока обойтись нельзя.
6. Цель изысканий.
Что же в итоге хотелось бы получить? Рассмотрим простой пример, типичный для современных ролевых игр. Вы спускаетесь в подземелье, где одно из сокровищ охраняет свирепый дракон. Таких драконов (и других подобных монстров) в игре могут быть тысячи. Один раз разместив их на игровом пространстве, программа как бы забывает об их существовании. И стоит этот дракон «на часах» всегда один и тот же, без эмоций, без переживаний и ждет, пока к сокровищу придете ВЫ.
Вот тут-то он и «оживает». Не спрашивая кто Вы, откуда, зачем и почему, он атакует. Только здесь программа принимает на себя управление драконом, и все общение с ним сводится к обмену ударами.
Рассмотрим другой вариант, как бы повел себя этот дракон, будь он хоть чуть-чуть бы персонализирован.
Во-первых, сама структура программы должна быть другой. Разместив своих «монстров» на игровой карте, программа должна периодически к ним обращаться и обрабатывать их «жизнь». Дракон станет совсем иным.
Отстояв неделю «на часах» и не дождавшись положенной кормежки, он начнет «думать», где бы поесть. Вот уже конфликт между состоянием и мотивацией. Мотивация (ответственность) не дает отойти с поста, а голод гонит. Сначала дракон будет отходить недалеко и, утолив голод, возвращаться обратно. Вскоре в дело вступит «память», которая напомнит ему о том, что покидать пост совсем не страшно. Уровень ответственности начнет понижаться, а отлучки по личным надобностям станут чаще и продолжительнее. Вот в такой момент его и можно застать врасплох.
Другой вариант: при встрече с драконом сначала поздоровайтесь, а потом предложите ему вареную сосиску. Возможно, что из этого получится что-то более интересное, чем простой обмен ударами.
Третий вариант: простояв пару месяцев на часах, дракону может стать просто скучно. Скука — это эмоция. Как поведет себя такой дракон, если Вы придете к нему не с топором, а с лютней и сумеете его развлечь?
Наконец, дракон тоже принадлежит к какому-то сообществу. У него где-то есть гнездо, в котором плачут дети малые. Представим себе, что гнездо это разорили злые орки. И у дракона будут другие эмоции — либо месть, либо грусть, либо беспокойство. В гневе он может покинуть пост и отправиться в свободный поиск, сжигая все на своем пути. А может быть ответственность пересилит гнев, и он останется на дежурстве в тоске и печали? Как он поведет себя в контакте, если в Вашем отряде есть орк? Как он поведет себя, если Вы до этого уже истребили орков и освободили его драконят? И как он поведет себя, если его гнездо разорили Вы, а детей его оставили в заложниках? Всякий раз игра будет развиваться по-разному.
Одним словом, если каждому персонажу игры ввести параметры, описывающие его мотивации, эмоции, индивидуальность, а программе поручить регулярно «сканировать» каждого индивидуума, вводя в него оценку текущей ситуации и вычисляя его поведенческие реакции, то можно получить в игре такой накал страстей, какого еще до сих пор не было.
7. Заключение.
Главных выводов из всего вышеизложенного мы можем сделать три.
Во-первых, дело это совсем не «игрушечное». Занимаются им очень даже серьезные ученые, получающие за это очень серьезные оклады.
Во-вторых, дело это совершенно новое. По тем ссылкам, которые мы дали, Вы и сами видите, что исследования идут сейчас, в наши дни.
В третьих, область эта еще не паханая. Если Вы умеете программировать на любом языке (хоть на БЕЙСИКе), можете сегодня же сами начинать свой проект и смотреть, что у Вас получится. Многие молодые люди активно стремятся к созданию компьютерных игр, но их сдерживает тот досадный факт, что сделать коммерчески успешную игру сегодня в одиночку практически нереально. В сфере же автоматической генерации правдоподобного поведения персонажей работы хватит на всех.
И, наконец, о пределе мечтаний. В идеале должно получиться две программы. Первая — модуль автоматической генерации (МАГ) персонажей. Он должен быть закрытым, автономным и универсальным, а его автор — миллионером (разумеется, долларовым). Компании, выпускающие игры, будут «пристегивать» этот модуль, не заглядывая в него, и двух одинаковых игр не получится. Совершенно неважно даже, к какому жанру будут относиться эти игры. Поведение вражеского пилота в авиаимитаторе, поведение монстров в аркадных, ролевых, адвентюрных играх может быть сгенерировано по одним и тем же алгоритмам одним и тем же универсальным модулем.
Вторая программа — редактор. Это интерфейс между автором игры (кинофильма, мультфильма, романа, пьесы) и МАГом. Здесь он сможет задать все, что знает про своего героя. Формально описать его предисторию, черты характера, физические данные или оставить это на волю случая. Жизненные коллизии и поведение персонажа в игре (в кино, в романе и т.п.) пусть разрабатывает МАГ.
Так что, господа программисты, точите Ваши перья! Вот Вам объект для исследований и проявления своих талантов, а мы будем ждать появления ролевых игр нового поколения. Думаем, что через два-три года что-то подобное должно появиться на свет.
Сергей Симонович, 1996
Советуем почитать:
- Обзор методов генерации персонажей в RPG
- О ролевых играх
- Лучшие компьютерные игры №3 март 2011
- RPG: быстрый старт
- Еще немного о генерации персонажей в RPG
- Перспективы игровой индустрии
- Probe Entertainment. Ф.Макговерн отвечает на вопросы журнала PC-Format