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が生成する初期化コマンドを1回実行します。このコマンドには、正しいネームスペース、ゲームプロジェクト、チャンネル、トラックがあらかじめ入力されています。ビルドマシン上でこのコマンドを実行すると、start_compile.batを含む一連のファイルが生成されます。Unreal Engineのインストール先、ゲームプロジェクト、ビルド出力フォルダという3つのローカルフォルダパスを入力すれば、スクリプトの準備は完了です。
それ以降、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への公開が失敗しても後続のステップをブロックすべきでない夜間ビルドなどで役立ちます。
制限事項と考慮事項
初回リリースでは新規ネームスペースのみ対応。 初期化コマンドが生成されるGet Startedページは、新規に作成されたネームスペースに対してのみ表示されます。既存のADTネームスペースをお持ちの場合、初回リリースではこのセットアップフローにアクセスできません。ゲーム設定から既存のネームスペースに対してGet Startedを有効化するオプションは、将来のリリースで予定されています。
初回リリースではWin64のみ対応。 この統合はWindows(Win64)のパッケージ済みビルドをサポートします。Linux、macOS、コンソールプラットフォーム向けのターゲットは将来のリリースで予定されています。
1回の公開実行につき1プラットフォーム。 1回の公開実行は1つのプラットフォームを処理します。複数のプラットフォームに公開する場合は、プラットフォームターゲットごとに1つのスクリプトを設定してください。
チャンネルとトラックはパイプライン実行前に作成しておく必要があります。 公開スクリプトは、ADT内の既存のチャンネルとトラックにビルドを割り当てます。これらを作成することはありません。スクリプト実行時にチャンネルまたはトラックが存在しない場合、公開ステップは直ちに失敗し、不足しているリソースをADT Hubで作成するよう明確なエラーで案内されます。
ADT CLIはHordeエージェントに事前インストールしておく必要があります。 生成されたファイルは、パイプラインを実行する各エージェントマシンのシステムPATH上にblackboxcli(v2.31.0以降)が利用可能であることに依存します。CLIは生成されたファイルにバンドルされていません。
50GBを超える大規模なビルドはサポートされていますが、処理が遅くなる場合があります。 ADTによって強制されるファイルサイズの上限はありません。50GBを超えるビルドは正常に完了しますが、転送時間はサイズに比例して増加します。再開可能なアップロードは将来のリリースで予定されています。
同一バージョンへの同時公開: 最後の書き込みが優先されます。 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 | 全般 | 非対応 |