블로그
멀티플레이어 VR 경험 빌드: 기타 멀티플레이어 SDK 기능, 이동 안정성 및 모범 사례

2022년 7월 12일

멀티플레이어 VR 경험 빌드: 기타 멀티플레이어 SDK 기능, 이동 안정성 및 모범 사례

제작: Navyata Bawa

4부로 구성된 '멀티플레이어 VR 경험 빌드' 블로그 및 동영상 시리즈의 마지막 4부에서는 Quest의 플랫폼 SDK 멀티플레이어 기능에 대해 설명합니다. Unity로 만든 오픈 소스 SharedSpaces 샘플을 살펴보고 이 샘플을 사용하여 직접 멀티플레이어 앱을 빌드하는 방법을 보여드릴 것입니다. 보거나 들으면서 배우고 싶다면 Meta Open Source YouTube 채널에서 이 동영상을 확인해 보세요.

오늘 블로그에서는 멀티플레이어 SDK가 제공하는 몇 가지 기능을 살펴보고 이동 안정성, 모범 사례, 핵심 팁, 리소스에 대해 알아볼 것입니다. SharedSpaces 샘플을 기반으로 간단한 멀티플레이어 VR 게임을 만드는 방법을 놓치셨다면 블로그 게시물동영상을 참조하세요.

기타 멀티플레이어 기능

호출 가능한 오류 대화 상자 및 재가입

Quest의 플랫폼 SDK 멀티플레이어 기능은 멀티플레이어 경험에 쉽게 입문해서 에지 사례를 처리하는 데 유용한 기능을 제공합니다. 예를 들어 SDK는 플레이어가 그룹에 참여하는 데 필요한 튜토리얼을 완료하지 않은 것을 알려주는 호출 가능한 오류 대화 상자에 대한 API를 제공합니다.

이를 통해 플레이어는 무엇이 잘못되었는지 이해하고 원하는 데스티네이션으로의 이동이 예상과 다르게 작동하는 이유를 더 정확하게 파악할 수 있습니다. 이 API 사용 방법과 표시되는 오류 메시지의 전체 리스트에 대한 자세한 내용은 문서를 참조하세요.

또한 플랫폼 SDK는 사용자가 아래와 같이 연결이 끊어진 경우 재가입 대화 상자를 통해 그룹에 다시 가입하는 옵션을 제공합니다.

이 기능은 대화 상자만 표시하며, 끊어진 연결 탐지, 실제 재가입, 딥 링크를 처리할 책임은 개발자에게 있습니다. 사용자 한 명이 다시 가입하려고 시도하는 중에 모든 사람이 세션을 나갈 경우, 오류 메시지를 통해 모든 참가자가 세션을 떠났으므로 세션에 가입할 수 없다고 알릴 책임은 앱에 있습니다. 재가입 API를 사용하는 방법, 예시 사용 사례 및 모범 사례에 대한 자세한 내용은 문서를 참조하세요.

Webhooks

Webhooks를 사용하면 앱의 멀티플레이어 경험과 관련이 있을 만한 변경 사항에 대해 실시간 HTTP 알림을 수신할 수 있습니다. 예를 들어 Quest는 앱 사용자가 새로운 로비나 세션에 참여하면 변경 사항을 쿼리하지 않아도 알림을 전송할 수 있습니다. Webhooks를 구성하고 사용하는 방법에 대한 자세한 내용은 문서를 참조하세요.

빠른 초대

빠른 초대는 Oculus 오버레이를 보여줄 필요 없이 Oculus 초대를 앱 경험에 통합할 수 있는 멀티플레이어 기능입니다.

앱으로의 초대가 구현되고 앱에서 모든 플랫폼의 사용자를 표시하도록 허용하면 빠른 초대 API를 사용할 수 있습니다.

이 API는 전송 가능한 사용자, 직접 초대, 전송된 초대의 리스트를 제공합니다. 빠른 초대 API, 필수 조건, 제한 사항 및 API를 사용하는 방법에 대한 자세한 내용은 문서를 참조하세요.

그룹 론치

그룹 론치는 사용자가 데스티네이션에 쉽게 참여하고 딥 링크 URL을 사용하여 앱 내에서 함께 이동할 수 있는 멀티플레이어 기능입니다.

그룹 론치를 사용하면 앱의 최적 경험으로 직접 연결되는 링크를 만들고 모든 플랫폼의 커뮤니티에 공유할 수 있습니다. 이러한 링크를 사용하여 새 맵을 홍보하거나, 개발자와의 만남 이벤트를 설정하거나, 한정 리워드를 제공할 수 있습니다.

이러한 기능을 사용하는 방법과 그룹 론치를 사용할 만한 예시 시나리오에 대해 자세히 알아보려면 문서를 참조하세요.

