Progression Snapshot Interface

프로그레션 스냅샷 인터페이스로 에픽 계정을 통합합니다.

4 분 소요

프로그레션 스냅샷 인터페이스

프로그레션 스냅샷 인터페이스(Progression Snapshot Interface)는 에픽 계정 통합에 필요한 최종 사용자 경험을 지원하기 위해 플레이어별 게임 데이터를 저장하게 해줍니다. 현재로서는 동일한 사용자가 소유한 두 개의 에픽 계정을 하나의 에픽 계정으로 통합할 수 없습니다. 그러나 추후에 이러한 계정 통합 기능을 에픽 계정 사용자에게 지원할 예정입니다.

프로그레션 스냅샷은 에픽 계정이 두 개인 사용자가 두 계정으로 같은 게임을 플레이할 때 유용한 기능입니다. 이처럼 사용자가 두 에픽 계정을 하나로 통합하기로 한 경우, 에픽 오버레이에서는 양쪽 계정에 게임 진행상황에 대한 스냅샷을 보여줄 수 있습니다. 이를 통해 사용자는 계정 통합 시, 두 게임 진행상황 중 어떤 것을 유지할지 선택할 수 있습니다.

계정 통합은 에픽 계정을 보유한 상태로 에픽게임즈 스토어 이외의 인게임 환경에서 충돌이 없는 에픽 '프록시' 계정을 새로 만든 사용자에게 유용합니다.

인게임에서 생성한 에픽 '프록시' 계정을 기존 에픽 계정에 통합하면 사용자는 소셜 그래프, ecom 권한, 연결된 계정 및 기타 계정 정보를 통합할 수 있습니다.

에픽 계정 통합 및 사용자 경험에 대한 세부 사항과 제한 사항은 해당 기능이 최종 사용자에게 출시되기 전에 새 문서를 통해 알려드릴 예정입니다. 두 계정을 통합할 때 양쪽의 게임 진행상황이 충돌하는 사용자를 지원하기 위해 사전에 대비하여 게임에서 프로그레션 스냅샷을 지금부터 기록할 수 있습니다.

프로그레션 스냅샷 활용

프로그레션 스냅샷은 게임이 플레이되는 동안 개발자가 게임 진행상황에 관련된 데이터를 에픽 온라인 서비스 백엔드에 기록할 수 있는 수단을 제공합니다. 이 정보는 키-값 쌍의 형태이며, 크로스 프로그레션 환경에서 계정을 통합해야 하는 사용자에게 컨텍스트를 제공합니다. 사용자는 두 계정의 게임 진행상황을 비교한 뒤, 어떤 진행상황을 유지할지 선택할 수 있습니다.

alt_text

위 최종 사용자 경험 목업 디자인은 변경될 수 있습니다. 프로그레션 스냅샷 데이터는 인게임 에픽 오버레이 경험에서 에픽 계정 통합 프로세스의 일부분으로서 사용자에게 제공됩니다.

키-값 쌍은 백엔드에 그대로 저장되므로, 게임에서는 필요에 따라 저장된 모든 데이터를 현지화해야 합니다.

'캐릭터 레벨: 10'처럼 이해하기 쉬운 키-값 쌍을 사용하는 것이 좋습니다. 이외에도 '게임 진행도: 72%' 같은 다양한 변수를 기반으로 전체 진행상황 값을 계산할 수 있습니다.

선택된 계정 ID

계정을 통합할 때의 프로그레션 스냅샷과 사용자 선택은 애플리케이션별로 적용됩니다. 따라서 사용자는 새로 도입된 선택된 에픽 계정 ID(Selected Epic Account ID) 을 통해 게임별로 진행상황을 선택할 수 있습니다. 선택된 에픽 계정 ID는 사용자가 애플리케이션에 사용할 에픽 계정 ID로 로그인할 때 설정되는 새 에픽 계정 식별자입니다. 이는 항상 에픽 계정 ID와 같은 값으로 설정됩니다. 만약 사용자가 계정 통합을 진행하며 직접 계정 ID를 선택했다면, 애플리케이션이 모든 게임 스코프 데이터에 사용해야 하는 에픽 계정 ID로 설정합니다.

