Epic Games Store Testing Guide

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

19 분 소요

에픽게임즈 스토어에는 정식 빌드 인증 프로세스가 없지만, 스토어에 출시되는 모든 게임과 업데이트에 아래와 같은 테스트 케이스를 적용하여 최고의 플레이어 경험을 제공하는 것이 좋습니다.

에픽 온라인 서비스

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

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

테스트 단계

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

예상 결과

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

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

연결 인터페이스를 사용하면 에픽 온라인 서비스에 연결된 상태를 유지하기 위해 게임에서 플레이어의 액세스 토큰이 1시간마다 갱신됩니다. 게임은 AddNotifyAuthExpiration 함수를 사용하여 액세스 토큰이 만료되기 직전일 때 알림을 받아 로그인을 갱신해야 합니다. 로그인 갱신 프로세스를 수행하지 못하면 토큰 만료 시 서비스 호출에 실패하게 됩니다.

테스트 단계

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

예상 결과

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

오프라인 모드 지원

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

테스트 단계

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

예상 결과

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

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

퍼블리싱 툴(SPT)을 사용하여 환경설정된 모든 제품에는 세 가지 샌드박스로 구성된 표준 세트가 적용됩니다. 세 가지 샌드박스란 데브(Dev), 스테이지(Stage), 라이브(Live)입니다. 에픽 온라인 서비스를 초기화하려면 스태틱 샌드박스 ID 값과 디플로이 ID 값이 필요합니다. 따라서 빌드가 다운로드되고 여러 샌드박스에서 사용될 수 있도록 하려면 다음과 같은 구현을 사용하는 것이 좋습니다.

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

테스트 단계

  1. 데브 샌드박스에서 스테이지 샌드박스로 빌드를 승격합니다.
  2. 데브 샌드박스와 스테이지 샌드박스 모두에서 게임을 소유한 계정에 로그인합니다. 참고: 향후 런처가 개선되면 라이브러리 내에 '데브' 라벨과 '스테이지' 라벨이 추가될 예정입니다. 개선된 릴리스가 출시되기 전까지는 두 가지 라이브러리 타일이 동일하게 나타납니다.
  3. 데브 샌드박스에서 게임을 실행한 다음, 구현된 에픽 온라인 서비스 피처가 예상대로 작동하는지 확인합니다.
  4. 게임을 종료한 후 스테이지 샌드박스에서 재실행하고 같은 피처를 테스트합니다.

예상 결과

  • 여러 샌드박스에서 게임 피처를 계속 사용할 수 있어야 합니다.
  • 또한 플레이어 스테이트는 샌드박스 간에 구분되어야 합니다. 예를 들어 업적 또는 애드온 구매를 하나의 샌드박스에서만 완료했다면 다른 샌드박스에는 완료 항목이 표시되지 않아야 합니다.

플레이어 경험

유니코드 문자 지원

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

테스트 단계

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

예상 결과

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

재배포 가능 구성 요소 설치

현재 에픽게임즈 스토어에서는 DirectX 또는 Visual C++ 등의 일반적인 재배포 가능 구성 요소가 자동으로 설치되지 않습니다. 따라서 파트너는 게임의 모든 필수 구성 요소를 직접 설치해야 합니다. 사용 가능한 옵션에 대한 자세한 내용은 게임 필수 구성 요소 인스톨러 옵션 문서를 참조하세요. 에픽게임즈 런처는 BuildPatchTool을 사용하여 빌드를 업로드할 때 PrereqIds 실행인자를 통해 환경설정된 재배포 가능 필수 구성 요소를 설치합니다. 하지만 플레이어는 언제든지 이런 재배포 가능 구성 요소를 제거할 수 있습니다. 게임은 플레이어를 위해 누락된 필수 구성 요소 관련 메시지를 보내고 문제 해결에 필요한 정보를 제공해야 합니다.

테스트 단계

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

