Epic Games Store Testing Guide

탁월한 플레이어 경험을 제공하는 테스트 케이스를 소개합니다.

11 분 소요

개요

이 가이드는 파트너가 에픽게임즈 스토어 요건을 준수하면서 사용자에게 최적의 경험을 제공할 수 있도록 지원하는 것을 목표로 합니다. 아래 섹션에서는 크로스 플레이 멀티플레이어 요건, 에픽 온라인 서비스(Epic Online Services, EOS), 다양한 플레이어 경험 주제에 관련된 테스트 케이스와 권장 사항을 소개합니다.

성공적인 출시를 위해 에픽게임즈 스토어에 제품 또는 업데이트를 배포하기 전에 이 테스트 케이스들을 검토하고 검증할 것을 강력히 권장 합니다.

에픽 온라인 서비스

에픽 계정 서비스 플레이어 동의

에픽 계정 서비스를 사용하는 게임에서 데이터를 공유하려면 플레이어의 동의가 필요합니다. 게임에 올바른 크리덴셜 타입을 사용하면 플레이어는 다음에 게임을 실행할 때 1회에 한해 동의 요청을 받게 됩니다. 에픽게임즈 스토어에서 판매되는 게임의 경우 플레어의 동의는 구매 플로 중에 자동으로 이루어집니다. 하지만 플레이어는 언제든지 계정 연결 페이지에서 동의를 철회할 수 있습니다.

테스트 단계

  1. 개발자 포털 조직과 연결되지 않은 계정에 로그인합니다.
  2. 계정 연결(Account Connections) 페이지에 게임이 없는지 확인합니다.
  3. 게임을 실행합니다.
  4. 메시지가 표시되면 동의 플로를 완료합니다.
  5. 게임을 종료한 후 재실행하여 동의 플로가 표시되지 않는지 확인합니다.

예상 결과

  • 동의 플로가 두 번째로 표시되지 않고 계정에서 게임플레이가 진행되어야 합니다. 에픽게임즈 스토어의 게임은 AccountPortal 대신 ExchangeCode를 사용해야 행동이 올바르게 나타납니다.
  • 게임이 실행되는 시점에 에픽 계정 서비스 애플리케이션은 검증된 상태여야 합니다. 애플리케이션이 검증되어 있지 않으면 조직 외부 계정에서 동의를 허용하지 않습니다.

성공 시나리오

  • 동의 절차가 처음 게임을 실행할 때만 표시됩니다.
  • 에픽 계정 서비스 애플리케이션에서 브랜드 리뷰가 완료되었습니다.

실패 시나리오

  • 플레이어가 처음에 동의를 제공했음에도 이후 게임 실행 시 동의 절차가 계속 표시됩니다.
  • 에픽 계정 서비스 애플리케이션에서 브랜드 리뷰가 완료되지 않았습니다. 브랜드 설정이 구성되지 않음 또는 리뷰 중 으로 설정되어 있습니다.

연결 인터페이스 액세스 토큰 갱신

연결 인터페이스를 사용하면 에픽 온라인 서비스에 연결된 상태를 유지하기 위해 게임에서 플레이어의 액세스 토큰이 1시간마다 갱신됩니다.

게임은 AddNotifyAuthExpiration 함수를 사용하여 액세스 토큰이 만료되기 직전일 때 알림을 받아 로그인을 갱신해야 합니다. 로그인 갱신 프로세스를 수행하지 못하면 토큰 만료 시 서비스 호출에 실패하게 됩니다.

테스트 단계

  1. 게임을 실행하고 초기 로그인 플로를 완료합니다.
  2. 60분 동안 대기합니다.
  3. 게임에 구현된 에픽 온라인 서비스 기능(예: 업적, 멀티플레이어, 플레이어 데이터 스토리지 등)을 사용해 봅니다.
  4. 게임 클라이언트가 EOS SDK로부터 OnAuthExpirationCallback 알림을 수신하며 EOS_Connect_Login API를 사용하여 성공적으로 인증을 새로고침하는지 게임 애플리케이션의 로컬 로그 파일을 통해 검증합니다.

예상 결과

  • 에픽 온라인 서비스를 사용하는 게임 피처는 최소 60분이 지난 후에 예상대로 계속 작동합니다.

성공 시나리오

  • 게임플레이 60분이 지난 뒤에도 에픽 온라인 서비스 기능을 사용할 수 있습니다.

실패 시나리오

  • 최초 로그인 후 60분이 지난 뒤에는 에픽 온라인 서비스 기능을 사용할 수 없습니다.

