В КУРСЕ?

Разбираемся в теме

Utility AI в играх: как персонаж выбирает действие по полезности

Utility AI — это подход к игровому искусственному интеллекту, где персонаж не следует одной жёсткой цепочке правил, а оценивает несколько возможных действий и выбирает наиболее полезное в текущем контексте. Такой метод подходит для поведения, которое должно гибко меняться: искать укрытие, атаковать, лечиться, отдыхать или исследовать мир в зависимости от ситуации.

Действия и факторы

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

Кривые полезности

Сырая величина редко подходит напрямую. Значение преобразуют функцией: линейной, ступенчатой, плавной S-образной или другой. Это позволяет задавать характер реакции. Персонаж может постепенно чаще искать укрытие по мере роста угрозы или резко переключаться после определённого порога. Кривая делает дизайн поведения нагляднее, чем десятки вложенных условий.

Комбинация оценок

Если действие зависит от нескольких факторов, оценки нужно объединить. Простое умножение сильно штрафует один низкий показатель, а сумма позволяет сильному фактору компенсировать слабый. Выбор зависит от смысла поведения. Весами можно усилить важность отдельных факторов, но слишком много весов быстро превращает систему в трудно настраиваемую таблицу.

Отладка важнее сложности

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

Попробуйте на практике

Спроектировать Utility AI для простого противника с тремя действиями.

  1. Задайте действия: атаковать, отступить и лечиться.
  2. Выберите по два фактора для каждого действия.
  3. Опишите для каждого фактора форму зависимости полезности от 0 до 1.
  4. Придумайте три игровых ситуации и вручную посчитайте оценки.
  5. Проверьте, соответствует ли выбранное действие ожидаемому поведению.

Как проверить результат. Система спроектирована удачно, если выбор объясним через несколько понятных оценок и не требует скрытых исключений для каждой ситуации.

Частые вопросы

Utility AI заменяет конечные автоматы?

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

Нужно ли машинное обучение?

Нет. Utility AI может полностью работать на заданных дизайнером формулах и игровых данных.

Почему агент постоянно меняет решение?

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

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

Зарегистрируйтесь, чтобы уточнить возможность доступа к этому материалу

Зарегистрироваться