Skip to main content
이 가이드는 2025년 10월 GDK를 사용한 PlayFab Game Saves의 Steam Deck 구현 요구 사항을 구체적으로 다룹니다. Steam Deck 지원을 구현하기 전에 기본 2025년 10월 GDK 구현 요구 사항을 완료했는지 확인하세요.

개요

Steam Deck Game Saves 통합은 크로스 플랫폼 요구 사항에 따라 다양한 수준의 복잡성으로 구현할 수 있습니다. 단순화된 Steam 전용 접근 방식이나 더 복잡한 인증 흐름을 가진 전체 XBOX 생태계 통합 중에서 선택할 수 있습니다.
중요한 차이 - 동기화 동작: Windows의 Game Saves는 완전히 프로세스 외에서 실행되며 게임의 수명 이후에도 동기화를 계속할 수 있습니다. Steam Deck에서는 Game Saves가 프로세스 내에서만 실행됩니다. 이는 게임이 종료되면 세이브 동기화가 중단됨을 의미하며, 동기화되지 않은 진행 상황을 잃지 않으려면 게임이 빈번한 동기화 패턴을 채택해야 합니다. 모든 플랫폼에 대한 모범 사례: 이러한 동기화 패턴은 Steam Deck에 필수적이지만, 모든 플랫폼, 특히 휴대용 디바이스나 갑작스러운 종료가 발생할 수 있는 시나리오(배터리 소진, 시스템 충돌, 강제 종료 이벤트)에 매우 권장됩니다.

동기화 엔진 동작 차이점

범용 동기화 권장 사항 (모든 플랫폼에 유용):
  • 세이브 데이터를 자주 동기화(예: 각 레벨, 체크포인트 또는 상당한 진행 후)
  • “게임 종료” 확인을 표시하기 전에 항상 동기화
  • 게임플레이 전환 중 백그라운드 동기화 고려
  • 종료 전 완료를 보장하기 위한 동기화 진행 표시기 구현
  • 배터리 소진이나 갑작스러운 종료가 흔한 휴대용 디바이스에 특히 중요

사전 요구 사항

Steam Deck 지원을 구현하기 전에 다음을 확인하세요:
  1. 2025년 10월 GDK 설정 완료: 2025년 10월 GDK 구현 가이드를 따르세요
  2. Steam API 통합: 기본 Steam API 초기화 및 Steam Deck 감지
  3. 통합 접근 방식 선택: XBOX 생태계 또는 사용자 지정 ID 통합 중에서 결정(아래 참조)
  4. 모든 필요한 DLL: Unified SDK DLL이 Steam 빌드와 함께 배포되어야 함

구현 접근 방식

Steam Deck은 서로 다른 복잡성 수준과 크로스 플랫폼 기능을 가진 두 가지 구현 접근 방식을 제공합니다. PlayFab Game Saves는 Steam 생태계 이외의 크로스 플랫폼 세이브 동기화에 유용합니다 - XBOX Live 통합(접근 방식 1) 또는 자체 사용자 지정 플레이어 ID 시스템(접근 방식 2) 중 하나가 필요합니다.

접근 방식 1: XBOX 생태계 통합 (권장)

이점:
  • 완전한 크로스 플랫폼 동기화: Steam Deck, XBOX 콘솔, Microsoft Store PC 및 기타 XBOX 지원 플랫폼 간에 세이브 데이터가 동기화됨
  • XBOX Live 통합: 플레이어가 XBOX gamertag를 사용하고 XBOX 소셜 기능에 액세스할 수 있음
  • 통합된 플레이어 ID: 모든 플랫폼에서 동일한 플레이어 프로필
  • 검증된 인증: XBOX Live의 성숙한 인증 인프라 활용
  • XBOX Game Studios 호환성: XBOX 퍼스트 파티 및 파트너 스튜디오를 위한 원활한 통합
복잡성:
  • 복잡한 인증: 사용자 지정 XUser 이벤트 핸들러 및 UI 콜백 필요
  • 개발 샌드박스 설정: 비소매 테스트 환경에 필요
  • 관리자 권한: 샌드박스 설정 중 레지스트리 수정에 필요
  • 추가 UI 구현: QR 코드 인증 및 gamertag 선택 대화 상자
선택 시기: XBOX 콘솔을 포함한 여러 플랫폼을 대상으로 하는 게임, XBOX Game Studios 타이틀 또는 완전한 XBOX Live 생태계 통합이 필요한 게임.

접근 방식 2: 사용자 지정 ID 구현 (대안)

이점:
  • 잠재적으로 감소된 로그인 복잡성: XBOX 사용자 인증 불필요
  • 레지스트리 구성 없음: 샌드박스 설정 불필요
  • XUser API 없음: 복잡한 이벤트 핸들러 제거
  • 사용자 지정 ID 유연성: 자체 크로스 플랫폼 플레이어 ID 시스템 구현
