Epic Games Store Testing Guide

優れたプレイヤー体験の提供に役立つテスト ケースです。

19 分で読めます

Epic Games ストアには正式なビルド認定プロセスはありませんが、以下の Epic Online Services と Player Experience のテスト ケースを適用し、ストアでリリースされるすべてのゲームおよびアップデートで可能な最善のプレイヤー体験を提供することを強くお勧めします。クロスプレイ テスト ケースは [マルチプレイヤー クロスプラットフォーム機能] (/epic-games-store/requirements-guidelines/distribution-requirements/multiplayer-reqs) を実装するすべてのゲームに対して検証されています。

Epic Online Services

Epic Account Services のプレイヤーの同意

Epic Account Services を利用するゲームでは、データ共有にプレイヤーの同意が必要です。Epic Games ストアで販売されるゲームの場合、この同意は購入フロー内で自動的に付与されます。ただし、プレイヤーはアカウントの Connections (接続) ページからいつでも同意を取り消すことができます。ゲームで正しい ログイン タイプ を使用している限り、プレイヤーはゲームの次回起動時に同意を行うよう 1 度だけ求められるはずです。

テストの手順

  1. Dev Portal の組織に関連付けられていないアカウントにサインインします
  2. アカウントの [Connections] ページにゲームがリストされていないことを確認します
  3. ゲームを起動します
  4. プロンプトが表示されたら、同意フローを完了します
  5. ゲームを終了して再起動し、同意フローが表示されないことを確認します

期待される結果

  • このアカウントでは、2 回目の同意フローが表示されることなくゲームプレイに進むことができる必要があります。なお、Epic Games ストアのゲームでは、正しい動作になるように AccountPortal ではなく ExchangeCode を使用してください。
  • ゲーム起動時に、Epic Account Services アプリケーションは有効な状態である必要があります。アプリケーションが未検証の場合、組織の外部のアカウントによる許可の付与は妨げられます。

Connect インターフェース トークンを更新する

Connect インターフェースでは、Epic Online Services への接続を維持するためにゲームでプレイヤーのアクセス トークンを 1 時間ごとに更新する必要があります。ゲームでは、 AddNotifyAuthExpiration 関数を使用し、アクセス トークンが期限切れになりそうな際、およびログインの更新時に通知されるようにする必要があります。この更新プロセスを行わないと、トークンが期限切れになった際にサービスの呼び出しが失敗します。

テストの手順

  1. ゲームを起動し、初回サインイン フローを完了します
  2. 60 分間待機します
  3. ゲームによって実装された Epic Online Services の機能 (アチーブメント、マルチプレイヤー、プレイヤー データ ストレージなど) を使用してみま
  4. ゲーム アプリケーションのローカル ログ ファイル全体で、ゲーム クライアントが EOS SDK からの OnAuthExpirationCallback 通知を受信し、EOS_Connect_Login API を使用して認証を正常に更新していることを確認します

期待される結果

  • Epic Online Services を利用したゲームの機能は、60 分以上経過しても期待どおりに引き続き機能します。

オフライン モードのサポート

Epic Games Launcher を使用すると、ユーザーは オフライン モード を選択できます。このモードは、起動時に epicusername および epicuserid コマンドライン引数をゲーム プロセスに渡しますが、交換コードは提供されず、利用資格チェックを含む Epic Online Services の機能はゲームで利用できません。デベロッパーは、利用資格によってゲートされる任意の追加コンテンツへのアクセスを制限または許可するよう選択できます。または、設定された期間にプレイヤーがオフラインで続行可能にするための安全な利用資格のキャッシュを実装できます。

テストの手順

  1. インターネットに接続された状態で、Epic Games Launcher の [Settings (設定)] メニューで [Enable Offline Mode Browsing (オフライン モードでのブラウズを有効化)] をオンにします
  2. Launcher を終了し、コンピュータのインターネット接続を切断します
  3. Launcher を再起動し、アカウントのメール アドレスを入力して続行します
  4. ゲームを起動します

