Redistributable installer

ユーザー認証とソーシャル体験を統合および統一する再配布可能パッケージ

8 分で読めます

ゲームを複数の PC ストアフロントで配布している場合や、ストアフロントに頼らず配布している場合、Epic Online Services (EOS) を利用すると、ユーザー認証とソーシャル体験をディストリビューション全体で統合および統一できます。たとえば Steam では、EOS のゲーム内オーバーレイを使用すると、ユーザーは Epic のフレンドと Steam のフレンドをすべて 1 つのリストで表示し、インタラクションを行うことができます。

Epic Games ストアと Steam における PC 向けクロスプレイのソーシャル機能の詳細については、Epic Account Services を使用したクロスプレイ のページをご覧ください。

概要

EOS Social Panel と Epic アカウントのログイン体験は、ゲームのための EOS SDK 統合によって提供されており、プレイヤーに別々に配布されるインゲーム オーバーレイを使用しています。このオーバーレイ テクノロジーのコンポーネントを配布するため、ゲームのインストールの前提条件の一部としてインストールを行う、ゲーム用の別々の EOS サービスの再頒布可能パッケージが提供されています。

これによってバックエンドの制御されたアップデートを使用し、Epic によってオーバーレイを自動的に最新状態に維持できるため、ゲーム独自のアップデート サイクルからは分離されます。このメカニズムによって配信される自動アップデートにより、新しいコンテンツによる継続的なアップデートを行わなくなったゲームにも、新しいクロスプラットフォームのソーシャル機能が追加されます。

ゲームクライアントの起動フロー

ゲームクライアントの起動フロー

画像をクリックすると拡大されます。

Epic Games ストアの外部から配布する場合に EOS オーバーレイをゲームに追加するには、次の手順を実行します。

  • EOS サービスの再配布可能パッケージ「EpicOnlineServicesInstaller.exe」がゲームのインストールの一部として (またはゲーム ファイルの検証時に) インストールされるように追加する。また、ゲームのアンインストール時にアンインストールされるようにする。
  • EOS Bootstrapper アプリケーションを、ゲームを起動するメインの実行ファイルとして追加する。このアプリケーションは、ローカルにインストールされた EOS サービスの初期化とゲームクライアント アプリケーションの起動を行います。
  • ゲームクライアントを更新して起動時に EOS_Platform_GetDesktopCrossplayStatus SDK API を呼び出す。

ゲームクライアントの初期化中に EOS_Platform_GetDesktopCrossplayStatus SDK API を呼び出すと、次の前提条件が満たされているかどうかが確認されます。

  • EOS Bootstrapper を使用してゲームが起動された。
  • 期待どおりにインストールされている EOS 再配布可能パッケージ サービスが見つかった。
  • EOS SDK によって EOS オーバーレイが正常にロードされた。

このチェックにより、ユーザーがゲームへのログインを試行する前に必要なエラー処理を実行できます。たとえば、ゲームが正しく起動されなかったことをプレイヤーに伝えたり、ゲームのインストールが有効であることと必要なゲーム ファイルがすべて揃っていることをプレイヤーに確認してもらったりすることができます。これにより、プレイヤーは最高の体験を得られます。

サービスの再配布可能パッケージ インストーラ

EOS サービスの再配布可能パッケージは、EOS オーバーレイをダウンロードおよびインストールし、自動的に最新状態に維持します。このサービスは、ゲームがユーザーによって起動されると実行され、ゲームが終了されると自動的に終了します。サービスは、ゲームの実行時にのみ実行されます。オーバーレイのアップデートのチェックは、ゲーム起動時に実行されます。

このコンポーネントは、エンドユーザー向けにはゲーム ファイルの一部として配布され、ゲームのインストールの前提条件の一部としてインストールされます。ゲームがインストールまたはアンインストールされる際、EOS サービスの再配布可能パッケージもそれぞれインストールまたはアンインストールされます。また、重要な点として、ゲームのインストールを検証および修正する機能を配信プラットフォーム クライアントでユーザーに提供する場合、必要に応じて EOS サービスの再配布可能パッケージ インストーラを呼び出し、パッケージが修正されていることを確認してください。

Steam の installscript

これは、テンプレートの installscript.vdf ファイルであり、Steam プラットフォームでゲームを配布する際に使用できます。必要なのは、{EosProductId}{SteamAppId} を変更してゲームの識別子と一致させることのみです。このテンプレートでは、ゲームのルート ディレクトリ内の「EpicOnlineServices」フォルダ配下で「EpicOnlineServicesInstaller.exe」を配布することを想定しています。

ローカル開発用のサービスを実行する

ログイン タイプ EOS_LCT_AccountPortal または EOS_LCT_ExternalAuth いずれかの Epic アカウント ログイン (EOS_Auth_Login) を使用するアプリケーションでは、EOS サービスをバックグラウンドで実行する必要があります。ローカル開発では、たとえば Unreal Engine または Unity 内でゲームを実行するときに、Bootstrapper アプリケーションを使用する必要はありません。

ローカル開発の目的でサービスを実行するには、「Program Files (x86)\Epic Games\Epic Online Services\」のサービス インストール ディレクトリに移動し、EpicOnlineServices - Development.cmd ショートカットでサービスを起動します。サービスは、Windows タスクバーのシステム トレイ アイコンを右クリックすることで停止できます。サービスを有効にするには、コード開発環境の再起動が必要になる場合があるということに注意してください。

Bootstrapper アプリケーション

EOS Bootstrapper は実行ファイルであり、実際のゲームクライアントの実行ファイルを起動する、一時的なランチャー アプリケーションとして使用します。ユーザーがゲームを起動する際に、ターゲットの実行ファイルを実行することを目的としています。

