跳到正文
cccskills
免费在 GitHub 公开

steam-publish

Prepare and release a game on Steam using Steamworks and SteamPipe. Configure store pages and downloadable files, check upload scripts, upload builds, test beta branches, and follow the review and manual release steps.

中文简介正在准备中。当前显示英语简介。

原文查看原文说明

Publish or update a game on Steam with Steamworks and SteamPipe: configure depots and packages, upload builds with steamcmd, set a build live on a branch, and run the release checklists. Use for Steam publishing, app_build.vdf/steamcmd uploads, depots, beta branches, or a store page release.

实测评分 未实测

查看安装方法

适用场景

  • Preparing a Steam store page and release checklist
  • Checking build scripts and upload file mappings
  • Uploading builds and testing beta branches
  • Releasing a game or updating its public build

包含的文件(3)

  • SKILL.md10.9 KB
  • references/steampipe-build-scripts.md7.5 KB
  • scripts/check_steam_build.py44.8 KB

SKILL.md(原文)

安装前可以查看交给 AI 代理的指令内容。

Steam Publish (Steamworks + SteamPipe)

Take a finished build to a live Steam store page. Two tracks run in parallel and both must be approved before release: the store page (presence) and the build (SteamPipe upload + the release checklists). This skill is the operational checklist; deep build-script, CI/CD, and troubleshooting detail lives in references/steampipe-build-scripts.md.

When to use

  • Use when setting up a Steam app, building/editing the store page, configuring depots and packages, uploading a build via SteamPipe/steamcmd, managing beta branches, or releasing and updating a Steam title.
  • Triggers: steam_appid.txt, the Steamworks SDK tools/ContentBuilder, app_build_*.vdf, steamcmd, "publish on Steam", "depot", "set build live".

When not to use: publishing on itch.io (use itch-publish); writing the Steamworks API in-game (achievements/cloud/overlay live in engine SDK integrations, not here); store/financial advice (pricing strategy, tax) — direct the user to Steamworks docs and their own counsel.

Prerequisites (do these once, in order)

  1. Partner account + Steam Direct fee. Each new app requires the Steam Direct recoupable fee (USD $100 per app at time of writing). You receive an App ID — find it on your Steamworks homepage. Treat the App ID as the key to everything below. For your first few titles, Valve also enforces a 21-day wait between paying the app fee and releasing that game, so pay it well before the planned launch date.
  2. A dedicated build account with least privilege. Builds require a Steam account in your partner group with Edit App Metadata and Publish App Changes To Steam. Create a separate build account with only those permissions (not your admin login). Releasing the app additionally needs Manage pricing and discounts.
  3. Download the Steamworks SDK on the upload machine. The SteamPipe tools are under tools/ContentBuilder/.

Security note: never commit account passwords or the config.vdf login token to the repo. See the CI/CD section in the reference for the supported token workflow.

Core workflow

  1. Configure the app (App Admin).
    • Set launch options (executable path + args per OS) under Installation. For a sub-folder exe, put the sub-folder in the Executable field — no leading slashes/dots.
    • Add depots on the Depots page (a depot is a bucket of files). Name each depot ("Base Content", "Windows Content"). Leave [All languages] / [All OSes] unless the depot is genuinely OS- or language-specific.
    • Grant yourself the depots: add them to your Developer Comp package on the Associated Packages & DLC page, or you won't own the content you upload.
    • Publish the configuration. Unpublished config is the most common cause of upload failures.
  2. Build the store page (presence track). Fill graphical assets, description, tags, trailers, system requirements. When complete, click Mark as ready for review. Store review takes ~3-5 business days; submit at least 7 business days before you want it live. It must be in Coming Soon for at least 2 weeks before release.
  3. Create your build scripts. Start with the simple app-build .vdf in Patterns below; for multi-depot/multi-platform apps use depot scripts (see the reference). The script maps local files into depots and names where build output/logs go.
  4. Check the scripts, then bootstrap steamcmd and upload. Run python scripts/check_steam_build.py <app_build.vdf> before you upload (Pattern 3) and fix every ERROR; then run steamcmd once to self-update and run the build (Patterns). steamcmd chunks files (~1 MB), uploads only changed chunks, and registers a global BuildID.
  5. Set the build live on a branch. Go to https://partner.steamgames.com/apps/builds/<AppID>, pick the build, Preview Change, then Set Build Live Now for a branch. Test on a beta branch first (see references/steampipe-build-scripts.md for branch setup).
  6. Run the Game Build checklist and Mark as ready for review (store presence must be submitted before the build review). Both tracks must be approved.
  7. Release manually. When approved and Coming Soon has run its time, use the green Release App button → Publish Now → Release Now. Approved titles do not release themselves.
  8. Update later by uploading a new build and setting it live on default (manually) or shipping to a beta branch first. See references/steampipe-build-scripts.md.

Patterns

