Horde Buildgraph Integration
注釈:本資料はAI技術を用いて翻訳されています。
概要
ADT は Unreal Engine の Horde ビルドシステムと統合されており、すでに Horde を使用しているスタジオは、既存のパイプラインから離れることなく、またパッケージングの成功からダウンロード可能なビルドまでの間に手動の手順を挟むことなく、ビルドを直接 ADT に公開して配布できます。
この統合は、一度だけ設定する生成済みのビルドスクリプトを通じて機能します。設定後は、パッケージ済みの Win64 ビルドを生成する BuildGraph パイプラインの実行のたびに、そのビルドが自動的に ADT へ公開されます。バージョンの作成またはターゲット指定、ビルドの登録、バイナリのアップロード、設定済みのチャンネルおよびトラックへの結果の割り当てが行われます。
この統合が存在する理由
Horde はオーケストレーション(BuildGraph の実行、エージェントのスケジューリング、ログ、成果物の生成)を得意としています。ADT はパッケージが存在した後の処理(ビルドをバージョン管理されたリリースに整理すること、アクセス制御されたチャンネルへの割り当て、ADT Hub を通じた QA テスター、デザイナー、外部パートナーへの配布)を得意としています。
この 2 つのシステム間に統合がない場合、スタジオはビルドが完了するたびに手動での引き継ぎに直面します。ビルドエンジニアは、Horde から ADT へ各完成ビルドを移動させるために、ADT CLI を手動で実行するか(あるいはカスタムのビルド後スクリプトを維持するか)しなければなりません。このギャップにより、ビルドが準備できてからテスターがアクセスできるようになるまでに遅延が生じ、スクリプトを作成した担当者に依存する脆弱な体制が生まれます。
この統合により、この引き継ぎ作業がなくなります。Horde は引き続きビルドオーケストレーションを担当します。ADT は、ビルドの準備が整うと自動的に有効化される配布レイヤーになります。
統合の仕組み
ADT Hub が生成する、正しい namespace、ゲームプロジェクト、チャンネル、トラックがあらかじめ入力された単一の初期化コマンドを実行します。このコマンドをビルドマシン上で実行すると、start_compile.bat を含む一連のファイルが生成されます。ローカルの 3 つのフォルダーパス(Unreal Engine のインストール先、ゲームプロジェクト、ビルド出力フォルダー)を入力すれば、スクリプトの準備は完了です。
その時点から、start_compile.bat は実行されるたびに公開シーケンス全体を処理します。
Horde BuildGraph pipeline
│ Finishes packaging (Win64 output ready)
│
↓ start_compile.bat runs the publish sequence
ADT CLI called in order:
(1) Create or target the configured version in ADT
(2) Register the Win64 build
(3) Upload binaries to ADT storage
(4) Assign the build to the configured channel and track
│
↓
Build is immediately visible in ADT Hub — available for download
この公開シーケンスは冪等(べきとう)です。パイプラインの実行が途中で失敗し、再実行された場合、スクリプトは既存のバージョンとビルドを検出し、重複を作成することなく処理を続行します。
バージョン名は、指定がない場合、Unreal で一般的な命名規則に従って {Branch}-{CL} がデフォルトとして使用されます。明示的なバージョン名を指定することもできます。
主なメリット
- 手動での引き継ぎが不要。 一度セットアップすれば、ビルドは Horde から ADT へ自動的に移動します。QA テスターや関係者は、パイプラインの実行が成功してから数分以内に ADT Hub で新しいビルドを確認できます。介入は不要です。
- 一度きりの設定。 ADT Hub からの初期化コマンドは、ADT 固有の値があらかじめ入力されたファイルを生成します。ローカルのフォルダーパスを入力するだけで済みます。ビルドごとに設定を維持する必要はありません。
- 再実行しても安全。 公開スクリプトは冪等です。失敗後に再実行しても、重複を作成するのではなく、既存のバージョンにビルドが追加されます。パイプラインの失敗した実行を、事前に ADT をクリーンアップすることなく再トリガーできます。
- 認証情報はスクリプトに含まれない。 ADT の API キーは実行時に環境変数から読み込まれます。生成されたスクリプトファイルに書き込まれることも、ソースコード管理にコミットされることも、Horde のログに表示されることもありません。
- 非クリティカルな公開モード。 パイプラインを停止させる代わりに、公開ステップの失敗時に警告をログに記録するよう設定できます。これは、ADT への公開が失敗しても後続のステップをブロックすべきではないナイトリービルドで役立ちます。
制限事項と考慮事項
最初のリリースでは新規 namespace のみ利用可能です。 初期化コマンドが生成される Get Started ページは、新規に作成された namespace に対してのみ表示されます。既存の ADT namespace をお持ちの場合、最初のリリースではこのセットアップフローにアクセスできません。ゲーム設定から既存の namespace 向けに Get Started を有効にするオプションは、今後のリリースで予定されています。
最初のリリースでは Win64 のみです。 この統合は Windows(Win64)のパッケージ済みビルドをサポートします。Linux、macOS、およびコンソールプラットフォームターゲットは今後のリリースで予定されています。
公開の実行ごとに 1 プラットフォームです。 単一の公開実行は 1 つのプラットフォームのみを処理します。複数のプラットフォームに公開する場合は、プラットフォームターゲットごとに 1 つのスクリプトを設定してください。
チャンネルとトラックはパイプライン実行前に作成する必要があります。 公開スクリプトは、ADT 内の既存のチャンネルとトラックにビルドを割り当てます。これらを新規に作成することはありません。スクリプトの実行時にチャンネルまたはトラックが存在しない場合、公開ステップは直ちに失敗し、不足しているリソースを ADT Hub で作成するよう明確なエラーで案内します。
ADT CLI は Horde エージェントに事前インストールされている必要があります。 生成されたファイルは、パイプラインを実行する各エージェントマシンのシステム PATH 上に blackboxcli(v2.31.0 以降)が利用可能であることに依存しています。CLI は生成されたファイルにバンドルされていません。
50 GB を超える大規模なビルドはサポートされていますが、速度が低下する場合があります。 ADT によって強制されるファイルサイズの上限はありません。50 GB を超えるビルドは正常に完了しますが、転送時間はサイズに比例して増加します。再開可能なアップロードは今後のリリースで予定されています。
同一バージョンへの同時公開: 最後の書き込みが優先されます。 2 つのパイプライン実行が同時に同一バージョンへ Win64 ビルドを公開しようとした場合、最後に完了したアップロードが記録されます。スクリプトは、ターゲットバージョンに既存のビルドを検出すると警告をログに記録します。
サポートされているプラットフォーム
| エンジン | ビルドターゲット | サポート状況 |
|---|---|---|
| Unreal Engine 5.7 | Windows (Win64) | 対応済み — 検証済み |
| Unreal Engine 5.x (その他) | Windows (Win64) | ベストエフォート |
| Unreal Engine 5.x | Linux | 予定 |
| Unreal Engine 5.x | macOS | 予定 |
| Unreal Engine 5.x | Console (PS5, Xbox) | 予定 |
| Unity | いずれも | 非対応 |