다음을 통해 공유


XR-112: 초기 활성화 및 재개 중 사용자 및 컨트롤러 설정 *

버전 1.1, 2021년 5월 1일

타이틀은 타이틀 내에서 기본 사용자 또는 여러 사용자 역할을 하도록 하나 이상의 활성 사용자를 설정해야 하며 일시 중단 및 제한 모드에서 다시 시작할 때 사용자를 처리해야 합니다. 타이틀은 간소화된 사용자 모델 또는 고급 사용자 모델을 사용하여 GDK에서 이 작업을 수행합니다.

GDK 간소화된 사용자 모델 타이틀

GDK의 간소화된 사용자 모델은 타이틀을 대신하여 기본 사용자 획득을 처리합니다. 타이틀은 여전히 사용자에게 컨트롤러를 할당해야 하고 할당한 컨트롤러를 게임 입력에 사용해야할 책임이 있습니다. 기본 사용자에게 할당된 컨트롤러가 없는 경우, 타이틀은 XUserFindControllerForUserWithUiAsync를 사용하여 시스템 대화 상자에 참여하여 컨트롤러를 선택하고 플레이어의 입력을 수락해야 합니다.

GDK 고급 사용자 모델, ERA 및 UWP 다중 사용자 응용 프로그램

초기 활성화 시, 게임은 게임 디자인 및 기본 설정에 따라 타이틀을 시작한 사용자나 명시적으로 사용자를 표시하여 초기 사용자를 결정할 수 있습니다.

타이틀은 해당 사용자 프로필에 대한 프로필 관련 작업(예: 진행률 저장 또는 설정 저장)을 처음으로 수행하기 전에 활성 사용자를 표시해야 합니다.

모든 Microsoft GDK(게임 개발자 키트), ERA, UWP MUA(다중 사용자 응용 프로그램) 타이틀은 활성 사용자를 변경하는 계정 선택 기능에 대한 진입점을 제공해야 합니다.

타이틀이 일시 중단 또는 제한 모드에서 다시 시작하는 경우, 타이틀은 사용자/컨트롤러 페어링의 유효성을 검사하고 이전 사용자 세션을 다시 시작하거나 새로운 사용자를 얻어 적절하게 대처해야 합니다.

추가 정보

초기 활성화 중 사용자 설정

GDK 단순화된 사용자 모델

초기 사용자는 XUserAddAsync(무인)로 전화를 걸어 제목에 제공되며, 항상 실행 중인 사용자에 대한 단일 결과를 반환합니다.

GDK 고급 사용자 모델, ERA 및 UWP 다중 사용자 응용 프로그램

게임에서 타이틀을 시작한 사용자를 사용하는 경우:

  • GDK의 경우 활성 사용자는 XUserAddAsync(자동)를 호출하여 결정할 수 있습니다. 시스템에서 기본 값이 없는 것으로 반환하는 경우, 타이틀은 자동 옵션 없이 XUserAddAsync를 사용하여 사용자를 표시해야 합니다. 이는 사용자에 대한 계정 선택 기능을 표시합니다.

  • ERA 및 UWP의 경우, 활성 사용자는 앱 활성화 컨텍스트의 권장 사용자로 찾을 수 있습니다(CoreApplicationContext.CurrentUser). 앱 활성화 컨텍스트가 권장 사용자에게 제공되지 않았고 타이틀이 프로필 관련 작업을 수행하는 경우 타이틀은 계정 선택을 실행하고 사용자의 프로필 선택을 기반으로 활성 사용자를 설정해야 합니다.

사용자가 표시되는 경우:

  • 타이틀이 참여 메시지를 표시하고 계정 선택 기능을 표시해야 합니다. 사용자는 선택 영역을 기반으로 합니다.

  • GDK의 경우, 계정 선택 기능은 XUserAddAsync를 사용하여 호출됩니다.

  • ERA 및 UWP의 경우 계정 선택 기능은 ShowAccountPickerAsync를 사용하여 호출됩니다.

사용자가 로그인 취소를 선택한 경우 타이틀은 사용자에게 계속하는 경우 진행 상황이 저장되지 않음을 알려야 합니다.

사용자가 선택되거나 시작에서 확인된 후에는 그 때 타이틀이 프로필 관련 작업을 하기 전에 게이머태그를 표시합니다.  타이틀에서 활성 사용자를 표시하는 방법과 위치에 대한 요구 사항은 없습니다. 사용자의 게이머 사진과 플레이 이름을 앱의 기본 화면이나 게임의 타이틀 메뉴에 표시하는 것도 좋은 방법 중 하나입니다.

초기 활성화 중 컨트롤러 설정

