Приветствую всех вОблако Tencent + сообщество, получить больше крупной технической практики Tencent по галантерее ~
Эта статья написанаwatalooОпубликовано в колонкеИспытательное поле Ваталу
1 Обзор дизайна
1.1 Принципы проектирования и цель
Основные цели искусственного интеллекта героя:
1. Переходная игра для новичков позволяет игрокам играть против слабых компьютеров, когда они впервые входят в игру, культивировать чувство выполненного долга и избегать потери разочарования, вызванного тем, что они еще не знакомы с игрой.
2. Битва человека и машины, дающая игрокам возможность потренироваться с новыми героями или бросить вызов сложным компьютерам.
3. Разогрейте игру.Для игроков, проигравших серию, подберите роботов, чтобы компенсировать победу и облегчить неудачи серии проигрышей.
4. Отказ от хостинга, использование искусственного интеллекта с разумной силой для замены уволенных игроков и уменьшение потерь игрового опыта других онлайн-игроков.
Принцип разработки искусственного интеллекта героя таков: превосходный ИИ не должен быть максимально согласован с человеческими способностями, он не должен быть таким точным и безупречным, но может хорошо взаимодействовать с игроками и улучшать игровой процесс.
1.2 Идеи дизайна
Наша реализация ИИ разделена на четыре этапа, точно такие же, как и при росте игрока.
Первый этап — это базовый тактический ИИ, который в основном включает в себя: смешение линий, покупку снаряжения, уход от опасности, возвращение в город и пополнение войск. Это единый боевой ИИ. Подражание начинающим игрокам, которые только начинают осваивать операции.
Второй этап — добавить некоторую реакцию на инцидент, чтобы контролировать передвижение героя и смену полосы движения, в том числе отступать под вражескую башню, спасать собственную башню, в том числе удерживать группу. Игроки-имитаторы постепенно начали понимать свойства башни и изначально начали сотрудничать с другими игроками.
Третий этап — совместный тактический ИИ, который периодически оценивает, следует ли ему нанести решительный удар и запустить волну локальных атак. Он будет управлять юнитами в локальной области, чтобы действовать вместе в течение относительно короткого периода времени, и у него будет более подробное поведение, такое как ходьба и использование навыков.Это небольшой командный ИИ. Имитаторы начали знакомиться со всеми героями, их микрооперации улучшились, и у них есть небольшой опыт Ганка.
Четвертый этап — стратегический ИИ, который координирует распределение всех игроков по карте, дикой местности и линии войск. Игроки-имитаторы уже обладают сильным чувством командной работы и будут разделяться и сотрудничать.
2 Объяснение терминов
1. **Единый тактический ИИ: **Каждый герой будет оснащен своим уникальным тактическим ИИ, который будет понимать детали боя, например, когда герой должен использовать навыки и кто их должен использовать, как двигаться, чтобы избежать рисков или сформировать доминирующее положение для ганга; как пополнить войска; какие реквизиты покупать и продавать; когда преследовать, а когда убегать и т. д.
2.Глобальный ИИ: Глобальный ИИ — это контроллер, который отдает команды одному отряду после учета всех боевых факторов на поле боя. Главное, что волнует глобальный ИИ, это: распределение героев в линии, время активации ганка, уход от опасности и спасение зданий. Глобальный ИИ достигается путем добавления командных баффов юнитам и изменения параметров индивидуального тактического ИИ.
3.Параметры ИИ: Мы будем максимально раскрывать различные параметры поведения ИИ и контролировать интенсивность сложности ИИ компьютера с помощью параметров ИИ. ИИ высокой сложности, что означает, что он отдает приоритет стратегиям с более высокой доходностью. ИИ низкой сложности могут выбирать стратегии с относительно низкой отдачей. Наш ИИ различной сложности достигается путем изменения ряда параметров ИИ.
4.дерево поведения: Обработка потока поведения древовидной структуры.При наступлении каждого тика дерево поведения ищет и выполняет соответствующий узел в соответствии с определенными правилами, пока не достигнет конечного узла, который возвращает true, а затем завершает текущий тик.
5.Gank группа: Ганк-группа — это динамическое локальное понятие.Когда вокруг нашего героя А есть вражеские герои, герой А принадлежит к ганк-группе, а другие члены ганк-группы должны быть очень близко к А.
6.Gank поведение: Поведение ганка — это имитация коллективного поведения, его суть по-прежнему одиночный ИИ, но время запуска ганка контролируется глобальным ИИ. Роботы в состоянии Ганка будут демонстрировать поведение, сильно отличающееся от одиночного действия: например, танк может скорее умереть, чем отступить, а АЦП будет отдавать приоритет высвобождению навыков управления.
3 Реализация дерева поведения
3.1 Карта мозга дерева поведения
Карта мозга дерева поведения представляет собой дерево с несколькими ответвлениями. Все дочерние узлы каждого родительского узла обнаруживаются один за другим в порядке слева направо и сверху вниз. Пока возвращается значение True, узлы ниже не будут обнаружены. казнен. Серые аннотации являются предварительными условиями для выполнения узла, и если серые узлы не удовлетворены, False возвращается напрямую. карта мозга
Соответствует узлу Selector в дереве поведения.
Основные идеи инструментов дерева поведения одинаковы, но все же есть большие различия в их использовании. Распространенными являются подключаемый модуль BehaviorDesigner для Unity3D, компонент дерева поведения, поставляемый с Unreal 4, и Behaviac внутри компании. Мой фаворит — BehaviorDesigner, до сих пор рекомендую Behaviac при изучении, портал:woohoo.be и AVI AC.com/language/this…
Причина относительно проста, только она китайская.
Это неразвернутое дерево поведения, и каждая гиперссылка соответствует поддереву, которое будет объяснено по порядку.
3.1.1 Покупка реквизита
Для покупки реквизита для героя необходимо заранее написать соответствующие настройки реквизита для героя.
Например:
Время от времени проверяйте, можно ли за деньги покупать и продавать предметы для следующего этапа.
3.1.2 Побег на грани смерти
3.1.3 Тактическое поведение Ганка
Каждому герою нужно написать это поддерево индивидуально. Сначала найдите оптимальную цель атаки, а затем проверьте, можно ли использовать комбинацию навыков в течение одной секунды.
Поиск оптимального целевого выпуска навыка
Единицы, отвечающие следующим условиям, должны быть заблокированы в первую очередь:
1. Низкий уровень здоровья
2. Высокий AP или MP
3. Низкая физическая или магическая броня
4. Будьте в пределах досягаемости других дружественных героев
Мы можем использовать следующую формулу расчета (любая формула в этой статье не обязательно является оптимальным решением, но все они отвечают требованиям качественного проектирования):
Среди них a и b — параметры, а AllyNearBy — количество союзных героев в радиусе 600 м от вражеского героя.За каждого дополнительного союзника искушение врага увеличивается на b. Рекомендуемые значения параметров а=0,7, b=0,3
Независимо от того, используется навык или нет, учитывается только оптимальная цель высвобождения.
3.1.4 Толкающая линия
Узел измельчения крови героя должен учитывать доход, и формула расчета выглядит следующим образом:
Есть много факторов, которые необходимо учитывать в значении дохода, в том числе объем крови как врага, так и врага, а также союзные юниты вражеского героя.Величина дохода может быть отрицательной.
3.1.5 Выполнение команды действия ИИ
Команды действий ИИ обычно генерируются через глобальные сценарии ИИ вне дерева поведения и передаются дереву поведения ИИ. Обычный способ его использования — использовать глобальный сценарий ИИ для генерации различных инструкций, передачи инструкций в дерево поведения и реализации глобального блока управления ИИ.
3.2 Реакция ИИ на инцидент
3.2.1 Герои уклоняются от атак башни
Избегайте героического раша башни.
3.2.2 Глобальный ганкИИ
Периодически просчитывайте ганковую ситуацию. Сообщите ИИ, если пора ганкать или бежать.
3.2.3 Спасательная вышка
Срабатывает при атаке башни, используется для генерации команд ИИ для управления поведением ИИ.
3.2.4 Корректировка распределения армейских линий
Когда игра длится более 6 минут, ИИ начнет формировать группу, продвигать ее до упора, а затем выполнять обнаружение группы каждые три минуты.
Расчет критической стоимости солдатской линии:
Факторы, которые необходимо изучить в положении армии: количество героев, количество солдат, количество башен, HP передней башни, рекомендуемая формула:
Среди них a, b и c являются параметрами, а Лейн представляет линии плеч 1, 2 и 3. Рекомендуемые значения параметров для игр 10 на 10: a=8, b=2, c=6, d=0,2, e=20
Значение кризиса линии солдата может быть отрицательным, чем выше значение кризиса, тем более опасна линия солдата, и чем меньше значение, тем безопаснее линия солдата. Мы рассчитываем критическое значение армейской линии каждые 10 секунд и решаем, нужно ли помогать и формировать группу в зависимости от ситуации на армейской линии.
Формирование группы является относительно стабильным поведением.Мы установили поведение переключения полос таким образом, чтобы оно блокировалось на 3 минуты после каждой оборонительной формации и на 2 минуты для атакующей формации.
Перетащите героев с двух других линий на самую опасную линию. Количество отправок подчиняется закону: количество наших героев/количество вражеских героев > 0,65 (параметр), и отправляется как можно больше героев, но также гарантируется, что линия отправленной армии не станет очень опасной. Количество отправок может быть равно 0, что означает, что вся линия плотная, и каждая линия войск не может отправлять героев для поддержки других линий. В первые дни на каждой линии следует держать хотя бы одного героя.
3.3 Подробное объяснение ганка
3.3.1 Основные настройки поведения Ганка
Прежде всего, нам нужно уточнить несколько предпосылок дизайна:
1. Приоритет поведения Ганка выше, чем приоритет одиночного поведения, другими словами, большинство одиночных действий ИИ будут заблокированы во время выполнения поведения Ганка.
2. Поведение ганка должно учитывать все юниты (включая врагов) в пределах локального диапазона (например, всего экрана), а затем управлять всеми союзными героями, чтобы они действовали вместе.
3. Роботы под управлением ганкового ИИ могут демонстрировать поведение, совершенно несовместимое с одиночным ИИ.Например, мясо может ринуться прямо в кучу врага, впитать в себя ненависть и умереть до смерти; стратегия с наивысшим приоритетом ADC и APC может не быть выводом, но контролем; некоторые роботы имеют более высокий приоритет нанесения урона, чем избегание опасности.
4. Ганковое поведение не является ненормальным. Срабатывает при выполнении определенных условий. Например, в определенный момент соотношение сил между противником и нами одностороннее.
Генерация ганк-отрядов
Ганк — это поведение небольшой локальной команды. Необходимо изучить количество окружающих вражеских героев и башен, а также потенциальный урон героев и башен. Ганк — это локальное поведение, только те юниты, которые находятся в непосредственной близости, считаются в одной группе ганка. Ганк-группа — это динамическая группа юнитов. Время от времени его нужно регенерировать.
Сгенерировать схему:
Ищите героев ганк-центра, герои ганк-центра генерируются только на основе поиска локации, это не значит, что они будут в центре ганка. Каждый второй период (2 секунды, параметр) обходит всех героев на поле определенного лагеря и подсчитывает количество вражеских героев вокруг этих героев. и расположены в порядке убывания. Чем больше вражеских героев вокруг вас, тем больше вероятность, что этот герой окажется в центре ганка. Трассируйте своих героев по порядку (траверсируйте только вражеских героев вокруг себя), если они не участвовали в ганке, то берите героя в центр, ищите героев не участвующих в ганке в определенном радиусе (2000, параметр), и напишите союзного героя как героя. ганк-команда формируется так же, как и наша). Таким образом, все герои, которые могут находиться в состоянии войны, делятся на разные группы ганков в зависимости от региона.
Начало и конец ганка
Ганк-команда генерируется динамически, и она существует в любой момент, но для начала ганк-поведения нужны условия.
Время от времени проверяйте силу команды Ганка.
1. Если я ставлю ганг команду значительно сильнее целевой команды противника, то запускаю ганг, и блокирую на 5 (параметр) секунд. Во время ганка герой сначала выполняет ганк ИИ, чтобы заблокировать одно действие. После Ганка снимает блокировку. Восстановите группу ганка, переоцените ситуацию и решите, начинать ли новый ганк.
2. Когда силы нашей ганг-команды явно слабее, чем у противника, коллективно отступаем к нашей передней башне. Но не в поведении Ганка.
3. В сбалансированной ситуации, если есть вражеские юниты, которые можно использовать за секунды (смысл возможности за секунды в том, что выходное ожидание группы ганка в 1,6 (параметр) умножить на хп целевого юнита), ганк будет запустил сразу. В противном случае корректируем нашу позицию, позиция героя с сильнейшей комплексной защитой остается неизменной, а хрустящая кожа находится далеко от центра вражеского отряда, но не может уйти от танка более чем (1000 параметров). Регулировка положения — это отдельное поведение ИИ, и стратегический ИИ управляет одним поведением с помощью параметров (отправить командный бафф, отправить целевую позицию).
3.3.2 Количественная оценка урона от навыков
Если вы хотите, чтобы ИИ точно высвобождал навыки, крайне важно количественно оценить урон от умений. Не все скиллы сразу и сразу повреждаются.Как ИИ понимает свои пассивные скиллы и баф скиллы?
Что мы делаем:
- По умолчанию ИИ обычно может атаковать три раза за цикл ганка или 5 секунд.
- Прямая количественная оценка пассивных умений, таких как крит и ускорение, по мере увеличения урона за три атаки или 5-секундные атаки.
- Навык оглушения выражается в дополнительном проценте урона в зависимости от времени оглушения.
- Вспомогательные навыки играют роль только в усилении товарищей по команде, а урон оценивается как 0
Когда все навыки выражены в конкретных числах, можно рассчитать ожидаемый урон каждого героя в одном ганке.
угроза героя
Мы используем значение угрозы героя, чтобы представить ожидаемый урон героя за один ганк.
Расчет значения угрозы:
Сначала пройдитесь по всем героям на поле и оцените данные навыка по трем типам урона (физический, магический, реальный) в соответствии с уровнем навыка героя и статусом перезарядки.
Если суммарное значение угрозы двух сторон в противостоянии сильно различается (параметр 60%), считается, что возникает неравновесная ситуация. Доминирующая сторона немедленно начнет ганг и перейдет в режим командного боя. Сторона, находящаяся в невыгодном положении, немедленно войдет в состояние коллективного отступления.
Когда разница в значении угрозы не слишком велика, герой действует как одиночный солдат. В настоящее время основная роль значения угрозы заключается в выборе враждебной цели.
3.3.3 Выбор цели для ганка
Метод выбора GankTarget - найти наиболее привлекательных вражеских юнитов, улучшенная версия формулы привлекательности:
В этой формуле учитываются следующие факторы: У врага высокая AD или высокая AP? Как насчет физической брони и магической брони? Текущий объем крови? Сколько раз общий урон может убить его, если мы сосредоточимся на огне?
Вражеские герои, достойные наибольшего притяжения, станут общей целью ганк-группы
4 Резюме
В этой статье мы начнем с нуля и полностью опишем процесс проектирования искусственного интеллекта героя MOBA. Из-за нехватки места мы опишем только основную структуру, и многие детали не были расширены. В проекте мобильной игры MOBA «National Super God» по этому фреймворку мы реализовали ИИ героя всего за один месяц.
Эта программа имеет два оригинальных основных параметра: Ганк и количественная оценка урона от умений.
Настройки Ганка позволяют ИИ эффективно избегать опасности, очень точно захватывать истребители и совершать множество удивительных убийств.
Количественная оценка повреждений, позволяющая ИИ понять характеристики собственных навыков. Это очень полезно для оптимизации дохода от поведения ИИ.
вопросы и ответы
Я изучаю искусственный интеллект, какие игры я могу реализовать, чтобы попрактиковаться?
Связанное Чтение
Дизайн искусственного интеллекта в стиле Overwatch
Когда искусственный интеллект встречается с играми
Эта статья была разрешена автором для публикации сообщества Tencent Cloud +, исходная ссылка: https://cloud.tencent.com/developer/article/1146677?fromSource=waitui.
Приветствую всех вОблако Tencent + сообществоИли обратите внимание на общедоступную учетную запись WeChat сообщества Yunjia (QcloudCommunity) и как можно скорее получите больше массовой технической практики галантерейных товаров ~