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

Создание многопользовательской виртуальной реальности: другие функции SDK Multiplayer, надежные перемещения и рекомендации

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

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

Другие функции Multiplayer

Вызываемые диалоги ошибок и повторное присоединение

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

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

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

Отметим, что эта функция только отображает диалог. Обнаружение сбоя подключения, повторное подключение и глубокие ссылки должны быть реализованы в приложении. Кроме того, если все участники покинут сеанс, когда пользователь присоединится повторно, приложение должно отправить уведомление с сообщением о том, что к сеансу невозможно подключиться, так как в нем больше никого нет. Подробности об использовании API Rejoin, примеры использования и рекомендации см. в документации.

Webhooks

Webhooks позволяют в режиме реального времени получать уведомления HTTP, относящиеся к многопользовательскому режиму в вашем приложении. Например, Quest может отправить уведомление, когда пользователи вашего приложения присоединяются к новому лобби или сеансу, и вам не придется запрашивать, какие изменения произошли. Подробнее о настройке и использовании Webhooks см. в документации.

Быстрые приглашения

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

API Quick Invite становится доступным после внедрения функции приглашения в приложение и позволяет приложениям отображать пользователей с разных платформ.

API предоставляет список доступных пользователей, прямых и отправленных приглашений. Подробнее об API Quick Invite, необходимых для его работы условиях, ограничениях и о том, как использовать API, см. в документации.

Групповой запуск

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

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

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

В недавнее обновление Oculus Developer Hub (ODH) мы добавили новые функции и улучшения существующих возможностей, которые помогут усовершенствовать ваш процесс разработки. Среди них тестирование в многопользовательском режиме, которое позволяет тестировать групповой запуск напрямую из ODH на нескольких устройствах. Тестирование в многопользовательском режиме работает для всех приложений с зарегистрированными местами назначения групп и по крайней мере одним двоичным файлом, загруженным в канал выпуска. Запустите свое приложение на одном или нескольких устройствах с конкретным местом назначения и ID сеанса лобби. Подробнее о тестировании в многопользовательском режиме см. в документации.

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

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

Надежность перемещений

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

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

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

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

  • Когда пользователь не завершил обучающий курс, который необходимо завершить перед перемещением. В таких случаях рекомендуется, чтобы разработчик позволил пользователю пропустить обучающий курс и перейти непосредственно к месту назначения.
  • Когда пользователь должен настроить аватар в игре, прежде начать перемещаться, но он этого не сделал. Лучший способ избежать таких ситуаций — установить аватар по умолчанию, чтобы пользователь мог продолжить взаимодействие.
  • Когда пользователь должен пройти через экран входа, где нужно ввести учетные данные (электронную почту и пароль). Проектирование игры таким образом, чтобы пользователь мог продолжить взаимодействие без экрана входа, если это возможно, сделает опыт более приятным.
  • Когда у пользователя нет доступа к месту назначения по игровым причинам (например, у него недостаточно высокий уровень, недостаточно денег, он ещё не разблокировал место назначения и т. д.), и вместо этого он попадает в главное меню без каких-либо сообщений. Лучший способ справиться с такими ситуациями — проинформировать пользователя о том, почему он не смог добраться до места назначения, в которое хотел попасть.
  • Возможны ситуации, когда пользователь начал перемещение с уже открытым приложением, но приложение не доставило его в место назначения. В таких случаях лучше всего протестировать, как будет работать перемещение в место назначения, пока приложение открыто, и убедиться, что оно работает согласованно с ещё не открытым приложением. Если существуют игровые причины, по которым пользователь не может покинуть свое текущее местоположение или это может вызвать сбой, лучше всего сообщить пользователю, почему он не может отправиться в новое место назначения в данный момент.

Далее рассмотрим некоторые рекомендации, о которых следует помнить при разработке многопользовательских VR-приложений.

Рекомендации и ресурсы

Интегрируя в свое приложение многопользовательские функции SDK Platform, вы делаете совместную работу в вашем приложении проще, что способствует повышению вовлеченности и удержанию пользователей. Внедрение функций платформы в ваше многопользовательское VR-приложение поможет сократить проблемы. Согласованность между приложениями помогает новым игрокам быстро понять, как объединяться в группы и начать играть вместе, без необходимости изучать какую-либо отдельную систему. Мы рекомендуем сначала добавить места назначения и присутствие в группе, затем список, приглашение в приложение и ссылку с приглашением. Для интеграции приглашений рекомендуется создать легко находимую кнопку внутри приложения, которая позволяет начать процесс приглашения.

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

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

В выпуске Connect 2021 Building and Growing Multiplayer Apps for Quest вы найдете подробный обзор многопользовательских функций и обсуждение того, как Echo VR внедрили эти функции в своей игре. В видео также подробно описан пример SharedSpaces.

Если вам интересно узнать больше о том, как в Ready At Dawn использовались многопользовательские функции платформы Oculus для развития Echo VR, загляните в наш блог, где мы беседуем с руководителем проекта Ready At Dawn Дэвидом Нобелтом и узнайте, как использование этих функций повлияло на рост сообщества.

Чтобы узнать больше о примере SharedSpaces, просмотрите блог SharedSpaces Multiplayer Showcase, в котором обсуждается, как пригласить друга на матч, примеры ошибок и ссылки на API. В блоге How you Can Quickly Bring People Together in VR подробно описаны базовые технологии, которые используются для создания приложения SharedSpaces.

Обязательно посмотрите наши предыдущие блоги из серии Создание многопользовательской виртуальной реальности. Из них вы узнаете о многопользовательских функциях SDK Platform в Quest, о том, что можно построить с их помощью и как использовать пример SharedSpaces, чтобы начать работу:


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

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

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

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

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