В последние годы получил широкое распространение жанр нелинейных компьютерных игр, также известный как sandbox games или игры-песочницы. Игрокам предлагаются большие, открытые миры, внутри которых они имеют высокую степень свободы выбора того, как они будут исследовать их, как будут достигать внутриигровых целей.
В данной работе будет рассмотрено применение мультиагентных систем для построения города по принципу игры-песочницы.
Первые видеоигры были продемонстрированы в 1970-х годах. С тех пор отрасль росла экспоненциальными темпами. Продажи видеоигр достигли 18.85 миллиардов долларов в 2007 году [1], значительно опережая рост кинематографической и музыкальной индустрий. Уже в 2012 году рынок видеоигр оценивался в 70.6 миллиардов долларов, а в 2018 — в 134.9 миллиардов [2]. Аналогично возрастала и сложность самих игр. Из самых первых игр, таких как Spacewar! или Pong, игры развились в такие огромные проекты, как Fallout 4 или Witcher 3.
1. Постановка задачи
Методы искусственного интеллекта, используемые в игре, являются ключевыми факторами для того, чтобы игровой процесс был действительно интересен, но в то же время они создают ощущение альтернативного и правдоподобного мира, в котором игроки хотят проводить время, что является конечной целью любой команды разработчиков.
Создание системы ИИ, подходящей для видеоигры, непростая задача, зависящая от характера игрового процесса: например, ИИ стратегической игры полностью отличается от ИИ в шутере от первого лица.
Также имеется определенное расхождение между тем, что является предметом изучения в сфере машинного обучения и тем, что интересует индустрию видеоигр. В конечном счете разработчики игр преследуют две цели: создать хороший ИИ и удовлетворить потребности игрока. Во многих случаях самое важное не получить непобедимого врага, а сбалансировать «интеллект» и возможности игрока. Таким образом, становится ясно, что методы искусственного интеллекта, используемые в играх, полностью отличаются от тех, что применяются в других областях науки.
Здесь возникает дилемма: хотим ли мы создать непредсказуемый ИИ, который сможет удивить игроков неожиданными действиями, или мы ищем систему, которая просто следует заранее определенному сценарию (хотя игроки не теряют чувства столкновения с реальным интеллектом)? По этому вопросу проводятся исследования, в ходе которых достигается видимое интеллектуальное поведение (то есть такое, которое не только эффективно решает поставленные задачи, но и воспринимается как человеческий интеллект). Итак, конечной целью является попытка избежать случаев, когда эволюция агентов приводит к нереалистичным результатам, даже если они оказываются верными [3].
2. Игры-песочницы
Grand Theft Auto — отличный пример того, что может предложить игра-песочница. Она представляет собой город, в котором игроки могут делать практически все, что хотят: водить машины, ездить на поездах, летать на самолетах, бегать, плавать, стрелять из различных видов оружия и т. д. Игра разделена на миссии, которые не обязательно выполнять в строгом порядке, однако они представляют собой путь для прохождения основного сюжета, который хоть и не является основой игры, тем не менее существует.
Таким образом, одним из ключей успеха франшизы стала свобода, которую предлагают игры этой серии: целый город (в последствии и больше, вплоть до региона), который полон трафика, населен множеством агентов (полиция, скорая, обычные пешеходы), в котором есть магазины, спортзалы и прочие общественные места, существует смена дня и ночи и т. д. Однако эта жизнь — всего лишь иллюзия: движения ограничено, действия полиция запускаются сценариями или небольшим набором поведений игрока, пешеходы не имеют иной цели, кроме как идти по улицам
Тем не менее, иногда кажется, что этого недостаточно. Создание игры — это дорогостоящий процесс, который может занять несколько лет напряженной работы. В этой работе представлено общее представление о том, каким должен быть город в игре-песочнице, основанный на мультиагентной системе.
3. Интеллектуальные агенты
Программные агенты берут свое начало в областях программной инженерии, искусственного интеллекта и взаимодействия человека с компьютером. В основном, это агенты с некоторым внутренним состоянием и способностью общаться и взаимодействовать друг с другом и с окружающей средой.
Агент — это часть программного обеспечения, которая может выполнять гибкие и автономные действия в определенных средах. В этом случае считается, что гибкость обладает реактивностью, проактивностью и коммуникабельностью, где
− реактивная система поддерживает постоянную связь с окружающей средой и реагирует на ее изменения.
− проактивная система ориентирует свое поведение на достижение определенных целей. Поэтому он не только контролируется событиями, но и может взять на себя инициативу.
− общительность означает, что в качестве мультиагентной среды существуют определенные цели, которые невозможно достичь без существования межагентского сотрудничества [4].
4. Город как мультиагентная система
Чтобы превратить «песочницу» в мультиагентную систему, важно знать, что из себя представляют системы такого типа. Их можно определить как организованную группу агентов, которые взаимодействуют в общей среде. Таким образом, они состоят из четырех ключевых элементов:
− Организация
− Агенты
− Среда
− Взаимодействия
4.1 Организация
Поскольку полученная система будет достаточно обширной, иерархия действий должна быть использована для того, чтобы попытаться организовать работу. Решения рассредоточены по цепочке, начиная от долгосрочных решений высокого уровня и заканчивая немедленными решениями низкого уровня. Таким образом, более высокие уровни контролируют нижестоящие, в то время как они информируют вышестоящие о состоянии мира. Это позволит улучшить как логическую организацию, так и производительность. Предлагаемые уровни:
− Сам город, который представляет самый высокий уровень и может работать как агент, воспринимающий все, что происходит внутри него
− Контрольный уровень будет вторым уровнем, как основное средство связи между городом и игроками
− Третий уровень, состоящий из неигровых персонажей (NPC), таких как трафик, пешеходы, полицейские
− На низшем уровне будут все те элементы, которые можно считать необязательными в данной модели. Однако они, в случае добавления в игру, усилили ощущения реальности. Примерами элементов такого типа могут служить животные (кошки, крысы, птицы, уличные собаки), общественный транспорт (система метро) и т. д.
Рис. 1. Структура города. Низшие уровни передают информацию о состоянии города более высоким, в то время как те отдают приказы.
4.2 Агенты и среда
Город
Город — это мозг системы. Наибольшее отличие от стандартных мультиагентных систем в нашем случае заключается в том, что это одновременно и среда, и агент; и поэтому он должен быть способен реагировать на различные раздражители. Входные данные будут связаны с различными необходимыми условиями («здоровье города»), а его реакция должна соответствовать стилю игроков. Таким образом, городом будут управлять две фундаментальные переменные: поддержание равновесия и адаптация к игрокам.
Поддержание равновесия
Город должен всегда поддерживать оптимальные темп работы и избегать нежелательных ситуаций. Например, стоит избегать серьезных транспортных проблем и поддерживать правопорядок. Это достигается путем создания плана действий для уровней, который находится непосредственно под ним в иерархии ИИ (см. рисунок 1), то есть полиции и контроля трафика. При составлении планов город должен знать, как справляться с различными ситуациями, такими как поддержание оптимального числа полицейских для адекватного контроля или изменение схем светофоров для устранения пробок.
Адаптация к игрокам
Если поддержание равновесия городом будет выполняться идеально, и любые попытки игроков его нарушить будут немедленно и эффективно пресекаться, то это может привести к потере интереса к игре. Поэтому необходимо найти порог для поддержания состояния на приемлемом уровне, не мешая игрокам. Например, если игрок нарушает виртуальный закон, его будут преследовать полицейские, контролируемые ИИ, и система должна решить, использовать ли агрессивную стратегию с большим количеством юнитов, или использовать более простой подход для игрока в случае, если в его игровом стиле было замечено нежелание участвовать в сложных преследованиях.
Неигровые персонажи
NPC, несомненно, являются теми агентами, что заставляют игроков ощущать город настоящим, живым. Более того, они являются той частью ИИ, с которой игроки будут взаимодействовать чаще всего. Каждое транспортное средство управляется агентом, который, по сути, является пешеходом, использующим личное транспортное средство. Водители должны знать пункт назначения, маршрут, которым они будут следовать, должны соблюдать правила дорожного движения, пытаться оптимизировать свой путь. Кроме того, у каждого агента должна быть своя «личность», которая будет влиять на его стиль вождения (агрессивный или аккуратный, насколько сильно они готовы рискнуть и т. д.) и на его поведение по отношению к другим агентам.
Архетип личности — это набор ясных, узнаваемых и последовательных действий, которые пользователи могут описать одним словом
В игре-песочнице, где большое внимание будет уделено процессу вождения транспортных средств, личности будут наиболее заметны в стилях вождения различных агентов. У каждого агента будет свой набор личностных качеств, которые будут определять его поведение. Примером личностных характеристик могут быть:
− Насколько вероятно, что агент будет ездить по тротуару.
− Насколько вероятно, что агент будет таранить другие автомобили.
− Насколько активно агент будет искать возможность сократить маршрут, срезать.
− Предпочитает ли агент двигаться на высокой или низкой скорости. Комбинируя эти ценности, можно создать разные личностные архетипы. Это позволит дизайнерам легко создавать более живой мир, в то время как код остается неизменным.
4.3 Взаимодействия
Взаимодействия агент-среда
Агенты должны иметь возможность общаться со своей средой, поскольку это одна из характеристик, которые определяют мультиагентную систему. Есть несколько вариантов реализации данного взаимодействия:
− Первый метод называется Smart-Objects [5]; в этом случае объекты сами передают свою информацию агентам. Это похоже на то, что сделано в The Sims. Этот подход предлагает четкое разделение между агентом и объектом, а также децентрализацию знаний.
− Другой метод заключается в дальнейшем развитии взаимодействия и разработке системы коммуникации, которая имитирует природу: агенты смогут взаимодействовать с объектами с учетом прошлого опыта, что позволяет им иметь некоторую степень знания об объектах, которых они никогда не видели до. SOTAI (Smart ObjecT-Agent Interaction) реализует этот метод. Каждый объект будет определен как набор действий, каждое из которых связано с серией признаков. Признак — это символ, который представляет собой раздражитель. Агенты будут иметь несколько потоков или рецепторов раздражителей. Из этой информации система будет строить причинно-следственные связи между этими раздражителями и последствиями. Связи будут группироваться в строки, которые представляют сети знаний и позволяют узнать характеристики объекта из набора входных стимулов. Агенты могут использовать эти сети для более эффективной работы с новыми типами объектов, если они неизвестны.
Взаимодействие между агентами
Общение между агентами может быть реализовано как система обмена сообщениями, которая также может использоваться для любой другой игровой системы. Сообщение состоит из типа информации, идентификаторов отправителя и получателя, а также некоторых дополнительных информационных полей.
Заключение
Видеоигры представляют собой серьезную задачу для систем искусственного интеллекта, являясь целой областью исследований, в которой требуется не приблизиться к совершенному интеллекту, но максимизировать удовольствие, которое приносит игрокам взаимодействие с ним.
Ситуации, обрабатываемые ИИ, в значительной степени зависят от типа игры и требований к дизайну, и вполне возможно, что решение, используемое в одной видеоигре, не может быть применимо в любой другой, что приводит к разработке конкретных методов под конкретную задачу. Поэтому это область, которая предлагает большой потенциал в плане исследования и разработки новых алгоритмов.
В этой работе рассмотрен способ построения города, имитирующего реальную жизнь. Также указаны направления, с помощью которых это может быть осуществлено. Эти направления требуют дальнейшего изучения.
В частности, представлены следующие направления исследований:
− Система управления движением с интеллектуальными агентами, управляющими транспортными средствами.
− Иерархия команд для управления конфликтами и их решения
− Личность и искусственные эмоции агентов.
− Адаптация поведения ИИ к стилю игроков.
− Изучение новой методологии внедрения систем искусственного интеллекта на основе агентов.
Литература:
- Growth of gaming in 2007 far outpaces movies, music. http://arstechnica.com/news.ars/post/20080124-growth-of-gamingin-2007-far-outpaces-movies-music.html
- Global games market value rising to $134.9bn in 2018. https://www.gamesindustry.biz/articles/2018–12–18-global-games-market-value-rose-to-usd134–9bn-in-2018
- Stanley, K. O., Bryant, B. D., Miikkulainen, R., Evolving Neural Network Agents in the NERO Video Game. Proceedings of the IEEE 2005 Symposium on Computational Intelligence and Games (CIG05). (2005).
- Michael Wooldridge, An Introduction to MultiAgent Systems, John Wiley&Sons Ltd. (2002).
- Abaci, T., Ciger, J., Thalmann, D., Action Semantics in Smart Objects. Proceedings of the Workshop towards Semantic Virtual Environments, pp. 121–126. (2005)