Game Prerequisite Installers

Epic Games ストアでサポートされる前提条件プログラムのインストーラ オプションの理解と実装

3 分で読めます

概要

Visual Studio で提供されるダイナミックリンク ライブラリ (DLL) を使用する製品をユーザーが実行するためには、それらの DLL をユーザーのローカル マシンで利用できるようにする必要があります。ユーザーは、Visual Studio をインストールしていない可能性が高いため、必ずうまくいくようにするため、これらの DLL を提供する必要があります。Visual Studio では、これらの DLL をアプリケーションのインストーラに含めることができる再配布可能なファイルとして提供しています。

Epic Games では次の 3 種類の前提条件プログラムのインストーラ オプションを用意しています。

アプリローカル デプロイメント

アップロードする製品を BuildPatchTool を使用してパッケージ化するときに、必要な DLL をアプリケーションの実行ファイルと同じディレクトリにコピーすることで、ほとんどの再配布可能なファイルを含めることができます。この配布方法をベストプラクティスとして推奨します。管理者特権でのユーザー アクセスが不要であるだけではなく、すべてのユーザーがシステムを変更する必要がないためです。

製品をより複雑な方式でインストールする必要がある場合、またはこの方法では配布できない DLL を使用している場合は、他の方法を使用できます。アプリローカル デプロイメントを使用できない場合、代替オプションとして、「BuildPatchTool コマンドラインを使用した Epic Games Launcher」 セクションを確認してください。

プロセス

アプリローカル デプロイメントを使用するには、必要な Visual Studio DLL を、インストール ディレクトリからアプリケーションのディレクトリにコピーします。

アプリケーションにバンドルする必要のある DLL を特定する方法については、Microsoft の以下の記事を参照してください。

BuildPatchTool コマンドラインを使用した Epic Games Launcher

アプリローカル デプロイメントを使用できない場合、ユーザーが製品を初めて起動したときに Epic Games Launcher でインストーラを実行させることができます。Epic Games Launcher は製品に対してどのインストーラが完了したのか記録しているため、ユーザーにインストール プロセスが見えるのは、最初にアクセスしたとき、または新しい依存関係がインクルードされたときだけです。

このオプションで完全なインストーラを実行できますが、この方法を使用するとかなりのデメリットがあります。昇格時のプロンプトが表示されてもユーザーが拒否したり、見落としたり、正しく理解できない可能性があります。また、前提条件プログラムのインストーラから 0 以外のリターン コード (1638、3010 を除く) が返されると、問題が発生する可能性があります。その上、この方法で Visual Studio DLL をインストールすると、アプリケーションが実行できなくなる障害につながることがあります。詳細については、Microsoft の Web サイトの記事 「展開方法を選択する」 を参照してください。

プロセス

Epic Games Launcher で前提条件プログラムのインストーラを構成するプロセスには、BuildPatchTool のコマンドライン引数を使用します。

次のバッチ ファイルのスニペットの例では、最初のステップとして UE3Redist インストーラを実行する方法を示しています。

このコンフィギュレーションは、以下を前提としています。

  • 前提条件プログラムのインストーラは「Binaries」\「Windows」サブディレクトリに格納されている
  • 各前提条件には、人間が判読できる名前が付いている
  • インストーラを起動するかどうかは、前提条件プログラムの ID によって決まる

この方法では、ゲームのアップデートで新しい前提条件が追加された場合に、再インストールをトリガーできます。この場合、前提条件のリストに新しい固有の ID を追加します。複数のゲームで前提条件を共有する手段として、各 ID は、カンマ区切りのリスト (スペースは含まない) の前提条件ごとに一意になっています。

前提条件が追加されると、ランチャーは新しい ID がインストールされていないことを認識し、インストーラを再起動します。インストーラが正常に完了すると、ランチャーはこれらの ID をローカル マシンにインストールされたものとしてマークし、再度インストーラを起動することはありません。

バッチ スクリプト

上記の推奨方法が対象製品で機能しない場合は、バッチ ファイルを使用して、前提条件プログラムがインストールされているかどうかを条件ごとにチェックしてから、アプリケーションに渡すことができます。

この方法は開発が単純で、柔軟性がありますが、考慮が必要な点があります。この方法では、Epic Games Launcher からゲームにユーザーがアクセスするとき、コマンドプロンプト ウィンドウが短時間点滅します。その上、時間がかかるインストール (5 分以上) の途中で、交換コードがアプリケーションに渡される前に失効することがあります。つまり製品の再起動が必要になります。

プロセス

この方法を使うには、BuildPatchTool で指定されているように、実行ファイルとして使用するバッチ ファイルを作成します。このバッチ ファイルは前提条件をチェックして、コマンドライン引数をアプリケーションに転送する必要があります。

次のバッチ ファイルは、ユーザーのマシンで UE3Redist.exe インストーラを実行する必要がある UE3 のタイトルを想定しています。このファイルは、「Binaries」ディレクトリから実行されるように設定されており、UE3Redist.exe インストーラは「Windows」サブディレクトリに含まれています。

これに対する BuildPatchTool の設定は次のとおりです。