EOS Bootstrapper は、ゲーム インストールの一部としてすでにインストールされている EOS サービスを起動します。EOS サービスは、自身のソフトウェア バージョンおよび EOS オーバーレイ コンポーネントに関する自動アップデート チェックを実行し、利用可能なソフトウェア アップデートがあれば自動的にインストールします。

EOS サービスが初期化されると、EOS Bootstrapper はターゲットのゲームクライアントの実行ファイルの実行に自動的に進みます。このフローにより、ゲーム起動時にゲーム アプリケーションおよび EOS SDK で EOS オーバーレイが確実に利用可能な状態になります。EOS オーバーレイは、インゲームの Epic アカウントのログイン体験および Epic Social Panel が機能するための要件となります。

Bootstrapper アプリケーションの使用方法

EOS Bootstrapper の実行ファイルは、ゲーム ファイルの一部として配布されます。通常、メインのゲームの実行ファイルと並べて配置されますが、ゲームのインストール ディレクトリの別のフォルダ内に配置することもできます。EOS Bootstrapper の実行ファイルは、その実行ファイルと同じ名前のコンフィグ ファイルとペアにします。たとえば、「LaunchGame.exe」と「LaunchGame.ini」のようにします。

コンフィグ ファイルを生成し、必要に応じて EOS Bootstrapper の実行ファイルのプログラム アイコンを変更するには、次のセクションの「EOS Bootstrapper Tool」を参照してください。

トラブルシューティング

EOS Bootstrapper は、実行のたびにログ ファイルを「%LOCALAPPDATA%\Epic Games\Epic Online Services\Bootstrapper\Logs\EOSBootstrapper.log」に書き込みます。ゲームクライアントのプロセスが起動しなかったり、EOS SDK が Epic アカウントのログインや EOS オーバーレイに関連する予期しないエラーを返したりする場合は、Bootstrapper のログのエラーを確認してください。

Bootstrapper tool

EOS Bootstrapper Tool は、コマンドライン ツールであり、EOS Bootstrapper アプリケーションによって使用されるコンフィグ ファイルを生成するために使用します。このツールを使用すると、ゲームクライアントの実行ファイルのプログラム アイコンを一致させる場合など、必要に応じて EOS Bootstrapper の実行ファイルを独自のプログラム アイコンで更新することもできます。

EOS Bootstrapper Tool は開発ツールであり、ゲーム ファイルに含めてエンドユーザーに配布するものではありません。通常はゲームクライアントのビルド パイプラインの最後に追加しますが、EOS Bootstrapper のコンフィグ ファイルを作成するための 1 回限りのスタンドアローン ツールとして使用することもできます。

Bootstrapper Tool の使用方法

ツールを実行すると、次の処理が行われます。

  1. ローカルの Bootstrapper の実行ファイル (「EOSBootstrapper.exe」) を出力ファイル パス (「--output-path」) にコピーする。
  2. 実行するターゲット アプリケーションの実行ファイル (「--app-path」) を使用し、コピーした Bootstrapper の実行ファイルのプログラム アイコンとバージョン情報 (設定されている場合) を更新する。
  3. コピーした出力の Bootstrapper の実行ファイルの横に新しい「.ini」コンフィグ ファイルを作成する。

完全な使用方法と利用可能なすべてのオプションを確認するには、コマンドラインのプロンプトで EOSBootstrapperTool.exe --help を実行してください。

使用例

開発時のディレクトリ ツリーが次のようになっているとします。

この場合、EOS Bootstrapper Tool は次のようなコマンドラインを使用して実行します。

このコマンドラインは、元の「EOSBootstrapper.exe」の名前を「LaunchGame.exe」に変更したうえで、ゲームのビルド ディレクトリ内のゲーム クライアントの実行ファイルと同じ並びにコピーし、コンフィグ ファイル「LaunchGame.ini」を生成します。

Bootstrapper のコンフィグ

EOS Bootstrapper アプリケーションを動作させるには、コンフィグ ファイルを使用する必要があります。このファイルは、EOS Bootstrapper Tool を使用して生成できます。また、便宜上手動で作成することもできます。

コンフィグ ファイルでは、EOS Bootstrapper アプリケーションの次のランタイム オプションを指定します。

オプション説明
ApplicationPath文字列実行するターゲット アプリケーションの実行ファイルをポイントします。Bootstrapper の実行ファイルとゲームクライアントの実行ファイルの両方が同じフォルダ内に配置されている場合、これは「Game.exe」のようなゲームクライアントの実行ファイルの名前になります。それらのファイルが異なるフォルダに配置されている場合、これは「Bin\\Game.exe」のような (実行ファイル自体の名前を含む) Bootstrapper の実行ファイルの位置からゲーム クライアントの実行ファイルへの相対パスとなります。
WorkingDirectory文字列(任意)。ターゲット アプリケーションの実行時に設定する作業ディレクトリの相対パス。
NoOperationブール[True, False]、整数[0, 1]任意。デフォルトでは false です。設定されている場合、ターゲット アプリケーションは EOS サービスを初期化することなく直接起動します。この設定は、他のデベロッパーやゲーム テスターが開発環境内でサービスの再配布可能パッケージ インストーラを実行するための統合が完全でない場合など、EOS サービスなしでゲームを実行するために使用できます。
WaitForExitブール[True, False]、整数[0, 1](任意。デフォルトでは false です。)設定されている場合、Bootstrapper は起動されているターゲット アプリケーションが終了するまで終了しません。この設定は、プラットフォーム ランチャーがターゲットの実行ファイルの終了時にゲームを実行中でないとマークするシナリオなどで利用できます。Bootstrapper は、プラットフォーム クライアントが起動するターゲットの実行ファイルとなるため、ゲームクライアント自体が終了するまで Bootstrapper がバックグラウンドでサイレントに実行されるように設定できます。

構成例: