Перейти к содержимому


Фотография

Автоматическая Система Управления Войсками в ArmA 3


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 8

#1 OFFLINE   Индеец

Индеец

    Рядовой

  • Пользователи
  • 20 сообщений
  • Откуда:Украина

Отправлено 06 October 2021 - 20:07

     Приглашаю желающих обсудить возможность создания АСУВ на платформе ArmA.

 

     На начальном этапе разработки интересно узнать о возможных концепциях АСУВ, ее целях, задачах, структуре. Может, просто хотелках. Короче, то, чего хочется получить в результате.

 

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


  • 0

#2 OFFLINE   Индеец

Индеец

    Рядовой

  • Пользователи
  • 20 сообщений
  • Откуда:Украина

Отправлено 08 October 2021 - 00:05

     Начну с цели.

     Я предлагаю вариант, в котором вражеские войска действуют против союзных войск выделяя для этого достаточное количество солдат/техники, обеспечивая их взаимодействие. Боевые действия производятся путем выбора необходимого маневра для каждого подразделения, исходя из баланса сил и рельефа местности. 

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

     Как-то слишком заумно написано, но так, как в голову прилетело.


  • 0

#3 OFFLINE   Индеец

Индеец

    Рядовой

  • Пользователи
  • 20 сообщений
  • Откуда:Украина

Отправлено 09 October 2021 - 14:19

     Продолжу.

     Ну, уж если коснулись шахмат, то предлагаю ввести главный объект - штаб. Назову его одиозным названием HQ. В принципе, это может быть любой объект, но, думаю, лучше это будет одиночный юнит(бот) какой-либо стороны.

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

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

     Баланс сил. Вроде бы тут все понятно: баланс сил - это отношение друж. сил к враж. силам, т.е число. "Да, да, да, но - нет" (Голхвастов к,ф "За двумя зайцами"). Тогда нужно вводить понятие силы. Что есть сила группы? Думаю сила группы - это ее боеспособность, т.е. возможность группы вести боевые действия. Предлагаю силу группы рассчитывать в размерности одного пехотинца (пешки). Например, группа из 8 пехотинцев будет иметь силу 8, гранатометный расчет (стрелок+помощник) - 10, БМП - 30, танк - 50, САУ - 100. Эти значения можно корректировать с помощью коэф.здоровья, количества боеприпасов, еще что-нибудь... 

     Важность. Это банальное расстояние от вражеской группы до HQ. Чем вр.группа ближе к HQ, тем важность ее больше. Наверное, сюда еще можно отнести то, что перекрывается эта группа друж. силами или нет, насколько перекрывается (балас сил), возможность прямого выстрела по HQ, может, еще что?

     Рельеф. Тут традиционно если позиция группы находится выше группы противника, то ее опасность(?) должна быть выше. Вспоминаем Голохвастова. Если двигаться в гору, то подвижность падает. Для живых людей это так, но в Арме подвижность ботов падает незначительно. Думаю важнее возможность быстро укрыться за складками местности. Т.е. находясь на гребне холма(?) укрыться от ответного огня противника отойдя назад лучше, чем просто находясь выше но на открытой местности. Другими словами рельеф важен как укрытие. Еще можно добавить скрытое/защищенное передвижение к более выгодной позиции при исполнении маневра. Числовое значение рельефа позиции группы нужно подбирать опытным путем. Возможно оно будет отрицательным/положительным (+/-), возможно дробным (0,1...1,0).

     Местность. Тут просто количество укрытий. Например, сколько объектов находится в радиусе 10 м от просчитываемой позиции. Возможно, поделенную на 10(?).


  • 0

#4 OFFLINE   Индеец

Индеец

    Рядовой

  • Пользователи
  • 20 сообщений
  • Откуда:Украина

Отправлено 09 October 2021 - 20:50

     И снова здравствуй, дорогой читатель.

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

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

     Низший уровень - передача данных HQ, исходя из назначенного маневра и рельефа местности определение точки передвижения, ну и исполнение.


  • 0

#5 OFFLINE   Индеец

Индеец

    Рядовой

  • Пользователи
  • 20 сообщений
  • Откуда:Украина

Отправлено 11 October 2021 - 23:01

     Несколько слов о маневрах.

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

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

     Штурм. Быстрое сближение с целью для ее уничтожения. Выполняется одной или несколькими группами при 3-х  кратном перевесе друж.сил.

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

     Атака. Сочетание штурма и позиционного боя. Одна группа ведет огневое поражение цели (прикрывает огнем), другая группа производит перемещение к цели до ближайшего укрытия. Затем роли меняются и вторая группа прикрывает, а первая - двигается.

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

     Охват. То же что и обход, только выход в тыл.

     Засада. Выполняется одной группой при перевесе враж.сил, но доминирующей позиции группы.

     Отступление (выход из боя). Применяется min 2-мя группами при перевесе враж.сил. Технически выглядит как атака наоборот, движение осуществляется от противника.

     Каждый из маневров выполняется исходя из тщательного анализа рельефа. Т.е. рельеф, на мой взгляд, это второе по важности условие по выбору маневра.


  • 0