최근 Oculus 개발자 허브(ODH) 업데이트에는 새로운 기능을 비롯해 일상적인 개발 워크플로를 개선하기 위한 기존 기능의 개선 사항을 포함했습니다. 그중 하나는 멀티플레이어 테스팅으로, 여러 기기에서 ODH를 통해 그룹 론치를 직접 테스트할 수 있습니다. 멀티플레이어 테스팅은 그룹 데스티네이션을 등록하고 하나 이상의 바이너리를 릴리스 채널에 업로드한 모든 앱에서 사용할 수 있습니다. 특정 데스티네이션과 로비 세션 ID를 사용하여 하나 또는 그 이상의 기기에서 앱을 시작해 보세요. 멀티플레이어 테스팅에 대한 자세한 내용은 문서를 참조하세요.

이 기능은 구현을 용이하게 하고 그룹 데스티네이션의 안정성을 개선합니다. 워크플로에서 멀티플레이어 테스팅을 사용하기 시작하려면 문서 가이드를 참조하세요.

이제 멀티플레이어 VR 경험을 편안하고 안락하게 만들기 위해 사용할 수 있는 몇 가지 방법을 설명하겠습니다.

이동 안정성

이동 안정성이란 사용자가 원하는 데스티네이션에 안정적이고 올바르게 도달하는 데 성공하는 것을 의미합니다. 이동 안정성을 높여서 사용자의 몰입감을 방해하지 않고 갑작스럽게 놀라지 않게 하는 것이 중요합니다.

사용자가 이동할 수 있는 유효한 데스티네이션만 표시해야 합니다. 모두에게 제공할 수 없는 데스티네이션이 있을 경우, 해당 데스티네이션으로 가려고 시도했을 때 이동이 불가능한 사용자에게 오류 메시지를 표시해야 합니다.

이동이 실패하는 위치를 알아내면 오류를 처리하고 사용자에게 상황을 알리는 데 도움이 됩니다. 원활하고 양호하며 편안한 경험을 제공하는 멀티플레이어 VR 앱을 디자인하려면 사용자가 원하는 데스티네이션까지 안정적으로 이동하도록 하는 것이 매우 중요합니다. 사용자가 이동을 완료하는 데 필요한 입력을 최소화할 수 있도록 디자인해야 합니다.

디자인을 결정할 때 간단히 변경하는 것만으로도 이동 안정성을 개선하고 사용자의 이동 경험을 더욱 쾌적하게 할 수 있는 몇 가지 일반적인 시나리오를 알려드리겠습니다.

  • 사용자가 튜토리얼을 완료하지 않았고 이동을 위해 튜토리얼을 완료해야 하는 경우. 이 경우에는 사용자가 튜토리얼을 건너뛰고 데스티네이션으로 바로 이동하도록 허용하는 것이 좋습니다.
  • 사용자가 이동을 위해 게임 아바타를 설정해야 하지만 아직 완료하지 않은 경우. 이런 상황을 피하는 가장 좋은 방법은 사용자가 경험을 계속할 수 있도록 기본 아바타를 제공하는 것입니다.
  • 사용자가 자격 증명(이메일/비밀번호)을 입력해야 하는 로그인 화면을 거쳐야 하는 경우. 가능하면 로그인 화면을 보지 않고 계속 진행하도록 하는 것이 훨씬 안정적인 경험이 될 것입니다.
  • 사용자가 게임상의 이유(예: 레벨 부족, 캐시 부족, 데스티네이션을 잠금 해제하지 않음 등)로 데스티네이션에 액세스할 권한이 없어서 아무런 메시지도 표시되지 않고 메인 메뉴로 바로 이동하는 경우. 이런 상황을 처리하는 가장 좋은 방법은 사용자에게 원하는 데스티네이션에 갈 수 없는 이유를 알리는 것입니다.
  • 사용자가 이동을 시작했을 때 이미 앱을 열어두었지만 앱에서 사용자를 데스티네이션으로 이동시키지 않은 경우. 이런 경우에는 앱이 열려 있을 때 데스티네이션 이동이 어떻게 작동하는지 테스트하고 아직 열리지 않은 앱과 일치하도록 하는 것이 좋습니다. 사용자가 현재 위치를 떠날 수 없거나 현재 위치를 떠날 경우 문제가 되는 게임상의 이유가 있다면 사용자에게 적절한 메시지를 통해 현재 새로운 데스티네이션으로 이동하지 못하는 이유를 알리는 것이 좋습니다.

이제 멀티플레이어 VR 경험을 개발할 때 염두에 두어야 할 몇 가지 모범 사례에 대해 알아보겠습니다.

