Promote Build to Steam
Overview
Promote Build to Steam は ADT Hub 内のネイティブなパブリッシングアクションであり、ゲームスタジオが ADT で承認されたビルドを、プラットフォームを離れることなく、また外部のアップロードツールを実行することなく、直接 Steam のプレリリースブランチへプッシュできるようにします。スタジオ管理者は専用の Steam パブリッシングアカウントを一度だけ ADT に接続し、ゲームごとの設定を一度だけ構成すれば、それ以降は適切なアクセス権を持つチームメンバーであれば誰でも Hub からプロモーションをトリガーできます。
この機能は、ビルドパイプラインを ADT で管理し、Steam でリリースする PC ゲームスタジオ向けです。「ADT でビルドが承認された」状態と「Steam でビルドが公開された」状態の間のギャップ、つまり今日では独立した手動のワークフローを必要とし、プラットフォーム内での可視性がないというギャップを解消します。
Promote Build to Steam が存在する理由
ビルド管理に ADT を使用しているスタジオでも、Steam へリリースする際には依然として分断された最終ステップに直面します。ADT でビルドが承認された後、開発者は Steamworks のツールに切り替え、アップロードスクリプトを構成し、安全なシステムの外で Steam のパブリッシング認証情報を管理し、アップロードが成功したかどうかを確認するために Steam のバックエンドを手動でチェックしなければなりません。
このプロセスにはいくつかの点で脆弱さがあります。
- Steam のパブリッシング認証情報(専用のパブリッシングアカウントのユーザー名とパスワード)は、ADT と認証情報ストアの間に統合がないため、テキストファイル、共有パスワードマネージャー、またはローカルの設定ファイルなどに非公式に保存されています。
- ADT 内から Steam のアップロードが成功したかどうかを確認する方法がありません。確認するにはプラットフォームを離れ、Steam を直接チェックする必要があります。
- アップロードの失敗から復旧するには、プロモーション対象となった特定のビルドに紐づく文脈のない、不透明な SteamCMD のエラーメッセージをデバッグする必要があります。
- QA リードやプロデューサーなど、技術的な知識が少ないチームメンバーは、このプロセスに Steamworks の専門知識が必要なため、指導なしでは安全にプロモーションを実行できません。
Promote Build to Steam は、ビルドのアップロードから Steam への配信までの一連の全行程における単一のワークフローを ADT にします。
Promote Build to Steam の仕組み
この機能は ローカル実行モデル を中心に構築されています。ADT Hub(デスクトップアプリ)は、開発者のマシン上でオーケストレーターとして機能します。プロモーションがトリガーされると、Hub は ADT から構成と認証情報を取得し、必要な Steam 設定ファイルを生成し、開発者のローカルマシン上で SteamCMD を呼び出します。SteamCMD はデポを直接 Steamworks にアップロードします。Hub はアップロードログと Steam BuildID を取得し、監査証跡のためにそれらを ADT に報告します。
ADT 自体は次の 3 つの役割を果たします。構成プロバイダー、認証情報のボールト(保管庫)、そして監査レイヤーです。アップロード時にビルドの成果物が ADT のサーバーを経由することはありません。アップロードにクラウドワーカーは関与しません。
ADT Cloud (config + credentials + audit trail)
│
│ Hub retrieves config + credentials at runtime
↓
ADT Hub (local orchestrator on developer's machine)
│
│ Hub generates VDF files, invokes SteamCMD
↓
SteamCMD (installed on developer's local machine)
│
│ Uploads depot directly to Steamworks
↓
Steam (build registered, BuildID returned)
│
│ Hub captures BuildID + log, reports to ADT
↓
ADT Cloud (promotion record updated, audit trail written)
構成モデル
構成は 2 つのレイヤーに分かれています。
ネームスペースレベル(スタジオ全体、スタジオ管理者が ADT Web で一度だけ設定) スタジオ管理者は、ユーザー名とパスワードを入力して、専用の Steam パブリッシングボットアカウントを接続します。ADT はこれらの認証情報を安全な認証情報ストアに保存します。チームメンバーがローカルにコピーを保持する必要はなく、認証情報がどのマシンのディスクにも書き込まれることはありません。ADT は TOTP 共有シークレットを保存しません。代わりに、プロモーションをトリガーする人は、アップロード開始の直前にボットアカウントの Steam Mobile Authenticator による現在の Steam Guard ワンタイムコードの入力を求められます。このコードは一度だけ使用され、永続化されることはありません。(ボットアカウントは Steam Mobile Authenticator を使用する必要があります。プロモーションフローではメールベースの Steam Guard はサポートされていません。)
ゲームレベル(ゲームごと、スタジオ管理者が ADT Web で一度だけ設定) スタジオ管理者は、ゲームごとに Steam App ID、デポとフォルダのマッピング(各 Steam デポがどのローカルフォルダを受け取るか)、およびトラックとブランチのマッピング(どの ADT のチャンネル + プラットフォームトラックがどの Steam プレリリースブランチにマッピングされるか)を構成します。デフォルトのファイル除外パターンもここで設定でき、そのゲームのすべてのプロモーションフォームにあらかじめ入力されます。
Hub レベル(開発者ごと、ADT Hub で一度だけ設定) ビルドをプロモートする各開発者は、Hub の設定でローカルの SteamCMD インストールへのパスを構成します。Hub は、プロモーションが進行する前に、そのパスに SteamCMD 実行ファイルが存在することを検証します。
プロモーションのエントリーポイント
Hub にはプロモーションをトリガーできる場所が 3 つあり、それぞれ異なるワークフローに適しています。
-
Tracks タブ(チャンネルレベル) — 開発者はトラックカードのコンテキストメニュー(⋯)をクリックし、Build サブメニューを開いて「Promote to Steam」を選択します。そのトラックのヘッドビルドが自動的にあらかじめ入力されます。これは、すでに特定のチャンネル内で作業している開発者にとって最も速い経路です。
-
Versions メニュー(ゲームレベル) — 開発者はバージョンを参照し、その個々のビルドカードまでドリルダウンして、特定のビルドカードから「Promote to Steam」を選択します。その文脈からバージョンとビルドの両方があらかじめ入力されます。
-
Promotions メニュー(ゲームレベル) — 開発者は Promotions メニューを開いて「Promote to Steam」をクリックし、その後ビルドを手動で選択します。これは、単発のプロモーションや、特定のトラックに紐づいていないビルドをプロモートする場合に便利です。
3 つのエントリーポイントはいずれも、同じ 3 ステップの確認フォームにつながります。
プロモーションフォーム
エントリーポイントに関係なく、すべてのプロモーションは同じ 3 ステップのフォームに従います。
- ステップ 1 — ビルドとターゲット: あらかじめ入力されたビルド、App ID、およびデポを確認します。Steam ブランチを選択または確認します(プロモーションごとに編集可能で、デフォルトはトラックにマッピングされたブランチです)。
- ステップ 2 — 詳細: ビルドの説明、内部メモ(ADT にのみ保存され、Steam には送信されません)、ファイル除外を追加し、ビルドサイズを確認します。
- ステップ 3 — レビューと確認: すべてのフィールドの概要です。送信するとプロモーションがキューに入れられ、開発者は Promotions メニューに誘導されます。
ライブの進捗とステータス
プロモーションが送信されると、Hub は SteamCMD を呼び出し、ライブログをリアルタイムで Promotions メニューにストリーミングします。開発者は ADT を離れることなくアップロードの進捗を確認できます。アップロードは、ローカルマシン上で Hub が実行されている限り継続します。
アップロードが完了すると、Hub は SteamCMD のログを解析して BuildID を取得します。結果は ADT のプロモーションレコードに書き込まれ、チーム全体に表示されます。
| ステータス | 意味 |
|---|---|
| In Progress(青) | SteamCMD がアップロードを実行中 |
| Succeeded(緑) | SteamCMD が正常に完了 — Steam BuildID が表示されます(ログから解析できなかった場合は「—」) |
| Failed(赤) | アップロードが失敗 — 平易な言葉で理由が表示され、再試行が可能 |
ステータスが Succeeded でも BuildID が「—」と表示される場合、アップロードは正常に完了しましたが、ログから BuildID を抽出できませんでした。Steamworks パートナーポータルで BuildID を直接確認してください。
プロモーション履歴
すべてのプロモーションの試行は、そのゲームの ADT Promotions メニューに記録されます。これはすべてのチャンネルにわたり、チーム全体に表示されます。各レコードには、ビルド、チャンネル、Steam ブランチ、トリガーした人、実行された日時、最終ステータス、およびダウンロード可能なログが含まれます。スタジオ管理者は、これをすべての Steam デプロイの監査証跡として使用できます。
主なメリット
- ビルド承認から Steam 配信までの単一のワークフロー — ADT でビルドが QA を通過した後、外部ツールへのコンテキストの切り替えが不要です。
- 一元化された安全な認証情報管理 — Steam のパブリッシング認証情報は ADT の安全な認証情報ストアに保存され、どの開発者もローカルに保持することはありません。チーム全体が、スタジオ管理者が一度だけ設定した単一の接続の恩恵を受けられます。
- チーム全体へのリアルタイムの可視性 — プロモーションのステータス、ライブアップロードログ、および結果として得られる Steam BuildID はすべて、アップロードをトリガーした人だけでなく、適切なアクセス権を持つ誰にでも ADT 内で表示されます。
- 平易な言葉での失敗メッセージとワンクリックの再試行 — アップロードが失敗した場合、ADT は何が問題だったのかを平易な言葉で説明し、開発者がフォームを再入力することなく同じ画面から再試行できるようにします。
- 古いビルドの保護 — ローカルにダウンロードされたビルドがトラック内の最新のものより古い場合、Hub は警告を表示するため、開発者が誤って古いビルドをプロモートすることを防ぎます。
制限事項と考慮事項
現在のリリースでは、macOS Hub からのプロモーションはサポートされていません。 SteamCMD プロモーションは、ADT Hub が Windows 上で実行されている場合にのみサポートされます。macOS 上の Hub では「Promote to Steam」ボタン、再試行、または新規プロモーションのアクションは表示されません。macOS Hub のユーザーは Promotions メニューでプロモーション履歴を表示できますが、アップロードをトリガーすることはできません。この制限は、ビルドのターゲットではなく、Hub を実行しているマシンに適用されます。Windows、macOS、および Linux のビルドはすべてプロモートできますが、それは Hub を実行している Windows マシンからのみ可能です。
ベータブランチのみ。 現在のリリースは、Steam のプレリリース(ベータ)ブランチへのプロモーションのみをサポートしています。ビルドを Steam のデフォルトブランチ(すべての Steam ユーザーに配信されるブランチ)へプッシュするには、Valve のポリシーにより Steam モバイルアプリを通じた手動確認が必要です。ADT はこの要件をバイパスできません。
プロモーションを行うマシンに SteamCMD がインストールされている必要があります。 アップロードは開発者のローカルマシン上で SteamCMD を使用して実行され、開発者はこれを別途インストールする必要があります。ADT は、プロモーションが進行する前に Hub の設定で SteamCMD のパスを検証しますが、インストール自体は各開発者が満たすべき前提条件です。
プロモートする前にビルドをローカルにダウンロードしておく必要があります。 Hub は、ローカルにダウンロードされたビルドのコピーをプロモートします。ビルドがマシンにダウンロードされていない場合、Hub はこれを不足している前提条件として表示し、ダウンロードアクションを表示します。
プロジェクトごとに同時に 1 つのプロモーションのみ。 プロジェクトごとにアクティブなプロモーションは 1 つのみサポートされます。追加のリクエストはキューに入れられ、アクティブなプロモーションが終了状態(Succeeded または Failed)に達した後に処理されます。
Windows、macOS、および Linux のビルドターゲットのみ。 「Promote to Steam」アクションは、Windows、macOS、または Linux をターゲットとするトラックおよびビルドでのみ利用できます。コンソールビルド(PS5、Xbox)、モバイルビルド(iOS、Android)、または Windows Server ビルドでは利用できません。
アップロード中は Hub を開いたままにしておく必要があります。 アップロードは、Hub がオーケストレーションするローカルマシン上の SteamCMD を通じて実行されます。アクティブなプロモーション中に Hub が強制終了された場合、そのプロモーションは次回起動時に Failed または Interrupted としてマークされ、再試行オプションが提供されます。Hub が閉じられた後、アップロードは継続しません。
サポートされているプラットフォーム
| プラットフォーム | サポート状況 |
|---|---|
| Windows | はい |
| macOS | はい |
| Linux | はい |
| コンソール(PS5、Xbox) | いいえ — Steam には該当しません |
| モバイル(iOS、Android) | いいえ — Steam には該当しません |
| Windows Server | いいえ |
この機能は Build Distribution の柱の一部であり、ADT Hub(デスクトップアプリ)および ADT Web(Web ダッシュボード)を通じてアクセスされます。SDK の統合は不要です。
関連するハウツーガイド
- ADT で Steam 統合を設定する — 認証情報を接続し、ゲーム設定を構成し、Hub で SteamCMD のパスを設定します
- Windows で Steam にビルドをプロモートする — Windows 向けのステップバイステップのプロモーションガイド