Коллективное обсуждение пехотного ИИ и необходимых команд для него

А давайте ка поможем разработчикам и коллективно обсудим/предложим что мы хотим от ботов в плане возможного функционала команд а так же действий которые они должны выполнять на поле боя, добавляйте от себя что я упустил
Опыта тактических игр в которых можно управлять ИИ у участников дискуссии приветствуется

И так

  1. Мы имеем кросплатформенный аркадный ПвПвЕ шутер, управляем мы всегда отделением пехоты или экипажем различной техники (т.е. в среднем от 2 до 7 человек)
  2. Интерфейс управления должен быть простым и желательно помещаться в круговое меню по нажатию одной кнопки с последующим выбором вкладок в которых уже будут разные варианты поведения/построений и всего остального
  3. Интерфейс должен быть простым и интуитивным, поддерживать контекстные приказы

И так, первое что хотелось бы обсудить это построения

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

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

Продолжим, выбор поведения ботов, обычно в играх есть много вариантов поведения включающий приказ на не открытие стрельбы, скрытность, агрессивность и прочее
ИМХО нам нужно всего 2 варианта

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

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

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

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

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

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

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

3 лайка

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

1 лайк

С перечисленным согласен, но нужно ещё одно простое дополнение: по умолчанию запретить ботам принимать положение тела выше игрока: игрок присел - боты либо сидят или лежат, никто не стоит. Игрок лег - все боты лежат, никто не встает и не двигается.
Ну, и бонусом - при остановке игрока на месте боты тоже должны стоять как вкопанные, дабы своей беготней не перекрывать обзор и не отвлекать игрока.

3 лайка

На деле это будет выглядеть еак-то не очень. Вдруг игрок остановился, чтобы пострелять, а в это время, боты, вместо того, чтобы бежать на помощь, будут просто стоят как вкопанные.
А вдруг игрок не будет стоять на месте при стрельбе, и боты не остановятся и пойдут дальше. Но в этой ситуации, допустим, игрок не желает помощи от ботов, и хочет, чтобы они не мешали. Не очень продуманная механика. Надо что-то лучше выдумать.

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

1 лайк

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

Ну в таком случае предложение годное, одобряю.

Было бы неплохо разделить еще отряды на обычные и поддержку и чтобы они были разные по количеству в обычных семь, но там максимум 1 член поддержки(пулеметчик, снайпер, инженер, миномёт(не уверен),пт стрелок(?)) и отряд поддержки там может быть 2-3 класса поддержки но в отряде 4,5 человек. Просто в горячке боя может не быть времени чтобы каждого отдельного болванчика пихнуть в нужное место, и таким образом поддержку будет проще распределить по зоне, а обычные отряды будут заняты штурмом.

Тут кстати все решается просто добавлением одного пункта, помимо команд стоять/сидеть/лежать добавить “делай как я”
И тогда они будут повторять за игроком позы опять же до поступления новых приказов

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

Завидую вам, я не вижу в этом необходимости, еще ни разу не приходилось испытывать нужность какого либо приказа, кроме как “Стоять здесь” :sneezing_face:

1 лайк

A как же приказ “стоять и не рыпаться”, бесит, иногда боты уходят из укрытия самостоятельно, хотя приказ “стоять в указанном месте” был отдан.

Ты не понимаешь, это другое. Тут, если ты не заметил, разработчики очень грамотно продумали алгоритмы ботов, я уверен, что они использовали интервью с различными сержантами, лейтенантами по поводу управления рядовыми, ну и естественно секретные документы, где описывалось, каков был % тех, кто ослушивался приказы, кто во время пулеметного огня человек выходил из окопа, чтоб пострелять стоя во врага, как они бегали перед прицелами товарищей и т.д. Да и вообще всё историчненько и реалистичненько, танки застревают в зданиях, бомбы летят фиг пойми как, единственное оружие, которое клинит - винтовка. Враги убивают через кусты. Карты это поля. 4 года как никак ушло на разработку таких проработанных локаций, которые случайно не с wt взяты за основу и чутка переделаны?

1 лайк

Я понял, разработчики сделали игру реалистичнее, чем реальность.

2 лайка

Первое и самое простое, что можно запилить уже сейчас - это выполнение спецфункций различных ролей, типа инженера/радиста/минометчика. Там часть даже кругового меня не особо требует.
Вариант реализации для радиста: просто доп клавиша, активная при наличии радиста в отряде, по нажатию попадаем в меню вызова артподдержки. Профит. Если несколько радистов в отряде - то вызывается в порядке номера в отряде, у кого еще остался удар.
Для минометчика: я не бегал с минометом, но по логике там еще роляет где поставить миномет. Соотвественно по нажатии спец клавиши сначала должен появляться фактом миномета и указываем с какой точки стрелять, минометчик идет туда, после появляется стрельба с миномета, задаем куда и сколько выстрелов сделать (навели миномет - нажали огонь, команда записалась в очередь команд) + отдельно команда паузы (если нужна пауза между выстрелами) с выбором задержки в секундах (по умолчанию 5 сек, максимум 20). Задали очередь на стрельбу, минометчик отрабатывает и остается на месте до следующих распоряжений.
Инженер - при нажатии спец кнопки появляется меню строительства, задаем очередь постройки. Инженер к месту постройки двигается максимально скрытно! Для начала, поскольку алгоритмы скрытности еще не допилены, можно ориентироваться на положение тела игрока - если игрок сидит то идем вприсядку, если лежит то ползем и лежа же строим. Поидее инженер всегда должен быть в пределах 5…10 метров от игрока, можно просчитывать дистанцию при отдаче приказа что бы отставший инженер не полз 30+ метров - сначала бежим до дистанции 5м от игрока, а там ложимся/садимся и идем строить.
При наведении на построенный объект типа зенитки/пулемета, да и просто укрытия - команда “занять”, выбранный боец занимает место и ведет огонь по противнику с зенитки/пулемета, из укрытия. Для зенитки наверно надо тумблер “приоритет по пехоте/воздуху”, который загорается как только боец занял ПВО и переключить можно в любой момент. Собсно “занять объект” можно сделать быстрее всего и с учетом текущих функций инженера будет оч в тему. Только просьба: в случае если объект находится недалеко от точки, что бы боец игнорировал расстояние до командира и не уходил с точки - это нужно что бы оставить бойца в обороне подходов к точке, даже если там сейчас нет противника, и пойти отбивать вторую. Все таки это не тоже самое что оставить целиком отряд в тылу. Вообще по логике отряды с командой “удерживать точку” должны игнорить растояние до игрока.
Кроме команды “атаковать” еще нужна команда “кинуть гранату” - она же “сжечь” для огнеметчика, уничтожить в контексте бронебойщика и бронетехники, кинуть взрывпакет по технике. Т.е. в общем случае “применить тяжелое оружие по тому-то”

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