게임은 로그인한 사용자로 게임을 시작할 때 계정 선택기나 플랫폼에 의해 설정된 컨트롤러와 사용자 바인딩을 존중해야 합니다. Xbox 플랫폼은 계정 선택 중이나 게임플레이 외부에서 플레이어가 선택될 때마다 컨트롤러를 플레이어에 바인딩합니다.

타이틀이 타이틀을 시작한 사용자를 사용하는 경우 타이틀은 게임 플레이 및 상호 작용을 위해 사용자에게 할당된 연관된 게임 패드를 사용해야 합니다.

일시 중단 또는 제한 모드에서 다시 시작

GDK 단순화된 사용자 모델

Xbox 플랫폼은 게임을 처음 시작한 사용자가 여전히 로그인하도록 보장합니다. 제목은 UDA를 통해 변경 알림을 등록할 수 있습니다. 새로 바인딩된 컨트롤러를 사용하여 변경 사항이 있는 경우 게임 실행을 유도합니다.

일시 중단되거나 제한된 상태에서 재개할 때 게임 플레이의 모든 추가 사용자는 고급 사용자 모델의 다음 지침에 따라 처리해야 합니다.

GDK 고급 사용자 모델, ERA 및 UWP 다중 사용자 응용 프로그램

타이틀이 일시 중단에서 다시 시작하거나 제한 모드를 종료하는 경우, 타이틀은 사용자/컨트롤러 페어링의 유효성을 검사하고 적절하게 대처해야 합니다.

  • 타이틀은 사용자/컨트롤러 페어링에 변경 사항이 없는 경우 진행해야 합니다.
  • ERA 또는 UWP에서는 타이틀의 이전 활성 사용자가 여전히 로그인 상태지만 다른 사용자 개체에 있는 경우(일반적으로 사용자가 로그아웃한 후 타이틀이 일시 중단 상태인 동안 다시 로그인한 경우), 타이틀은 새로 로그인한 사용자 개체를 사용해 로그아웃한 사용자 개체를 대체해야 합니다. 사용자가 로그아웃한 적이 없는 것처럼 진행되어야 합니다.
  • 모든 예상된 사용자가 유효하고 다른 컨트롤러와 페어링된 경우, 타이틀은 새로운 시스템 컨트롤러 페어링을 업데이트하고 사용해야 합니다.
  • 예상된 사용자에게 유효한 컨트롤러가 없으면 타이틀은 계정 선택 기능을 사용하여 사용자에 대한 활성 컨트롤러를 설정합니다.
  • 예상된 플레이어가 로그인하지 않은 경우, 타이틀은 해당 플레이어를 게임에서 제거하거나 사용자 및 활성 컨트롤러를 다시 설정해야 합니다. 일반적으로 타이틀은 계정 선택 기능을 표시하여 이를 수행합니다. 사용자를 다시 설정하는 과정에서 새로운 사용자가 선택되고, 게임 상태가 사용자별로 저장되는 경우, 타이틀은 새로운 사용자의 상태를 게임 플레이에 사용해야 합니다.

추가 리소스

GDK를 사용하는 플레이어 ID에 대한 자세한 내용은 사용자 섹션을 참조하세요.

인증 테스트 사례

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

테스트 사례 GDK 간소화된 사용자 모델에 해당 GDK 고급 사용자 모델, ERA, UWP MUA에 해당
112-02 초기 사용자 및 컨트롤러 아니요
112-03 로그인한 사용자 없음 아니요
112-04 활성 사용자 표시
112-05 계정 선택 액세스 아니요
112-06 프로필 변경 처리 아니요
112-07 제한 모드 중 사용자 변경 아니요
112-08 일시 중단 중 사용자 변경 아니요

112-02 초기 사용자 및 컨트롤러

테스트 단계

  1. 프로필 A에 로그인하고 타이틀을 시작합니다.
  2. 활성 사용자가 타이틀을 제어할 수 있는지 확인합니다.
  3. 로그인하지 않은 프로필에서 [1]단계를 반복하고 타이틀 프롬프트를 확인하여 활성 사용자를 설정합니다.
  4. 활성 사용자를 설정하고 해당 사용자가 타이틀을 제어할 수 있는지 확인합니다.

예상 결과
타이틀은 활성 사용자를 타이틀을 실행한 컨트롤러/사용자 페어링으로 설정하거나 컨트롤러와 사용자를 식별하기 위한 참여 프롬프트를 표시하거나 로그인할 계정 선택기를 표시해야 합니다.

통과 예시

  1. 타이틀은 활성 사용자를 타이틀을 시작한 컨트롤러/사용자 페어링으로 설정합니다.
  2. 타이틀이 컨트롤러와 사용자 식별을 위해 참여 메시지를 표시합니다.
  3. 타이틀이 로그인을 위해 계정 선택을 표시합니다.

