메인 콘텐츠로 건너뛰기
이 항목에서는 다음을 다룹니다.

시작하기 전에

  • 제품에서 전체 XBOX services 기능 집합을 사용합니다. 새 제품은 제한된 XBOX services로 시작하며, 제품이 온보딩될 때까지 업적과 게이머스코어를 사용할 수 없습니다. 자세한 내용은 전체 XBOX services를 사용하도록 제품 온보딩 요청을 참조하세요.
  • Partner Center에서 업적을 구성하고 XBOX services 구성을 개발 샌드박스에 게시했습니다. 자세한 내용은 Partner Center에서 타이틀 관리 업적 구성을 참조하세요.
  • 개발 키트 또는 Windows PC가 같은 개발 샌드박스를 사용하며, 해당 샌드박스에 액세스할 수 있는 테스트 계정으로 로그인합니다. 자세한 내용은 XBOX services 샌드박스 개요를 참조하세요.
  • 게임에서 Gaming Runtime을 초기화한 다음 scid 멤버에 서비스 구성 ID(SCID)가 포함된 XblInitArgs 구조체를 사용하여 XblInitialize를 호출했습니다. SCID는 대/소문자를 구분합니다. 자세한 내용은 XBOX services API 사용 방법을 참조하세요.
  • 사용자를 로그인시키고 XblContextCreateHandle을 호출하여 해당 사용자에 대한 XblContextHandle을 만들었습니다.
테스트 실행 사이에 테스트 계정의 업적을 초기화하려면 Player Data Reset 도구(XblPlayerDataReset.exe)를 사용하세요. XUID로 플레이어를 초기화하려면 XblDevAccount.exe를 사용하여 로그인하는 개발자 계정에 제품 수준의 Tools Access 권한이 있어야 합니다.

업적 잠금 해제

업적이 Partner Center를 통해 구성되고 개발 샌드박스에 게시된 후 타이틀은 XblAchievementsUpdateAchievementAsync API를 호출하여 업적을 잠금 해제할 수 있습니다. 자세한 내용은 다음 섹션의 예제 코드를 참조하세요. 업적을 잠금 해제하려면 percentComplete를 100으로 설정합니다. 사용자가 온라인 상태이면 요청이 XBOX 서비스 업적 서비스로 즉시 전송되고 다음과 같은 사용자 환경이 트리거됩니다.
  • 사용자에게 업적 잠금 해제 알림이 표시됩니다.
  • 지정된 업적이 타이틀의 사용자 업적 목록에서 잠금 해제된 것으로 표시됩니다.
  • 잠금 해제된 업적이 사용자의 활동 피드에 추가됩니다.
사용자 환경은 이벤트 기반 업적이나 타이틀 관리 업적을 사용하는 업적에 대해 시각적으로 동일합니다.
사용자가 오프라인 상태인 경우 잠금 해제 요청은 사용자 디바이스에 로컬로 대기열에 넣어집니다. 네트워크 연결이 다시 설정되면 요청이 자동으로 업적 서비스로 전송되며(게임에서 이를 트리거하기 위한 작업은 필요하지 않음) 앞서 설명한 사용자 환경이 발생합니다.

업적의 완료 진행률 업데이트

업적을 잠금 해제하기 위한 사용자의 진행률을 업데이트하려면 XblAchievementsUpdateAchievementAsync를 호출합니다. percentComplete 인수를 1-100 사이의 정수로 설정합니다. 자세한 내용은 다음 예제 코드를 참조하세요. 업적의 진행률은 증가만 할 수 있습니다. percentComplete가 업적의 마지막 percentComplete 값보다 작은 숫자로 설정되면 업데이트는 무시됩니다. 예를 들어 업적의 percentComplete가 이전에 75로 설정된 경우 값이 25인 업데이트를 보내면 무시됩니다. 업적은 여전히 75% 완료된 것으로 표시됩니다. percentComplete가 100으로 설정되면 업적이 잠금 해제됩니다. percentComplete가 100보다 큰 숫자로 설정되면 API는 숫자를 정확히 100으로 설정한 것처럼 동작합니다.

현재 타이틀의 업적 업데이트

다음과 같이 XblAchievementsUpdateAchievementAsync를 호출하여 현재 타이틀의 업적을 업데이트할 수 있습니다. Flat C API
자세한 내용은 다음을 참조하세요.

다른 타이틀의 업적 업데이트

다음과 같이 XblAchievementsUpdateAchievementForTitleIdAsync를 사용하여 다른 titleId의 업적을 업데이트할 수 있습니다. Flat C API
자세한 내용은 다음을 참조하세요.

문제 해결

실패 HRESULT를 대응 가능한 범주로 분류하려면 XblGetErrorCondition을 호출하세요. 실패한 업데이트를 직접 다시 시도하지 마세요. 네트워크 또는 인증 문제, 제한(HTTP 429), 서버 오류(HTTP 5xx) 또는 분류되지 않은 오류로 인해 업데이트가 실패하면 XSAPI는 이를 오프라인 이벤트로 큐에 넣고 장치가 다시 온라인 상태가 되면 전송합니다. 이 경우 XAsyncGetStatus는 이벤트를 큐에 넣은 결과를 반환하며, 일반적으로 S_OK입니다. 다시 시도하면 서비스에서 업데이트를 두 번 받을 수 있습니다. 게임에 다음과 같은 결과가 전달될 수 있습니다. 이 항목의 맨 위로 돌아가기.
마지막 수정일 2026년 10월 30일