#6 OFFLINE   Индеец

Индеец

    Рядовой

  • Пользователи
  • 20 сообщений
  • Откуда:Украина

Отправлено 12 October 2021 - 13:15

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

     Чего-то понаписал, поумничал, теперь прикинем черновой результат.

     В редакторе ставим любого бота (пускай это будет синяя сторона) - это будет наш HQ. Далее расставляем любых других ботов как хотим, задаем/не задаем им путевые точки. Активируем наше АСУВ. Все боты синей стороны организовуются в группы по родам: пехота, гранатометные и минометные расчеты,  БМП, танки, артиллерия, спецназ. По возможности группы укомплектовываются транспортом (логистика боевых подразделений - это отдельная тема). Теперь каждая группа имеет название, показатель силы, координаты текущей позиции позиции. Это начальный этап игры.

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

     Тактика.

     Артудар доступен.

     Если цель неподвижна - запрос артудара - цель уничтожена - корпус двигается в расположение(?).

     Если цель двигается, корпус занимает выгодные позиции - позиционный бой - цель останавливается - запрос артудара - цель уничтожена - корпус двигается в расположение(?).

     Артудар недоступен.

     При 3-х кратном превосходстве по силе - штурм (встречный бой).

     При 2-х кратном превосходстве по силе - корпус занимает выгодные позиции - позиционный бой - цель останавливается - маневровые группы совершают обход/охват - по достижении маневровыми группами расчетной позиции - позиционный бой - при достижении 3-х кратного превышения по силе - атака. 

     При паритете - корпус занимает выгодные позиции - позиционный бой.

     При 2-х кратном отставании по силе:

- если противник неподвижен - корпус занимает выгодные позиции - позиционный бой  - ожидание подкрепления;

- если противник двигается - засады.

     При 3-х кратном отставании по силе - отступление (выход из боя).

     Конечно, нюансов, в том числе критических - тьма. Но главное: все это можно описать скриптами SQF.


  • 0

#7 OFFLINE   ToxaBes

ToxaBes

    Ефрейтор

  • Пользователи
  • 34 сообщений

Отправлено 12 October 2021 - 20:12

          На начальном этапе разработки интересно узнать о возможных концепциях АСУВ, ее целях, задачах, структуре.

"Больная" тема для меня  :)

Также пробовал реализовать АСУВ на sqf (не тянет на большом кол-ве ботов, оч топорно), потом на fsm (имеет смысл только для управления каждым ботом внутри группы) и в итоге пришел к созданию и обучению нейронной сети на базе FANN. Обучили за 2 года, теперь играем пару раз в неделю против сети. Дерет нас, людей играющих еще с ofp, имеющих в тройке по 5-10К часов как младенцев ботами без выкрученной меткости и прочего. "Любит" использовать обход во фланг и клещи, а также засады на постоянных местах движения игроков.

 

По технической части коротко: есть препроцессор (собирает то что лидеры групп боты знают о противнике через targetsQuery + данные о местности/карте/какие силы у ботов и где/какие силы противника обнаружены и где  и тд), затем данные отправляются в определенном формате в БД через extdb3. На сервере раз в х мин автоматом запускается скрипт на питоне который скармливает нейронке на входной слой данные из очереди и записывает обратно результат. Постпроцессор забирает результат и раздает приказы кому куда двигаться и что делать. 

Грубо говоря это такой HQ который сидит далеко в штабе, получает донесения/разведданные по радио и по радио же отдает приказы кому что куда. Управление получается на уровне групп/отрядов. Внутри групп достаточно простейших FSM.


Сообщение отредактировал ToxaBes: 12 October 2021 - 20:15

  • 0

#8 OFFLINE   Индеец

Индеец

    Рядовой

  • Пользователи
  • 20 сообщений
  • Откуда:Украина

Отправлено 12 October 2021 - 21:54

ToxaBes, нууууууууууууууу как хорошо! Я то несколько лет голову ломаю как бы идейку в жизнь воплотить, а, оказывается, уже все придумано. Очень интересно. И поиграть тоже интересно. И интересно как оценивается местность, и как выбирается маневр. Все интересно. Вот только как работать с FSM - не знаю, extdb3 - темный лес ну т.д.

     Структуры понятна. Скажу больше - принцип оформлять запрос в формат и получать ответ в формате тоже реализован. Только запрос отправляется HQ в его пространство имен, обрабатывается отдельным скриптом, результат отправляется в пространство имен запрашивающего. Для HQ - свой скрипт(цикл), для запрашивающей группы - свой. Все это в SQF.

     Как бы глянуть, поковыряться?


  • 0

#9 OFFLINE   ToxaBes

ToxaBes

    Ефрейтор

  • Пользователи
  • 34 сообщений

Отправлено 12 October 2021 - 22:17

Глянуть: https://arma3.ru/for...991-rumilitary/ только там IP поменялся. Подробности в дискорде который указан в сообщении.

Поковыряться: не получится, проект закрытый.


Сообщение отредактировал ToxaBes: 12 October 2021 - 22:18

  • 0




Яндекс.Метрика