실패 예시

  1. 타이틀에서는 사용자가 처음 사용된 컨트롤러로 제목을 제어할 수 없습니다.
  2. 이 타이틀에서는 로그인하지 않은 상태에서 시작할 때 활성 사용자를 설정하라는 메시지가 표시되지 않습니다.

112-03 로그인한 사용자 없음

테스트 단계

  1. 로그인한 사용자가 없는지 확인합니다.
  2. 타이틀을 실행하고 사용자 데이터 저장을 지원하는 모든 모드로 들어갑니다.
  3. 각 모드가 데이터 손실이 발생하기 전에 사용자에게 로그인 기회를 제공하는지 확인합니다.
  4. 로그인 기회를 취소하고 타이틀이 진행 상황이 저장되지 않음을 나타내는 경고를 제공하는지 확인합니다.

예상 결과
타이틀이 일반적으로 사용자 데이터 또는 게임 상태를 저장하는 모드에 있는 경우 사용자에게 로그인 기회를 제공해야 합니다. 타이틀이 로그인 없이 게임 플레이를 계속할 경우 진행 상황이 저장되지 않음을 사용자에게 알려야 합니다.

통과 예시

  1. 로그인하지 않은 사용자가 일반적으로 사용자 데이터 또는 게임 상태를 저장하는 타이틀 모드에 액세스할 때 로그인 메시지가 표시됩니다.
  2. 사용자는 로그인 없이 모드를 계속 진행할 경우 진행 상황이 저장되지 않는다는 알림을 받습니다.

실패 예시

  1. 일반적으로 사용자 데이터 또는 게임 상태를 저장하는 모드에서 사용자가 로그인 없이 계속 진행할 경우 진행 상황이 저장되지 않는다는 알림을 받지 않습니다.
  2. 데이터 손실이 이미 발생한 이후에 사용자가 진행 상황을 저장할 수 없다는 알림을 받습니다.

112-04 활성 사용자 표시

테스트 단계

  1. 이전에 타이틀에서 사용되지 않았고 관련된 저장 데이터가 없는 프로필로 로그인합니다.
  2. 타이틀을 시작합니다.
  3. 프로필 관련 작업을 수행하기 전 타이틀의 UI 내에서 현재 사용자가 식별되는지 확인합니다. "프로필 관련 작업"으로는 사용자의 저장 게임 또는 기본 설정 변경, 사용자 프로필에 데이터 저장, 도전 과제 보상, 사용자 통계 작성, 사용자 데이터 또는 상태에 대한 로컬/클라우드 사용 또는 조작 등이 있습니다.
  4. 저장 파일을 만듭니다.
  5. 타이틀을 다시 시작하고 프로필 관련 작업을 수행하기 전 타이틀의 UI 내에서 현재 사용자가 식별되는지 확인합니다.
  6. Xbox Live 연결을 해제합니다.
  7. 타이틀을 다시 시작하고 프로필 관련 작업을 수행하기 전 타이틀의 UI 내에서 현재 사용자가 식별되는지 확인합니다.

예상 결과
프로필 관련 작업을 처음 수행하기 전에 타이틀에 현재 사용자 컨텍스트가 표시되어야 합니다.

통과 예시

  1. 프로필 관련 작업을 수행하기 전 타이틀 내에서 사용자의 게이머태그 및/또는 게이머 사진이 표시됩니다.
  2. 사용자 프로필을 사용하지 않는 타이틀은 현재 사용자를 표시하지 않습니다.
  3. 여러 사용자를 지원하는 게임 모드의 경우 타이틀에 여러 현재 사용자가 표시됩니다.

실패 예시

  1. 프로필 관련 작업을 수행하기 전에 타이틀의 현재 사용자가 표시되지 않습니다.

112-05 계정 선택 액세스

테스트 단계

  1. 프로필에 로그인하고 타이틀을 시작합니다.
  2. 타이틀에서 활성 사용자가 타이틀의 계정 선택기에 액세스하고 다른 프로필을 선택하도록 허용하는지 확인합니다.

예상 결과
타이틀은 사용자가 활성 사용자를 변경하기 위해 타이틀의 계정 선택기에 액세스할 수 있도록 허용해야 합니다.

통과 예시

  1. 타이틀이 사용자가 타이틀의 계정 선택기에 액세스하도록 허용합니다.

실패 예시

  1. 타이틀이 사용자가 타이틀의 계정 선택기에 액세스하도록 허용하지 않습니다.

112-06 프로필 변경 처리