期待される結果

  • ゲームでは安定した状態が維持され、有効な接続が必要なゲームの領域に入ろうとするとプレイヤーにインターネット接続がないというメッセージが表示されます。

サンドボックス/デプロイ ID の処理 (Publishing Tool 製品のみ)

Publishing Tools (SPT) を使用して構成されたすべてのツールは、Dev、Stage、および Live という 3 つのサンドボックスの標準セットを備えています。。Epic Online Services の初期化には静的なサンドボックス ID およびデプロイ ID の値が必要なため、次の実装により、ビルドが複数のサンドボックス内でダウンロードおよび使用される処理を可能にすることをお勧めします。

  • サンドボックス ID は、起動時にすべてのゲームに提供される epicsandboxid 起動引数の形式で Epic Games Launcher から取得できる
  • デプロイ ID は、ビルド内において、該当するサンドボックスに対し、期待されるデプロイをターゲットとするカスタムの if/switch ステートメント ブロックに設定できる

テストの手順

  1. ビルドを Dev サンドボックスから Stage サンドボックスに昇格します
  2. Dev サンドボックスと Stage サンドボックスの両方でゲームを所有するアカウントにサインインします。注記: 次回の Launcher の改善では「Dev」および「Stage」のラベルがライブラリ内に追加される予定です。このリリースまでは、この 2 つのライブラリ タイルは同じように表示されます。
  3. Dev サンドボックスでゲームを起動し、実装した Epic Online Services の機能が期待どおりに動作することを確認します
  4. Stage サンドボックスでゲームを終了して再起動し、同じ機能をテストします

期待される結果

  • ゲームの機能は、異なるサンドボックス間で利用可能なまま維持される必要があります。
  • プレイヤーの状態は、サンドボックス間で別々のものでなければなりません。アチーブメントやアドオンの購入が 1 つのサンドボックス内で完了した場合、それが他のサンドボックスに表示されてはいけません。

プレイヤーの体験

Unicode 文字のサポート

Windows アカウントと Epic アカウントの両方で、プレイヤーはラテン文字以外の文字を表示名に使用できます。ゲームのテスト パスには、この構成のユーザーを含める必要があります。

テストの手順

  1. 非ラテン文字を含む Windows ユーザー アカウントにサインインします
  2. 非ラテン文字を含む表示名の Epic アカウントにサインインします
  3. ゲームを起動します
  4. 各ゲーム モードに進み、セーブ データを作成します
  5. ゲームを終了して再起動します

期待される結果

  • すべてのゲーム モードは期待どおりに動作する必要があります
  • セーブ データにはゲームの再起動後もアクセスできる必要があります

再頒布可能パッケージのインストール

現在、Epic Games ストアでは、DirectX や Visual C++ などの共通する再頒布可能パッケージの自動インストールに対応していません。ゲームに前提条件が必要になる場合、パートナーがそのインストールに対応する必要があります。利用可能なオプションの詳細については、「ゲームの前提条件プログラムのインストーラ オプション」のドキュメントを参照してください。Epic Games Launcher は、BuildPatchTool を使用してビルドをアップロードする際に、PrereqIds 引数を使用して構成された前提条件の再頒布可能パッケージをインストールします。しかし、プレイヤーはいつでもこれらの再頒布可能パッケージをアンインストールするよう選択できます。ゲームでは、見つからない前提条件についてメッセージで表示し、問題に対処するために必要となる情報をプレイヤーに提供する必要があります。

テストの手順

  1. 任意の構成済み再頒布可能パッケージを含むゲームをインストールします。注記: Launcher は、リターン コード 0、1638、および 3010 を成功として処理します。
  2. ゲームを起動し、ゲームプレイに進みます
  3. 必要な前提条件をアンインストールします
  4. ゲームの起動を試みます