Всех ботов по ролям, точнее все роли надо разделить на 2 типа: штурмовые роли (те, кто непосредственно стреляет) и поддержка (те, кто обеспечивает тыл - инженер, минометчик). Потому что команды им надо давать раздельно, и поведение их должно быть разным: тыловые роли не должны высовываться, их задача следовать за командиром (игнорируя команды типа атаковать и удерживать!) и шкерится от противника, стрелял только по противнику в непосредственной близости, т.е. режим “только самооборона”.

При отдаче всех приказов должен выбираться первый по номеру отряда, можно перемотать по номеру доступные для данной команды, причем еще одна кнопка “добавить в выбранные” - позволяет одного за другим выбрать нескольких бойцов. Актуально для инженеров или например если надо закидать противника гранатами, нескольким бронебойщикам и т.д. Еще кнопка для удобства - выбрать всех доступных.

ЗЫ после, внезапно окажется что бой слишком скоротечен для обдумывания и раздавания команд - без вариантов ,так и будет, в это и упремся :slightly_smiling_face: Техничный бой с постройкой укреплений и прочим в принципе подразумевает невысокую скорость боя и в принципе не совместим с быстрыми шутерами аля контра или Кузиной, да даже с Батлой :wink:
Хошь не хошь, а если водить инженеров и прочее, а так же различные рода войск и типы вооружений и тем более командование - это подразумевает совсем другую скорость игры и другую направленность игры вообще.
Ну и размер карт тоже - уже для этого теста размеры нынешних карт исчерпан, для полноценного дальнейшего теста уже требуются карты попросторнее. Разве что вторжение еще кое-как удовлетворяет по размеру. В Героях и Генералах не просто так разные карты разведены по разным типам сражения и там не просто так ограничения по технике.

Да вроде нет, не пожожи, как по рельефу, так и по общему строению. В тундре карты более игровые, рассчитанные для боёв, хотя в этом плане они не все хороши. А в Энлистеде такое ощущение, что на геймлейную составляющую карты было пофек, чисто красоту сделали. Или может быть я ошибаюсь. А ещё карты, мне кажется, были сделаны на основе карт из других шутеров, и поэтому они не подходят для игры с ботами и техникой. Танком в некоторых местах развернуться сложно, по всюду окопы, через которые он не может проехать. Для ботов на карте слишком много всяких объектов, в которых они либо застревают, либо пытаются за ними спрятаться, хотя многие объекты чисто декоративные и не подходят для укрытия. Да и многие укрытия на картах - такое себе. Все деревянные дома простреливаются, из многих окон не постреляешь, так как они либо выше прицельной линии игрока, либо ниже. Тоже самое можно сказать про окопы. А ещё я помню строения из мешков с песком на карте Берлин, которые находились в каком-то коридоре. Представляли из себя укрытие, высотой с солдата, с бойницей для стрельбы по центру. Этт бойници были сделаны через одно место, когда ты пытался стрелять стоя, твой автомат втыкался в мешки сверху бойницы, а когда садился, наоборот, оружие втыкалось в укрытие ниже бойницы. И эта постройка из мешков не единственная на карте, там таких ещё куча было (например, та, что стояла посреди поля, на одной из точек захвата, её ещё быстро разносили и точка оставалась совсем без укрытий, это тоже недоработка). Вся карта Нормандия утыкана “мешочными” ДОТами с похожем строением. А как можно забыть прекрасно расположенный ров с водой на карте “Каменка”, который мешает проезду техники для одной из команд.

Куда-то меня занесло в другую тему, но я не смог остановить ход своих мыслей.

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

1 лайк

Всем здрасти!

  1. Как кто-то написал выше,боты должны повторять положение тела за командиром отделения.Можно ниже,но не выше.
  2. Так-же,как написано выше,нужно 2 построения. Колонна и шеренга. Колонна как при патруле,а не гуськом.
  3. Было-бы очень круто,если-бы при остановке боты автоматически принимали круговую оборону.
    Т.е. отделение остановилось в поле,значит все упали на брюхо и прикрывают свои сектора.Если поблизости есть укрытие(1-2м),то бот занимает его.Так-же и в зданиях.
  4. Команд стой и вперёд вполне хватит.

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

2 лайка

я вообще без них играю

1 лайк

хорошее управление ботами если игра в игре Brozers in Arms .