오프라인 모드 지원

사용자는 에픽게임즈 런처를 통해 오프라인 모드로 전환할 수 있습니다. 오프라인 모드로 전환하면 epicusernameepicuserid 명령줄 실행인자가 실행 시 게임 프로세스로 전달되지만

아무 교환 코드도 제공되지 않으며, 권한 확인을 비롯한 아무 에픽 온라인 서비스 기능도 게임에서 사용할 수 없게 됩니다. 개발자는 권한에 따라 제한되는 모든 추가 콘텐츠에 대한 액세스를 제한하거나 허용할 수 있습니다. 또는 플레이어가 특정 기간 동안 오프라인으로 진행할 수 있도록 허용하는 보안 권한 캐시를 구현할 수 있습니다.

테스트 단계

  1. 인터넷에 연결된 상태에서 에픽게임즈 런처의 설정(Settings) 메뉴에 있는 오프라인 탐색 모드 활성화(Enable Offline Mode Browsing) 를 선택합니다.
  2. 런처를 종료하고 컴퓨터의 인터넷 연결을 끊습니다.
  3. 런처를 재시작하고 계정의 이메일 주소를 입력하여 계속 진행합니다.
  4. 게임을 실행합니다.

예상 결과

  • 게임이 안정적으로 유지되며, 게임 내 온라인 영역에 들어가려는 플레이어에게 인터넷이 연결되지 않았다는 메시지를 보냅니다.

성공 시나리오

  • 오프라인 모드에서도 게임을 완전히 플레이할 수 있습니다.
  • 오프라인 모드에서도 게임을 플레이할 수 있지만, 특정 콘텐츠 액세스가 제한됩니다.
  • 오프라인 모드에서 게임을 실행할 수 없다고 플레이어에게 알립니다.

실패 시나리오

  • 오프라인 모드에서 게임을 실행하면 크래시가 발생합니다.
  • 오프라인 모드에서 게임을 실행하면 잘못된 정보나 불필요한 정보가 표시됩니다.

샌드박스/디플로이 ID 처리(퍼블리싱 툴 제품 전용)

에픽게임즈 스토어 퍼블리싱 툴을 사용하여 구성된 모든 제품에는 세 가지 샌드박스로 구성된 표준 세트가 적용됩니다. 세 가지 샌드박스란 데브(Dev), 스테이지(Stage), 라이브(Live)입니다.

에픽 온라인 서비스를 초기화하려면 스태틱 샌드박스 ID 값과 디플로이 ID 값이 필요합니다. 따라서 빌드가 다운로드되고 여러 샌드박스에서 사용될 수 있도록 하려면 다음과 같은 구현을 사용하는 것이 좋습니다.

  • 샌드박스 ID : 실행 시 에픽게임즈 런처에서 얻을 수 있으며, ID 형식은 모든 게임에 제공되는 epicsandboxid 실행인자입니다.
  • 디플로이 ID : 해당 샌드박스의 예상 디플로이를 타기팅하는 커스텀 if/switch 문 블록 형태로 빌드 내에서 설정할 수 있습니다.

테스트 단계

  1. 데브(Dev) 샌드박스에서 스테이지(Stage) 샌드박스로 빌드를 승격합니다.
  2. 데브(Dev) 샌드박스와 스테이지(Stage) 샌드박스 모두에서 게임을 소유한 계정에 로그인합니다.
  3. 데브(Dev) 샌드박스에서 게임을 실행한 다음, 구현된 에픽 온라인 서비스 피처가 예상대로 작동하는지 확인합니다.
  4. 게임을 종료한 후 스테이지(Stage) 샌드박스에서 재실행하고 같은 피처를 테스트합니다.

예상 결과

  • 여러 샌드박스에서 EOS 피처를 계속 사용할 수 있습니다.
  • 플레이어 상태가 샌드박스 간에 구분됩니다. 예를 들어 하나의 샌드박스에서만 업적을 달성하거나 애드온을 구매했다면 다른 샌드박스에는 달성 및 구매한 것으로 나타나지 않아야 합니다.

성공 시나리오

  • 게임이 epicsandboxid 실행 실행인자를 처리하고 올바른 샌드박스 ID와 디플로이 ID를 동적으로 설정합니다.
  • 게임 종속성에 샌드박스 ID와 디플로이 ID 값을 하드코딩해야 하며, 각 값에는 라이브 값이 사용됩니다.

