Torchure - система “Дотошный AI”

Torchure - система “Дотошный AI”

Всем привет.

В прошлом посте я рассказал вам про систему разрушения и освещения в Torchure, которую мы делаем сейчас командой энтузиастов.

Это 2D pixel art soulslike roguelike.

В этом посте расскажу немного про систему “Дотошный AI” противников игрока.

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

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

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

Мы стараемся сделать поведение AI похожим на поведение обученных бойцов, хитрых и расчетливых.

А если серьезно, то мы не хотим ставить перед собой цель - создать идеального AI, т.к. это невозможно.

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

Про незаметность

Проходить уровни можно используя элементы механики незаметности.

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

Например, пока противник не видит игрока, можно нанести ему критический урон, подло (нет) ударив в спину, при этом бот получит критический урон и будет ошеломлен на время.

Про вариативность поведения

Противники не всегда бросаются в бой сразу.

Если рядом есть столб тревоги - враг предпочтет сначала предупредить товарищей.

Услышав звук тревоги все боты, которые ее услышат, побегут к ее источнику, чтобы проверить что случилось.

Такого будет больше.

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

Про тревожность AI

Мы решили наделить тревожностью игровой AI.

В стелс‑играх нас всегда раздражали враги с памятью золотой рыбки.

Я пять раз вырубаю генератор - охранник пять раз его включает и возвращается обратно.

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

Поэтому мы делаем другую систему — накопление тревожности.

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

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

А если он увидит игрока или труп, то будет искать, предупредит остальных врагов и уже никогда не успокоится и не вернется в прежнее состояние спокойствия.

Как работает тревожность

Противники постоянно патрулируют окрестности уровня, если заметят / услышат малейшее подозрительное событие, пойдут его исследовать.

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

Если больше ничего не обнаружит, то закроет дверь и вернется к своим делам.

Разбитое стекло на полу или бочка тоже будут привлекать внимание.

Различные события генерируют различное количество тревоги.

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

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

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

Нам предстоит еще много работы в этом направлении.

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

Если есть предложения по механикам или просто вопросы о проекте, то пишите.

Мы с радостью на них ответим.

Если проект вас заинтересовал, добавляйте его в свой вишлист Steam.

Присоединяйтесь к нам в Discord, а также на канале в YouTube.

11
4 комментария