Games

Войдите в комнату босса: наш новый образец игры Multiplayer

DEW SMITH / UNITY TECHNOLOGIESContributor
Apr 8, 2021|6 Мин
Войдите в комнату босса: наш новый образец игры Multiplayer
Эта веб-страница была переведена с помощью машинного перевода для вашего удобства. Мы не можем гарантировать точность или надежность переведенного контента. Если у вас есть вопросы о точности переведенного контента, обращайтесь к официальной английской версии веб-страницы.

Изучите новую экспериментальную библиотеку Netcode в Unity и основные принципы многопользовательской игры в нашей небольшой кооперативной ролевой игре Boss Room.

Создание многопользовательских игр - дело непростое, и часто можно почувствовать себя подавленным, когда начинаешь разрабатывать многопользовательскую игру - даже с учетом предоставленной документации SDK. Вам нужен совет, что делать с предоставленными SDK и шаблонами, которые можно использовать в качестве строительных блоков для собственных игр. Наша цель как команды Unity Multiplayer Networking - снабдить и поддержать разработчиков (таких как вы) инструментами, необходимыми для создания отличных многопользовательских игр для ваших игроков. Частью этого обещания является предоставление не только базовых сетевых технологий, но и документации и образовательных шаблонов, необходимых для понимания их применения. Именно здесь и пригодятся наши образцы Multiplayer - Boss Room является первым образовательным контентом такого рода.

По мере разработки Boss Room на нашем новом сайте документации будут написаны учебные пособия по различным аспектам сетевого взаимодействия с образцом для разработчиков. В этих уроках будут рассмотрены многие важные моменты создания небольшой кооперативной игры, например, как выбрать между RPC и NetworkVariables или как разработать игру, чтобы она была отзывчивой, используя методы компенсации задержки.

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

Войдите в комнату босса

Добро пожаловать в Boss Room, официальный образец проекта, построенного на 2020 LTS и демонстрирующего родной набор инструментов Unity, графику и экспериментальную сетевую технологию - уже доступен в режиме раннего доступа на GitHub. Boss Room использует новый экспериментальный пакет Netcode, чтобы объединить до восьми игроков для победы над импами и боссом в этой восхитительной вертикальной нарезке кооперативного RPG-подземелья. Хотите получить еще больше комнат для боссов? Не волнуйтесь - она будет развиваться вместе с сообществом, как развивается и наше решение Multiplayer.

Начните здесь, или читайте дальше, чтобы увидеть краткий обзор того, что ожидает вас в Boss Room сегодня.

Предпосылка

Игроки начинают игру в Boss Room, размещая или присоединяясь к игровому серверу, который будет размещен на одном из устройств игроков.

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

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

Работа в сети

Поскольку основная цель Boss Room - научить разработчиков основным концепциям и шаблонам, лежащим в основе многопользовательской игры, сетевые аспекты образца имеют решающее значение.

Одной из главных ценностей Boss Room являются шаблоны Multiplayer, которые она показывает: анимация действий, Lobby, State vs RPC и многое другое. Цель состоит в том, чтобы предоставить пользователям не только реализацию таких паттернов, но и документацию, которая поможет им разобраться в них. Следите за нашим сайтом документации, чтобы быть в курсе этих статей по мере их публикации в ближайшие месяцы.

Сетевая модель, используемая в Boss Room, представляет собой сервер, размещенный на клиенте, а игроки могут соединяться друг с другом с помощью интегрированного Photon Relay и прямого IP-соединения.

Персонажи и классы

Что касается персонажей игроков, то сегодня в игре представлены четыре 3D-класса персонажей (маг, воин, бродяга и лучник), три расы (эльф, человек и гном) и два пола. У этих персонажей есть две основные способности и несколько анимаций эмоций для каждой из них. В качестве ИИ/врагов представлены импы и босс подземелья - каждый со своими уникальными способностями.

Персонажи из Boss Room