실패 시나리오

  • 라이브(Live) 샌드박스에서 게임을 다운로드하면 데브 또는 스테이지(Stage) 샌드박스/디플로이를 참조하며, 플레이어의 로그인이 차단됩니다.
  • 게임 출시 시 라이브 디플로이가 비공개(Private) 로 설정되어 있으며, 개발자 포털 조직 외부 플레이어의 로그인이 차단됩니다.

플레이어 경험

에픽게임즈 스토어 업적

에픽게임즈 스토어에 퍼블리싱되는 게임은 에픽게임즈 스토어 업적을 통해 다양한 게임 상호작용 간 사용자에게 경험치(XP) 보상을 제공해 플레이어 경험을 향상할 수 있습니다. 인게임 업적 통합을 위해 에픽 온라인 서비스 업적 기능을 사용합니다.

게임에 에픽 온라인 서비스 업적을 구현하면 개발자 포털에서 업적들의 XP 값을 설정해 에픽게임즈 스토어 업적을 구성할 수 있습니다. 플레이어를 인증하고 업적 진행상황과 잠금해제 상황을 기록하기 위해 에픽게임즈 스토어 업적에 에픽 계정 서비스를 사용해야 합니다.

플레이어 경험 최적화를 위해 에픽게임즈 오버레이를 활성화해 게임 내에서 업적과 업적 진행상황을 표시할 것을 권장합니다.

테스트 단계

  1. 게임을 실행합니다.
  2. 게임 내에서 에픽게임즈 계정에 로그인합니다.
  3. 업적이 잠금해제될 때까지 게임플레이를 진행합니다.

예상 결과

  • 에픽게임즈 오버레이가 활성화된 경우:
    • 오버레이(단축키 Shift+F3)의 업적 탭에 잠금해제 가능한 게임 업적이 표시됩니다.
    • 업적 탭에 있는 각 업적의 XP 값이 표시됩니다.
    • 화면 중앙 상단에 잠금해제 사운드와 함께 해당 업적에 맞는 등급(브론즈, 실버, 골드, 플래티넘 등)의 업적 잠금해제 알림이 표시됩니다.

성공 시나리오

  • 에픽게임즈 오버레이를 통해 게임 내에서 업적이 올바르게 표시되고 잠금해제됩니다.
  • 게임 내에서 업적이 올바르게 잠금해제되고 에픽게임즈 스토어의 게임 제품 페이지에서 업적이 표시됩니다.
에픽게임즈 스토어 업적이 표시된 에픽게임즈 오버레이
에픽게임즈 스토어 업적이 표시된 에픽게임즈 오버레이 예시

업적이 표시된 에픽게임즈 스토어 제품 페이지
업적이 표시된 에픽게임즈 스토어 제품 페이지 예시

실패 시나리오

  • 에픽게임즈 오버레이의 업적에 에픽 온라인 서비스 업적만 표시됩니다. XP, 희귀도, 등급이 표시되지 않습니다.
에픽 온라인 서비스 업적이 표시된 에픽게임즈 오버레이 예시
에픽 온라인 서비스 업적이 표시된 에픽게임즈 오버레이 예시

유니코드 문자 지원

플레이어는 Windows 계정과 에픽 계정 모두에서 라틴 문자가 아닌 문자를 표시명에 사용할 수 있습니다. 게임의 테스트 패스에 이렇게 구성한 사용자를 포함해야 합니다.

테스트 단계

  1. 라틴 문자가 아닌 문자가 포함된 Windows 사용자 계정에 로그인합니다.
  2. 라틴 문자가 아닌 문자가 포함된 표시명을 사용하는 에픽 계정에 로그인합니다.
  3. 라틴 문자가 아닌 문자가 포함된 폴더 안에 게임을 설치합니다.
  4. 게임을 실행합니다.
  5. 각 게임 모드로 들어가서 저장 데이터를 생성합니다.
  6. 게임을 종료한 후 재실행합니다.

예상 결과

  • 모든 게임 모드가 예상대로 작동해야 합니다.
  • 게임을 재실행한 후에도 저장 데이터에 계속 액세스할 수 있어야 합니다.

성공 시나리오

  • Windows 사용자 계정과 설치 폴더에 라틴 문자가 아닌 문자가 포함된 사용자가 게임을 실행하더라도 완전히 작동합니다.
  • 에픽게임즈 계정의 표시명이 게임 내에서 정확하게 표시됩니다.

