IT Notes

Игровой искусственный интеллект: Введение

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

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

artificial-intelligence-gaming-scheme

Схематично ИИИ можно изобразить в виде черного ящика. На вход ему подается текущее состояние игрового мира, а на выход он отправляет принятый на основе проведенного анализа ход. Выбор хода основывается на том или ином правиле.

Примеры таких правил:

  1. Действия предопределены и состояние игрового мира в расчет не берется. Однако могут учитываться некоторые физические аспекты. Например, чтобы NPC не упирался в стену;
  2. На основе эвристики. Они просто работают, и основываются на неких допущениях и предположениях. Никто не доказывал, что принимаемые решения хорошие, но они выглядят разумно и вполне отвечают ожиданиям игроков. Большего от ИИИ никто и не требует;
  3. Для каждого возможного хода на данном шаге выполняется числовая оценка, которая показывает его "качество", то есть то, насколько он хорош в текущей ситуации. Часто используется в совокупности с эвристикой (при выборе оценок).

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

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

Процесс назначения таких оценок может быть построен несколькими способами:

  1. Функция оценки. Например, когда мы занимались решением судоку, то подсчитывали количество возможных вариантов для всех оставшихся клеток. Выбиралась клетка с наименьшим количеством вариантов;
  2. Экспертные оценки. Для различных игровых ситуаций оценки заранее назначаются специалистом, который хорошо знаком с игровой механикой;
  3. Машинное обучение. Компьютер сам назначает оценки в результате многократных прогонов и анализа качества принятых решений.

game-states-graph

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

Для удобства каждое отдельное игровое состояние с точки зрения ИИИ можно представить в виде точки, из которой выходят стрелки. Каждая стрелка - возможный ход. Оценка для хода = вес соответствующей стрелки. Чем стрелка "тяжелее", тем она привлекательней. В более сложных моделях можно говорить уже не о точках, а о целом дереве. На основе дерева мы выбираем шаг, исходя из цепочки оценок целой ветки.

Заключение

На этом мы заканчиваем вводную теоретическую часть по игровому искусственному интеллекту. К следующей статье я подготовлю тестовую площадку-симулятор, на котором мы сможем проводить различные эксперименты…

Похожие публикации

Комментарии

Большое спасибо.

owl:

Большое спасибо.

Пожалуйста.