예상 결과

  • 게임은 누락된 재배포 가능 필수 구성 요소를 플레이어에게 알려줘야 합니다.
  • 1단계에서 설치에 성공했다면 런처는 나중에 게임을 설치할 때 같은 재배포 가능 구성 요소를 재설치하지 않습니다. 전체 플로를 다시 테스트하려면 C:\ProgramData\Epic\EpicGamesLauncher\BuildPatchServicesLocal.ini 파일의 설치된 필수 구성 요소가 포함된 행을 제거해야 합니다.

언어 및 로케일 세팅

  • 게임에서는 플레이어의 위치, 언어, 로케일을 자세히 설정할 수 있는 세 가지 핵심 세팅이 제공됩니다. 스토어는 계정 지역을 사용하여 플레이어에게 표시되는 오퍼, 가격, 연령 등급을 결정합니다. 로컬 시간대에 연결된 지역별 빌드와 실행 시간을 사용하는 게임의 경우에도 계정 지역을 사용하여 이런 피처를 구현합니다. 플레이어를 위한 지역 코드는 EOS_UserInfo의 '국가(Country)' 프로퍼티를 통해 얻을 수 있습니다.
  • 플레이어에게 이메일로 연락할 때는 선호하는 커뮤니케이션 언어에 따라 사용할 언어가 결정됩니다. 플레이어를 위한 언어 코드는 EOS_UserInfo의 '선호하는 언어(PreferredLanguage)' 프로퍼티를 통해 얻을 수 있습니다.
  • 런처 언어에 따라 에픽게임즈 런처에서 표시할 언어가 결정됩니다. 게임을 실행할 때 다음과 같은 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. 게임을 실행합니다. 예상 결과
  • 게임에서 올바른 표시 언어가 자동으로 설정되거나, 플레이어가 인게임 옵션을 사용하여 지원되는 언어 간에 자유롭게 전환할 수 있습니다.
  • 런처에서 제공하는 모든 명령줄 파라미터를 게임이 크래시 없이 처리하고 파싱할 수 있습니다.

빌드 업데이트 크기 최적화

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

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

테스트 단계

  1. 스테이징 아티팩트 또는 프라이빗 샌드박스를 사용하여 현재 버전의 게임을 설치합니다. 참고: 셀프 퍼블리싱 툴 클로즈드 베타에 참여 중인 파트너만 프라이빗 샌드박스에서 다운로드할 수 있습니다.
  2. 테스트 환경에서 게임의 다음 업데이트를 라이브로 설정합니다.
  3. 런처를 재시작한 후 업데이트의 다운로드 크기를 확인합니다. 예상 결과
  • 업데이트 시 다운로드 크기는 여러 빌드 간의 바이너리 델타 크기와 유사해야 하며, 게임을 완전히 다시 다운로드한 크기여서는 안 됩니다.
  • 특정한 두 빌드 버전 간의 업데이트를 위한 다운로드 크기는 BuildPatchTool의 BinaryOptimiseDelta 모드를 사용하여 추가로 최적화할 수 있습니다. 이 명령은 빈 CloudDir 폴더로 실행해야 하며, 이전 게임 업로드보다 처리 시간이 오래 걸릴 수도 있습니다.

런처 클라우드 저장

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

크로스 플레이