실패 시나리오

  • 설치 폴더에 라틴 문자가 아닌 문자가 포함된 경우 게임을 실행하는 데 실패합니다.
  • 설치 폴더 또는 에픽게임즈 계정 표시명에 라틴 문자가 아닌 문자가 포함된 경우 플레이어 데이터를 저장하거나 로드하는 데 실패합니다.
  • 표시명에 라틴 문자가 아닌 문자 대신 null 문자가 표시됩니다.

재배포 가능 구성 요소 설치

현재 에픽게임즈 스토어에서는 DirectX 또는 Visual C++ 등의 일반적인 재배포 가능 구성 요소가 자동으로 설치되지 않습니다. 따라서 파트너는 게임의 모든 필수 구성 요소를 직접 설치해야 합니다. 사용 가능한 옵션에 대한 자세한 내용은 게임 필수 구성 요소 인스톨러 옵션 문서를 참조하세요.

에픽게임즈 런처는 빌드 패치 툴을 사용하여 빌드를 업로드할 때 PrereqIds 실행인자를 통해 구성된 재배포 가능 필수 구성 요소를 설치합니다. 하지만 플레이어는 언제든지 이런 재배포 가능 구성 요소를 제거할 수 있습니다. 게임은 플레이어를 위해 누락된 필수 구성 요소 관련 메시지를 보내고 문제 해결에 필요한 정보를 제공해야 합니다.

테스트 단계

  1. 구성된 재배포 가능 구성 요소를 포함하여 게임을 설치합니다.
    • 참고 : 런처는 반환 코드 0, 1638, 3010을 성공으로 처리합니다.
  2. 게임을 실행한 후 게임플레이를 진행합니다.
  3. 재배포 가능 필수 구성 요소를 제거합니다.
  4. 게임을 실행해 봅니다.

예상 결과

  • 게임은 누락된 재배포 가능 필수 구성 요소를 플레이어에게 알려줘야 합니다.

성공 시나리오

  • 게임을 처음 실행할 때 재배포 가능 필수 구성 요소가 설치됩니다.
  • 재배포 가능 필수 구성 요소가 제거된 경우 게임에서 플레이어에게 누락된 재배포 가능 필수 구성 요소를 알립니다.

실패 시나리오

  • 재배포 가능 필수 구성 요소가 제거된 경우 게임을 실행하는 데 실패합니다.
  • 게임에서 플레이어에게 문제 해결 방법을 알리지 않습니다.

언어 및 로케일 설정

게임에서는 플레이어의 위치, 언어, 로케일을 자세히 설정할 수 있는 세 가지 핵심 설정이 제공됩니다.

  • 계정 지역 : 스토어는 계정 지역을 사용하여 플레이어에게 표시되는 오퍼, 가격, 연령 등급을 결정합니다. 로컬 시간대에 연결된 지역별 빌드와 실행 시간을 사용하는 게임의 경우에도 계정 지역을 사용하여 이런 피처를 구현합니다. 플레이어의 지역 코드는 EOS_UserInfoCountry 프로퍼티를 통해 얻을 수 있습니다.
  • 선호하는 커뮤니케이션 언어 : 플레이어에게 이메일로 연락할 때는 선호하는 커뮤니케이션 언어에 따라 사용할 언어가 결정됩니다. 플레이어를 위한 언어 코드는 EOS_UserInfoPreferredLanguage 프로퍼티를 통해 얻을 수 있습니다.
  • 런처 언어 : 런처 언어에 따라 에픽게임즈 런처에서 표시할 언어가 결정됩니다. 게임을 실행할 때 다음과 같은 epiclocale 실행인자를 통해 모든 게임에 언어 코드가 제공됩니다.

지원하는 런처 언어

런처 언어epiclocale 실행인자
아랍어ar
영어en-US
독일어de
스페인어(스페인)es-ES
스페인어(라틴 아메리카)es-MX
프랑스어fr
이탈리아어it
일본어ja
한국어ko
폴란드어pl
포르투갈어pt-BR
러시아어ru
태국어th
터키어tr
중국어(간체)zh-Hans
중국어(번체)zh-Hant

테스트 단계

  1. 에픽게임즈 런처 언어 설정을 게임에서 지원하는 언어로 설정합니다.
  2. 게임을 실행합니다.

예상 결과

  • 게임에서 올바른 표시 언어가 자동으로 설정되거나, 플레이어가 인게임 옵션을 사용하여 지원되는 언어 간에 자유롭게 전환할 수 있습니다.
  • 런처에서 제공하는 모든 명령줄 파라미터를 게임이 크래시 없이 처리하고 파싱할 수 있습니다.

