Создание искусственного интеллекта для орд врагов в The Riftbreaker
Поэтапная разработка поведения больших групп противников.
The Riftbreaker — это экшен-RPG с элементами выживания и строительства, в которой игроку предстоит исследовать неизвестный мир. На планете Galatea 37 за игроком всегда охотятся орды противников, от которых невозможно спрятаться даже за оборонительными стенами.
Комьюнити-менеджер EXOR Studios Пётр Бомак опубликовал на сайте Gamasutra текст, в котором рассказал о создании искусственного интеллекта орд противников. Мы выбрали из текста самое интересное.
Если в игре запланировано появление сотен врагов, создание группового ИИ всё равно начинается всего с нескольких юнитов. Несмотря на малое количество, это даёт необходимую платформу для экспериментов с их поведением.
Но разработчикам не понравилось, что противники выглядели слишком неуклюжими — они должны были быстро и яростно нападать на игрока. Поэтому команда добавила в поведение принципы разделения и сближения — на открытых пространствах противники старались занять как можно большую площадь, а для узких проходов они стремились сократить дистанцию между собой.
Но это поведение всего лишь одного типа противников. В мире игры есть много других монстров, и для каждого типа предусмотрено своё поведение.
В геймдизайне есть одно важное правило: если система работает с одним элементом, то она так же хорошо должна справляться с остальными. Поэтому разработчикам было важно удостовериться, что их система справится с противниками, которые отличаются размером и скоростью. Будут ли они сходиться? Смогут ли обходить препятствия? Ответить на эти вопросы можно только на практике.
В игре есть не только протагонист и монстры, поэтому команде было важно сделать так, чтобы противники по-разному реагировали и на другие элементы. Для этого разработчики прописали в поведении врагов приоритет для атаки — отдельно для оборонительных башен, энергетических установок, игрока и так далее.
Всё, что было показано ранее — мелкомасштабные примеры. А цель разработчиков заключалась в том, чтобы создать по-настоящему эпичные батальные сцены, как в «Звёздном десанте».
Несмотря на то, что отряды ограничены препятствиями в виде скал и ям, группы умудряются сливаться вместе и не преграждать друг другу путь к цели. Когда они достигают узкого места, то двигаются из стороны в сторону, пытаясь протолкнуться вперёд.
Именно такие мелочи приводят к тому, что орды инопланетян напоминают группу живых организмов, а не роботов, которые просто ждут своей очереди, чтобы пройти.
Но разработчики хотели улучшить результат, сделав движения противников ещё более плавными и естественными. Основным ориентиром для команды стала StarCraft. В итоге решение было найдено неожиданно: один из программистов играл со своим сыном, встряхивая шарики в ведёрке, и каждый раз они заполняли всё свободное пространство благодаря гравитации.
Разработчики учли это и объединили систему, которая определяла гравитацию каждого существа, с очень простой имитацией мягкого тела. Это и помогло добиться желаемого эффекта.
Для нас важно, чтобы эти существа вели себя правдоподобно. Последнее, что мы хотели бы показать нашим игрокам — кучу яростных космических собак, стоящих на поле и скучающих, просто потому, что они не могут найти путь к своей цели.
Разработчики хотели сделать так, чтобы противники вели себя быстро и агрессивно, заполняя всё свободное место. Это должно было походить на коллективный разум, который пытается достичь цели любыми способами.
Система управления групповым ИИ работает не только для агрессивных NPC — на планете обитают разные существа, поэтому разработчики сделали так, чтобы их поведение отличалось в зависимости от отношения к игроку. Они могут просто гулять по округе, искать еду и воду, мигрировать. Команда решила добавить такие элементы, чтобы сделать мир игры правдоподобным и живым.
Движения жуков контролируются той же системой искусственного интеллекта, что и другие юниты. Чтобы не создавать слишком большой нагрузки на процессор, эти существа появляются только вне боя. Если игра обнаружит, что предельное количество юнитов в бою превышено, жуки сразу же перестанут спауниться. Также игра всегда проверяет, чтобы жуки не появлялись в одном месте, поэтому пользователь случайно не наткнётся на гейзер из жуков.
Как только бой заканчивается и количество агрессивных существ снова падает ниже порога, жуки начинают спауниться и искать трупы. Они используют описанную ранее систему поведения не для того, чтобы гнаться за игроком, а для поиска свежих трупов — жуки собираются вокруг тела и быстро съедают его.
На протяжении всей разработки команда стремилась создать противников, которые напоминают настоящий разумный рой. Результаты их трудов вы можете увидеть ниже.
Компания заявила, что инвестирует в игру «больше, а не меньше».
Компания уже ведёт переговоры с партнёрами и разработчиками игр.
Комментарий недоступен
Для этого статья и писалась, сплошная вода.
Например не понятно как работают кубики которые отталкивают особи друг от друга? Как находится наиболее короткий путь к цели? Все эти технологии известны, вопросы только в производительности. Интересен выбор авторов, но зачем это освещать, смотрите сколько картинок.
Выглядит как очередной клон мобильной игры) Я рекламу минимум трёх подобных игр видел.
Вспомнилась одна из серий "Любовь смерть и роботы", где мехи против орды инопланетян
А мне эти волны монстров напомнили Зергов из StarCraft)
чертовски похоже)
годная серия, хоть и мултяшная, сразу понятно стало кто есть кто