복잡성:
  • 수동 플레이어 관리: 자체 크로스 플랫폼 플레이어 ID 시스템을 구현해야 함
  • 제한된 생태계 통합: XBOX Live 소셜 기능이나 기존 XBOX 플레이어 기반에 액세스할 수 없음
  • 플랫폼 브리징: 다른 플랫폼 간에 플레이어를 연결하기 위한 사용자 지정 솔루션 필요
  • 추가 ID 인프라: 타사 ID 시스템을 구축하거나 통합해야 함
선택 시기: Steam 중심 게임, 기존 사용자 지정 ID 시스템이 있는 게임, 또는 XBOX Live 통합이 필요하거나 원하지 않는 개발 시나리오. OpenID Connect: 접근 방식 2의 경우, PlayFab은 LoginWithOpenIdConnect API 호출을 통해 OpenID Connect 인증을 지원하며, OpenID Connect 표준을 지원하는 사용자 지정 ID 공급자와 통합할 수 있습니다.

공통 설정 (두 접근 방식 모두)

다음 설정 단계는 선택한 구현 접근 방식과 관계없이 필수입니다.

1. DLL 배포 요구 사항

Steam Deck은 모든 Unified SDK DLL을 게임과 함께 배포해야 합니다: 필수 DLL:
  • libHttpClient.dll - HTTP 작업
  • PlayFabCore.dll - 인증 및 핵심 서비스
  • PlayFabGameSave.dll - Game Saves 기능
  • xgameruntime.dll - 핵심 SDK 기능 및 XBOX 로그인
선택적 DLL:
  • PlayFabServices.dll - 추가 PlayFab 서비스 (권장)
Steam Deck 배포 구조:

2. Steam 통합 사전 요구 사항

Steam API 통합

플랫폼 감지

초기화 초기에 플랫폼 감지를 구현합니다:

3. UI 콜백 구현

Steam Deck UI 요구 사항: 선택한 구현 접근 방식과 관계없이 Steam Deck에서는 모든 PlayFab Game Saves UI 콜백이 필수입니다. 이는 Steam Deck에 Game Saves 작업을 위한 내장 UI가 없기 때문이며, 따라서 애플리케이션이 모든 UI 대화 상자를 제공해야 합니다.

Game Saves UI 콜백 (두 접근 방식 모두 필수)

사용자 지정 ID 및 XBOX 생태계 구현 모두 동일한 PlayFab Game Saves UI 콜백이 필요합니다:
필수 Game Saves UI 대화 상자 (두 접근 방식 모두):
  • 진행률 대화 상자: 세이브 작업 중 동기화 진행 상황 표시
  • 오류 처리: 동기화 실패 메시지 및 재시도 옵션 표시
  • 충돌 해결: 디바이스 간 세이브 충돌 처리
  • 디바이스 경합: 여러 디바이스 액세스 시나리오 처리
  • 저장소 관리: 저장소 할당량 문제에 대해 사용자에게 알림

접근 방식 1: XBOX 생태계 통합 - 전체 구현

이 접근 방식은 Steam Deck, XBOX 콘솔, Microsoft Store PC 및 기타 XBOX 지원 플랫폼 간의 완전한 크로스 플랫폼 동기화를 제공합니다. 게임이 XBOX 플랫폼을 대상으로 하거나 XBOX Live 통합이 필요한 경우 이 접근 방식을 선택하세요.

개요

사전 요구 사항:
  • 공통 설정 완료 (위의 섹션 1-3)
  • 테스트를 위한 개발 샌드박스 액세스
  • 레지스트리 구성을 위한 관리자 권한 (개발/테스트만)

1. 레지스트리 구성

Steam Deck은 비소매 샌드박스 테스트를 위해 XBOX Live 샌드박스 구성이 필요합니다:
구성 세부 정보:
  • : HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\XboxLive\Sandbox
  • : 개발 샌드박스 ID (예: “XDKS.1”)
  • 타이밍: XBOX Live 서비스가 초기화되기 전에 설정해야 함
  • 권한: 관리자 액세스 필요
  • 사용: 비소매 샌드박스(개발/테스트 환경)에서 테스트할 때만 필요

2. XUser 플랫폼 이벤트 핸들러

Steam Deck은 XBOX 인증을 위해 두 가지 중요한 이벤트 핸들러 세트가 필요합니다:

A. Remote Connect 이벤트 핸들러

원격 인증 흐름(QR 코드/URL 표시)을 처리합니다:

B. SPOP (Sign-in Prompt) 이벤트 핸들러

사용자 계정이 다른 디바이스에 이미 로그인되어 있을 때 사용되는 SPOP 로그인 프롬프트를 처리합니다:
핸들러는 플레이어가 액션(여기서 로그인, 계정 전환 또는 취소)을 선택할 수 있는 UI를 제시하고 선택한 결과와 함께 XUserPlatformSpopPromptComplete(operation, result)를 호출해야 합니다.