에픽게임즈는 플레이어가 어떤 스토어에서 게임을 구매하든 친구와 플레이할 수 있는 환경을 조성하고자 노력합니다. 따라서 에픽게임즈 스토어에 출시되는 전체 온라인 멀티플레이어 타이틀은 다른 모든 PC 스토어와의 크로스 플랫폼 멀티플레이어를 지원해야 합니다. 선택사항이지만 콘솔처럼 PC가 아닌 플랫폼과 크로스 플레이하는 것이 좋습니다. 자세한 내용은 멀티플레이어 크로스 플랫폼 기능을 참조하세요. 에픽게임즈 스토어에서는 특정 서비스나 계정 시스템을 사용하여 크로스 플레이를 구현할 필요가 없습니다. 에픽은 에픽 온라인 서비스와 에픽 계정을 단일 솔루션처럼 무료로 제공합니다. 기타 서드파티 솔루션이나 퍼블리셔 기반 솔루션도 지원되므로 언제든지 사용해도 좋습니다. 지원되는 멀티플레이어 기능은 에픽게임즈 스토어와 다른 PC 스토어 간에 동등해야 합니다. 아래 체크리스트를 활용하여 크로스 플레이 기준을 충족하는지 검증하고, 이런 기준에 대한 질문이나 우려사항이 있으면 비즈니스 개발 매니저나 기술 계정 매니저에게 제때 문의하시기 바랍니다. 담당자에게 문의하면 PC 스토어 간에 크로스 플레이 기능을 구현하는 방법도 자세히 알아볼 수 있습니다. [REGION:note] 공개 출시일로부터 최소 4주 전까지는 크로스 플레이가 활성화된 빌드를 제공해야 별도로 테스트하고 검증할 충분한 시간을 확보할 수 있습니다.

서버 브라우저/매치메이킹

서버 브라우저 또는 매치메이킹이 지원되는 경우 플레이어는 기본적으로 스토어 바운더리 간에 연결할 수 있습니다. 따라서 메뉴 옵션에서 수동으로 설정하는 등의 작업을 따로 하지 않아도 됩니다.

테스트 단계

  1. 1명 이상의 플레이어가 에픽게임즈 스토어에서 게임을 실행하도록 합니다.
  2. 1명 이상의 플레이어가 다른 스토어(예: Steam)에서 게임을 실행하도록 합니다.
  3. 게임에 서버 브라우저가 있으면 다음과 같이 합니다.
    • 에픽게임즈 스토어의 플레이어 한 명이 게임을 생성하도록 합니다.
    • 에픽게임즈 스토어와 기타 스토어의 다른 플레이어들이 게임에 참가하도록 합니다.
  4. 게임에 매치메이킹 기능이 있으면 다음과 같이 합니다.
    • 두 스토어의 모든 플레이어가 동시에 매치를 검색하도록 합니다.

예상 결과

  • 에픽게임즈 스토어 게임과 기타 PC 스토어(예: Steam) 게임이 모두 함께 나열되어야 합니다.
  • 에픽게임즈 스토어 플레이어는 서버 브라우저/매치메이킹을 통해 에픽게임즈 스토어 또는 다른 PC 플랫폼에서 호스팅되는 게임에 참가할 수 있습니다.
  • 다른 PC 플랫폼의 플레이어는 서버 브라우저/매치메이킹을 통해 에픽게임즈 스토어 또는 다른 PC 플랫폼에서 호스팅되는 게임에 참가할 수 있습니다.

게임 세션 초대

게임 세션에 직접 초대하는 기능이 지원되면 스토어 바운더리 전체에서 다른 플레이어를 초대할 수 있습니다. 지원되는 인게임 친구 기능은 에픽게임즈 스토어와 다른 PC 스토어 간에 동등해야 합니다. 초대 기능은 두 스토어 간에 양방향으로 작동해야 합니다.

테스트 단계

  1. 1명 이상의 플레이어가 에픽게임즈 스토어에서 게임을 실행하도록 합니다.
  2. 1명 이상의 플레이어가 다른 스토어(예: Steam)에서 게임을 실행하도록 합니다.
  3. 서로 다른 스토어를 사용하는 두 명 이상의 플레이어 간에 친구 관계를 생성합니다. 이때 게임에서 지원하는 어떠한 수단을 사용해도 좋습니다. 즉, 에픽 계정, Discord, 커스텀 계정 등 원하는 수단을 선택하면 됩니다.
  4. 플레이어 한 명이 다른 스토어에서 플레이 중인 플레이어에게 게임 세션 초대를 보내도록 합니다.

