Skip to content

Guide Planet

Как пройти/Куда идти/Что фармить

X
Menu

Искусственный интеллект в в Stronghold Kingdoms


Читайте в этой статье

  • Особенности поиска пути
  • Дополнительные особенности поиска пути
    • Опорные точки. Асимметричность сторон
    • Несколько слов о рыцарях
    • Возможный вес башни
    • Реальное поле

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

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

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

Дополнительные веса, вероятно, берутся в зависимости от показателя прочности (сколько ударов выдерживает объект против мечника-пикинера и тд) или в таком-же соотношении. Вес пустой клетки допустим 1.  Пустые клетки в и снаружи замка по логике имеют одинаковый вес. Башня, из-за неразрушимости обычными войсками, должна иметь значительный вес, например, превосходить максимум из любых разрешимых объектов на всей карте. Все клетки башни равны, для любого типа башен, так как дополнительную разницу вводить не логично. Соответственно вес башни состоит из веса всех ее клеток, и пожалуй все клетки стоит брать целочисленными. Минимальная башня — 2 на 2 итого на 4 клетки должен приходится такой значительный вес.

Общая карта весов обновляется при передвижении юнитов, разрушении ими структур и при разрушении структур баллистами.

Особенности поиска пути

В левом верхнем углу в игре происходит особенно выраженное запаздывание юнитов при передвижении к донжону, отмеченные в руководстве по нападению ряды. В других углах такого не наблюдается. По-видимому, поиск идет сверху вниз, то есть промежуток из-за этого и образуется, ибо в первый цикл смещается только нижняя линия, верхние блочатся как раз ей и предыдущими. Отсюда предполагаем что центр координат для циклов пересчета находится на верхней горизонтальной прямой для типовой схеме типа этой: (или на схеме ниже на линии Х.)

линия X

Посмотрим некоторое поведение юнитов:

юнит по диагонали

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

На следующем изображении:

ход компьютера

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

Рекомендуем к прочтению: Руководство по атаке в Stronghold Kingdoms

Посмотрим на следующие изображения:

длинная линия

полосочка

Здесь мы убеждаемся в действительности что расчет по X происходит слева направо и координатная прямая У действительно слева. Если бы первым передвигался юнит у границы, то последующий юнит передвигался бы тоже прямо а не ходил в обход.

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

Итого имеем следующую иллюстрацию для поля с произвольным замком:

ордината

Дополнительные особенности поиска пути

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

Начальное:

котлы

Некоторое промежуточное:

тыл

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

ход пикинера

Вес клеток внутри и снаружи замка, как было сказано, скорее всего одинаковый. Путь через котел представлен 4мя клетками. Расстояние между пикинерами 8 клеток.

Итого имеем: (7+2)  пустых клеток+стена предпочтительнее 3х пустых и 4х клеток котла, в остальном вес путей схож. Или же вес 6 пустых+ стена < 4 клеток котла.

То есть, как ни странно, котел хоть и весьма слабая структура, но вес имеет достаточно значительный.

Опорные точки. Асимметричность сторон

Опорные точки — точки совпадающие для множества атак.

Так на изображении ниже:

множество атак

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

Пример замка с чрезмерной асимметрией для лучшего понимания:

ассиметричность

Только стены, башни и пустое пространство. В реальности понятно не встречается, но тем не менее. Светло зеленые пути поверх башен оставлены для наглядности. Синим обозначен путь некоторого юнита с верхней стороны. Таким образом верхняя красная точка для этого пути не является опорной.

Синие опорные точки и диагональные перемещения для тыловых атак:

тыловая атака

Несколько слов о рыцарях

Как показывалось юниты могут перемещаться по диагонали, более того рыцари могут проскакивать через «диагональные дыры» даже если замок полностью закрыт.

перемещение рыцарей диагональ

 

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

Возможный вес башни

Общее число клеток поля вне замка равно 4376, внутри замка 52*52 =2704.  4376+2704=7080 всего клеток. После башни наибольший вес, в силу прочности, можно, например, отдать каменной стене — 33 удара мечника. Далее вес башни делаем превосходящим 4376*(вес пустого места)+2704*(вес каменной стены) = 4376+2704*33 =93608.  То есть например берем 100000, итого на каждую ячейку башни  2на2 приходится вес 25000. Далее можно считать что все остальные ячейки башен также имеют вес 25000

Советуем почитать: Руководство по обороне в Stronghold Kingdoms

Реальное поле

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

реальное поле

Подтверждение, при подглючивании движка:

глюки движка

 

Для реального размещение дополнительная зона понятно не доступна.

Советы при построении замков:

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

Рассинхронизация отчетов:

Рассмотрим интересный баг. В реальности башни остались целы, и сначала показывался отчет с результатом как на скриншоте 1:

баг

После некоторого перерыва, отчет превратился в следующее:

итог нападения на замок

Использовалась карта башни х 1.5, что, по-видимому,  не принципиально.

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

Момент подхода третей волны конины, примерно одинаковое время:

третья волна атака на замок

Или чуть позже, для наглядности:

баги Stronghold Kingdoms конина

Читайте также на нашем сайте

Гайд по нападению в Stronghold Kingdoms

23

Котлы со смолой в Stronghold Kingdoms

23

Расположение замка и деревни в Stronghold Kingdoms

23

Гайд по обороне в Stronghold Kingdoms

18

Ищем снайперскую винтовку MSR в Tom Clancy’s Ghost Recon Wildlands

13

Проходим героик Remnant: From the Ashes в одиночку

13

Достижения в Conan Exiles

13

Все записи из Дневника Сиптаха в Conan Exiles

13

Убираем «мыло» в Red Dead Redemption 2

13

Расположение могил в могилы в Red Dead Redemption 2

13


Опубликовано в Stronghold Kingdoms, Стратегии

Гайды

  • Action
    • Borderlands
    • Conan Exiles
    • DayZ
    • Dying Light
    • Far Cry
    • Grim Dawn
    • Hitman
    • Hunt: Showdown
    • Mafia
    • MORDHAU
    • Monster Hunter: World
    • Remnant: From the Ashes
    • Sea of Thieves
    • The Forest
    • Warhammer: Vermintide 2
    • Watch Dogs 2
  • RPG
    • Assassin’s Creed
    • Kingdom Come: Deliverance
    • Risk of Rain
  • Приключения
    • Astroneer
    • Destiny 2
    • Green Hell
    • No Man’s Sky
    • Red Dead Redemption
    • Raft
    • Rust
    • Sekiro: Shadows Die Twice
    • Tomb Raider
  • Стратегии
    • Civilization VI
    • Factorio
    • Frostpunk
    • Heroes of Might & Magic
    • Northgard
    • Stronghold Kingdoms
    • Total War: WARHAMMER II

Новые записи

  • Проходим 4 экспедицию в No Man’s Sky
  • Что делать если у Вас бесконечная загрузка в Kingdom Come: Deliverance
  • Доступные чит-коды в Kingdom Come: Deliverance
  • Решение всех проблем с оптимизацией в Tom Clancy’s Ghost Recon Wildlands
  • Ищем снайперскую винтовку MSR в Tom Clancy’s Ghost Recon Wildlands
© 2019-2022. Все права защищены. При копировании материалов сайта ссылка на сайт обязательна. По вопросам рекламы –gameplaynet.ru@yandex.ru