ゲームの前提条件プログラムのインストーラ オプション

Epic Games が提供するゲームの前提条件プログラムのインストーラ オプション。

Epic Games は以下の 3 つの前提条件インストーラ オプションを提供しています。

  • アプリローカル デプロイ(#アプリローカルデプロイ)

  • BuildPatchTool コマンドラインを使用した Epic Games Launcher(#BuildPatchToolコマンドラインを使用したEpicGamesLauncher)

  • バッチ スクリプト

始める前に

Visual Studio が提供するライブラリ DLL を使用するアプリケーションをビルドした場合、そのアプリケーションを実行させるためには、アプリケーションのユーザーのコンピューターにもその DLL が必要です。ほとんどのユーザーは、Visual Studio をインストールしていない可能性が高いため、ユーザーにこれらの DLL を提供する必要があります。Visual Studio では、これらの DLL をアプリケーションのインストーラに含めることができる再頒布可能ファイルとして提供しています。

アプリローカル デプロイ

アップロードするゲームを BuildPatchTool を使用してパッケージ化するときに、必要なダイナミックリンク ライブラリ (DLL) をゲームの実行可能ファイルと同じディレクトリにコピーすることで、前提条件プログラムのインストールを含めることができます。

これは、前提条件プログラムのインストールを含める唯一の方法ではないものの、Epic Games が推奨する方法です。アプリローカル デプロイを使用すると、管理者特権でのユーザー アクセスが不要であるだけでなく、すべてのユーザーがシステムを変更する必要がないというメリットがあります。

ただし、より複雑なインストールが必要な場合には、この方法は使用できないことがあります。また、必ずしもこの方法ですべての再頒布可能 DLL を配布できるわけではない場合もあります。もう 1 つの方法としては、BuildPatchTool コマンドラインを使用した Epic Games Launcher があります。

操作方法

必要な Visual Studio DLL を、インストール ディレクトリからアプリケーションのディレクトリにコピーします。アプリケーションにバンドルする必要のある DLL を特定するには、Microsoft の記事「再配布する DLL の決定」および「チュートリアル:アプリケーションのローカル フォルダーへの Visual C++ アプリケーションの配置」を参照してください。

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

依存 DLL のコピーが実行可能なソリューションではない場合、ゲームの初回の起動時に Epic Games Launcher でインストーラを実行させることができます。関連付けられている ID がローカル マシンにインストール済みの場合、インストーラはスキップされるため、インストール プロセスが表示されるのは、初回の起動時や新しい依存関係を含める場合のみです。

Epic Games Launcher で前提条件プログラムのインストールを設定すると、フル インストーラを実行することができます。ただし、次のような重大な欠点があります。昇格時のプロンプトが表示されてもユーザーが拒否したり、確認しなかったり、正しく理解できない可能性があります。また、前提条件プログラムのインストーラから 0 以外のリターン コードが返されると、問題が発生する可能性があります。また、この方法で Visual Studio DLL をインストールすると、DLL が失敗してアプリケーションを実行できなくなることがあります。詳細については、Microsoft の Web サイトの記事「配置方法の選択」を参照してください。

操作方法

Epic Games Launcher で前提条件プログラムのインストーラを構成するには、BuildPatchTool のコマンドライン引数を使用します。次のバッチ ファイルのスニペットの例では、最初のステップとして UE3Redist インストーラを実行する方法を示しています。

SET UE3_PREREQ_IDS="UE3Redist,NotSharedReq,SharedReq2,SharedReq3"
SET UE3_PREREQ_NAME="UE3 Redistributables"
SET UE3_PREREQ_PATH="Binaries\Windows\UE3Redist.exe"
SET UE3_PREREQ_ARGS=""

BuildPatchTool … -mode=PatchGeneration -PrereqIds=%UE3_PREREQ_IDS%
  -PrereqName=%UE3_PREREQ_NAME% -PrereqPath=%UE3_PREREQ_PATH%
  -PrereqArgs=%UE3_PREREQ_ARGS%

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

  • 前提条件プログラムのインストーラは Binaries\Windows サブディレクトリに格納されている

  • 前提条件には、人間が判読できる名前が付いている

  • インストーラを起動するかどうかは、前提条件プログラムの ID によって決まる

  • 複数のゲームで前提条件を共有する手段として、各 ID は、カンマ区切りのリスト (スペースは含まない) の前提条件ごとに一意である

この方法では、ゲームのアップデートで新しい前提条件が追加された場合に、再インストールをトリガーできます。前提条件のリストに新しい固有の ID を追加する必要があります。Launcher は、新しい ID がインストールされていないと認識し、インストーラを再度起動します。インストーラが正常に完了すると、Launcher はこれらの ID をローカル マシンにインストールされたものとしてマークし、再度インストーラを起動することはありません。

バッチ スクリプト

ゲームで上記の推奨方法が機能しない場合は、バッチ ファイルを使用して、前提条件プログラムがインストールされているかどうかを条件付きでチェックしてから、ゲームに渡すことができます。この方法は開発が簡単で柔軟性があります。ただし、Epic Games Launcher からゲームを実行すると、DOS ボックスが短時間点滅します。また、インストールに時間がかかる場合 (2 分以上)、ゲームに渡される前に交換コードが失効し、ゲームを再起動する必要がある場合があります。

操作方法

BuildPatchTool で指定されているように、実行可能ファイルとして使用するバッチ ファイルを作成します。このバッチ ファイルは前提条件をチェックして、コマンドライン引数をゲームに転送する必要があります。次のバッチ ファイルは、プレイヤーのマシンで UE3Redist.exe インストーラを実行する必要がある UE3 のタイトルを想定しています。このバッチ ファイルは、「Binaries」ディレクトリから実行されるように設定されており、「UE3Redist.exe」インストーラは「Windows」サブディレクトリに格納されています。

reg query HKEY_CLASSES_ROOT\Installer\Products\70140BF22CB7C94419A535B0925B0EEF

if %ERRORLEVEL% EQU 0 goto LAUNCH_UE3_GAME

.\Windows\UE3Redist.exe

:LAUNCH_UE3_GAME
UE3Game.com %*

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

BuildPatchTool … -mode=PatchGeneration -FeatureLevel=Latest -AppLaunch="Binaries\UE3Game.bat" …