1. SteamPipe ContentBuilder layout (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. Minimal app build script — 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. Check the build scripts before uploading (read-only, no login)

# 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

Exit 0 = no errors, 1 = errors (or warnings with --strict), 2 = file missing or not an AppBuild script. Errors cover: unparseable VDF, missing/non-numeric AppID or DepotID, no depots, duplicate depots, missing depot script, ContentRoot or InstallScript, a LocalPath that matches nothing or names a bare folder, and a depot that would upload zero files. Warnings cover SetLive without Preview (goes live on that branch at once; default gets a louder warning), missing Desc, Local builds, BuildOutput inside ContentRoot, and misspelled keys. Read the per-depot file count and size before you upload. Run the script path relative to this skill directory, or resolve the installed skill path first. It needs Python 3.10+ and nothing else, and never logs in or uploads.

4. Upload the build (Windows; substitute the platform builder elsewhere)

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. Iterate safely with a preview build (uploads nothing)

// 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"

Pitfalls

  • The default branch cannot be set live automatically. SetLive only works for a beta branch; you must set the default (customer) build live by hand in App Admin. Plan releases around this.
  • Store page must be approved before the build. You cannot submit the build for review until store presence is submitted; both must pass, and Coming Soon must run ~2 weeks.
  • Titles never auto-release. Even after approval, a human must click Release App at the chosen moment.
  • Mac/Linux install nothing. Almost always: the OS-specific depots aren't in the package. Add every depot to the package on Associated Packages & DLC.
  • Unpublished app config. "Failed to get application info" / build errors usually mean depots, launch options, or the App ID config were never Published.
  • status = 6 on build. The build account lacks permission for the App ID, or ContentRoot/LocalPath points at the wrong (empty) path.
  • Committing the login token. The config.vdf Steam Guard token and account password are secrets. Keep them out of the repo; use the CI workflow in the reference.
  • Released-app safety delay. Changing the build account's email/phone forces a 3-day wait before you can set a build live for a released app — don't reconfigure the account right before launch.

References

  • For advanced multi-depot/multi-platform build scripts, FileExclusion/FileProperties, beta-branch setup, the CI/CD login-token workflow, and the SteamPipe troubleshooting table, read references/steampipe-build-scripts.md.
  • scripts/check_steam_build.py — read-only check of an app build script, its depot scripts and content folders; --help lists every check and the exit codes.
  • Primary docs: Steamworks "Uploading to Steam" (partner.steamgames.com/doc/sdk/uploading), "Release Process" (/doc/store/releasing), "Branches (Betas)" (/doc/store/application/branches), "Depots" (/doc/store/application/depots), "Onboarding" (/doc/gettingstarted/onboarding, first-title waiting periods), "Review Process" (/doc/store/review_process).

Related skills

  • itch-publish — the same game shipped on itch.io with butler (often done alongside Steam).
  • game-jam / prototype-fast — earlier stages of the same project's lifecycle.

评价

还没有评价。欢迎分享你的使用感受。

评论

无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。

还没有评论。来写第一条吧。

提交后会立即公开。请勿填写邮箱、电话等个人信息。URL 最多 2 个。

0 / 1000 字

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

同一仓库的技能

Implement reusable decision systems for game characters using behavior trees, which organize conditional actions, and Utility AI, which scores available choices. Build either approach or combine them to control patrols, combat, targeting, and needs-based behavior.

中文简介正在准备中。当前显示英语简介。

  • Build a reusable behavior tree runtime
  • Choose attacks or targets using action scores
  • Combine patrol and combat trees with Utility AI
gamedev-skills/awesome-gamedev-agent-skills37012026年10月23日 更新

Design game audio with grouped volume controls, music that responds to gameplay, and varied sound effects. Plan how music lowers during dialogue and how events follow the beat, using principles that can be adapted to different game engines.

中文简介正在准备中。当前显示英语简介。

  • Plan grouped volume controls for music, effects, and dialogue
  • Lower background music while dialogue plays
  • Change music layers or segments with gameplay intensity
gamedev-skills/awesome-gamedev-agent-skills37012026年10月23日 更新

bevy-ecs

免费

Build and debug Rust games in Bevy using ECS, a way to separate game data from behavior. Organize apps and plugins, query entities, control execution order, and fix conflicting data access or frame-dependent movement.

中文简介正在准备中。当前显示英语简介。

  • Organizing a Bevy app with plugins
  • Defining components and shared resources
  • Fixing conflicting queries and execution order
gamedev-skills/awesome-gamedev-agent-skills37012026年10月23日 更新

Build and tune game cameras for smooth 2D following and 3D viewing. Covers motion smoothing, look-ahead, level boundaries, wall avoidance, and framing multiple targets, with techniques that apply across engines.

中文简介正在准备中。当前显示英语简介。

  • Smooth player-follow cameras in 2D games
  • Keep the camera view within level boundaries
  • Prevent third-person cameras from clipping through walls
gamedev-skills/awesome-gamedev-agent-skills37012026年10月23日 更新

card-game

免费

Design the core rules of a card game, including decks, hands, discards, drawing, shuffling, turns, and resource costs. Represent card effects as data and define their resolution order so card movement and gameplay outcomes follow explicit rules.

中文简介正在准备中。当前显示英语简介。

  • Building a deckbuilder or trading card game
  • Implementing draws and discard reshuffling
  • Defining turn phases and card costs
gamedev-skills/awesome-gamedev-agent-skills37012026年10月23日 更新

Plan and prepare consistent game artwork, from sprites and backgrounds to UI icons and 3D briefs. Organize asset requirements, generate or source related visuals, standardize files, and check their appearance and technical fit inside the game.

中文简介正在准备中。当前显示英语简介。

  • Create sprites and backgrounds with a consistent visual style
  • Check asset dimensions, transparency, and tile seams
  • Track asset sources and licenses before release
gamedev-skills/awesome-gamedev-agent-skills37012026年10月23日 更新

查看 gamedev-skills 的全部技能

报告此技能的问题