테스트 단계

  1. 프로필에 로그인하고 타이틀을 시작합니다.
  2. 계정 선택 기능에 액세스하고 다른 프로필을 선택합니다.
  3. 타이틀이 올바르게 반응하고 현재 사용자의 컨텍스트를 새 프로필로 전환하는지 확인합니다.
  4. 타이틀에서 계정 선택 기능에 액세스할 수 있는 모든 위치에 대해 [1]-[4] 단계를 반복합니다.

예상 결과
타이틀에서 사용자가 다른 사용자 컨텍스트로 쉽게 변경할 수 있어야 합니다.

통과 예시

  1. 현재 사용자를 변경하면 데이터가 손실될 수 있다는 안내가 타이틀에 표시되고, 계정 선택 기능을 사용하기 전 사용자에게 확인을 요청합니다.
  2. 새 활성 사용자의 컨텍스트에 맞게 타이틀이 올바르게 업데이트됩니다.

실패 예시

  1. 새 활성 사용자의 컨텍스트에 맞게 타이틀이 올바르게 업데이트되지 않습니다.

112-07 제한 모드 중 사용자 변경

구성: 타이틀을 설치하고 'xbapp 목록'을 사용하여 타이틀의 응용 프로그램 사용자 모델 ID(AUMID)와 패키지 정식 이름(PFN)을 반환합니다.

테스트 단계

  1. 프로필 A에 로그인하고 타이틀을 시작합니다.
  2. 타이틀 내 여러 위치에서 Xbox 버튼을 눌러 타이틀을 제한합니다.
  3. 'xbapp query [PFN]'을 실행하여 타이틀이 제한 상태로 진입하는지 확인합니다.
  4. 타이틀이 제한된 동안 프로필 A에서 로그아웃하고 프로필 B로 로그인합니다.
  5. 홈에서 타일을 선택하여 타이틀을 재개합니다.
  6. 새 활성 사용자에 맞게 타이틀이 반응하는지 확인합니다.

예상 결과 타이틀이 제한 중단에서 재개될 때는 이전에 참여한 모든 사용자가 여전히 본체에 로그인하고 있는지 확인해야 합니다.

통과 예시

  1. 애플리케이션이 재개될 때 활성 사용자 컨텍스트를 프로필 B로 자동으로 전환합니다.
  2. 게임 타이틀이 타이틀에서 프로필 A를 자동으로 제거하거나 새 사용자를 재설정하고, 해당 신규 사용자의 상태를 게임 플레이에 사용합니다.

실패 예시

  1. 활성 사용자 컨텍스트에서 프로필 A를 제거하도록 타이틀이 업데이트되지 않습니다.
  2. 새 프로필이 선택된 후에도 게임 플레이에 프로필 A 상태가 계속 사용됩니다.

112-08 일시 중단 중 사용자 변경

구성: 타이틀을 설치하고 'xbapp 목록'을 사용하여 타이틀의 응용 프로그램 사용자 모델 ID(AUMID)와 패키지 정식 이름(PFN)을 반환합니다.

테스트 단계

  1. 프로필 A에 로그인하고 타이틀을 시작합니다.
  2. 타이틀 내 여러 위치에서 'xbapp suspend [PFN]'을 사용해서 타이틀을 일시 중단합니다.
  3. 타이틀이 완전히 일시 중단되고 일시 중단으로 인해 모든 HTTP 요청이 중단될 때까지 30초 이상 기다립니다.
  4. 'xbapp query [PFN]'을 실행하여 타이틀이 일시 중단 상태로 진입하는지 확인합니다.
  5. 타이틀이 일시 중단된 동안 프로필 A에서 로그아웃하고 프로필 B로 로그인합니다.
  6. 홈에서 타일을 선택하여 타이틀을 재개합니다.
  7. 새 활성 사용자에 맞게 타이틀이 반응하는지 확인합니다.
  8. 새로운 활성 사용자로 게임 플레이를 시작하고 사용자가 게임을 진행할 수 있는지 확인합니다.

예상 결과

  1. 타이틀이 일시 중단에서 다시 시작할 때는 이전에 참여한 모든 사용자가 여전히 콘솔에 로그인하고 있는지 확인해야 합니다.

통과 예시

  1. 애플리케이션이 재개될 때 활성 사용자 컨텍스트를 프로필 B로 자동으로 전환합니다.
  2. 게임 타이틀이 타이틀에서 프로필 A를 자동으로 제거하거나 새 사용자를 재설정하고, 해당 신규 사용자의 상태를 게임 플레이에 사용합니다.

실패 예시

  1. 활성 사용자 컨텍스트에서 프로필 A를 제거하도록 타이틀이 업데이트되지 않습니다.
  2. 새 프로필이 선택된 후에도 게임 플레이에 프로필 A 상태가 계속 사용됩니다.