Команда
Mount&Blade II: Bannerlord решилась на еще один дневник разработки своего проекта. На этот раз тема записи (https://steamcommunity.com/games/261550/announcements/detail/2853530520476286906) оказалась приуроченной к недавнему обновлению бета-версии сетевой части игры, в рамках которого был переработан искусственный интеллект ботов. Как мы помним, команда уже рассказывала нам об ИИ ранее. Тогда речь шла о разделении действий болванчика на три уровня: тактика, формации и индивидуальные действия. Последний уровень является самым "низким", он подчинен более старшим собратьям, но это не делает его менее важным в сражениях. Не странно, что разработчики решили обратить внимание и на него. Индивидуальный ИИ имеет несколько внутренних уровней опыта, определяющих статус соответствующего юнита. Такие уровни отражают разницу в боевых навыках, например, рыцаря и крестьянина, что позволяет разделить их не только по экипировке. В теории, это должно было стать очень хорошим решением, но главной проблемой предыдущей системы, действовавшей в Bannerlord до обновления, являлась излишняя инертность юнитов, из-за чего создавалось впечатление, будто они забагованы. Разработчики пришли к решению поменять ряд алгоритмов, дабы оптимизировать решения, принимаемые ботом: когда он должен атаковать, когда защищаться и т.п. Но что же именно поменяли разработчики? Боты теперь учитывают направления блоков у противника для выбора направления собственной атаки, причем это правило действует для всех уровней "сложности": просто, с ростом квалификации, растет и понимание механики сражения, в котором участвуют солдаты.
Разработчики привели простой пример вышеописанной системы. Есть бот, который должен находится в построении стены щитов. Он должен действовать оборонительно и пытаться удерживать свою позицию, однако, данный защитный порядок не влияет на то, насколько искусен бот в бою, то есть он все равно будет атаковать и защищать. Из этого следует, что в соответствии со своим уровнем битвы, он все равно должен пытаться использовать любую возможность атаковать в рамках заданной оборонительной схемы. Затем этому же боту выдается приказ об атаке. Теперь бот решает действовать более агрессивно, самостоятельно сближаясь с врагом. Во время боя бот смотрит, есть ли возможность для нанесения удара или же он сам должен отражать удары. Принимая это решение, он учитывает, что делает противник. Например, если враг атакует, бот попытается поставить правильный блок. Если это получится, то он в свою очередь попытается ответить собственным выпадом. При этом, если в процессе атаки он поймет, что противник пытается заблокировать такую атаку, то наш "подопечный" попытается сменить направление. Само собой, что скорость принятия таких решений и их верность будет определяться уровнем бота. Пример действий различных юнитов можно
посмотреть в ролике, опубликованном разработчиками.