| name | cli-hub-matrix-game-development |
| description | Capability-based multi-tool matrix for game development: engine, 3D/2D/audio assets, AI-generated assets, agent playtesting, packaging, store publishing, and telemetry. |
Game Development Matrix (S4 โ v2 capability-based)
Scenario S4. All asset-creation capabilities covered via the S3/S5 stacks; the structural gap is distribution (Steam/itch/console stores) and alternative engines (Unity/Unreal).
Schema: docs/cli-matrix/matrix_registry.schema.md. Matrix plan: docs/cli-matrix/cli-matrix-plan.md.
Install
cli-hub matrix install game-development
cli-hub matrix info game-development
cli-hub matrix preflight game-development --json
Provider selection constraints
- Use preflight as an availability report, not as a provider selector.
- Treat provider order as documentation order only.
- Choose from user requirements, output quality bar, offline needs, credential state, install cost, and provider notes.
- Escalate to paid or metered APIs only when credentials are already present or the user explicitly consents.
Preflight
Run cli-hub matrix preflight game-development --json first. Use the manual block below for extra probes or older cli-hub versions.
cli-hub list --json
python - <<'PY'
import importlib.util
for m in ("pygame","arcade","panda3d","ursina","trimesh","pygltflib","PIL",
"pydub","librosa","music21","mido","abjad","diffusers","replicate",
"posthog","gymnasium"):
print(m, importlib.util.find_spec(m) is not None)
PY
for b in godot blender aseprite butler steamcmd ffmpeg pyinstaller; do
command -v "$b" >/dev/null && echo "$b: yes" || echo "$b: no"
done
for e in STEAM_USERNAME STEAM_PASSWORD ITCH_API_KEY EPIC_DEV_TOKEN \
PLAY_CONSOLE_KEY APP_STORE_CONNECT_KEY \
REPLICATE_API_TOKEN OPENAI_API_KEY STABILITY_API_KEY IDEOGRAM_API_KEY \
POSTHOG_API_KEY GAMEANALYTICS_KEY PLAYFAB_TITLE_KEY SENTRY_DSN; do
[ -n "${!e}" ] && echo "$e: set" || echo "$e: unset"
done
Suggest-to-user template
To enable <capability> via <provider>, please set <ENV_VAR>.
Cost: <cost notes>
Quality: <quality tier>
Reply 'skip' to fall back to <next provider>.
Example: To publish to Steam, please install steamcmd and set STEAM_USERNAME + STEAM_PASSWORD (use a dedicated build account to limit credential risk). Cost: one-time $100 Steamworks fee. Reply 'skip' to fall back to itch.io via butler which only needs ITCH_API_KEY.
Capabilities
game.engine โ engine authoring / project manipulation
| Provider | Kind | Requires | Cost | Quality | Offline |
|---|
cli-anything-godot | harness-cli | Godot installed | free | sota | yes |
pygame | python | pkg | free | good | yes |
arcade | python | pkg | free | good | yes |
panda3d | python | pkg | free | high | yes |
ursina | python | pkg | free | good | yes |
| Unity / Unreal | โ | โ | โ | โ | โ |
asset.3d โ 3D game assets
See S3 matrix. Primary: cli-anything-blender, cli-anything-freecad, trimesh, pygltflib.
asset.2d โ sprites, tiles, UI art
| Provider | Kind | Requires | Cost | Quality | Offline |
|---|
cli-anything-krita | harness-cli | Krita installed | free | sota | yes |
cli-anything-inkscape | harness-cli | Inkscape installed | free | sota | yes |
Pillow | python | pkg | free | good | yes |
aseprite | native | binary (commercial) | paid | sota | yes |
pyxel | python | pkg | free | good | yes |
| OpenAI GPT-Image-1 | api | OPENAI_API_KEY | metered | sota | no |
| Scenario GG | api | SCENARIO_API_KEY | paid | sota | no |
| Leonardo AI | api | LEONARDO_API_KEY | paid | high | no |
asset.audio โ sfx and gameplay audio
| Provider | Kind | Requires | Cost | Quality | Offline |
|---|
cli-anything-audacity | harness-cli | Audacity | free | high | yes |
pydub / librosa / soundfile | python | pkg | free | good | yes |
sfxr / jsfxr | native | binary | free | good | yes |
| ElevenLabs SFX | api | ELEVENLABS_API_KEY | paid | sota | no |
| Mubert | api | MUBERT_API_KEY | metered | high | no |
asset.notation โ music notation / score export
| Provider | Kind | Requires | Cost | Quality | Offline |
|---|
cli-anything-musescore | harness-cli | MuseScore installed | free | sota | yes |
music21 | python | pkg | free | high | yes |
mido | python | pkg | free | good | yes |
abjad | python | pkg | free | high | yes |
ai.gen-asset โ AI-generated art/audio for games
| Provider | Kind | Requires | Cost | Quality | Offline |
|---|
cli-anything-comfyui | harness-cli | ComfyUI installed | free | high | yes |
jimeng | public-cli | bin | metered | high | no |
diffusers | python | pkg + weights | free | good | yes |
replicate | python | REPLICATE_API_TOKEN | metered | high | no |
| Scenario GG | api | SCENARIO_API_KEY | paid | sota | no |
| Leonardo AI | api | LEONARDO_API_KEY | paid | high | no |
| OpenAI GPT-Image-1 | api | OPENAI_API_KEY | metered | sota | no |
| Stability | api | STABILITY_API_KEY | metered | high | no |
playtest.agent โ agent-driven play / testing
| Provider | Kind | Requires | Cost | Quality | Offline |
|---|
cli-anything-slay-the-spire-ii | harness-cli | StS II + bridge mod | free | sota | yes |
gymnasium envs | python | pkg | free | high | yes |
Headless game + scripted input (e.g. Godot --headless with GUT) | harness-cli | Godot | free | good | yes |
Distinctive capability โ very few agent stacks can drive a live GUI game loop.
build.package โ package a game binary / bundle
| Provider | Kind | Requires | Cost | Quality | Offline |
|---|
cli-anything-godot (export presets) | harness-cli | Godot export templates | free | sota | yes |
pyinstaller (pygame/arcade) | python | pkg | free | good | yes |
butler (itch packager) | native | binary | free | high | yes |
publish.store โ upload a build to a store
| Provider | Kind | Requires | Cost | Quality | Offline |
|---|
steamcmd | native | binary + Steam account + app ID | paid (fee) | sota | no |
butler (itch.io) | native | binary + ITCH_API_KEY | free | high | no |
| Epic Games Services | api | EPIC_DEV_TOKEN | paid | high | no |
| Google Play Developer | api | PLAY_CONSOLE_KEY + service account | paid | high | no |
| App Store Connect | api | APP_STORE_CONNECT_KEY | paid | high | no |
Known gap โ no harness-level abstraction; escalate via the suggest-to-user template with platform-specific preflight.
telemetry.ingest โ gameplay analytics / crash reports
| Provider | Kind | Requires | Cost | Quality | Offline |
|---|
sentry | public-cli | bin + SENTRY_DSN | free-paid | high | no |
posthog | python | pkg + POSTHOG_API_KEY | free-paid | high | no |
| GameAnalytics | api | GAMEANALYTICS_KEY | free | good | no |
| Unity Analytics | api | Unity project token | metered | high | no |
| PlayFab | api | PLAYFAB_TITLE_KEY | metered | high | no |
Recipes
-
godot-jam-game โ minimal end-to-end for a game jam.
Uses: game.engine, asset.2d, asset.audio, build.package, (optional publish.store).
-
agent-bot โ train / evaluate an agent against an existing game.
Uses: playtest.agent, telemetry.ingest.
-
ai-indie-short โ AI-generated art + simple engine loop.
Uses: ai.gen-asset, asset.2d, game.engine, asset.audio, build.package.
-
steam-release โ ship to Steam with crash reporting.
Uses: build.package, publish.store, telemetry.ingest.
-
music-driven-game โ composed score integrated with gameplay.
Uses: asset.notation, asset.audio, game.engine.
-
reality-to-game โ photogrammetry asset โ import โ ship.
Uses: (S3 photogrammetry.reconstruct), asset.3d, game.engine, build.package.
Known gaps
publish.store โ Steam/itch/console wrappers are native-only; escalate with explicit credentials.
game.engine for Unity/Unreal โ only Godot harness exists.
telemetry.ingest โ Sentry works; no first-party for GameAnalytics/PlayFab.
asset.notation โ uniquely strong (MuseScore) but rarely used in practice; keep as a differentiator.
Agent guidance
- Start in Godot unless the user has explicitly asked for Unity/Unreal โ it's the only engine we harness.
- Keep asset pipelines deterministic โ re-runnable seeds for
ai.gen-asset, versioned source .aseprite/.krita files, scriptable Blender bakes.
playtest.agent needs a bridge. Most commercial games lack API access; agents should ask the user if modding is permitted before attempting.
- Version builds immediately.
build.package output goes into builds/<version>/ with a manifest so publish.store has deterministic uploads.
- Don't auto-publish.
publish.store must always be gated behind explicit user confirmation โ uploading a broken build is expensive to roll back.