期待される結果

  • ゲームでは必要な再頒布可能パッケージがないことがユーザーに通知される必要があります
  • 手順 1 のインストールが正常に完了した後、Launcher は以降のゲームのインストールで同じ再頒布可能パッケージのインストールを再度試みることはありません。完全なフローを再テストするには、インストールされた前提条件を含む行を次のファイルから削除する必要があります。 C:\ProgramData\Epic\EpicGamesLauncher\BuildPatchServicesLocal.ini

言語およびロケールの設定

ゲームは、プレイヤーの位置、言語、およびロケールの詳細に関する主要な次の 3 つの設定にアクセスできます。

  • アカウントの地域は、Epic Games ストアがプレイヤーに表示されるオファー、価格、および年齢レーティングを決定するために使用されます。地域のビルドや現地のタイム ゾーンに関連付けられた起動時間があるゲームの場合、これらの機能を駆動するためにアカウントの地域も利用されます。地域コードは、 EOS_UserInfo の Country プロパティを使用してプレイヤーのために取得できます。
  • 優先コミュニケーション言語は、プレイヤーにメールで連絡する際の言語を決定するのに使用されます。この言語コードは、 EOS_UserInfo の PreferredLanguage プロパティ使用してプレイヤーのために取得できます。
  • Launcher の言語は、Epic Games Launcher 内で表示する言語を決定するのに使用されます。ゲーム起動時に、epiclocale 引数を使用して以下の言語コードがすべてのゲームに提供されます。
Launcher の言語epiclocale 引数
アラビア語ar
英語en-US
ドイツ語de
スペイン語 (スペイン)es-ES
スペイン語 (ラテンアメリカ)es-MX
フランス語fr
イタリア語it
日本語ja
韓国語ko
ポーランド語pl
ポルトガル語pt-BR
ロシア語ru
タイ語th
トルコ語tr
中国語 (簡体字)zh-Hans
中国語 (繁体字)zh-Hant

テストの手順

  1. Epic Games Launcher の [Language (言語)] 設定をゲームでサポートされる言語に設定します
  2. ゲームを起動します

期待される結果

  • ゲームでは自動的に正しい表示言語が設定されます。または、プレイヤーはゲーム内オプションを使用し、自由にサポートされる言語を切り替えることができます
  • ゲームでは、クラッシュすることなく、Launcher によって提供されるすべての コマンド ライン パラメータ を処理および解析できます

ビルドのアップデート サイズの最適化

ビルドのアップロード プロセスの一環として、 BuildPatchTool は自動的にビルド内のデータを以前のアップロードと比較し、生成されたパッチを最適化し、既存のプレイヤーのためにダウンロード サイズを低減します。

このプロセスは BuildPatchTool v1.5.0 で改善され、データは元のアップロードの単一の アーティファクト ではなく、製品 に関連付けられたすべてのアーティファクトに対して比較されるようになりました。Dev Portal からダウンロード可能になった BuildPatchTool の最新バージョンを使用することを強くお勧めします。

テストの手順

  1. ステージング アーティファクトまたは非公開のサンドボックスを使用し、ゲームの現在のバージョンをインストールします。注記: 非公開のサンドボックスからのダウンロード機能は、Self-Publishing Tools のクローズド ベータに参加されているパートナーのみが利用できます。
  2. テスト環境でゲームの次のアップデートを有効に設定します
  3. Launcher を再起動し、アップデートのダウンロード サイズを確認します

期待される結果

  • アップデートのダウンロード サイズの結果は、ゲームを完全に再ダウンロードしたサイズではなく、ビルド間のバイナリのデルタをおおよそ示すサイズになる必要があります
  • 2 つの特定ビルド バージョン間のアップデートのダウンロード サイズは、BuildPatchTool の BinaryOptimiseDelta モードを使用してさらに最適化できます。このコマンドは、空の CloudDir フォルダを使用して実行する必要があります。また、以前のゲームのアップロードと比較すると、処理完了までにさらに時間がかかる場合があります

