Gamedev Artyom Kaleev
12 399

Нереалистичный, но надёжный: как создавалось поведение Атрея в God of War

Умный и полезный компаньон.

В закладки
Аудио

После релиза God of War многие игроки особенно хвалили то, как сделан Атрей. Он не мешает действиям Кратоса и всегда помогает в боях — ровно настолько, чтобы они оставались интересными. О том, как Sony Santa Monica создавала компаньона, рассказал на прошедшей GDC 2019 технический дизайнер боёв Хаято Ёсидом — мы выбрали главное из его выступления.

Ещё до выхода многие сравнивали Атрея с Элли из The Last of Us. Однако, по словам Ёсидома, ключевое различие между ними в том, что в Naughty Dog к компаньону «относились как к собственному ребёнку», в то время как в Santa Monica «как к другу». Атрей знает, что будет делать игрок, а игрок знает, что будет делать Атрей — они кооперируются и не мешают друг другу. Между Кратосом и его сыном должна была возникнуть настоящая командная работа.

Первое, на чём разработчики условились — это ключевые принципы ИИ Атрея. По словам Ёсидома, если хотя бы три последних правила нарушались, то игра бы сразу превратилась в «плохую миссию сопровождения».

  • Он должен помогать игроку.
  • Он никогда не препятствует действиям игрока.
  • Если Атрей что-то делает, то его действия всегда приносят пользу.
  • За Атреем не приходится постоянно следить.

В качестве шуточного примера Ёсидом привёл Тора и Соколиного глаза из фильмов Marvel. Тор — бог грома и молний, в то время как Соколиный глаз обычный человек, который просто неплохо управляется луком. Но благодаря слаженным действиям они могут быстрее завершать битвы.

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

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

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

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

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

Для начала Ёсидом рассказал об автономном поведении ИИ. Сначала разработчики прописали Атрея так, чтобы он вёл себя как реальный игрок: пока Кратос расправляется с одними врагами, он дерётся с другими. Поле боя между ними делилось на условные «зоны ответственности».

Зелёным выделены противники, на которых сосредоточен Атрей

Но из-за этого всплывали другие, более глубокие проблемы: игрок не ощущал «присутствия» Атрея. Пока он сражался с одними врагами, ИИ где-то на стороне за кадром расправлялся с другими.

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

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

Затем разработчики убрали «зоны ответственности». Вместо того, чтобы сражаться с другими врагами (из-за чего его попросту не было видно на камере), Атрей начинал концентрироваться на целях самого игрока.

Во время игры в God of War можно заметить, что, стоит отвести камеру от Атрея, как он через пару секунд вновь вбегает в ракурс игрока, стараясь обогнуть его врага со спины.

Всё это стало возможным благодаря одному ловкому трюку — телепортации. По словам Ёсидома, он использовал его «везде, где только было можно». По факту, Атрей не существует автономно на поле боя: он телепортируется, стоит отвести от него взгляд, чтобы затем вновь вбежать в поле зрения и создать эффект пользы.

Этим приёмом решалась также другая проблема: Атрей становился куда полезнее в бою. Если бы он находился далеко от Кратоса, то без телепортов компаньону бы пришлось добегать до него — а лишнее ожидание раздражало игрока.

Отдачу от действий Атрея усилили, дав ему фокусироваться на действиях Кратоса. К примеру, если игрок подбросил врага в воздух, то Атрей выстрелит, чтобы он держался там дальше. Если враг «толстый» и постоянно атакует, то Атрей запрыгивает на него сверху и начинает душить, чтобы Кратос мог сделать пару ударов. Если враг постоянно блокирует удары, то Атрей отвлекает его сзади, чтобы подставить спину для Кратоса. И так далее — примеров очень много.

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

Особенно этому способствовала система «станов»: когда над головой врага заполняется нужный показатель, Кратос может применить быстрое добивание. А Атрей лишь способствует накоплению этого значения.

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

Впрочем, все вышеперечисленные моменты срабатывали лишь тогда, когда игрок больше нападал, чем защищался. Если же у Кратоса резко падало здоровье, то обычно игрок переходил в оборону. Чтобы в такие моменты он не боялся идти на риск, создатели проработали механики «помощи»:

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

В целом на вышеперечисленных моментах строится почти всё автономное поведение Атрея. Далее Ёсидом перешёл к раскрытию системы ручного поведения, которое зависит от приказов игрока.

Все действия ИИ в рамках приказов зависят от одной кнопки — квадрата или, как назвал её Ёсидом, «Кнопка сына» (Son Button). Все действия, которые Кратос просит сделать Атрея, должны отвечать следующим принципам:

  • они происходят всегда, когда требуется — то есть, после нажатия квадрата нужное действие (например, выстрел из лука) должно произойти в любом случае;
  • они не должны наносить вред игроку;
  • их результат должен быть предсказуем;
  • они должны быть приносить пользу — потому что, если этого не будет, то игрок просто не станет их использовать в будущем.

