Снова всем привет, товарищи!
Поиграл я значит в симулятор командира, и понял, что мой отряд меня ни во что не ставит. Будь то общая команда на отряд, будь то личная команда конкретному боту. Конечно, команда конкретному персонажу несколько более побуждающая для ботов, но проблема прежде всего в том, что пока ты занимаешься протыкиванием каждого бота, ты несколько выпадаешь из боя, теряешь концентрацию. После переключения на следующего бота у предыдущего слетает команда и он начинает мельтешить возле тебя, ползать перед носом или выпрыгивать за укрепление, попадая под расстрел и демаскируя тебя. Это всё очень отвлекает и порой гораздо проще забить на этих болванчиков и смириться с их гибелью, чем пытаться им объяснить их задачи, протыкивая миллион кнопок. Помимо пожелания улучшения общего поведения ботов я предлагаю рассмотреть такую функцию, как голосовые команды своему отряду. Ведь в нашем веке уже никого не удивить ни Марусями, ни Алисами, ни Сири, ни Алексами. Поэтому вряд ли это будет принципиально сложно. На теории всё выполнимо, но в играх я лично такого пока не встречал. А если такое уже где-то и есть, то не будет лишним получить это и в нашей игре, где оперирование отрядами стоит во главе концепции игры.
Голосовая команда начинает действовать при нажатии отдельной кнопки, например, кнопки R (НАПРИМЕР).
Для более удобного восприятия команд компьютером следует сразу разбить команды на подряды:
- сперва произносим наименование персонажа, к которому идёт обращение. Возможно это будут позывные, которые может придумать сам игрок, но скорее всего просто “Первый”, “Второй”, “Третий” и так далее. Для отдачи приказа всему отряду игрок просто произносит “Отряд”.
- затем наименование действия: атаковать, защищать, следовать, сесть, лечь, и т.д. (можно дополнять).
Как работают команды действий:
а) Команда атаковать - нажимаем R, говорим “Первый”, “активно”/“пассивно” “атаковать” “точку А” или “атаковать квадрат_(координаты)”. В итоге бот начинает атаковать назначенный сектор. Если “активно”, то он продвигается стремительно, отстреливаясь на бегу (в простонародье - рашить). Если “пассивно”, то бот продвигается к цели, но периодически останавливаясь, приседая и ложась, чтобы более метко стрелять, пока не будет ликвидирован враг в определённом радиусе вокруг него. Но! если мы после фразы “атаковать” не произносим других фраз в течение, например, 1 секунды, то персонаж (в нашем случае - “Первый”), начинает воспринимать точку, куда указывает наш курсор (после первой секунды после фразы “атаковать” появляется кругляшок на экране (прицел), который будет существовать 1-2 секунды. При активации действия он должен как-то моргнуть, колыхнуться, блеснуть - в общем показать, что действие совершено). Если этот курсор попадает просто на точку местности, то бот следует к этой точке, как в случае с командой “Первый, активно/пассивно атаковать точку А/квадрат_(координаты)”, если же в курсор попадает вражеский персонаж/техника, то бот начинает атаковать именно эту цель. В случае с командой атаковать конкретного соперника у нас появляется ещё окно в 1 секунду, в которое мы можем указать оружие, которым он будет пользоваться. Это будет либо номер слота, который закреплён за тем или иным оружием (как в Ворлд оф ВарКравте при написании макросов на переодевание вещей), либо краткое наименование. Например, “Первый”, “атаковать” (навели курсор на танк) “взрывпакетом”/“смесью”/“гранатой”/“бронебойным ружьём”. Если мы приказали атаковать чем-то метательным, то наш бот будет сокращать дистанцию с вражеской целью, если с ружья - то со своей позиции начнёт вести огонь. Если прошляпим секунду, то атаковать будет оружием по умолчанию - лучше, если заранее будут настроены в самой игре наборы по атаке определённых целей более выгодным способом. Если приказываем атаковать пехоту, то атака производится с имеющейся позиции. Или же с сокращением дистанции, если с использованием метательного оружия. После прибытия до указанного места и выполнения необходимой команды бот/боты автоматически переходят в режим удержания позиции.
Для закрепления: мы хотим атаковать вражескую технику отрядом, произносим:
“Отряд, пассивно атаковать “указали на танк” взрывпакетом”. Если кто-то из отряда не имеет названного оружия, то автоматически использует противотанковое ружьё/смесь/гранату, либо просто использует ружьё/автомат против пехоты вокруг танка. Также происходит переключение на оружие по умолчанию после того, как бот истратит приказываемое оружие.
б) Команда защищать - нажимаем R, говорим: “Третий”, “активно”/“пассивно” “защищать” “точку А/квадрат_(координаты)/меня”. Команда “активно” побуждает бота действовать агрессивно, периодически вставая из-за укрытий, выискивая врагов и навязывая бой ближним соперникам. Команда “пассивно” говорит боту действовать спокойнее, оставаясь в укрытии (за углом, за коробкой, за столом) ввязываясь в бой при появлении врага в непосредственной близости. От выбранной команды “активно”/“пассивно” зависит и то, как боты будут добираться до выбранной точки (по аналогии со следованием в пункте а)). Аналогично с пунктом а), после фразы “Третий, активно/пассивно защищать” появляется окно в 1 секунду, во время которого мы можем навести курсор на определённый участок местности или же персонажа/технику. Таким образом мы сможем бросать своего бойца либо весь отряд на защиту союзного танка. Оружие используется по умолчанию. Они будут следовать за ним, останавливаясь вместе с ним, пока не будут уничтожены либо они сами, либо защищаемая ими цель, либо пока вы не назначите другой приказ.
в) Команда следовать - нажимаем R, говорим: “Второй”, “следовать” “к точке Б/в квадрат_(координаты)/за мной”. По аналогии с предыдущими пунктами работает окно в 1 секунду после фразы “Второй, следовать”. Это самая пассивная и миролюбивая команда - бот просто пацифично следует в область, либо за целью, не останавливаясь и не отстреливаясь.
г) Команды сесть, лечь и встать могут восприниматься ботами, не нарушая уже выданные команды. Например, мы приказали, нажав на R: “Первый, активно/пассивно атаковать точку А”. Мы так же можем приказать ему вдогонку “Первый, лечь”. Таким образом он будет атаковать точку А ползком. Ну или сидя/стоя. Аналогично работает на протяжении этапа следования к точке/цели из пункта б) и с командой следовать из пункта в). Также работает и с быстрыми командами. например, мы приказали всему отряду удерживать конкретную позицию кнопкой X. И после этого можем сказать “Отряд, лечь/сесть/встать”.
Стоит отметить, что команды мы можем отдавать только в определённом радиусе. Если мы приказали боту атаковать другой конец карты, то уже не сможем изменить его приказ после разрыва определённой дистанции между вами. Например, приказали двигаться к точке, но при разрыве дистанции в 15 метров уже не сможем приказать сесть или лечь, атаковать или защищать какую-то иную цель. Возможно приказы также будут иметь радиус действия, при нарушении которого боты автоматически возвращаются к игроку. Команды с направлением к фронту имеют больший допустимый радиус (возможно без ограничений), команды, отдаваемые в тыл за линию фронта будут сбрасываться при меньшем разрыве дистанции, чтобы игроки не могли ныкать своих ботов у себя в тылу.
Также остаётся и стандартное управление ботами при помощи быстрых команд или руля управления через Alt.
Вот как-то так выглядит набросок принципа работы голосовых команд. Возможно перемудрил, возможно не домудрил, но считаю, что это должно стать такой же уникальной механикой, как и механика пробития в ВарТандере, аналогов которой пока что в Мире нет.
Обращаясь конкретно к админам форума - не могли бы вы как-нибудь поспособствовать тому, чтобы создатели топиков могли редактировать и дополнять свои посты в дальнейшем? То есть, я захотел внести дополнения в свои наработки, чтобы они оставались в шапке, но с пометкой о том, что вписались чуть позже автором поста? А то возникнут дополнения и новые идеи, придётся либо в комментариях писать, либо новую тему создавать, а хотелось бы иметь всё в одном оглавлении.
2022.01.11
д) Команда огонь на подавление - нажимаем R, говорим: “Отряд”, “огонь на подавление” “точки А/квадрат_(координаты)”. Аналогично с предыдущими командами пунктов а) и б), после фразы “Отряд, огонь на подавление” появляется окно в одну секунду с возможностью навестись на конкретную точку локации на экране, либо на вражеский юнит. Боты открывают огонь из имеющегося основного оружия.
Так как боты не тратят боекомплект (как я понял), то после 3-4 перезарядок обойм, команда огонь на подавление уходит на перезарядку в 15-20 секунд. Она так же уходит на перезарядку после первого использования, даже если игрок отменяет её через пару секунд после произношения.
Команды из пункта в) работают с командой огонь на подавление. С единственной оговоркой - если между ботом и точкой подавления есть препятствие, а вы приказали лечь, бот будет искать линии контакта, поэтому будет либо садиться, либо вставать, либо выходить из укрытия, чтобы начать огонь на подавление.
е) Команда потушить/починить технику - нажимаем R, говорим: “Первый (возможно в случае с техникой стоит использовать наименования механик, стрелок-радист, наводчик и т.д.)”, “активно/пассивно” “потушить/починить”. Команда “активно” заставляет бота сперва разобраться с вражескими юнитами, находящимися поблизости как до тушения/починки, так и после с помощью имеющегося приоритетного оружия. Команда “пассивно” предполагает, что бот выйдет из техники, починит/потушит технику, после чего сразу же залезет обратно.
Также работают следующие команды для членов экипажа - команды из пункта а), б) и в) (когда экипаж вне техники). Команда “Второй (стрелок-радист), активно защищать точку А” заставит бота покинуть технику и отправиться на нужную точку с нужным поведением, описанным в пункте б).
2022.01.13
Ещё несколько команд:
ё) Команда нужна аптечка - нажимаем R, говорим “Первый”, “нужна аптечка”. Бот подбегает к вам и вкалывает, видимо, лекарство! Или анаболик. Если говорим “Отряд, нужна аптечка”, то подбегает самый ближний бот.
ж) Команда нужны патроны - нажимаем R, говорим “Отряд/Первый/Второй”, “нужны патроны”. Всё происходит по аналогии с пунктом ё).
з) Команда закрыть/открыть дверь/окно - нажимаем R, говорим “Третий”, “закрыть/открыть окно/дверь”. В этом случае нам необходимо наводиться курсором (по аналогии с пунктами а) и б)) на конкретное окно/дверь. При завершении действия бот остаётся на месте. Часто бывают моменты, например, в зданиях, когда ты лежишь в коридоре метрах в 15 от закрытой двери и было бы не плохо, чтобы кто-нибудь мог её открыть для обстрела и закрыть, когда ты на перезарядке.
и) Команды для инженеров - нажимаем R, говорим “Инженер один (над обозначением порядковости надо ещё подумать)”, “построить точку сбора/снабжение/колючую проволоку/и т. д.”. Затем нам нужно указать точку, в которой должна быть произведена постройка. Если в нашем отряде несколько инженеров и мы хотим ускорить строительство, говорим “Инженер отряд, построить зенитное орудие”. В таком случае все возможные инженеры приступают к строительству объекта. Если говорим просто “Инженер, построить противотанковое орудие”, то начинает строительство самый близкий инженер.
Постройка инженером по вашему приказу конечно же не будет отличаться точностью. Если нужно смастерить полевое укрытие на скорую руку - боты с этим справятся. Если же нужна более хирургическая застройка внутри здания - лучше самому взять на себя управление.
й) Команда артиллерийский удар - нажимаем R, говорим “Радист”, “артудар в точку А/квадрат _(координаты)”. Поскольку артудар для всех радистов общий, его совершает самый близкий бот-радист. Но бот будет реагировать только на точки захвата или координаты квадратов (для принятия решений удара по квадрату игроку нужно сначала найти эти координаты, воспользовавшись картой, чтобы передать их боту-радисту). Для интерактивного выбора места удара (как это и реализовано сейчас) необходимо самому управлять радистом.
В таком случае, игрок действительно становится капитаном отряда, потенциал которого он будет реализовывать.
Стоит отметить, что все голосовые команды должны конвертироваться во внутриигровую озвучку. То есть, если игрок говорит при нажатой клавише R “Радист, артудар в точку А”, то и персонаж говорит внутриигровым голосом (зависящим от пресета самого персонажа). Если по какой-то причине бот не может исполнить команду, или же, наоборот, готов, то он внутриигровым голосом сообщает нам об этом. И весь наш диалог слышат находящиеся рядом враги. Всё ради атмосферности и погружения в игру! При чём, если мы играем за немцев, но говорим команды по-русски, игра конвертирует команды на немецкий язык и персонаж говорит немецким языком.
Голосовые команды смогут расширить наши возможности командования. Ведь все команды программно-заложены и не требуют места в интерфейсе! Если реализовывать все перечисленные мною команды на руле управления через визуальный интерфейс, то динамичный шутер превратится в текстовый квест или пошаговую стратегию. У нас всё же не XCOM!) Невозможно реализовать богатое управление ботами без потери динамичности, используя классические методы управления ими.