모범 사례 및 리소스

플랫폼 SDK 멀티플레이어 기능을 앱에 통합하면 사용자들이 앱에서 더 쉽게 모일 수 있어 참여와 잔류를 높이는 데 도움이 됩니다. 플랫폼 멀티플레이어 기능을 멀티플레이어 VR 앱에 통합하면 마찰을 줄이는 데 도움이 됩니다. 앱 사이에 일관성을 유지하면 맞춤 시스템을 학습하지 않아도 새로운 플레이어가 서로 모여서 함께 게임을 플레이하기 시작하는 방법을 빠르게 숙지하는 데 도움이 됩니다. 데스티네이션과 그룹 프레즌스를 먼저 통합한 다음, 로스터, 앱으로 초대, 초대 링크를 통합하는 것이 좋습니다. 초대를 통합할 때는 앱 내에 쉽게 찾을 수 있는 초대 버튼을 두어서 앱으로 초대 플로를 시작하도록 하는 것이 좋습니다.

오류 대화 상자Webhooks를 지원하는 것이 중요합니다. 이들을 통해 멀티플레이어 안정성을 개선하고, 문제 해결에 도움을 줄 수 있으며, 문제점과 개선할 부분을 더 쉽게 찾을 수 있기 때문입니다.

플랫폼 SDK 멀티플레이어 기능과 관련 API에 대해 알아보기에 가장 좋은 리소스 중 하나는 멀티플레이어 기능 문서입니다. 여기에서는 앞서 설명한 모든 SDK 기능, 앱에서 이러한 기능을 활용하는 가장 효과적인 방법, 샘플 사용 사례, 시작하는 데 도움이 되는 예시를 제공합니다.

Connect 2021 세션인 Quest용 멀티플레이어 앱 빌드 및 성장에서는 멀티플레이어 기능을 자세히 검토하고 Echo VR이 이러한 기능을 게임에 통합한 방법에 대해 논의합니다. 또한 SharedSpaces 샘플에 대한 자세한 단계별 설명도 제공합니다.

Ready At Dawn이 어떻게 Oculus 플랫폼 멀티플레이어 기능을 사용하여 Echo VR을 향상했는지 알아보고 싶다면 블로그 게시물을 참조하세요. Ready At Dawn 프로젝트 책임자인 David Neubelt 씨가 이러한 기능을 통합한 이후 커뮤니티 성장에 어떤 영향이 있었는지 소개합니다.

SharedSpaces 샘플에 대해 자세히 알아보려면 SharedSpaces Multiplayer Showcase 블로그 게시물을 참조하세요. 친구를 매치에 초대하는 방법, 에지 사례, API 참고 자료를 살펴보실 수 있습니다. VR에서 사람들을 빠르게 모으는 방법 블로그에서는 SharedSpaces 앱을 만드는 데 사용되는 기본 기술을 자세히 설명합니다.

'멀티플레이어 VR 경험 빌드' 시리즈의 이전 블로그에서 Quest의 플랫폼 SDK 멀티플레이어 기능이 제공하는 이점, 빌드 가능한 경험, SharedSpaces 샘플을 사용하여 시작하는 데 도움을 받는 방법에 대해 자세히 알아보세요.


시리즈 정보

이 시리즈에서는 Unity로 개발한 오픈 소스 SharedSpaces 샘플을 통해 Quest의 플랫폼 SDK 멀티플레이어 기능을 설명합니다. 이 블로그는 '멀티플레이어 VR 경험 빌드' 동영상 시리즈를 지원하는 블로그 시리즈 4부작 중 4부입니다.

플랫폼 SDK 멀티플레이어 기능과 SharedSpaces 샘플의 작동 원리에 대해 자세히 알아보려면 Quest용 멀티플레이어 앱을 빌드하고 성장시키는 방법을 설명하는 이 Connect 세션을 참조하세요. App Lab을 방문하고 자신의 헤드셋에서 Unity SharedSpaces 샘플을 사용해보세요. 자신의 앱에서 플랫폼 SDK 멀티플레이어 기능을 사용하는 방법에 대해 알아보려면 멀티플레이어 기능 문서를 참조하세요.

Meta Quest에 대해 자세히 알아보려면 웹사이트를 방문하여 YouTube 채널을 구독하거나 TwitterFacebook을 팔로우하세요. 질문이나 제안, 피드백이 있는 경우 개발자 포럼에 문의해 주시기 바랍니다.

Meta Open Source에 대해 자세히 알아보려면 오픈 소스 사이트를 방문하여 YouTube 채널을 구독하거나 TwitterFacebook을 팔로우하세요.


뉴스레터 구독하기

월간 Meta for Developers 뉴스레터를 구독하세요.

신청하기