Все персонажи в Boss Room основаны на общей модели персонажа, которую мы с любовью называем "U" - она предназначена для повторного использования и масштабирования в новые формы и размеры. Поскольку все они имеют общую структуру, они предназначены для многократного использования. Boss Room использует лицензию UCL, что означает, что вы сможете использовать все наши активы и создавать на их основе свои собственные проекты в Unity, так что, во что бы то ни стало... делайте мод!

Изображение, показывающее, как можно переосмыслить персонажей

Как уже говорилось ранее, Boss Room демонстрирует различные приемы экшен-геймплея, которые часто встречаются в кооперативных ролевых играх, а также схемы кодирования и техники, полезные при реализации этих действий. Это включает в себя поиск пути и перемещение на сервере с интерполяцией на стороне клиента, а также то, что система действий является обобщенным механизмом, позволяющим персонажам "делать вещи" в сетевом режиме.

Действия включают в себя все, начиная от базовой атаки персонажа и заканчивая модными АОЕ-умениями вроде Volley Shot лучника. Ниже приведен список архетипов действий, реализованных с помощью этой системы:

  • Атака ближнего боя с проверкой хитбокса на основе физики.
  • Атака по зоне поражения. Атака сосредоточена на точке, указанной клиентом, чтобы показать выделение области на стороне клиента с эффектом, управляемым сервером.
  • Атака дальнобойным снарядом, который порождает управляемый сервером снаряд. Также есть вариант этого действия с возможностью "зарядить" выстрел, удерживая кнопку действия.
  • Действие оглушения не позволяет агентам, управляемым ИИ, что-либо предпринять.
  • Стелс действие, которое переключает режим невидимости для негодяя.
  • Бафф с возможностью заряжать его, удерживая кнопку действия. Производит дополнительный эффект на максимальном уровне заряда.
  • Действия эмоций, воспроизводящие глупые анимации персонажей - они показывают общение игроков.
  • Действие преследования, которое заставляет вашего персонажа следовать за выбранной целью
  • Выбор цели, используемый для действий, которые могут нацелиться на цель, если таковая выбрана.
  • Действие Trample, которое совершает Босс и отталкивает нерадивых героев в сторону - это показывает закономерности для сетевой физики.
  • Действие Revive позволяет героям возвращать друг друга к жизни.

Подземелье и игровой процесс

Обстановка Boss Room создана для того, чтобы игроки могли проверить навыки своего персонажа перед встречей с боссом.

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

Пример сцены "Комната босса" в редакторе

Заметка от нашей команды

Цель Boss Room больше, чем просто обучение API. Multiplayer - это одна из областей создания игр, которая будет влиять не только на реализацию, но и на дизайн игры. Знание таких приемов, как "когда можно использовать клиентскую игру, а когда серверную, если у меня есть серверный NPC, влияющий на физику, например босс" или "трюки, когда можно использовать анимацию нарастания темпа, чтобы скрыть задержку", поможет вам сделать лучшую многопользовательскую игру. Весь набор функций Boss Room- это примеры таких практик и паттернов.

Цель нашей команды - дать вам рекомендации по всему процессу разработки многопользовательских игр, чтобы вы могли создать многопользовательскую игру от А до Я для конкретных типов игр. Это включает в себя разработку, внедрение, тестирование и работу в реальной среде. Мы начинаем с Boss Room в качестве эталона - в настоящее время ведется работа над документацией по нему.

Второстепенная цель Boss Room - это работа с новым экспериментальным пакетом Netcode для GameObjects (эволюция MLAPI). Команда разработчиков образцов и команда разработчиков SDK работают рука об руку, улучшая MLAPI, давая обратную связь по UX и поднимая вопросы. По мере того как MLAPI будет добавлять новые функции и обновлять SDK, мы будем продолжать использовать эти функции и убедимся, что они имеют смысл в контексте разработки проекта.

Что дальше?

По мере того как наше сетевое решение будет расти и совершенствоваться, будет расти и этот образец. Вот способы принять в этом участие.

Общайтесь с нами в Discord или на форуме Unity Multiplayer, делитесь своим опытом или просите помощи.