다음을 통해 공유


XR-115: 게임 플레이 중 사용자 또는 컨트롤러 추가 및 제거 *

버전 1.1, 2021년 5월 1일

다중 사용자를 지원하는 타이틀은 다음에 따라 컨트롤러를 할당받지 못한 활성 사용자나 게임 플레이 도중 컨트롤러가 손실된 사용자의 사용자 또는 시나리오 추가/제거에 응답해야 합니다.

컨트롤러 추가: 타이틀이 초기 사용자 및 컨트롤러를 선택하거나 제공한 후에는 다른 컨트롤러의 입력을 선택적으로 수신할 수 있습니다. 멀티 플레이어 환경을 지원하는 타이틀에서는 게임 플레이에 플레이어 또는 컨트롤러가 추가되는 방식과 XUserAddAsync로 사용자에게 바인딩되는 방법을 고려해야 합니다. 예를 들어 ‘A를 눌러 참여’ 또는 플레이어 선택 화면에서 컨트롤러 실루엣을 보여 줍니다.

컨트롤러 제거: 게임 플레이 중 게임 플레이를 구동하는 플레이어의 컨트롤러가 제거되는 경우 타이틀은 새로운 활성 컨트롤러 재설정을 허용해야 합니다(예: “계속하려면 A를 누르세요” 또는 유효한 컨트롤러를 사용하는 활성 사용자에 대한 ERA의 a ControllerPairingChanged 또는 GDK의 XUserDeviceAssociationChangedCallback 이벤트 수신). 타이틀은 또한 XUserFindControllerForUserWithUiAsync를 사용하여 시스템 UX를 호출하여 사용자에게 컨트롤러를 페어링하고 게임플레이에서 반환활 것인지 표시할 수 있습니다.

사용자 추가: ERA 또는 UWP를 사용할 때 새로운 사용자가 로그인하면 타이틀이 다중 사용자 환경을 지원하는 경우 타이틀은 사용자를 타이틀에 추가할 수 있지만, 타이틀은 활성 사용자를 새로운 사용자로 자동으로 전환하거나 새로운 로그인된 사용자 이벤트를 기반으로 활성 사용자의 환경을 중단시켜서는 안 됩니다.

GDK를 사용하는 경우(간소화된 사용자 모델이나 고급 사용자 모델 중에서 하나를 사용하는 경우 모두) 타이틀에서 XUserAddAsync를 호출할 때만 사용자가 추가됩니다.

기본 사용자 제거: ERA 또는 GDK 고급 사용자 모델을 사용하는 타이틀의 경우, 가이드 메뉴, SPOP 또는 다른 수단을 통해 기본 플레이어가 로그아웃되면 타이틀에서 플레이어를 게임에서 제거하거나 사용자와 활성 컨트롤러를 다시 설정해야 합니다.

GDK 간소화된 사용자 모델을 사용하는 타이틀의 경우 기본 플레이어가 제거되면 시스템 수준에서 타이틀이 일시 중단됩니다.

모든 시나리오에서 타이틀은 게임을 양호한 상태로 전환하여 제거/폐쇄를 처리합니다. 이 작업에는 연결된 저장소에 쓰기, 사용자가 벗어난 관련 MPSD 세션 알림, 새 사용자가 추가되지 않은 경우 사용자를 로그인에 적합한 위치로 이동 등이 포함됩니다.

추가/보조 사용자 제거: 타이틀은 일반적으로 플레이어를 즉시 게임 플레이에서 제거하거나 멀티플레이어 환경이 사용되는 상황에서 다시 가입하도록 유도하여 재량에 따라 이 이벤트를 처리할 수 있습니다.

구현 지침 및 모범 사례

활성 플레이어의 컨트롤러가 제거될 때 게임 플레이를 일시 중지하는 것이 좋습니다.

활성 사용자가 로그아웃 상태인 경우, 게임 재개 시 사용자가 중단한 지점으로 돌아갈 수 있도록 게임 진행 상태를 최대한 저장하는 것이 좋습니다.

타이틀에서 로그인한 사용자가 여러 명 지원되는 경우에 활성 사용자는 로그아웃 상태지만 다른 활성 사용자는 여전히 로그인 상태일 때는 다른 활성 사용자들이 현재 게임을 최대한 계속할 수 있도록 지원하는 것이 좋습니다. 게임에서 로그아웃한 사용자를 게임 플레이어서 완전히 제거하거나 컴퓨터 기반 플레이어로 대체할 수 있습니다.

추가 리소스

인증 테스트 사례

다음 표는 GDK 간소화된 사용자 모델 또는 GDK 고급 사용자 모델, ERA, UWP 다중 사용자 응용 프로그램을 사용하는 경우 타이틀에 해당하는 XR-115의 테스트 사례를 표시합니다.

