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