見出し画像

UE5:Installed Build(rocket build)を試してみた

はじめに

UE5(5.1.1) で「Installed Build」を試したのでその備忘録です。
(複数人での作業を想定しています)

参考にさせて頂いた情報

手順

ビルド環境

VisualStudio2022/UE5.1.1/Perforce

基本的な流れ

ドキュメントに沿ってやっていくだけです。

使用したビルドコマンド

UEフォルダのトップディレクトリにバッチファイルを配置して実行しました。

cd Engine/Build/BatchFiles/
RunUAT.bat BuildGraph -target="Make Installed Build Win64" -script=Engine/Build/InstalledEngineBuild.xml -set:HostPlatformOnly=true -set:WithClient=true -set:WithServer=true -set:GameConfigurations="Shipping;Test;Development;DebugGame" -set:WithDDC=false -set:WithFullDebugInfo=true -clean
  • オプション:HostPlatformOnly

    • Installed Build をお使いのホスト プラットフォーム向けのみに設定するヘルパー オプションです。これにより、その他のプラットフォームを個別に無効にする必要がなくなります。

  • オプション:WithClient

    • ドキュメントには書いてないですけど、ビルドコンフィグレーションの「XXXXClient」を使いたい時に設定するのかなと思います。

  • オプション:WithServer

    • ドキュメントには書いてないですけど、ビルドコンフィグレーションの「XXXXServer」を使いたい時に設定するのかなと思います。

  • オプション:GameConfigurations

    • パッケージ化されたアプリケーションのコンフィギュレーションを指定します。

    • デフォルトだと以下になっていたので「Test」を追加「DefaultValue="Shipping;Development;DebugGame"」

  • オプション:WithDDC

    • エンジン コンテンツおよびテンプレート用のスタンドアロンの派生データ キャッシュを構築します。

  • オプション:WithFullDebugInfo

    • バイナリ エディタおよびパッケージ化されたアプリケーション ビルドの完全なデバック情報を生成します。

ビルドにかかる時間

自分の場合は 7~8 時間かかったと思います。
失敗したらまた1からなので根気との戦いですね。

XXXXClient と XXXXServerは?


デフォルト

デフォルトの状態でのビルドだと、こんな感じのビルド構成が選択できるようになっていると思います。
自分は「Client」「Server」も欲しかったので「Source」フォルダ以下に
「[ProjectName]Client.Target.cs」「[ProjectName]Server.Target.cs」を追加しました。
ドキュメント


修正バージョン

デフォルト設定から変更後は、こんな感じになります。

Installed Build を使うメリット

ビルド時間の短縮

エンジン側のビルドが走らなくなるので、ビルド時間の短縮になります。

  • カスタムエンジンを使う場合のフルビルド

    • 1時間13分ほどかかりました。

  • 「Installed Build」を使用した場合のフルビルド

    • ゲームプロジェクト側のコードが少ない状況だったので、数秒で終わりました。

ゲームプロジェクト側のバイナリだけ更新すればよい

ちゃんと理解できていないのですが、普通にカスタムエンジンを利用してビルドする際って、エンジン側で更新されるバイナリもアップしないと、PG以外の席でうまく動かなくなりますよね?

「Installed Build」を使用する場合だと、ゲームプロジェクト側のバイナリ更新だけでOKです。

Installed Build を使うデメリット

配布用のエンジンを生成する事になるので、エンジン側に変更があった場合は、再度生成し直す必要があります。
頻繁にエンジン側を変更する場合は、やめておいた方がよさそうです。

その他

サブミットエラー対応

カスタムエンジンのバイナリ等を Perforce にサブミットする際、たまに、サブミットエラーになるファイルがあります。

エラーが起きる際は「拡張子のないファイル」「ファイルタイプが unicode」の際におきがちなのですが、以下のバッチを作成して、拡張子のないファイルを検索しておいて、該当のファイルをサブミットする際は、ファイルタイプを確認し、必要に応じてファイルタイプを変更するようにしてました。

dir /b /a-d /s *.

無駄なファイルは Perforce 管理しない

pdb ファイルとか obj ファイルとか
無いと、デバッグ時にエンジン側のデバッグがしづらくなるのかな?
と思って、サブミットしてたんですけど、容量とエンジン更新時のサブミット量がバカにならんので Perforce からは削除しました。

プロジェクトが起動できない


different engine version

エンジンを更新した際は、プラグインの方の dll もう更新しないと
こんな感じのエラーが出るかもしれません。

おわりに

以上、備忘録でした。

もしサポート頂けたら いつか個人開発をする時に使わせて頂きます!