[Перевод] Как планировка окружения влияет на сложность игры
Недавно я вместе с дизайнерами Майком Баркли (Mike Barclay) и Сэмом Хауэлсом (Sam Howels) выступал на GDC Europe 2016 с докладом «Создание конфликта: дизайн боя для экшн-игр уровня AAA». Сам доклад доступен только для участников GDC Vault, так что я решил поделиться своей частью в статье.
Я рассмотрю наш подход к геометрии уровня в связи с тем, как окружение передаёт его сложность для игрока. Мы знаем, что стандартным и самым простым способом изменения сложности является добавление и сочетание различных типов врагов. Это изменения на макроуровне: чем больше, тем сложнее, и это заметно для игрока. Но как насчёт микроувеличения сложности вместо крупных изменений? Как можно сбалансировать сложность, не полагаясь на количество противников или типы персонажей? К тому, же иногда нарратив может накладывать ограничения на определённые типы персонажей.
Решить эту проблему можно с помощью окружения, влияющего на поведение AI и на способы боя игрока с противниками. Этот вариант хорош тем, что сложность растёт с повышением навыка игрока и позволяет следовать за ним. Так мы сможем гарантировать, что уровни останутся интересными и не потеряют новизны до появления новых типов персонажей.
Эта цель достигается повторением мантры «форма следует за функцией»: форма здания или объекта должна в первую очередь использоваться по её предназначению. В нашем случае геометрическая схема уровня должна поддерживать поведение AI и влиять на него. При этом различные схемы приводят к разным результатам. В этой статье мы рассмотрим следующие вопросы:
- Как можно создать окружение, стимулирующее или ограничивающее движение, и как движение влияет на сложность.
- Как манипуляция укрытиями может воздействовать на сложность без искусственного изменения поведения AI.
- Как геометрия арены может влиять на расположение врага, и что это значит для уровня сложности.
Как можно создать окружение, стимулирующее или ограничивающее движение, и как движение влияет на сложность
Во-первых, зададимся вопросом: зачем нам может понадобиться влиять на движение врагов? Если вкратце, то «в подвижного врага сложнее попасть». В нашем случае гораздо проще попасть по статичному врагу, чем по бегающему в сцене. Ограничение движения врагов полезно для создания более лёгких боёв. Например, в начале игры, когда игрок привыкает к игровой механике. С другой стороны, если противники много передвигаются, это значит, сложность для игрока повышается, что полезно, если по нарративу он должен быть перегружен.
Так почему бы не ограничить AI искусственно, чтобы враги постоянно двигались? Лучше не делать этого, чтобы не получить странное поведение, отличающееся от того, которое уже изучил игрок. Важно не разрушить паттерны поведения AI, чтобы игроку было легче просчитывать их и планировать свои действия.
Например, вы создали охраняемую зону, наполненную врагами. Скажем, они охраняют выход, или вы не хотите, чтобы игрок мог уйти без боя. Если не разрешить им выходить из зоны, то вы рискуете затруднить понимание игроком боевой ситуации. Например, у игрока есть механика «иди туда» (игрок броском броском камня или другого предмета может заставить врага пойти исследовать нужное место), или NPC могут исследовать области, в которых они видели врага. Если AI не реагирует ожидаемым способом, то это разрушает паттерн геймплея (и использование самой механики).
В этой ситуации игрок может чувствовать себя обманутым. В предельных случаях могут возникнуть ситуации, когда AI не способен убегать от гранат или опасных зон, что разрушает иллюзию искусственного «интеллекта».
Как же можно ограничить или стимулировать движение с помощью окружения? Нам нужно настроить окружения таким образом, чтобы они поддерживали используемые классы персонажей AI. Например, штурмовики в Killzone, находящиеся в состоянии боя, двигаются между позициями укрытия и выбирают другие позиции только в пределах максимально установленного расстояния. Также они пытаются сохранять определённую дистанцию до игрока, чтобы иметь возможность боя на средних расстояниях. Это соответствует типу их класса, в отличие от врага с дробовиком (ближнего боя) или дальнобойного снайпера. Они вступают в рукопашную, только если игрок подойдёт к ним достаточно близко, в противном случае они всегда пытаются отойти для боя на средней дальности, если это возможно. Поэтому если вы хотите, чтобы враги перемещались плавно, то расположите укрытия в области их движения.
Если вы хотите ограничить движение, не размещайте никаких укрытий. Тогда штурмовики будут вынуждены занимать одну область укрытий. Однако, в случае приближения игрока на расстояние рукопашной атаки или броске гранаты они будут реагировать обычным образом, в соответствии с их стандартным поведением. Поэтому они не разрушат никаких паттернов поведения. Схема уровня и расположение укрытий будут зависеть от метрик AI в вашей игре.
Ещё один способ ограничения перемещения и продвижения, как для игрока, так и для врагов — использование «нейтральной зоны». Это открытое пространство без укрытий, которое опасно пересекать игроку и врагам, потому что они будут полностью открытой и лёгкой мишенью.
Психологически это предостерегает игроков от перемещения, пока область не будет зачищена и безопасна. При использовании классов AI, прячущихся за укрытиями, их нейтральные зоны находятся далеко от дистанций перехода к укрытиям. Это способ предотвращения быстрого движения игрока по уровню без искусственного ограничения и заметного удерживания. Например, в первом бою вводной миссии Killzone Mercenary первичная цель игрока — труба в конце зоны, по которой можно взобраться. Чтобы игрок не мог пробежать туда напрямую, я разместил небольшую нейтральную зону между игроком и фронтом врагов. Глубина этой области была больше, чем расстояние, на котором штурмовик ищет новую позицию для укрытия. Это поощряло игрока оставаться на первоначальной позиции укрытий, пока враги не будут побеждены. Это гарантировало, что в конце боя игрок будет смотреть в сторону трубы за позициями врагов. Труба была следующей частью обучения.
Движение штурмовиков было ограничено, чтобы не дать им перемещаться по флангам, что обеспечивало для игрока простую битву в начале игры. Если бы мы позволили им обходить по флангам и укрываться в пределах определённого в метриках расстояния движения, это бы стимулировало штурмовиков двигаться больше (и в них было бы сложнее попасть по сравнению со статичными целями). К тому же они смогли бы занять более выгодные позиции, с которых потенциально могли неприятно удивить игрока внезапной атакой. Если враги приближаются к игроку, предполагается, что их точность и урон увеличиваются (разумеется, это зависит от оружия).
Враг, заходящий на игрока с фланга, более сложен, чем остающийся на одной позиции. Ещё более сложный случай — обстрел игрока продольным огнём. «Продольный огонь» — это военный термин, означающий заход на противника с флангов, так что у него не остаётся укрытий сбоку, из-за чего он становится открытым и уязвимым. Если игрок подвергается продольному огню, это вынуждает его покинуть текущую позицию и найти более безопасную, из которой он сможет защищаться. Игроки часто рвутся к новой позиции без необходимого предварительного планирования, поэтому такая ситуация может вызвать у них панику. Встречный огонь в сочетании с открытостью становятся для игрока очень сложным испытанием. Стоит стимулировать игрока двигаться дальше, чтобы он не проводил весь бой на одной позиции, так как это может наскучить. Смена ролей делает этот случай более лёгким для игрока: он имеет возможность захода с флангов, откуда сможет обстреливать врага продольным огнём. Это простой случай, приносящий игроку удовольствие, если удастся отрезать врагов, не имеющих возможности защищаться.
Продольный огонь
Как манипуляция укрытиями может воздействовать на сложность без искусственного изменения поведения AI
Одним из фундаментальных принципов при создании укрытий является принцип «знание — сила». Если вы как игрок знаете о перемещениях и положении врага, то у вас есть преимущество. Например, низкие укрытия позволяют игроку отслеживать врагов на уровне, потому что они обычно перемещаются между островками укрытий в полный рост.
В одном из начальных эпизодов Gears of War враги вбегают на арену со стороны, где им приходится миновать преднамеренно низкое укрытие. Это позволяет игроку отслеживать их всех, пока они пересекают зону, чтобы достичь своих позиций укрытия. Игрок знает, где окажутся все враги, и может стратегически планировать атаку: «знание — сила».
Прячась за низкими укрытиями, враги обычно находятся на такой высоте, что игрок может видеть их макушки, когда они передвигаются. Это значит, что когда враги перемещаются к новой позиции, по-прежнему находясь за укрытием, игрок способен увидеть их и отследить их перемещение. Таким образом можно избежать ситуации, в которой игрок не знает положения врагов и может быть обойдён с флангов или захвачен врасплох атакой. Когда игрок прячется за низким укрытием, в виде от первого и от третьего лица он может наблюдать поверх укрытия и отслеживать врага. При этом он находится в безопасной и, если это учитывается правилами игры, скрытой позиции.
Во врагов, находящихся за низким укрытием, сложнее попасть, потому что когда они атакуют обычно открыта меньшая часть тела. Когда они выглядывают из-за укрытия, ведут огонь вслепую или встают в полный рост, чтобы сделать более точный выстрел, они открывают только половину тела. Нижняя половина закрыта укрытием. Плюс здесь в том, что такой бой для игрока не слишком сложен: ему видна голова противника, попадание в которую традиционно считается убийством с одного выстрела.
С другой стороны, высокое укрытие полностью скрывает врагов от игрока — он не видит даже их голов. Это значит, что игрок должен или переместиться в другую точку, чтобы зайти на них с более хорошего угла, или дождаться, пока противник высунется из-за укрытия, чтобы выстрелить в игрока. Это, по сути, более рисково, потому что игрок должен открыться сам, чтобы выстрелить во врага, когда враг стреляет в него. Однако, в отличие от случая с низким укрытием, когда враг высовывается сбоку от высокого укрытия, он открывается во весь рост. Он также может полностью выйти из-за укрытия, открывшись полностью. Так в него проще попасть, чем прицеливаясь в голову. Баланс здесь в том, что хотя враг скрыт, когда он не стреляет, при атаке он полностью открыт и представляет собой бóльшую цель. Высокое укрытие также полезно для типов врагов, не использующих укрытия: они могут безопасно для себя перемещаться за ними и игрок может потерять их.
Эти принципы также относятся к игроку и его расположению. Например, зубцы замковой стены обеспечивают низкое укрытие рядом с высоким укрытием, создавая гораздо более защищённую схему укрытия для игрока. Ему не приходится ни выходить из-за высокого укрытия, полностью открываясь, ни пользоваться только низким укрытием, которое защищает не так сильно, особенно в шутерах от первого лица.
Степень открытости врага за укрытием зависит от высоты нахождения игрока. При бое сверху враг более открыт, что позволяет легче попасть в него. Кроме того, стреляющему вверх врагу открыта меньшая часть тела игрока. С этой высокой позиции игрок также может видеть и лучше понимать планировку арены. Если игрок видит больше, у него есть преимущество в бою: мы возвращаемся к принципу «знание — сила».
Как геометрия арены может влиять на расположение врага, и что это значит для уровня сложности
Один из фундаментальных принципов позиционирования врагов — «в то, что не видно, нельзя попасть». Поэтому в играх отсутствие видимости врагов значит, что игрок не может стрелять в них, а значит, и победить их.
Наличие помех видимости на арене не только означает, что игроку потребуется больше усилий для отслеживания врагов. Они могут полностью препятствовать отслеживанию. Врагам будет легче подобраться поближе к игроку (и он представляет для них более лёгкую мишень), или переместиться в более выгодные позиции, делаясь более сложными целями для игрока (например, обойдя его с фланга).
После охотничьей засады в Питсбурге в The Last of Us враг бежит справа налево вдоль входа в магазин. Враг относится к классу врагов ближнего боя и вооружён деревянной палкой. Он пытается подобраться к игроку, чтобы ударить. Высокое укрытие с левой стороны, состоящее из автомобиля и колонн, вместе с помехами видимости вдоль окон мешают игроку отслеживать противника, что позволяет тому приблизиться к игроку и ударить с фланга.
Когда игрок занят отстрелом врагов, которых он видит из-за низкого укрытия, даже при наличии радара (которое в игре заменён на механику «прислушивания», раскрывающего позиции врагов) помехи видимости не позволяют ему стрелять по врагам, чтобы не позволить им подобраться ближе.
Если помехи видимости направляют врагов в «бутылочное горлышко», то это простой случай для определения позиции. Представьте один коридор, даже если в нём используется более сложный тип укрытий: высокое укрытие сочетается с низким укрытием, открывая минимальную площадь тела врага. В отношении «перемещения цели» это будет всё равно достаточно простой случай. Так происходит потому, что игрок видит всё непосредственно перед собой и ему не нужно сильно перемещать камеру, чтобы победить врагов.
При разработке Killzone Mercenary мы создавали арены, а не делали его «коридорным» шутером. Поэтому нам пришлось добавить огневые проходы. Представьте ситуацию с врагами, разделёнными таким образом, что огневые проходы находятся на расстоянии больше ширины экрана. Разделять врагов может стена в центре (помеха видимости) или наличие точек спауна за каждой из дверей (как в примере ниже). С такой ситуацией гораздо сложнее справиться, потому что игрок должен разделять своё внимание и уравновешивать его между двумя боями. Это позволяет «невидимому» врагу делать что угодно, например, беспрепятственно стрелять в игрока, или незаметно для него перемещаться вперёд. Враги могут даже полностью сменить позицию: повернувшись снова, игрок может увидеть, что они пропали. Потеряв фокусировку на враге, игрок может начать стрелять в пустое пространство, в то время как враги сменили позиции и беспрепятственно стреляют в него.
Кроме того, враги за пределами экрана особенно сложны, если находятся выше игрока. А какой будет самая сложная ситуация? Если вы хотите настоящих трудностей, спауньте врагов за спиной игрока! Но используйте этот трюк умеренно, иначе он может казаться нечестным. Учтите — чем дальше расставлены огневые проходы, тем выше сложность.
Заключение. Пример с серой ареной.
Подводя итог, давайте рассмотрим пример настройки простой арены боя с применением рассмотренных выше принципов.
Допустим, по сюжету игрок должен охотиться на вражеский отряд, получить преимущество над ним и совершить внезапное нападение. В этом случае можно использовать следующие факторы:
- Ограничить возможности перемещения врагов, чтобы они двигались меньше и в них было легче попасть.
- Создать вокруг области с врагами нейтральную зону, препятствующую их движению.
- Позволить игроку вести продольный огонь.
- Использовать небольшие огневые проходы, позволяющие игроку отслеживать всех врагов и прицеливаться в них, не теряя их из виду.
- Расположить врагов ниже игрока, чтобы он мог стрелять вниз и враги были больше открыты.
- Расположить помехи видимости в пользу игрока, чтобы он мог «исчезать», скрываясь из поля зрения врагов.
- Создать только одну точку спауна сзади (в поле зрения), где можно отслеживать врагов, попадающих на арену.
В таком подходе удобно то, что инвертирование приёмов упрощения игры усложняет её для игрока. Например, сложным случаем будет следующая ситуация:
- Наличие множества возможностей перемещения врага. При этом в него сложнее попасть.
- Использование нейтральной зоны вокруг игрока, препятствующей его движению.
- Возможность вражеского продольного огня, вынуждающего игрока переместиться в нейтральную зону.
- Наличие нескольких точек спауна врагов на противоположных сторонах карты. Точки не находятся в пределах ширины экрана.
- Несколько огневых проходов, вынуждающих игрока балансировать точки фокусировки.
- Преимущество врага перед игроком в высоте.
- Помехи видимости расположены таким образом, что мешают видеть врага и позволяют ему исчезать из поля зрения.
Комментарии (1)
20 декабря 2016 в 11:25 (комментарий был изменён)
0↑
↓
Один из фундаментальных принципов позиционирования врагов — «в то, что не видно, нельзя попасть». Поэтому в играх отсутствие видимости врагов значит, что игрок не может стрелять в них, а значит, и победить их.
Это они не имели дело с играми где есть гранаты (или другие разрывные снаряды) или любые возможности рикошета. UT отличный пример как можно стрелять за угол кучей способов. И обычный Unreal если нужен сингл.
Возможность навесных траекторий тоже неплохо может разнообразить процесс