Назад к новостям для разработчиков

Создание многопользовательской виртуальной реальности

Взаимодействие нескольких пользователей становится все более важным элементом экосистемы виртуальной реальности. Многопользовательские функции позволяют людям легко находить и приглашать друг друга, а также совместно использовать различные игры и приложения. В этой состоящей из четырех частей серии блогов и видеороликов “Создание многопользовательской виртуальной реальности” мы обсудим многопользовательские функции в системе Quest, которые представлены в Platform SDK. С этой целью мы рассмотрим пример приложения SharedSpaces, которое имеет открытый код и создано в Unity, а также продемонстрируем, как использовать этот пример для разработки вашего собственного мультипользовательского приложения. Если вы предпочитаете изучать что-то с помощью видео- или аудиоматериалов, посмотрите это видео на YouTube-канале Meta Open Source.

В сегодняшнем блоге мы познакомимся с многопользовательскими функциями, доступными в инструментальном пакете Platform SDK, и узнаем, что можно создать с его помощью. Мы также рассмотрим пример приложения SharedSpaces, созданного в Unity и доступного в App Lab, и увидим эти многопользовательские функции в действии.

Многопользовательские функции

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

Направления

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

Присутствие в группе

Функция "Присутствие в группе" предоставляет информацию о том, какое приложение использует тот или иной человек: проводится ли какой-то матч, находится ли он в определенном направлении, можно ли к нему присоединиться и многое другое. Чтобы получить дополнительную информацию о направлениях и присутствии в группе, ознакомьтесь с нашей документацией, из которой вы сможете узнать, какие существуют варианты их использования и как максимально эффективно их задействовать в своих приложениях.

Глубокие ссылки

Глубокие ссылки позволяют разработчикам направлять пользователей для решения определенных задач. Если кто-либо запускает ваше приложение, чтобы присоединиться к другу, или переходит к тому или иному направлению, соответствующая глубокая ссылка содержит информацию о необходимом направлении и о любом лобби или матче.

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

Приглашение в приложение

Функция "Приглашение в приложение" позволяет игрокам без особых усилий приглашать друзей по Quest и пользователей из списка "Недавние игроки" в существующие лобби с помощью меню Quest в поддерживаемых играх.

Когда вы отправляете приглашение, в VR-системе и в мобильном приложении Oculus приглашаемого человека появится соответствующее уведомление.

Чтобы получить более подробную информацию об API Invite to App и способах их использования в своих целях, перейдите на страницу документации.

Пригласительная ссылка

Пригласительная ссылка также позволяет вам перейти в какое-то Направление с группой друзей в мобильном приложении Oculus.

Пригласительная ссылка использует API Group Presence, чтобы все участники попали в один и тот же сеанс. Более подробную информацию о Пригласительной ссылке можно получить на этой странице документации.

Список

Список помогает пользователям узнать, какие друзья участвуют в игре вместе с ними. Для пользователей, которые добавляются игрой, указывается один и тот же ID сеанса лобби, после того как игра установит присутствие текущего пользователя. В примере приложения SharedSpaces доступ к списку можно получить на панели списка. На изображении ниже показан пример, как в списке отображается информация о том, кто играет с вами и кто был приглашен присоединиться к вам.

Пример SharedSpaces для Unity

Теперь, когда мы познакомились с несколькими многопользовательскими функциями Platform SDK, давайте рассмотрим пример проекта приложения, которое называется "SharedSpaces" и продемонстрирует эти функции в действии. Мы будем использовать версию для Unity этого приложения; однако, если вам необходима версия для Unreal, ее можно найти на App Lab.

Прежде всего, давайте узнаем, как работает пример приложения SharedSpaces для Unity. В этом примере используются три уровня сетевого взаимодействия:

  • Наш Platform SDK, который позволяет нам устанавливать направления, присутствие, лобби и матч.
  • Наш уровень передачи, Photon SDK, который отвечает за обмен информацией между пользователями, находящимися в одном месте.
  • Возможности сетевого взаимодействия, которые обеспечиваются Netcode for GameObjects SDK для Unity.

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

Установка примера

Теперь, когда у вас есть общее понимание принципа работы приложения SharedSpaces, вы можете загрузить пример Unity SharedSpaces на App Lab и испытать его со своей гарнитурой Quest.

Запуск примера приложения

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

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

Вверху слева вы увидите опцию, позволяющую пригласить друзей присоединиться к вам в этом виртуальном путешествии. Это функция "Пригласить в приложение", о которой говорилось ранее.

Вверху справа вы увидите список с информацией о присутствии в группе. Так действует функция "Список", представленная в Platform SDK.

Позади вас находится магазин красок, в котором можно изменить цвет своего игрока. Для изменения цвета также можно нажать кнопку X на контроллере.

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

Пример тестового сценария

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

Вернувшись в лобби, попробуйте войти в другую комнату. Красная, Синяя и Зеленая комнаты являются приватными, поэтому для входа в них необходимо приглашение.

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

Отобразится уведомление, сообщающее вашему приглашенному другу, что вы пригласили его присоединиться к вам. Если друг примет ваше приглашение, он появится в вашем лобби. С этого момента вам обоим присваивается один и тот же ID лобби для этого сеанса.

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

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

Это был краткий обзор примера приложения SharedSpaces для Unity. Мы рассмотрели некоторые многопользовательские функции, которые предлагает Platform SDK и узнали, как они работают в приложении SharedSpaces для Unity в системе Quest. В следующем блоге мы расскажем, как создать собственную копию этого примера, включая информацию о том, как загрузить его с ресурса Github для последующей компоновки и запуска на гарнитуре Quest.


Об этой серии блогов

В этой серии блогов мы обсуждаем многопользовательские функции Platform SDK в системе Quest, для чего используем пример нашего приложения SharedSpaces с открытым кодом, которое создано в Unity. Эта статья является первой в нашей серии блогов, которая состоит из четырех частей и служит дополнением к серии видеороликов под названием "Создание многопользовательской виртуальной реальности".

Чтобы получить дополнительную информацию о многопользовательских функциях Platform SDK и принципах работы примера SharedSpaces, ознакомьтесь с этим видеороликом конференции Connect, в котором освещаются вопросы создания и развития многопользовательских приложений для системы Quest. Попробуйте пример приложения SharedSpaces для — перейдите в App Lab и запустите этот пример на своей гарнитуре. Чтобы получить дополнительную информацию о внедрении многопользовательских функций Platform SDK в свои приложения, ознакомьтесь с нашей документацией с описанием многопользовательских функций.

Чтобы узнать больше о Meta Quest, перейдите на наш веб-сайт, подпишитесь на наш канал на YouTube или следите за нами в Twitter и на Facebook. Если у вас есть какие-либо вопросы, предложения или отзывы, поделитесь ими на форумах разработчиков.

Чтобы узнать больше о Meta Open Source, перейдите на наш сайт с открытым кодом, подпишитесь на наш канал на YouTube или следите за нами в Twitter и на Facebook.