Launcher のクラウド セーブ

ローカルでデータを保存するすべてのゲームで、Launcher のクラウド セーブ機能の利用をお勧めします。テスト ケースの詳細については、「クラウド セーブの設定およびテスト」のページを参照してください。

クロスプレイ

Epic Games では、ゲームの購入に利用したストアにかかわらず、プレイヤーがフレンドと一緒にプレイできるようにしたいと考えています。そのため、Epic Games ストアで販売されるオンライン マルチプレイヤー対応のすべてのタイトルは、他のすべての PC ストアフロントとのクロスプラットフォーム マルチプレイヤーをサポートしている必要があります。ゲーム コンソールなどの PC 以外のプラットフォームとのクロスプレイへの対応はオプションですが、推奨されています。詳細:マルチプレイヤー クロスプラットフォーム機能

Epic Games ストアでは、特定のサービスやアカウント システムを使用してクロスプレイを実装することを必須としていません。Epic では、1 つの利用可能なソリューションとして、 Epic Online Services および Epic アカウントを無料で提供しています。その他のサードパーティ ソリューションやパブリッシャー ベースのソリューションもサポートされ、歓迎されます。サポートを行う場合には、Epic Games ストアのマルチプレイヤー機能は、ほかの PC ストアフロントと同等のものである必要があります。 以下のチェックリストを使用し、クロスプレイの基準を満たしているか確認してください。また、これらの基準に関するご質問や懸念事項がある場合は、お客様を担当するビジネス デベロップメント マネージャーまたはテクニカル アカウント マネージャーまでその都度お問い合わせください。PC ストアフロント全体でクロスプレイ機能を実装する方法について、より詳しい情報を共有できる場合もあります。

なお、十分な時間をかけて個々のテストと検証を実施できるように、 一般発売の少なくとも 4 週間前 にクロスプレイ対応のビルドをご提供いただく必要があります。

サーバー ブラウザ/マッチメイキング

サーバー ブラウザまたはマッチメイキングがサポートされている場合、プレイヤーはデフォルトで (メニュー オプションを使用して手動でオプトインをすることなく) ストアフロントの枠を越えて接続できる必要があります。

テストの手順

  1. 1 人以上のプレイヤーで Epic Games ストアのゲームを起動します
  2. 1 人以上のプレイヤーで別のストアフロント (Steam など) のゲームを起動します
  3. ゲームにサーバー ブラウザがある場合:
    • Epic Games ストアの 1 人のプレイヤーでゲームを作成します
    • Epic Games ストアおよび他のストアフロントの他のプレイヤーはそのゲームに参加します
  4. ゲームにマッチメイキングがある場合:
    • 両方のストアフロントのすべてのプレイヤーで同時にマッチを検索します

期待される結果

  • Epic Games ストアおよび他の PC ストア (Steam など) のすべてのゲームが一緒にリストされる必要があります
  • Epic Games ストアのプレイヤーは、Epic Games ストアまたは別の PC プラットフォームでホストされているゲームに対し、サーバー ブラウザ/マッチメイキングから参加できます
  • 別の PC プラットフォームのプレイヤーは、Epic Games ストアまたは別の PC プラットフォームでホストされているゲームに対し、サーバー ブラウザ/マッチメイキングから参加できます

ゲーム セッションの招待

直接のゲーム セッションの招待をサポートしている場合、招待が、ストアフロントの枠を越えてサポートされている必要があります。サポートを行う場合には、Epic Games ストアのゲーム内のフレンド機能は、ほかの PC ストアフロントと同等のものである必要があります。これらの招待は、双方向で機能する必要があります。

