Платформа ИИ для открытых игровых миров, опирающаяся на данные

Населять целый игровой мир персонажами, которые создают впечатление живых – непростая задача, и она не становится проще, когда имеешь дело с открытым миром, где игровой процесс менее ограничен, а игроки могут бродить, где им вздумается и исследовать мир как только захотят. Движку игры необходимо быть достаточно гибким, чтобы реагировать и создавать интересные пути развития событий, куда бы ни пошел игрок. В частности, требования к ИИ сильно отличаются от тех, что предъявляются к линейной игре, требуя подхода, который, хоть и использует установившиеся механизмы игрового ИИ, но фокусируется на других аспектах архитектуры.
Данная статья обсуждает архитектуру ИИ, опирающегося на текущие данные, который был сконструирован для тайтла с открытым миром Destroy All Humans 2, созданного Pandemic Studios. Она описывает платформу, которая поддерживает модели поведения персонажей, определяемые текущими данными, и рассказывает, как эти модели создавались, собирались вместе и настраивались.
Предназначение игры с открытым миром, которая предлагает экспериментирующий игровой процесс, в том, чтобы дать игрокам свободу делать то, что они хотят. Свободу создавать собственную игру в мире, который предоставили в их распоряжение разработчики. Их игра нелинейна, что фантастически отражается на чувстве погружения, но уменьшает возможности разработчиков игры контролировать, ограничивать и скриптовать заранее сюжеты, с которыми сталкивается игрок.
Код ИИ необходимо строить на основании, которое будет достаточно гибким, чтобы реагировать на любое событие. Он должен уметь обрабатывать область геймплея, которая шире по возможностям, чем в линейном тайтле, и реагировать на ситуации, которые не могут быть предсказаны заранее. Таким образом, в своих действиях ИИ должен скорее стремиться к широте реакций, а не глубине. Вследствие этого, архитектура должна обеспечивать возможность создания большого количества рисунков поведения и позволять их назначение персонажам как можно более просто. Одно из решений данной задачи – сделать реакции зависящими от текущих данных. Они должны создаваться без необходимости изменений кода, сливаться вместе и позволять использование снова и снова в качестве общих компонентов, которые могут быть заменены специализированными версиями. В идеале разработчик должен иметь возможность не просто подстраивать настройки поведения, такие как время, которое действует таймер или насколько агрессивен будет противник, но и менять саму структуру поведения. Например, какие шаги нужно предпринять для выполнения данной задачи, или определение того, как нужно выполнить эти шаги. Если мы дадим нашим реакциям быть подходящими к многочисленным ситуациям, позволять повторное использование и быть быстро создаваемыми и настраиваемыми, мы сможем эффективнее создавать все действия, которые должны выполнять персонажи, чтобы вдохнуть жизнь в игру.

Добавить комментарий