테스트 사례 GDK 간소화된 사용자 모델에 해당 GDK 고급 사용자 모델, ERA, UWP MUA에 해당
115-01 사용자 추가 아니요 예 *
115-02 컨트롤러 제거
115-03 사용자 제거 아니요

* 115-01 사용자 추가는 ERA 및 UWP 다중 사용자 응용 프로그램에만 적용됩니다. GDK를 사용하는 경우 타이틀은 타이틀에서 의도적으로 추가한 사용자만 볼 수 있습니다. 셸을 통해 추가된 사용자는 GDK 타이틀에서 알 수 없습니다.


115-01 사용자 추가

테스트 단계

  1. 프로필 A에 로그인하고 다른 프로필은 로그인하지 않았는지 확인합니다.
  2. 타이틀을 시작하고 게임 플레이를 진행합니다.
  3. 타이틀 사용 시 다양한 시점에서 두 번째 컨트롤러를 연결하고 프로필 B에 로그인합니다.
  4. 프로필 B는 타이틀에 컨트롤러 입력을 제공하려는 시도를 합니다.

예상 결과
ERA 또는 UWP MUA 타이틀은 활성 사용자의 게임을 자동으로 중단하지 않아야 합니다.

통과 예시

  1. 타이틀에서 새로운 사용자로 활성 사용자가 자동 전환되거나 활성 사용자의 게임이 자동 중단되지 않습니다.
  2. 게임 타이틀은 프로필 B가 현재 컨텍스트에 따라 타이틀을 제어할 수 있도록 허용합니다.

실패 예시

  1. 타이틀이 활성 사용자인 프로필 B로 컨텍스트를 즉시 전환합니다.

115-02 컨트롤러 제거

테스트 단계

  1. 프로필에 로그인하고 타이틀을 시작합니다.
  2. 타이틀 사용 시 다양한 시점에서 컨트롤러에서 배터리를 제거합니다.
  3. 컨트롤러에서 배터리를 교체하고 사용자가 계속해서 타이틀을 사용할 수 있는지 확인합니다.
  4. [1]단계부터 [3]단계까지 반복하되, 배터리를 교체하기 보다는 두 번째 컨트롤러를 연결합니다.

예상 결과
타이틀은 컨트롤러의 제거 및 추가에 올바르게 응답해야 합니다.

통과 예시

  1. 활성 사용자는 컨트롤러를 제거 또는 추가한 후에도 타이틀을 계속 사용할 수 있어야 합니다.
  2. 새 활성 컨트롤러를 다시 설정하라는 메시지가 표시됩니다(예: "A를 눌러 계속" 또는 시스템 UX를 호출).

실패 예시

  1. 사용자는 컨트롤러 제거 이후에 타이틀을 계속 사용할 수 없습니다.

115-03 사용자 제거

테스트 단계

  1. 프로필 A에 로그인하고 다른 프로필은 로그인하지 않았는지 확인합니다.
  2. 타이틀을 시작하고 게임 플레이를 진행합니다.
  3. 타이틀 사용 시 다양한 시점에서 프로필 A에서 로그아웃합니다.
  4. 타이틀이 계정 선택기를 호출하거나 사용자를 프런트 엔드로 반환하는지 확인합니다.
  5. 가능한 경우 다음과 같은 방법으로 타이틀과 상호 작용합니다.
  • 프로필 A에 로그인하고, 타이틀이 사용자의 환경을 더 이상 중단시키지 않는지 확인합니다.
  • 프로필 B에 로그인하고, 타이틀이 새 사용자의 컨텍스트로 업데이트되는지 확인합니다.

예상 결과
타이틀은 해당 플레이어를 게임에서 제거하거나 사용자 및 활성 컨트롤러를 다시 설정해야 합니다. 게임에서 플레이어가 제거된 경우 타이틀이 좋은 상태로 유지되어야 합니다. 이 작업에는 연결된 저장소에 쓰기, 사용자가 벗어난 관련 MPSD 세션 알림, 새 사용자가 추가되지 않은 경우 사용자를 로그인에 적합한 위치로 이동 등이 포함됩니다.

통과 예시

  1. 게임에서 플레이어가 제거되고 프런트 엔드로 돌아갑니다.
  2. 타이틀을 통해 사용자는 새 사용자를 다시 설정하고 관련 사용자 컨텍스트로 올바르게 업데이트할 수 있습니다.

실패 예시

  1. 타이틀이 사용자 상태 변경에 대응하지 못합니다.
  2. 새 프로필이 선택된 후에도 타이틀에 프로필 A 사용자 상태가 계속 사용됩니다.