テストの手順

  1. 1 人以上のプレイヤーで Epic Games ストアのゲームを起動します
  2. 1 人以上のプレイヤーで別のストアフロント (Steam など) のゲームを起動します
  3. ゲームでサポートされる方法 (Epic アカウント、Discord、カスタム カウントなど) にかかわらず、ストアフロントをまたいで 2 人以上のプレイヤー間でフレンドの関係を作成します
  4. 1 人のプレイヤーから、別のストアフロントでプレイしている別のプレイヤーに対してゲーム セッションの招待を送信します

期待される結果

  • Epic Games ストアのプレイヤーは、別の PC プラットフォームでプレイしているフレンドに直接のゲーム招待を送信できます
  • 別の PC プラットフォームのプレイヤーは、Epic Games ストアでプレイしているフレンドに直接のゲーム招待を送信できます

Epic アカウント サービス

ゲームで Epic Account Services を利用してクロスプレイ機能を提供している場合は、次のチェックリストを使用し、すべての必要なシナリオに対応していることを確認してください。これは、クロスプレイの実装を可能にする 1 つの方法ではあるものの、必須ではなく、他の任意のソリューションを実装することももちろん可能です。

Steam アカウントのリンク

プレイヤーが Steam アカウントと Epic アカウントをリンクしたことがなく、プレイヤーが Steam アカウントを使用して Epic Account Services を認証するよう選択した場合、ゲームではアカウントをリンクするようプロンプトを表示する必要があります。

テストの手順

  1. Steam でゲームを起動します
  2. ゲーム内の Epic アカウントのリンク フロー (メニュー オプションを使用するなど) をトリガーします

期待される結果

  • Steam アカウントがリンク済みでない場合、アカウントのリンクが求められます

Steam アカウントの再リンク

Steam アカウントのリンクがプレイヤーの Epic アカウントからリンク解除された場合、ゲームではプレイヤーに Steam アカウントと Epic アカウントを再リンクするためのゲーム内 UI を提示する必要があります ([Link Epic Games Account (Epic Games アカウントをリンク)] ボタンを使用するなど)。

テストの手順

  1. https://www.epicgames.com/account/connections の [Accounts (アカウント)] タブで既存の Steam アカウントをリンク解除します
  2. Steam でゲームを起動します
  3. ゲーム内の Epic アカウントのリンク フロー (メニュー オプションを使用するなど) をトリガーします

期待される結果

  • Steam アカウントの再リンクが求められます

Steam に関する Epic Account Services の同意

Epic Account Services のログイン フローの一環として、ユーザーにはアカウント情報をゲーム/アプリケーションと共有するための同意を求めるプロンプトが表示されます。このプロンプトは、Auth インターフェースのログインの一部として実行されます。 プレイヤーが以前に Steam アカウントと Epic アカウントをリンクしたものの、ゲームに対する Epic Account Services のアプリケーションの同意が行われていない場合、Auth インターフェースのログイン API 呼び出し中に EOS SDK によってユーザーに同意を求めるプロンプトが自動的に表示されます。

テストの手順

  1. Steam でゲームを起動します
  2. ゲーム内の Epic アカウントの認証フローをトリガーします

期待される結果

  • Epic Account Services のアプリケーションの同意が求められます (同意済みでない場合)

Steam に関する Epic Account Services の再同意

Epic アカウントの管理ページを使用すると、ユーザーはデータ共有の同意を行ったアプリケーションのリストを確認できます。このページでは、ユーザーがいずれかのアプリケーションへのアクセスを取り消す場合もあります。アプリケーションの同意が取り消された場合、次回ユーザーがログインしようとした際に、ゲーム アプリケーション内で同意を求めるプロンプトが表示されます。

テストの手順

  1. https://www.epicgames.com/account/connections の [Apps (アプリ)] タブでゲームへの同意を取り消します。
  2. Steam でゲームを起動します
  3. ゲーム内の Epic アカウントの認証フローをトリガーします

期待される結果

  • Epic Account Services のアプリケーションの同意が再度求められます