steam-publish について
完成済みのゲームビルドを Steam でリリースするための運用チェックリストスキルです。ストアページ、SteamPipe のビルドスクリプトとアップロード、ブランチ管理、検証、審査、手動リリースを扱います。
主な機能
- 01Steam アプリと depot の設定
- 02ストアページ審査の準備
- 03SteamPipe ビルドスクリプトの設定
- 04ビルドスクリプトの検証
- 05アップロード、ブランチ、リリース手順
活用シーン
- 01Steam ストアページとアプリの準備
- 02アップロード前の depot マッピング検証
- 03ビルドのアップロードと beta ブランチのテスト
- 04審査承認と手動リリースの調整
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ gamedev-skills/ awesome-gamedev-agent-skills --skill steam-publishインストール後、Claude Code で/steam-publishを入力して読み込まれたか確認します。
同梱ファイルreferences/steampipe-build-scripts.mdscripts/check_steam_build.py
詳細
Steam の公開(Steamworks + SteamPipe)
完成したビルドを Steam ストアページで公開します。2 つのトラックが並行して進行し、リリース前に両方の承認が必要です。ストアページ(プレゼンス)とビルド(SteamPipe へのアップロードとリリースチェックリスト)です。このスキルは運用チェックリストです。ビルドスクリプト、CI/CD、トラブルシューティングの詳細は references/steampipe-build-scripts.md に記載されています。
使用する場面
- Steam アプリのセットアップ、ストアページの作成・編集、デポやパッケージの設定、SteamPipe/steamcmd によるビルドのアップロード、ベータブランチの管理、または Steam タイトルのリリースや更新を行う場合に使用します。
- トリガー:
steam_appid.txt、Steamworks SDK のtools/ContentBuilder、app_build_*.vdf、steamcmd、「Steam で公開」、「デポ」、「ビルドを公開状態にする」。
使用しない場面: itch.io で公開する場合(itch-publish を使用してください)、ゲーム内で Steamworks API を実装する場合(実績/クラウド/オーバーレイはここではなく、エンジン SDK との統合で扱います)、ストアや財務に関する助言(価格設定戦略、税金)。ユーザーには Steamworks のドキュメントと、各自の専門家への相談を案内してください。
前提条件(一度だけ、順番に実施)
- パートナーアカウントと Steam Direct 手数料。 新しいアプリごとに、Steam Direct の返金可能な手数料(執筆時点ではアプリごとに 100 米ドル)が必要です。App ID が発行されます。Steamworks のホームページで確認してください。以下のすべてにおいて App ID が鍵となります。最初の数タイトルでは、Valve によりアプリ手数料の支払いからゲームのリリースまで21 日間の待機期間も設けられます。予定しているローンチ日より十分前に支払いを済ませてください。
- 最小権限の専用ビルドアカウント。 ビルドには、パートナーグループに所属し、アプリのメタデータを編集およびアプリの変更を Steam に公開する権限を持つ Steam アカウントが必要です。これらの権限のみを持つビルド専用の別アカウントを作成してください(管理者用ログインは使用しないでください)。アプリのリリースには、さらに価格と割引の管理権限が必要です。
- アップロードマシンに Steamworks SDK をダウンロードします。 SteamPipe ツールは
tools/ContentBuilder/にあります。
セキュリティに関する注意:アカウントのパスワードや
config.vdfのログイントークンをリポジトリにコミットしないでください。サポートされているトークンのワークフローについては、リファレンスの CI/CD セクションを参照してください。
基本的なワークフロー
- アプリを設定します(App Admin)。
- Installation で 起動オプション(OS ごとの実行ファイルのパスと引数)を設定します。サブフォルダー内の exe を指定する場合は、Executable フィールドにサブフォルダーを入力します。先頭にスラッシュやドットは付けません。
- Depots ページで デポ(ファイルを格納する単位)を追加します。各デポに名前(「Base Content」、「Windows Content」など)を付けます。デポが実際に OS 固有または言語固有でない限り、[All languages]/[All OSes] のままにします。
- 自分にデポへのアクセス権を付与します。 Associated Packages & DLC ページでデポを Developer Comp パッケージに追加します。そうしないと、アップロードしたコンテンツを所有できません。
- 設定を 公開 します。未公開の設定は、アップロード失敗の最もよくある原因です。
- ストアページを作成します(プレゼンスのトラック)。 グラフィックアセット、説明、タグ、予告編、システム要件を入力します。完了したら、Mark as ready for review をクリックします。ストアの審査には約 3~5 営業日かかります。公開したい日の少なくとも 7 営業日前 に申請してください。リリース前に、少なくとも 2 週間 は Coming Soon の状態にする必要があります。
- ビルドスクリプトを作成します。 下の「パターン」にあるシンプルなアプリビルド用
.vdfから始めます。複数のデポやプラットフォームを使うアプリにはデポスクリプトを使用します(リファレンスを参照)。スクリプトでは、ローカルファイルをデポに割り当て、ビルドの出力先とログの保存先を指定します。 - スクリプトを確認してから、steamcmd を初期化し、アップロードします。 アップロード前に
python scripts/check_steam_build.py <app_build.vdf>を実行し(パターン 3)、すべての ERROR を修正します。その後、steamcmdを一度実行して自己更新し、ビルドを実行します(「パターン」を参照)。steamcmd はファイルを約 1 MB のチャンクに分割し、変更されたチャンクのみをアップロードして、グローバルな BuildID を登録します。 - ブランチでビルドを公開します。
https://partner.steamgames.com/apps/builds/<AppID>に移動し、ビルドを選択して Preview Change、次にブランチの Set Build Live Now をクリックします。まずベータブランチでテストしてください(ブランチの設定についてはreferences/steampipe-build-scripts.mdを参照)。 - Game Build チェックリストを実行し、Mark as ready for review をクリックします(ストアのプレゼンスは、ビルド審査の前に申請する必要があります)。両方のトラックで承認を得る必要があります。
- 手動でリリースします。 承認され、Coming Soon の期間が終了したら、緑色の Release App ボタンを使用して、Publish Now → Release Now の順にクリックします。承認されたタイトルが自動でリリースされることはありません。
- 新しいビルドをアップロードして
defaultに公開する(手動)か、まずベータブランチに配信することで、後から更新できます。references/steampipe-build-scripts.mdを参照してください。
パターン
1. SteamPipe ContentBuilder のレイアウト(Steamworks SDK)
tools/ContentBuilder/
builder/ steamcmd.exe (Windows) <- run once to bootstrap
builder_linux/ steamcmd (Linux)
builder_osx/ steamcmd (macOS)
content/ <- your final, runnable build goes here (the files players get)
output/ build logs + chunk cache (safe to delete; speeds up re-uploads)
scripts/ <- your *.vdf build scripts live here
2. 最小限のアプリビルドスクリプト — app_build_1000.vdf
// AppID 1000 with one depot (1001): upload everything under ../content recursively.
// VDF is Valve KeyValues: "key" "value", braces for nesting. Adjust IDs to your app.
"AppBuild"
{
"AppID" "1000" // your App ID
"Desc" "1.0.0 launch build" // internal only; visible in Your Builds
"ContentRoot" "..\content\" // root of files to upload (relative to this file)
"BuildOutput" "..\output\" // logs + chunk cache
"Depots"
{
"1001" // your Depot ID
{
"FileMapping"
{
"LocalPath" "*" // all files from ContentRoot
"DepotPath" "." // mapped to the depot root
"recursive" "1" // include subfolders
}
}
}
}
3. アップロード前にビルドスクリプトを確認する(読み取り専用、ログイン不要)
# Run before you upload. Parses the app script and every depot script, resolves
# ContentRoot/LocalPath exactly as SteamPipe documents, and counts what each depot would upload.
python scripts/check_steam_build.py tools/ContentBuilder/scripts/app_build_1000.vdf
python scripts/check_steam_build.py app_build_1000.vdf --json --strict # CI gate
ERROR depot_build_1002.vdf:7: LocalPath "bin\*" matches no files under ../content
fix: LocalPath is relative to the content root; check the folder names, ...
Depots:
1001 [depot_build_1001.vdf]: 412 files, 1.8 GiB, 3 excluded, from ../content
Summary: 1 errors, 0 warnings in 3 files checked
終了コード 0 = エラーなし、1 = エラーあり(または --strict 指定時に警告あり)、2 = ファイルが存在しない、または AppBuild スクリプトではありません。エラーには、解析できない VDF、AppID または DepotID が存在しない/数値でない、デポがない、デポが重複している、デポスクリプトがない、ContentRoot または InstallScript がない、何にも一致しないか単独のフォルダーを指定している LocalPath、アップロード対象ファイルが 0 件になるデポが含まれます。警告には、Preview なしの SetLive(そのブランチですぐに公開されます。default の場合は、より強い警告が表示されます)、Desc がないこと、Local ビルド、ContentRoot 内の BuildOutput、スペルミスのあるキーが含まれます。アップロード前に、デポごとのファイル数とサイズを確認してください。
スクリプトのパスはこのスキルのディレクトリからの相対パスで指定するか、先にインストール済みのスキルのパスを解決してください。必要なのは Python 3.10 以降のみで、ログインやアップロードは行いません。
4. ビルドをアップロードする(Windows。他の環境では該当するプラットフォーム用ビルダーに置き換えてください)
REM Run from the SDK. Bootstrap once, then build. Use a build account, not your admin login.
tools\ContentBuilder\builder\steamcmd.exe ^
+login <build_account> <password> ^
+run_app_build ..\scripts\app_build_1000.vdf ^
+quit
What happens: steamcmd self-updates -> logs in -> for each depot, hashes files into ~1 MB
chunks -> uploads only NEW chunks -> writes a depot manifest -> finishes with a global
BuildID. The build is NOT live yet; set it live per the workflow above.
5. プレビュー用ビルドで安全に反復する(何もアップロードしません)
// Add to the AppBuild block to validate file mappings without uploading:
"Preview" "1" // outputs logs + a file manifest into BuildOutput only
// And to auto-set live on a BETA branch after a successful build (never 'default'):
"SetLive" "beta-qa"
注意点
defaultブランチを自動でライブにすることはできません。SetLiveが機能するのは beta ブランチのみです。デフォルト(顧客向け)ビルドをライブにするには、App Admin で手動設定する必要があります。 これを踏まえてリリースを計画してください。- ビルドの前にストアページの承認が必要です。 ストア掲載情報を提出するまでは、ビルドを審査に提出できません。 どちらも審査に合格する必要があり、「近日公開」の期間は約 2 週間必要です。
- タイトルが自動でリリースされることはありません。 承認後も、選択したタイミングで人が Release App をクリックする必要があります。
- Mac/Linux では何もインストールされません。 ほとんどの場合、OS 固有のデポがパッケージに含まれていません。 Associated Packages & DLC で、すべてのデポをパッケージに追加してください。
- アプリ設定が未公開です。 「Failed to get application info」やビルドエラーが発生する場合、デポ、起動オプション、または App ID の設定がまだ Published になっていない可能性があります。
- ビルド時に
status = 6が発生します。 ビルドアカウントに App ID の権限がないか、ContentRoot/LocalPathが誤った(空の)パスを指しています。 - ログイントークンをコミットすること。
config.vdfの Steam Guard トークンとアカウントのパスワードは 秘密情報です。リポジトリに含めず、リファレンスにある CI ワークフローを使用してください。 - リリース済みアプリの安全待機期間。 ビルドアカウントのメールアドレス/電話番号を変更すると、 リリース済みアプリのビルドをライブにするまで 3 日間待つ必要があります。リリース直前にアカウントを再設定しないでください。
参考資料
- 高度なマルチデポ/マルチプラットフォーム向けビルドスクリプト、
FileExclusion/FileProperties、 ベータブランチの設定、CI/CD のログイントークンを使ったワークフロー、および SteamPipe のトラブルシューティング表については、references/steampipe-build-scripts.mdを参照してください。 scripts/check_steam_build.py— アプリのビルドスクリプト、デポスクリプト、コンテンツフォルダーを読み取り専用で確認します。すべてのチェック項目と終了コードは--helpに記載されています。- 主なドキュメント:Steamworks の「Steam へのアップロード」(
partner.steamgames.com/doc/sdk/uploading)、 「リリースプロセス」(/doc/store/releasing)、「ブランチ(ベータ)」(/doc/store/application/branches)、 「デポ」(/doc/store/application/depots)、「オンボーディング」(/doc/gettingstarted/onboarding、 初回タイトルの待機期間)、「審査プロセス」(/doc/store/review_process)。
関連するスキル
itch-publish— 同じゲームをbutlerで itch.io にリリースします(Steam との同時リリースが一般的です)。game-jam/prototype-fast— 同じプロジェクトのライフサイクルにおける初期段階です。