Перейти к содержанию
  • Авторизация  

    Боевой искусственный интеллект


    Sanello

    Искусственный интеллект (ИИ) — один из важнейших компонентов любой игры с однопользовательским режимом. Именно от него во многом зависят впечатления игроков: ИИ не должен выдавать себя, чтобы они забыли (или почти забыли), что играют против машины. Персонаж под управлением компьютера должен быть достойным соперником, умным и быстрым, — но лишь в известных пределах, ведь против него играет человек, которому свойственно ошибаться. В конце концов, герою повествования тоже нужно побеждать. Искусственному интеллекту следует задействовать все элементы игровой механики, причем не только ради веселья и разнообразия, но и чтобы игрок увидел все возможности. Это особенно важно для таких игр, как Mount & Blade II: Bannerlord — с масштабными сражениями, где основная ставка делается на умения персонажей.

    В предыдущих играх серии Mount & Blade ИИ неплохо вел себя в битвах, но высокоразвитым назвать его было нельзя. Тактика компьютера была практически линейной: войска под его управлением либо бросались в бой в полном составе, либо дожидались, пока игрок нападет первым. ИИ совсем не учитывал особенности местности. Кроме того, компьютерные соперники не пытались найти слабое место игрока и не использовали чужие ошибки, чтобы победить. Им не хватало глубокой проработки поведения, поэтому они служили скорее досадным препятствием, а не достойными противниками. В Bannerlord искусственный интеллект значительно изменен. Мы хотим, чтобы играть было сложно, но интересно, чтобы победа требовала грамотного использования всех доступных игровых элементов, — и чтобы недальновидные решения и ошибки приводили к ощутимым последствиям. Чтобы выполнить эту задачу, нам потребовался более продвинутый ИИ с улучшенной реакцией. Учитывая, что персонажи под управлением компьютера участвуют как в поединках, так и в массовых сражениях, мы решили выделить три уровня работы ИИ: индивидуальный, порядковый и тактический.

    Индивидуальный ИИ

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

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

    Когда все эти вычисления выполняются одновременно для сотни бойцов, возможны проблемы с производительностью (мы решили их при помощи параллельной обработки).

    Порядковый ИИ

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

    У порядкового ИИ тот же интерфейс и набор команд, что и у игрока. Иными словами, наш боевой искусственный интеллект не жульничает! Он принимает решения, исходя из того же набора данных, который был бы у человека (хотя эти данные немного точнее, чем приблизительные оценки игрока).

    Тактический ИИ

    Тактический ИИ формирует общий план битвы для армии под управлением компьютера. Он выбирает наилучшую тактику с учетом рельефа местности и состава обеих армий. Чтобы разнообразить сражения и лучше встроить их в сюжет, мы подчинили работу ИИ на этом уровне полководцу, командующему «компьютерной» армией. Более осторожные полководцы предпочитают занять высоту и играть от обороны, тогда как другие, более дерзкие, не дают противнику расслабиться, сразу начиная с атаки.

    Исходя из выбранной тактики строится план битвы, в котором каждому порядку отводится — но не навязывается — определенная роль. Это значит, что неотложные решения на поле боя искусственный интеллект каждого порядка будет принимать независимо от общей тактики (например, воспользоваться преимуществом или отступить при необходимости), но если срочных мер не требуется, компьютерные противники будут придерживаться плана.

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

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

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

    Авторизация  


    Обратная связь

    Рекомендуемые комментарии

    Комментариев нет


×
×
  • Создать...