사용자 게임 프로그레션 스냅샷 저장하기

프로그레션 스냅샷은 게임 세션마다 한 번씩 로컬 사용자의 백엔드로 전송해야 합니다. 백엔드 전송은 로컬 사용자가 로그인 후 현재 상태를 성공적으로 로드한 상태를 비롯해 게임에서 중요한 진행을 완수할 때마다(예: 레벨 업, 매치 플레이, 스테이지 완료 등) 실시하는 것을 권장합니다.

프로그레션 스냅샷을 업데이트하면 이전에 저장한 스냅샷을 항상 덮어씁니다. 예를 들어, 기존 스냅샷에 4개의 키-값 쌍이 존재하는데 새 스냅샷에 3개만 포함되어 있는 경우, 최종 스냅샷에는 새로 업데이트된 3개의 키-값 쌍만 포함됩니다.

초기 프로그레션 스냅샷을 만들거나 기존 스냅샷을 업데이트할 경우, 같은 애플리케이션 코드 플로를 따릅니다. 먼저 EOS_ProgressionSnapshot_BeginSnapshot API로 로컬 스냅샷 상태를 초기화한 뒤, EOS_ProgressionSnapshot_BeginSnapshotOptions 구조에 있는 로컬 사용자의 EOS_ProductUserId 를 전달합니다.

그런 다음, EOS_ProgressionSnapshot_AddProgressionOptions API를 사용하여 게임 상태를 나타내는 키-값 쌍을 스냅샷 데이터로 추가하고 EOS_ProgressionSnapshot_AddProgressionOptions 구조에 있는 키-값 쌍과 SnapshotId 를 전달합니다. 프로그레션 스냅샷에 추가되는 키-값 쌍마다 이 API를 한 번씩 호출해야 합니다. 키-값 쌍이 스냅샷에 추가되는 순서는 에픽 오버레이에서 사용자에게 표시되는 순서와 동일합니다. 가장 중요한 정보를 첫 번째로 전달하여 사용자가 관심 있는 진행상황부터 빠르게 볼 수 있도록 해야 합니다.

스냅샷 데이터를 전부 입력했으면 EOS_ProgressionSnapshot_SubmitSnapshot API를 사용하여 수집한 스냅샷을 백엔드에 업로드해 EOS_ProgressionSnapshot_SubmitSnapshotOptions 구조에 있는 SnapshotId 를 전달합니다.

마지막으로는 EOS_ProgressionSnapshot_EndSnapshot API로 SDK에서 할당한 내부 메모리 리소스를 해제하여 EOS_ProgressionSnapshot_EndSnapshotOptions 구조에 있는 SnapshotId 를 전달합니다.

사용자 게임 프로그레션 스냅샷 삭제하기

프로그레션 스냅샷을 새로운 상태로 업데이트하기 전에 기존에 저장했던 프로그레션 스냅샷을 삭제할 필요는 없습니다. 다만, 통합 테스트와 같은 목적으로 프로그레션 스냅샷을 삭제해야 할 경우, 게임 클라이언트에서 로그인한 로컬 사용자의 스냅샷을 삭제할 수 있습니다.

로그인된 로컬 사용자의 저장된 프로그레션 스냅샷을 삭제하려면 EOS_ProgressionSnapshot_DeleteSnapshot API를 사용하여 EOS_ProgressionSnapshot_DeleteSnapshotOptions 구조에 있는 EOS_ProductUserId 를 전달합니다.

백엔드 데이터가 성공적으로 삭제되면 애플리케이션에서 전달한 CompletionDelegateEOS_EResult::EOS_Success 결과 상태를 반환합니다. 사용자에 필요한 프로그레션 스냅샷 데이터가 존재하지 않는 경우 EOS_EResult::EOS_NotFound 를 반환합니다.