Моделирование противника для компьютерной игры с использованием методов поддержки принятия решений

Моделирование противника для компьютерной игры с использованием методов поддержки принятия решений

Каюмова Д.Д.

(Политехнический институт Таджикского технического университета Имени академика М. С. Осими, Худжанд.Таджикистан)

СЕКЦИЯ 07. Технические науки.

Аннотация: В данной работе представлен подход к разработке логики поведения оппонента для компьютерной игры Dice Adventure. Для решения задачи был произведен обзор технологий разработки игрового искусственного интеллекта. Итоговый метод объединяет идею концепции Utility AI и выбор хода при помощи методов поддержки принятия решений.

Ключевые слова: модель, поддержка принятия решения, видеоигры.

COMPUTER GAME OPPONENT MODELLING WITH DECISION SUPPORT METHODS

Каюмова Д.Д.

(Polytechnic Institute of the Tajik Technical University named after Academician M.S.Osimi, Khujand, Tajikistan)

SECTION 07. Engineering sciences.

Annotation: The report presents approach to development of computer opponent’s behaviour in Dice Adventure game. For the purposes of the study, review of game AI technologies was made. Resulting method combines the idea of Utility AI concept with Decision Support Methods.

Keywords: model, decision support, video games.

 

Введение

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

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

Разрабатываемая игра Dice Adventure представляет собой дуэль. Каждый из игроков управляет тремя персонажами. Персонажи обладают параметрами здоровья и брони, владеют определенной способностью и имеют набор кубов. Куб – игральная кость, имеющая от двух до двадцати граней. Каждой грани соответствует определенный игровой эффект, наносящий повреждения, лечащий и т.д. В свой ход игрок выбирает по одному кубу каждого персонажа, после чего производится бросок. Выпавшие эффекты распределяются по целям, и ход передается противнику. Так продолжается до тех пор, пока здоровье всех персонажей одного игрока не опустится до нуля. Задачей данной работы является разработка метода выбора кубов компьютерным игроком и последующего распределения эффектов по целям.

Обзор методов разработки поведения компьютерного противника

На сегодняшний день выделяется несколько концепций игрового ИИ [1]:

  1. Искусственный интеллект на основе конечных автоматов (Finite State Machines). Этот метод подразумевает наличие определенного количества возможных состояний агента, активным из которых, в каждый момент времени, может быть только одно, и правил перехода между ними. Основным недостатком этой концепции – сложность её отладки при большом количестве состояний. Для повышения удобства работы разработаны иерархические конечные автоматы (Hierarchical Finite State Machines), в которых состояния могут объединяться в более общие [3].
  2. Дерево поведений (Behaviour Trees) – способ представления логики НИП в виде иерархии действий, которые могут разбиваться на более простые. В каждый заданный момент времени происходит просчет всего дерева, позволяющий определить, действия персонажа. Данная операция крайне ресурсоемка, что вызывает задержки в процессе игры. Для решения этой проблемы выделяют автономные поддеревья, имеющие условие обратного перехода к рассмотрению полного дерева [3].
  3. ИИ на основе оценки полезности (Utility AI) выбирает действие неигрового персонажа, базируясь на его приоритетных потребностях. Для этого формируется список возможных действий и определяются правила, в каком случае полезность одного действия превышает другую. Как правило строится график зависимости уровня полезности от количества очков, назначаемых в зависимости от игровой ситуации [1]. Данный метод позволяет легко формализовать лингвистические описания логики НИП, а также улучшать систему в дальнейшем, добавляя или изменяя потребности, однако, его точность сильно зависит от выбранной логики начисления очков альтернативам [3].
  4. Нейронные сети (Neural Networks) – сети из искусственных нейронов, соединенных друг с другом по одной из множества топологий. Часто нейроны разделяют на три уровня: входной, скрытый и выходной. Для обучения сети задают некоторые случайные начальные веса связей между нейронами и сравнивают выходной результат с желаемым, затем корректируют веса [4].
  5. Генетические алгоритмы (Genetic Algorithms) основаны на поиске пути к решению в результате работы нескольких поколений объектов. Первое поколение пытается самостоятельно случайным образом добиться максимального приближения к цели, после чего рассчитывается коэффициент её успеха, который улучшают последующие. Для ускорения обучения могут подключаться базы данных, хранящие различные случаи, возникавшие у конкретных НИП в предыдущих тестах или во время игры человеком [5].
  6. Технология нейроэволюции (Neuro Evolution) объединяет нейронные сети и генетические алгоритмы. Можно выделить два направления нейроэволюции: изменение весов связей между нейронами и изменение самой топологии сети. Генами служат и свойства нейронов, и свойства связей между ними [4].

На рисунке (Рис. 1) изображена диаграмма уровней контроля и сложности для основных подходов к разработке логики НИП [1]. Вектор контроля отображает, насколько четко управляемые компьютером агенты следуют жестко заданным разработчиком правилам. Сложность – насколько развитую и адаптирующуюся к различным игровым ситуациям систему позволяет создать та или иная технология.

Рис. 1. Уровни контроля и сложности различных подходов к реализации игрового ИИ

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

Предлагаемый метод

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

 В данной задаче альтернативами являются кубы персонажа, причем их число ограничено и мало. Критерии оценки – возможность этих кубов повлиять на определенную игровую ситуацию, например, нанести урон здоровью противника или заблокировать ход оппонента. При этом, все критерии можно разделить на несколько категорий, по типам удовлетворяемой потребности. Данная задача относится к первой группе по классификации Ларичева О.И. [6], и выбор альтернативы предполагается производить с использованием метода аналитической иерархии. При этом, оценка весов критериев зависит от уровня полезности соответствующей категории по технологии Utility AI.

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

Заключение

Таким образом, в данной работе произведен обзор основных технологий разработки игрового ИИ, и представлен метод описания логики компьютерного противника для конкретного примера. Разработанный метод использует концепцию Utility AI, что позволяет легко настраивать потребности противника и имитировать его характер, а выбор хода производится при помощи метода аналитических иерархий.

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

Список цитируемой литературы

  1. Unite Europe 2016 — Next Generation AI for Unity [Электронный ресурс] / YouTube – URL: https://youtu.be/jse_ZleruJU. (Дата обращения: 11.02.17).
  2. Yannakakis G.N. Game AI revisited // Proceedings of the 9 th conference on Computing Frontiers. ACM, 2012. P. 285-292.
  3. Rasmussen J. Are Behavior Trees a Thing of the Past? [Электронный ресурс] / Gamasutra — The Art & Business of Making Games – URL: http://www.gamasutra.com/blogs/JakobRasmussen/20160427/271188/Are_Behavior_Trees_a_Thing_of_the_Past.php. (Дата обращения: 11.02.17).
  4. Buckland M., Collins M. AI techniques for game programming. – Premier press, 2002.
  5. Louis S.J., Miles C. Combining Case-Based Memory with Genetic Algorithm Search for Competent Game AI // ICCBR Workshops. 2005. P. 193-205.
  6. Ларичев О.И. Теория и методы принятия решений, а также Хроника событий в Волшебных странах //М.: Университетская книга, Логос. – 2000.

Back to Top