성공 시나리오

  • 게임이 epiclocale 실행인자를 처리하여 자동으로 게임 내 언어를 설정합니다.
  • 게임이 단일 디폴트 언어로 실행되지만, 플레이어가 인게임 옵션을 통해 언어를 직접 설정할 수 있습니다.

실패 시나리오

  • 게임의 제품 페이지에 지원하는 언어 목록이 표시되어 있지만 플레이어가 epiclocale 실행인자 또는 인게임 옵션을 통해 이 설정을 적용할 수 없습니다.

빌드 업데이트 크기 최적화

빌드 업로드 프로세스 중 빌드 패치 툴은 자동으로 빌드의 데이터와 이전 업로드를 비교하고, 생성된 패치를 최적화하여 기존 플레이어의 다운로드 크기를 줄입니다.

빌드 업로드 프로세스는 빌드 패치 툴 v1.5.0을 통해 개선되었으며, 이제 데이터는 원래 업로드의 단일 아티팩트 대신 제품에 연결된 모든 아티팩트에서 비교됩니다. 개발자 포털에서 다운로드할 수 있는 최신 버전의 빌드 패치 툴을 사용하는 것이 좋습니다.

테스트 단계

  1. 스테이징 아티팩트 또는 프라이빗 샌드박스를 사용하여 현재 버전의 게임을 설치합니다.
    • 참고 : 셀프 퍼블리싱 툴 비공개 베타에 참여 중인 파트너만 프라이빗 샌드박스에서 다운로드할 수 있습니다.
  2. 테스트 환경에서 게임의 다음 업데이트를 라이브로 설정합니다.
  3. 런처를 재시작한 후 업데이트의 다운로드 크기를 확인합니다.

예상 결과

  • 업데이트 시 다운로드 크기는 여러 빌드 간의 바이너리 델타 크기와 유사해야 하며, 게임을 완전히 다시 다운로드한 크기여서는 안 됩니다.
  • 특정한 두 빌드 버전 간의 업데이트를 위한 다운로드 크기는 빌드 패치 툴의 BinaryOptimiseDelta 모드를 사용하여 추가로 최적화할 수 있습니다. 이 명령은 빈 CloudDir 폴더로 실행해야 하며, 이전 게임 업로드보다 처리 시간이 오래 걸릴 수도 있습니다.

성공 시나리오

  • 플레이어가 문제없이 빌드 버전 간의 업데이트를 다운로드할 수 있습니다.

실패 시나리오

  • 업로드에 구식 빌드 패치 툴을 사용하기 때문에 플레이어가 빌드 버전 간의 업데이트를 하려면 게임 전체를 다시 다운로드해야 합니다.

런처 클라우드 저장

로컬에 데이터를 저장하는 모든 게임에서는 런처 클라우드 저장(Launcher Cloud Saves) 피처를 활용하는 것이 좋습니다. 자세한 테스트 케이스는 클라우드 저장 셋업 및 테스트 페이지를 참조하세요.

이지 안티 치트

이지 안티 치트를 사용하는 모든 게임은 출시 전에 안티 치트 통합 체크리스트에 설명된 테스트 케이스들을 검증했는지 확인해야 합니다.

크로스 플레이

에픽게임즈는 사용자가 어떤 스토어에서 게임을 구매하든 친구 또는 다른 플레이어와 플레이할 수 있는 환경을 조성하고자 노력합니다. 따라서 에픽게임즈 스토어에 출시되는 전체 온라인 멀티플레이어 타이틀은 다른 모든 PC 스토어프런트와의 크로스 플랫폼 멀티플레이어를 지원해야 합니다. 콘솔처럼 PC가 아닌 다른 플랫폼과의 크로스 플레이를 구현하는 것은 선택 사항이지만 권장합니다.

크로스 플레이는 특정 서비스 또는 계정 시스템을 통해 구현할 필요가 없습니다. 에픽은 에픽 온라인 서비스와 에픽 계정을 단일 솔루션처럼 무료로 제공합니다. 하지만 기타 서드 파티 솔루션이나 퍼블리셔 기반 솔루션도 지원되므로 언제든지 사용해도 좋습니다.

제품이 이 요건을 충족하는지 확인하실 수 있도록 크로스 플레이 지원 빌드를 위한 여러 가지 권장 테스트 케이스를 마련했습니다. 자세한 내용은 크로스 플랫폼 멀티플레이어 가이드라인을 참고하세요.