예상 결과

  • 에픽게임즈 스토어 플레이어는 다른 PC 플랫폼에서 플레이 중인 친구에게 직접 게임 초대를 보낼 수 있습니다.
  • 다른 PC 플랫폼의 플레이어는 에픽게임즈 스토어에서 플레이 중인 친구에게 직접 게임 초대를 보낼 수 있습니다.

에픽 계정 서비스

게임에서 에픽 계정 서비스를 사용하여 크로스 플레이 기능을 제공하는 경우 다음과 같은 체크리스트를 활용하여 모든 필수 시나리오가 포함되었는지 확인합니다. 이는 크로스 플레이를 구현할 수 있는 한 가지 방법일 뿐이며 원하는 다른 솔루션을 구현해도 좋습니다.

Steam 계정 연결

플레이어가 Steam 계정과 에픽 계정을 연결한 적이 없다면 플레이어가 Steam 계정을 사용하여 에픽 계정 서비스를 인증하려고 할 때 게임에서 계정을 연결하라는 메시지가 표시되어야 합니다.

테스트 단계

  1. Steam에서 게임을 실행합니다.
  2. 메뉴 옵션 등을 사용하여 인게임 에픽 계정 연결 플로를 트리거합니다.

예상 결과

  • 아직 연결되지 않았다면 Steam 계정 연결이 요청됩니다.

Steam 계정 재연결

Steam 계정이 플레이어의 에픽 계정에서 연결 해제된 경우 게임에서 Steam 계정과 에픽 계정을 재연결하라는 인게임 UI(예: '에픽게임즈 계정 연결' 버튼)를 플레이어에게 표시해야 합니다.

테스트 단계

  1. https://www.epicgames.com/account/connections의 '계정(Accounts)' 탭에서 기존 Steam 계정을 연결 해제합니다.
  2. Steam에서 게임을 실행합니다.
  3. 메뉴 옵션 등을 사용하여 인게임 에픽 계정 연결 플로를 트리거합니다.

예상 결과

  • Steam 계정 연결이 재요청됩니다.

Steam에서 에픽 계정 서비스 동의

에픽 계정 서비스 로그인 플로를 진행하는 과정에서 사용자는 게임/애플리케이션과 계정 정보를 공유하는 데 동의할지 묻는 메시지를 받게 됩니다. 이 메시지는 인증 인터페이스 로그인 과정에서 표시됩니다. 플레이어가 Steam 계정과 에픽 계정을 이전에 연결했지만 게임을 플레이하기 위한 에픽 계정 서비스 애플리케이션 동의를 아직 제공하지 않은 경우 EOS SDK는 인증 인터페이스 로그인 API 호출 중에 사용자 동의 여부를 묻는 메시지를 자동으로 표시합니다.

테스트 단계

  1. Steam에서 게임을 실행합니다.
  2. 인게임 에픽 계정 인증 플로를 트리거합니다.

예상 결과

  • 아직 제공되지 않았다면 에픽 계정 서비스 애플리케이션 동의가 요청됩니다.

Steam에서 에픽 계정 서비스 재동의

에픽 계정 관리 페이지에서 사용자는 데이터 공유에 동의한 애플리케이션 목록을 살펴볼 수 있으며, 애플리케이션 액세스를 철회할 수도 있습니다. 애플리케이션 동의를 철회한 사용자는 다음에 게임 애플리케이션 내에서 로그인을 시도할 때 동의할지 묻는 메시지를 받게 됩니다.

테스트 단계

  1. https://www.epicgames.com/account/connections의 '앱(Apps)' 탭에서 게임 동의를 철회합니다.
  2. Steam에서 게임을 실행합니다.
  3. 인게임 에픽 계정 인증 플로를 트리거합니다.

예상 결과

  • 에픽 계정 서비스 애플리케이션 동의가 재요청됩니다.