При разработке игр очень важен игровой баланс. Формирование максимально равных по силам команд не позволяет одной команде или игроку получить серьёзное преимущество перед другими участниками. Если команды имеют равный состав, игроки понимают, что они соревнуются с другими командами на равных и что у всех команд одинаковые цели.
Однако можно создать увлекательный игровой процесс, намеренно распределив игроков по командам ассиметрично. Установив кардинально различающиеся правила для команд с помощью различных атрибутов персонажей и классов, количества игроков или типов целей, вы можете создавать сложные увлекательные сценарии. Когда в одной команде меньше игроков, чем в другой, навыки каждого отдельного игрока становятся более важными и игроки осознают, что их вклад в достижение общей цели имеет большее значение. Это также может повлиять на манеру игры — команды с меньшим количеством игроков будут играть осторожнее.
В этом руководстве вы узнаете, как создать игру Меж двух огней. В этом режиме игры есть три команды: захватчики, атакующие и защитники.
- Невидимые захватчики пытаются украсть цель у защитников, не столкнувшись при этом с атакующими.
- Атакующие пытаются украсть флаг защитников, не давая при этом захватчикам украсть их собственную цель.
- Защитники пытаются остановить обе команды и выигрывают при завершении отсчёта таймера, если ни одна из двух других команд не наберёт нужное количество очков. Каждая команда имеет настраиваемое количество игроков и собственное оружие. Ассиметричное распределение игроков по командам позволяет точно контролировать силу каждой команды. Вы также можете поэкспериментировать с количеством игроков, чтобы команды соревновались друг с другом на равных, и создать уникальный игровой опыт для каждого игрока.
В этом руководстве вы узнаете, как создать режим игры, где три команды будут сражаться друг с другом за контроль над целями. Кроме того, вы научитесь ассиметрично распределять игроков по командам, что позволит создать более увлекательный игровой процесс.
Используемые возможности языка Verse
map
: в этом примере используется тип контейнераmap
, который задаёт связи в парах «ключ-значение» между захватчиками и временем в секундах, в течение которого персонажи должны мерцать после получения урона.array
: это устройство использует несколько массивов для хранения ссылок на другие устройства и команды игроков.for
: с помощью выражений сfor
можно перебирать массивы, которые использует устройство.failure
: контексты, допускающие неоднозначность, используются для доступа к массивам, а также для управления ходом выполнения программы.
Используемые API Verse
- События, на которые можно подписаться: вам нужно будет подписаться на несколько событий, к примеру на события появления игроков и их присоединения к игре.
- Игровое пространство: игровое пространство отслеживает события с возможностью подписки, связанные с игроками, которые присоединяются к игре и покидают её. Оно также отвечает за получение списков игроков и команд и помогает подобрать команду для определённого игрока. В данном уроке вы подпишетесь на несколько событий игрового пространства и будете извлекать игроков и команды с помощью методов игрового пространства, чтобы работать с ними напрямую.
- Команды: класс
team
позволяет добавлять, удалять и выбирать игроков в командах. В этом уроке вы будете использовать классteam
, чтобы работать с командами напрямую и ассиметрично распределять игроков между командами.
Обучающие видеоролики
В дополнение к шаблону и руководству по этому шаблону вы можете ознакомиться с видеороликами по игре «Меж двух огней», в которых рассказывается о том, как создать ассиметричную игру в стиле дикого запада! Скорее запрыгивайте на своего коня (или волка), чтобы всё узнать!
Обзор
В данном проекте используются сведения из следующих уроков (ознакомьтесь с ними перед тем, как изучать этот модуль дальше):
- Узнайте, как симметрично распределять игроков по командам, выполнив действия, описанные в разделе Распределение по командам в многопользовательских играх.
- Узнайте, как создать многопользовательскую игру с выравниванием состава команд, в уроке Устранение: командная игра.
После изучения этих уроков выполните следующие шаги, чтобы создать полноценную игру: