Создание искусственного интеллекта для орд врагов в The Riftbreaker

Поэтапная разработка поведения больших групп противников.

The Riftbreaker — это экшен-RPG с элементами выживания и строительства, в которой игроку предстоит исследовать неизвестный мир. На планете Galatea 37 за игроком всегда охотятся орды противников, от которых невозможно спрятаться даже за оборонительными стенами.

Комьюнити-менеджер EXOR Studios Пётр Бомак опубликовал на сайте Gamasutra текст, в котором рассказал о создании искусственного интеллекта орд противников. Мы выбрали из текста самое интересное.

Если в игре запланировано появление сотен врагов, создание группового ИИ всё равно начинается всего с нескольких юнитов. Несмотря на малое количество, это даёт необходимую платформу для экспериментов с их поведением.

Кубики пытаются догнать игрока. Можно увидеть, что при сближении друг с другом у них появляются жёлтые индикаторы — так работает система, которая позволяет противникам избегать столкновения с препятствиями

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

Благодаря этому подходу, противники начали выглядеть как настоящий рой

Но это поведение всего лишь одного типа противников. В мире игры есть много других монстров, и для каждого типа предусмотрено своё поведение.

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

Пример поведения группы врагов, состоящей из Canoptrix, Arachnoid и Hammerroceros. Каждый тип врагов обозначается своим кубиком. Видео замедлено

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

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

Всё, что было показано ранее — мелкомасштабные примеры. А цель разработчиков заключалась в том, чтобы создать по-настоящему эпичные батальные сцены, как в «Звёздном десанте».

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

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

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

С подходящими моделями и анимациями это выглядит ещё лучше

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

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

Существа отчаянно пытаются добраться до меха в центре

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

Пётр Бомак, комьюнити-менеджер EXOR Studios

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

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

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

Жуки боятся игрока, поэтому от них легко избавиться

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

Жуки играют важную роль в пищевой цепочке планеты, съедая останки других существ

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

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

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

172172
55 комментариев

Комментарий недоступен

41
Ответить

Для этого статья и писалась, сплошная вода.

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

21
Ответить

Выглядит как очередной клон мобильной игры) Я рекламу минимум трёх подобных игр видел.

Ответить

Вспомнилась одна из серий "Любовь смерть и роботы", где мехи против орды инопланетян

35
Ответить

А мне эти волны монстров напомнили Зергов из StarCraft)

11
Ответить

чертовски похоже)

1
Ответить

годная серия, хоть и мултяшная, сразу понятно стало кто есть кто

Ответить