Поначалу разработчики решили добавить Атрею рукопашную атаку с помощью ножа. Если так ему удавалось кого-то убивать, то восстанавливались стрелы. Также команда провела эксперимент, добавив условный «фактор риска» — атака могла пройти безуспешно.

После тестов выяснилось, что бои происходили уж слишком «рандомно» — игрок порой получал такие результаты от действий Атрея, которые совсем не ожидал. Риск же попросту никого не увлекал. Также была идея добавить взрывные стрелы, которые детонировали по нажатию кнопки, но и эта система не работала как требуется — она ломала некоторые другие механики, вплоть до автономного поведения ИИ.

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

Последние аспекты, которые затронул Ёсидом — это некоторые второстепенные правила. К примеру, разработчики отказались дать возможность Атрею умереть— это лишь отвлекало от геймплея и фрустрировало, но никак не повышало интерес из-за риска. Во-вторых, благодаря кастомизации и древу навыков игрок мог регулировать стиль боя ИИ. Ресурсы на прокачку между Атреем и Кратосом поделены — валюта одна и та же.

В конечном итоге вся система ИИ компаньона привела к неожиданным результатам: ощущения от геймплея сильно повлияли на восприятие повествования. В самом начале игры Атрей ничего не умеет — автономное поведение работает не в полную силу, — но к концу сюжета становится настоящим убийцей.

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

#godofwar #разбор #опыт #геймдизайн

{ "author_name": "Artyom Kaleev", "author_type": "editor", "tags": ["\u0440\u0430\u0437\u0431\u043e\u0440","godofwar","\u043e\u043f\u044b\u0442","\u0433\u0435\u0439\u043c\u0434\u0438\u0437\u0430\u0439\u043d"], "comments": 17, "likes": 171, "favorites": 173, "is_advertisement": false, "subsite_label": "gamedev", "id": 48056, "is_wide": false, "is_ugc": false, "date": "Thu, 25 Apr 2019 18:36:50 +0300" }
{ "id": 48056, "author_id": 17412, "diff_limit": 1000, "urls": {"diff":"\/comments\/48056\/get","add":"\/comments\/48056\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/48056"}, "attach_limit": 2, "max_comment_text_length": 5000, "subsite_id": 64954, "last_count_and_date": null }

17 комментариев 17 комм.

Популярные

По порядку

Написать комментарий...
29

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

Ответить
1

Ага, только сливается всё это очень быстро.

Бац! Атрей гордый пездюк.
Прошёл час.
И тут бац! Атрей нормальный пездюк.

Ответить

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

34

Уже 4 раз эту пасту вижу

Ответить
6

Так толсто, что даже неловко.

Ответить
0

либо намеренная толстота, либо ты вообще нихуя не шаришь, вот просто от слова совсем

Ответить
0

Вы бы еще сказали, что в детройте геймплей не проработан. Игры для приставок - это не про геймплей вроде как.

Ответить
–1

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

Ответить
3

Бить кого то луком это как клавиатурой гвозди забивать

Ответить
3

Иии
Я все еще не вижу проблемы.

Ответить

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

0

Я был рад увидеть в одиночной игре когнитивную нагрузку (забыл как правильно называется) - просто действие, которое заставляют делать вместе с основным занятием. Это сильно усложняет геймплей.

Ответить
0

Так фишка как раз в том, чтобы совмещать это со своими атаками.

Ответить
0

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

Ответить
0

Весь классный AI Атрея был бы суперкрут, если бы сынок в один момент не решил проучить папашу..... Это я к тому, что "осадочек" явно сценарный поборол сабж

Ответить
–2

В нашем суровом sjw-мире только и остаётся наслаждаться мужскими сосками.

Ответить
–4

Хахахах, интересные бои в новом ГОВе, хорошая шутка, как и вся эта облизанная игра.

Ответить
–8

Не играл в новый God of War - жутко бесит Кратос из предыдущих игр. В новой же раздражает сынуля - рожа как у малолетнего гопника. Блеа, вообще воротит.

Ответить
0

Прямой эфир

[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fizc" } } }, { "id": 4, "label": "240х200_mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "flbq" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "clmf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjog" } } }, { "id": 10, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "clmf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-250597-0", "render_to": "inpage_VI-250597-0-1134314964", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=clmf&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Плашка на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudo", "p2": "ftjf" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fzvc" } } } ]
Новая игра Ubisoft на релизе выглядит
точно так же, как и на E3
Подписаться на push-уведомления