Повелитель зверей: как работают компаньоны в Far Cry Primal

Послушные животные и проблемы со скоростью.

Томми Томпсон, автор YouTube-канала AI and Games в блоге на сайте Gamasutra опубликовал расшифровку своего видео о Far Cry Primal. В нём он рассказал, как разработчики из Ubisoft Toronto внедрили в игру механику управления напарниками, не меняя при этом действующих взаимосвязей AI. Мы выбрали из материала главное.

Повелитель зверей: как работают компаньоны в Far Cry Primal

Несмотря на то, что Far Cry разрабатывается студией Ubisoft Montreal, искусственный интеллект компаньонов для Primal создавался небольшой командой в Торонто. Она также помогала с созданием Far Cry 4 и самостоятельно работала над Splinter Cell: Blacklist.

В Far Cry 4 команда из Торонто отвечала за сцену в «Шангри-Ла». Это серия из пяти линейных миссий, в которых игрок приручает тигра и получает возможность использовать его в качестве оружия. Эта механика стала основой для Primal, которая в 2014 году, в момент выхода Far Cry 4, находилась на стадии препродакшена.

Серия шутеров от Ubisoft известна тем, что в ней одновременно взаимодействуют множество систем AI: это и напарники, и противники, и средства передвижения. Однако эпизод в «Шангри-Ла» был заскриптован и практически все вышеназванные системы в нём не работали. Поэтому авторам Primal пришлось основательно поработать над механикой приручения и использования диких животных, чтобы та вписалась в уже апробированную экосистему.

Повелитель зверей: как работают компаньоны в Far Cry Primal

Ubisoft предстояло ответить на два вопроса.

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

Нужно было определиться, как именно животные будут поддерживать игрока. Источниками вдохновения стали пёс из Fallout 4 и Элизабет из BioShock Infinite. На ранних этапах разработки планировалось добавить в игру порядка 50 различных зверей, однако до релиза добрались лишь 17 из них.

AI в Far Cry Primal работает на основе древ поведения. Они построены с помощью инструментов, которые кодируют их в XML. Команда из Торонто не хотела менять уже существующий код не только потому, что это могло бы сказаться на работе монреальской, шанхайской и киевской команд, трудящихся над Primal, но и из-за огромного количества различных систем, задействованных в игре. Любые вносимые изменения влияли бы на уже существующие деревья поведения, вступали бы с ними в конфликт.

Повелитель зверей: как работают компаньоны в Far Cry Primal

Разработчики избежали подобных проблем введением динамического древа поведения: время от времени система создаёт новое микродрево на основе команд, которые пользователь даёт компаньону. Таким образом, команда из Торонто могла экспериментировать с поведением AI, не боясь что-то сломать.

Повелитель зверей: как работают компаньоны в Far Cry Primal

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

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

Повелитель зверей: как работают компаньоны в Far Cry Primal

Разработчики столкнулись с двумя проблемами: как сделать так, чтобы компаньоны оставались в непосредственной близости к игроку и как заставить их следовать за пользователем, когда навигационные меши не позволяют сделать этого или игрок совершает что-то глупое (например, прыгает с высокой скалы).

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

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

Повелитель зверей: как работают компаньоны в Far Cry Primal

Когда компаньоны следуют за игроком, они стараются оставаться в его поле зрения, при этом не вырываясь вперёд. Все анимации бега животных проигрываются со скоростью на 30% выше скорости пользователя, когда игрок двигается и видит компаньона. Когда же соратник находится вне поля видимости, скорость анимации повышается до 250%. Так животное никогда не оказывается слишком далеко от игрока.

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

4141
7 комментариев

По ощущениям животные тупо бегали за своим хозяином и атаковали врагов. Как собственно в любой другой игре с компаньёнами.
Давайте ещё вспомним "РЕВОЛЮЦИОННЫЙ" radiant ai из обливиона.

10

Лучший напарник был конечно же в FC5.

3

Никогда не забуду как лесник за оленем гонялся вокруг моей лошади .

1

...никогда не происходит ситуаций, когда (...) саблезубый тигр внезапно оказывается в реке, хотя не умеет плавать.Собственно, а почему он не умеет? Я так понял, там в игре что-то вроде смилодонов, они по поведению, физиологии вполне похожи на наших больших кошек, а большинство из них плавают хорошо. Ирбис не плавает, но ведь то потому, что он пушистенький и привык жить на холоде, где мокнуть вредно) Остальные плавают добровольно.
Пускай бы и этот "тигр" плавал, было бы круто!

1

Комментарий удалён модератором

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

1

как работают компаньоны в Far Cry Primal Дерьмово (спойлер!)