3. 인증 UI 구현

Game Saves UI 콜백(섹션 3) 외에 XBOX 생태계 통합에는 다음이 필요합니다:
  • Remote Connect 대화 상자: 사용자가 다른 디바이스에서 인증할 수 있도록 QR 코드 및 URL 표시
  • SPOP Prompt 대화 상자: 사용자가 XBOX gamertag를 선택/확인할 수 있게 함

4. 초기화 시퀀스

XBOX 생태계 통합의 경우 다음 초기화 시퀀스를 따르세요:

5. 로그아웃 구현

Steam Deck은 저장된 XBOX 자격 증명을 지우기 위해 특별한 로그아웃 처리가 필요합니다:

6. 테스트 체크리스트

이 체크리스트를 사용하여 XBOX 생태계 구현을 검증하세요:
  • 인증 흐름: 원격 연결(QR 코드/URL) 인증 테스트
  • UI 콜백: 모든 Game Saves UI 대화 상자가 올바르게 표시되는지 확인
  • SPOP 프롬프트: gamertag 선택 및 확인 테스트
  • 자격 증명 지속성: 앱 재시작 시 로그인 지속성 테스트
  • 로그아웃: 로그아웃 시 자격 증명 정리가 제대로 이루어지는지 확인
  • 동기화 동작: 빈번한 동기화 패턴 및 종료 전 동기화 테스트
  • 데이터 손실 방지: 강제 종료 시나리오 중 최소한의 진행 손실 확인
  • 크로스 플랫폼 동기화: Steam Deck, XBOX 콘솔, Microsoft Store PC 간 세이브 동기화 테스트
  • 레지스트리 구성: 개발 환경에서 샌드박스 구성이 작동하는지 확인
  • XUser 이벤트 핸들러: Remote Connect 및 SPOP 핸들러가 올바르게 작동하는지 확인

접근 방식 2: 사용자 지정 ID 구현 - 전체 구현

이 접근 방식은 XBOX Live 통합 없이 자체 플레이어 ID 시스템을 사용할 수 있게 해줍니다. 게임이 Steam 중심이거나 기존 사용자 지정 ID 시스템이 있는 경우 이 접근 방식을 선택하세요.

개요

사전 요구 사항:
  • 공통 설정 완료 (위의 섹션 1-3)
  • 프로덕션 사용을 위한 사용자 지정 플레이어 ID 시스템
이점:
  • XBOX 인증 불필요
  • 레지스트리 구성 불필요
  • 관리자 권한 불필요
  • 더 간단한 UI(QR 코드 또는 gamertag 선택 없음)
제한 사항:
  • 자체 크로스 플랫폼 플레이어 ID를 구현해야 함
  • XBOX Live 소셜 기능 없음
  • 사용자 지정 플랫폼 브리징 솔루션 필요

1. 사용자 지정 ID 인증

크로스 플랫폼 플레이어 인증을 위해 자체 ID 시스템을 구현합니다:

2. 초기화 시퀀스

3. 로그아웃 구현

4. 테스트 체크리스트

이 체크리스트를 사용하여 사용자 지정 ID 구현을 검증하세요:
  • 사용자 지정 ID 시스템: 사용자 지정 플레이어 인증 및 ID 시스템 테스트
  • PlayFab 인증: LoginWithOpenIdConnect(OpenID Connect 사용 시) 또는 사용자 지정 인증 방법을 사용하여 PlayFab 로그인 테스트
  • 크로스 플랫폼 Game Saves 동기화: 모든 대상 플랫폼에서 세이브 동기화 테스트
  • UI 콜백: 모든 Game Saves UI 대화 상자가 올바르게 표시되는지 확인
  • 충돌 해결: 서로 다른 플랫폼의 디바이스 간 세이브 충돌 테스트
  • 동기화 동작: 빈번한 동기화 패턴 및 종료 전 동기화 테스트
  • 데이터 손실 방지: 강제 종료 시나리오 중 최소한의 진행 손실 확인
  • 사용자 지정 인증: ID 시스템의 로그인/로그아웃 흐름 테스트
  • 플랫폼 범위: 게임이 대상으로 하는 모든 플랫폼에서 테스트(Steam 디바이스뿐만 아니라)
  • 네트워크 시나리오: 오프라인/온라인 전환 테스트
  • 성능: 동기화 작업이 게임플레이 성능에 영향을 미치지 않는지 확인

샘플 코드 참조

두 접근 방식에 대한 전체 구현 예제는 샘플 프로젝트를 참조하세요:
  • 위치: PlayFabGameSaveSample-Windows
  • 주요 파일:
    • SteamIntegration.cpp/.h - Steam Deck 감지, 레지스트리 설정, 인증 핸들러
    • GameSaveIntegrationUI.cpp/.h - 두 접근 방식에 대한 UI 콜백 구현

관련 문서

마지막 수정일 2026년 8월 25일