summer-engine 3.4.0 → 3.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +1 -1
- package/.claude-plugin/plugin.json +5 -1
- package/.codex-plugin/plugin.json +5 -1
- package/.cursor-plugin/plugin.json +5 -1
- package/.factory-plugin/plugin.json +5 -1
- package/.opencode/INSTALL.md +8 -8
- package/.opencode/plugins/summer.js +2 -2
- package/AGENTS.md +7 -7
- package/CHANGELOG.md +37 -0
- package/GEMINI.md +1 -1
- package/NOTICE +1 -1
- package/README.md +35 -35
- package/assets/autopilot/run.sh +2 -2
- package/assets/navigation/web-routes.json +1 -1
- package/commands/gameskill.md +2 -2
- package/commands/summer.md +25 -25
- package/dist/cli/commands/open.d.ts +1 -1
- package/dist/cli/commands/run.d.ts +1 -1
- package/dist/cli/commands/run.js +1 -1
- package/dist/cli/commands/setup.js +24 -4
- package/dist/cli/commands/skills.js +2 -2
- package/dist/core/api-client.d.ts +5 -6
- package/dist/core/api-client.js +12 -15
- package/dist/core/auth.js +2 -2
- package/dist/core/capabilities/asset-import.d.ts +0 -1
- package/dist/core/capabilities/camera-view.d.ts +1 -1
- package/dist/core/capabilities/camera-view.js +2 -2
- package/dist/core/capabilities/capture-gameplay.d.ts +72 -7
- package/dist/core/capabilities/capture-gameplay.js +386 -25
- package/dist/core/capabilities/connect-signal.d.ts +1 -2
- package/dist/core/capabilities/connect-signal.js +1 -2
- package/dist/core/capabilities/console-read.d.ts +2 -2
- package/dist/core/capabilities/console-read.js +2 -2
- package/dist/core/capabilities/engine-receipt.d.ts +5 -7
- package/dist/core/capabilities/engine-receipt.js +7 -9
- package/dist/core/capabilities/export-engine-version.d.ts +7 -0
- package/dist/core/capabilities/export-engine-version.js +9 -0
- package/dist/core/capabilities/export-game.d.ts +4 -0
- package/dist/core/capabilities/export-game.js +53 -10
- package/dist/core/capabilities/export-presets.d.ts +1 -1
- package/dist/core/capabilities/export-presets.js +1 -1
- package/dist/core/capabilities/fabricate-mesh.d.ts +2 -3
- package/dist/core/capabilities/fabricate-mesh.js +2 -3
- package/dist/core/capabilities/frame-quality.d.ts +4 -4
- package/dist/core/capabilities/frame-quality.js +4 -4
- package/dist/core/capabilities/grep.d.ts +1 -1
- package/dist/core/capabilities/grep.js +1 -1
- package/dist/core/capabilities/image-generation.d.ts +12 -2
- package/dist/core/capabilities/image-generation.js +31 -2
- package/dist/core/capabilities/navigation/open.d.ts +1 -1
- package/dist/core/capabilities/navigation/open.js +1 -1
- package/dist/core/capabilities/navigation/render-product-map.js +1 -1
- package/dist/core/capabilities/navigation/targets.js +2 -2
- package/dist/core/capabilities/placement-batch.d.ts +1 -1
- package/dist/core/capabilities/placement-batch.js +2 -2
- package/dist/core/capabilities/play-determinism.d.ts +1 -1
- package/dist/core/capabilities/play-determinism.js +1 -1
- package/dist/core/capabilities/publish-build.d.ts +1 -1
- package/dist/core/capabilities/publish-build.js +21 -9
- package/dist/core/capabilities/publish-download.d.ts +1 -2
- package/dist/core/capabilities/publish-download.js +2 -3
- package/dist/core/capabilities/replace-node.d.ts +1 -3
- package/dist/core/capabilities/replace-node.js +1 -3
- package/dist/core/capabilities/runtime-control.d.ts +5 -7
- package/dist/core/capabilities/runtime-control.js +7 -9
- package/dist/core/capabilities/scene-batch.d.ts +1 -1
- package/dist/core/capabilities/scene-batch.js +1 -1
- package/dist/core/capabilities/scene-kind.js +1 -1
- package/dist/core/capabilities/scene-readback.d.ts +3 -4
- package/dist/core/capabilities/scene-readback.js +3 -4
- package/dist/core/capabilities/scene-script.d.ts +2 -2
- package/dist/core/capabilities/scene-script.js +2 -2
- package/dist/core/capabilities/seeing/shot-store.d.ts +1 -1
- package/dist/core/capabilities/seeing/shot-store.js +1 -1
- package/dist/core/capabilities/summer-bundle.d.ts +11 -3
- package/dist/core/capabilities/summer-bundle.js +21 -3
- package/dist/core/capabilities/surface-snap.d.ts +1 -1
- package/dist/core/capabilities/surface-snap.js +1 -1
- package/dist/core/capabilities/tool-dispatch.js +14 -3
- package/dist/core/capabilities/ui-control.d.ts +1 -2
- package/dist/core/capabilities/ui-control.js +1 -2
- package/dist/core/capabilities/world-snapshot.d.ts +1 -1
- package/dist/core/capabilities/world-snapshot.js +1 -1
- package/dist/core/capability-skew.d.ts +2 -3
- package/dist/core/capability-skew.js +4 -5
- package/dist/core/feedback/client.js +1 -1
- package/dist/core/launch-posture.d.ts +3 -3
- package/dist/core/launch-posture.js +3 -3
- package/dist/core/library-read.d.ts +7 -0
- package/dist/core/library-read.js +60 -9
- package/dist/core/library-search.d.ts +2 -0
- package/dist/core/templates.d.ts +1 -2
- package/dist/core/templates.js +1 -2
- package/dist/installer/agent-config.d.ts +25 -0
- package/dist/installer/agent-config.js +114 -3
- package/dist/installer/agent-table.d.ts +12 -0
- package/dist/installer/agent-table.js +9 -0
- package/dist/mcp/server.d.ts +2 -2
- package/dist/mcp/server.js +2 -2
- package/dist/mcp/tools/creator-tools.js +33 -4
- package/dist/mcp/tools/debug-tools.js +1 -1
- package/dist/mcp/tools/generate-tools.js +18 -37
- package/dist/mcp/tools/library-tools.d.ts +2 -1
- package/dist/mcp/tools/library-tools.js +1 -0
- package/dist/mcp/tools/navigation-tools.d.ts +1 -1
- package/dist/mcp/tools/navigation-tools.js +1 -1
- package/dist/mcp/tools/spatial-tools.js +1 -1
- package/dist/mcp/tools/visual-tools.js +2 -2
- package/dist/mcp/tools/with-engine.d.ts +1 -2
- package/dist/mcp/tools/with-engine.js +1 -2
- package/gemini-extension.json +5 -1
- package/hooks/session-start.sh +2 -2
- package/integrations/README.md +70 -76
- package/integrations/claude/README.md +0 -3
- package/integrations/codex/README.md +1 -2
- package/integrations/copilot-jetbrains/README.md +1 -1
- package/integrations/cursor/README.md +1 -2
- package/integrations/factory/README.md +15 -11
- package/integrations/mistral-vibe/README.md +1 -1
- package/integrations/opencode/README.md +1 -1
- package/integrations/roo-code/README.md +1 -1
- package/integrations/rovo-dev/README.md +1 -1
- package/integrations/trae/README.md +1 -1
- package/integrations/windsurf/README.md +3 -3
- package/library/references/collaborative-protocol/collaborative-protocol.md +5 -5
- package/library/references/gd-style/gd-style.md +4 -6
- package/library/references/godot-version/godot-version.md +3 -3
- package/library/references/headless-routing/headless-routing.md +2 -2
- package/library/references/mcp-fresh-chat-playbook/mcp-fresh-chat-playbook.md +2 -2
- package/library/references/mcp-tools-reference/mcp-tools-reference.md +16 -15
- package/library/references/product-map/product-map.md +1 -1
- package/library/references/public-surface-language/public-surface-language.md +1 -1
- package/library/references/summer-folder/summer-folder.md +1 -1
- package/library/skills/3d-lighting/SKILL.md +4 -4
- package/library/skills/README.md +16 -6
- package/library/skills/adaptive-music/SKILL.md +7 -7
- package/library/skills/ai-characters-in-games/SKILL.md +1 -1
- package/library/skills/ambient-bed/SKILL.md +12 -14
- package/library/skills/animated-loop/SKILL.md +42 -42
- package/library/skills/animation-tree/SKILL.md +6 -6
- package/library/skills/art-direction/SKILL.md +8 -11
- package/library/skills/asset-strategy/SKILL.md +3 -3
- package/library/skills/audio-direction/SKILL.md +8 -10
- package/library/skills/auto-fire-targeting/SKILL.md +4 -3
- package/library/skills/bounded-engine-runs/SKILL.md +6 -7
- package/library/skills/brainstorm-game/SKILL.md +5 -5
- package/library/skills/brainstorming/SKILL.md +9 -15
- package/library/skills/celeste-momentum-platforming/SKILL.md +8 -13
- package/library/skills/celeste-momentum-platforming/resource.yaml +1 -1
- package/library/skills/character-animation-wiring/SKILL.md +2 -2
- package/library/skills/character-model/SKILL.md +15 -26
- package/library/skills/character-movement/SKILL.md +1 -1
- package/library/skills/character-movement/references/movement-3d.md +1 -1
- package/library/skills/character-portrait/SKILL.md +4 -4
- package/library/skills/cinematic-cutscene/SKILL.md +38 -38
- package/library/skills/combat-basics/SKILL.md +1 -1
- package/library/skills/compatibility-renderer-traps/SKILL.md +2 -2
- package/library/skills/concept-art/SKILL.md +3 -3
- package/library/skills/create-asset-sheet/SKILL.md +12 -31
- package/library/skills/debug/SKILL.md +5 -4
- package/library/skills/debugging-game-feel/SKILL.md +1 -4
- package/library/skills/debugging-game-feel/resource.yaml +1 -1
- package/library/skills/design-level/SKILL.md +5 -5
- package/library/skills/design-mechanic/SKILL.md +6 -6
- package/library/skills/design-npc/SKILL.md +8 -15
- package/library/skills/diagnosing-perf-regressions/SKILL.md +5 -10
- package/library/skills/dispatching-parallel-agents/SKILL.md +1 -19
- package/library/skills/environment-kit/SKILL.md +5 -5
- package/library/skills/export-and-ship/SKILL.md +24 -25
- package/library/skills/export-and-ship/resource.yaml +2 -1
- package/library/skills/fabricating-assets/SKILL.md +1 -1
- package/library/skills/facial-and-lipsync/SKILL.md +5 -5
- package/library/skills/fps-controller/SKILL.md +17 -16
- package/library/skills/fps-controller/resource.yaml +0 -2
- package/library/skills/game-feel/SKILL.md +6 -7
- package/library/skills/gameskill/SKILL.md +3 -3
- package/library/skills/gdscript-patterns/SKILL.md +3 -3
- package/library/skills/generate-motion/SKILL.md +5 -22
- package/library/skills/godogen-visual-proof-game-generation/SKILL.md +72 -90
- package/library/skills/godogen-visual-proof-game-generation/resource.yaml +0 -1
- package/library/skills/grow-analytics/SKILL.md +21 -0
- package/library/skills/grow-analytics/resource.yaml +27 -0
- package/library/skills/headless-scripting/SKILL.md +8 -8
- package/library/skills/instantiate-asset-pack/SKILL.md +7 -3
- package/library/skills/investigating-bugs/SKILL.md +3 -11
- package/library/skills/investigating-bugs/condition-based-waiting.md +0 -10
- package/library/skills/investigating-bugs/root-cause-tracing.md +0 -8
- package/library/skills/lumera-single-image-scene-reconstruction/SKILL.md +15 -15
- package/library/skills/lumera-single-image-scene-reconstruction/resource.yaml +0 -1
- package/library/skills/make-game/SKILL.md +3 -5
- package/library/skills/make-game/references/2d-platformer.md +1 -1
- package/library/skills/multiplayer-project/SKILL.md +1 -1
- package/library/skills/multiplayer-testing/SKILL.md +4 -4
- package/library/skills/music-track/SKILL.md +40 -38
- package/library/skills/new-project/SKILL.md +4 -6
- package/library/skills/organic-model/SKILL.md +9 -9
- package/library/skills/pixel-art/SKILL.md +6 -6
- package/library/skills/play/SKILL.md +3 -4
- package/library/skills/playtesting-a-feature/SKILL.md +4 -6
- package/library/skills/procedural-animation/SKILL.md +10 -11
- package/library/skills/prop-model/SKILL.md +4 -4
- package/library/skills/psx-retro-rendering/SKILL.md +20 -20
- package/library/skills/psx-retro-rendering/resource.yaml +2 -3
- package/library/skills/publish-your-game/SKILL.md +21 -0
- package/library/skills/publish-your-game/resource.yaml +29 -0
- package/library/skills/realtime-wet-surfaces/SKILL.md +15 -15
- package/library/skills/realtime-wet-surfaces/resource.yaml +1 -2
- package/library/skills/remote-deploy/SKILL.md +20 -21
- package/library/skills/retarget/SKILL.md +19 -23
- package/library/skills/running-in-the-cloud/SKILL.md +5 -5
- package/library/skills/scene-composition/SKILL.md +5 -5
- package/library/skills/scene-hierarchy-design/SKILL.md +3 -3
- package/library/skills/scene-hierarchy-design/resource.yaml +0 -1
- package/library/skills/scene-scripting/SKILL.md +3 -3
- package/library/skills/scene-to-level/SKILL.md +28 -31
- package/library/skills/skill-create/SKILL.md +1 -1
- package/library/skills/skill-improve/SKILL.md +9 -9
- package/library/skills/skill-test/SKILL.md +10 -10
- package/library/skills/skintokens-auto-rigging/SKILL.md +18 -18
- package/library/skills/skintokens-auto-rigging/resource.yaml +3 -3
- package/library/skills/skybox-panorama/SKILL.md +8 -9
- package/library/skills/sound-effect/SKILL.md +19 -19
- package/library/skills/spatial-placement/SKILL.md +2 -2
- package/library/skills/spatial-placement/references/kit-placement-tools.md +12 -22
- package/library/skills/sprite-sheet/SKILL.md +10 -10
- package/library/skills/store-art/SKILL.md +23 -0
- package/library/skills/store-art/resource.yaml +30 -0
- package/library/skills/store-listing/SKILL.md +21 -0
- package/library/skills/store-listing/resource.yaml +25 -0
- package/library/skills/summer-analytics/SKILL.md +3 -3
- package/library/skills/summer-analytics/resource.yaml +1 -0
- package/library/skills/summer-friends/SKILL.md +10 -10
- package/library/skills/summer-leaderboards/SKILL.md +6 -6
- package/library/skills/summer-match-results/SKILL.md +13 -13
- package/library/skills/summer-matchmaking/SKILL.md +11 -11
- package/library/skills/summer-parties/SKILL.md +9 -9
- package/library/skills/summer-player-data/SKILL.md +12 -12
- package/library/skills/summer-store/SKILL.md +6 -6
- package/library/skills/summer-world-chat/SKILL.md +9 -9
- package/library/skills/summer-world-saves/SKILL.md +7 -7
- package/library/skills/text-to-motion/rigging-for-text-motion.md +1 -1
- package/library/skills/tileable-texture/SKILL.md +1 -1
- package/library/skills/trailer-shot/SKILL.md +36 -36
- package/library/skills/tune-performance/SKILL.md +13 -13
- package/library/skills/tune-performance/resource.yaml +1 -1
- package/library/skills/ui-graphics/SKILL.md +7 -7
- package/library/skills/use-widget-asset/SKILL.md +7 -7
- package/library/skills/using-summer/SKILL.md +5 -7
- package/library/skills/vehicle-model/SKILL.md +6 -7
- package/library/skills/vehicle-model/resource.yaml +2 -2
- package/library/skills/verification-before-completion/SKILL.md +5 -6
- package/library/skills/vfx-dissolve/SKILL.md +4 -4
- package/library/skills/vfx-fire/SKILL.md +6 -6
- package/library/skills/vfx-fire/_building-blocks/additive-billboard-particles.md +3 -3
- package/library/skills/vfx-hit-spark/SKILL.md +4 -4
- package/library/skills/vfx-hit-spark/_building-blocks/additive-billboard-particles.md +3 -3
- package/library/skills/vfx-lightning/SKILL.md +5 -5
- package/library/skills/vfx-lightning/_building-blocks/additive-billboard-particles.md +3 -3
- package/library/skills/vfx-lightning/_building-blocks/trauma-shake-snippet.md +9 -3
- package/library/skills/vfx-magic-glow/SKILL.md +4 -4
- package/library/skills/vfx-magic-glow/_building-blocks/additive-billboard-particles.md +3 -3
- package/library/skills/vfx-muzzle-flash/SKILL.md +5 -5
- package/library/skills/vfx-muzzle-flash/_building-blocks/additive-billboard-particles.md +3 -3
- package/library/skills/vfx-muzzle-flash/_building-blocks/trauma-shake-snippet.md +9 -3
- package/library/skills/vfx-smoke/SKILL.md +5 -5
- package/library/skills/vfx-water-ripple/SKILL.md +2 -2
- package/library/skills/vfx-water-ripple/_building-blocks/additive-billboard-particles.md +3 -3
- package/library/skills/voice-line/SKILL.md +9 -9
- package/library/skills/world-building-3d/references/spatial-tools.md +2 -2
- package/library/skills/writing-plans/SKILL.md +4 -4
- package/library/skills/writing-skills/SKILL.md +8 -8
- package/library/tools/capture-gameplay/resource.yaml +66 -1
- package/library/tools/creator-publish/resource.yaml +4 -4
- package/library/tools/creator-releases/resource.yaml +5 -5
- package/library/tools/export-game/resource.yaml +3 -0
- package/library/tools/generate-image/resource.yaml +4 -2
- package/library/tools/publish-build/resource.yaml +5 -1
- package/package.json +1 -1
- package/registry/generated/counts.json +2 -2
- package/registry/generated/gemini-extension.json +5 -1
- package/registry/generated/index.json +280 -137
- package/registry/generated/marketplace.claude.json +1 -1
- package/registry/generated/plugin.claude.json +5 -1
- package/registry/generated/plugin.codex.json +5 -1
- package/registry/generated/plugin.cursor.json +5 -1
- package/registry/generated/plugin.factory.json +5 -1
- package/registry/generated/skills-index.md +16 -6
- package/registry/generated/skills-registry.json +57 -5
- package/registry/schemas/domains.json +1 -1
- package/registry/schemas/skill.schema.json +5 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Additive Billboard Particles — Canonical Material Settings
|
|
2
2
|
|
|
3
|
-
Reusable material configuration for additive particle billboards (motes, sparks, glow, ash). Used by `magic-glow`, optionally substitutable in `hit-spark` and `fire` if a custom shader is overkill.
|
|
3
|
+
Reusable material configuration for additive particle billboards (motes, sparks, glow, ash). Used by `vfx-magic-glow`, optionally substitutable in `vfx-hit-spark` and `vfx-fire` if a custom shader is overkill.
|
|
4
4
|
|
|
5
5
|
`BaseMaterial3D` is abstract — `BaseMaterial3D.new()` is a parse error ("Native class
|
|
6
6
|
"BaseMaterial3D" cannot be constructed as it is abstract"). Instantiate
|
|
@@ -27,8 +27,8 @@ bm.emission = Color(R, G, B) # usually same as albedo for single-color
|
|
|
27
27
|
|
|
28
28
|
## When to use this vs a custom shader
|
|
29
29
|
|
|
30
|
-
- **Use this `StandardMaterial3D` config** when the effect is just a tinted soft-circle mote (magic glow, sparkles, dust). Less code, faster iteration, free
|
|
31
|
-
- **Per-particle color over age does NOT need a custom shader.** `ParticleProcessMaterial` has `color_ramp`, `color_initial_ramp`, `alpha_curve` and `emission_curve` (all
|
|
30
|
+
- **Use this `StandardMaterial3D` config** when the effect is just a tinted soft-circle mote (magic glow, sparkles, dust). Less code, faster iteration, free engine-managed billboard math.
|
|
31
|
+
- **Per-particle color over age does NOT need a custom shader.** `ParticleProcessMaterial` has `color_ramp`, `color_initial_ramp`, `alpha_curve` and `emission_curve` (all present on the shipped engine) — those drive the particle's `COLOR` from age and feed straight into a plain `StandardMaterial3D`. Reach for a ramp before reaching for a shader.
|
|
32
32
|
- **Use a custom `ShaderMaterial`** when you need per-fragment shape masks (muzzle flash star burst), noise-distorted UVs (fire, smoke), or anything that varies *within* the quad. Those are what `StandardMaterial3D` genuinely can't express.
|
|
33
33
|
- If a custom shader does need the particle age, note that the age lives in `INSTANCE_CUSTOM.y` (normalized by `INSTANCE_CUSTOM.w`, the lifetime), that `INSTANCE_CUSTOM.x` is the rotation angle — not the age — and that `INSTANCE_CUSTOM` is **vertex-stage only**. Pass it to `fragment()` through a `varying`.
|
|
34
34
|
|
|
@@ -24,7 +24,7 @@ Then it generates one line (or a multi-turn dialogue) with the right stability /
|
|
|
24
24
|
|
|
25
25
|
## When NOT to use
|
|
26
26
|
|
|
27
|
-
- Non-verbal vocal SFX (grunt, scream) → `
|
|
27
|
+
- Non-verbal vocal SFX (grunt, scream) → `sound-effect` with prompt `male grunt of pain, mid-thirties, sharp, 400ms`.
|
|
28
28
|
- Pre-recorded voice from a real actor — import the .mp3 / .wav with `summer_import_from_url` and skip TTS.
|
|
29
29
|
|
|
30
30
|
## Steps
|
|
@@ -146,7 +146,7 @@ For a single line, the prompt is just the text. Punctuation and formatting matte
|
|
|
146
146
|
|
|
147
147
|
- **Periods** = clear pauses (~300ms). Use them.
|
|
148
148
|
- **Commas** = short pauses (~100ms).
|
|
149
|
-
- **Em dashes** = sharp cut.
|
|
149
|
+
- **Em dashes** = sharp cut.
|
|
150
150
|
- **All-caps word** = stress: `You SHALL not pass.`
|
|
151
151
|
- **Ellipsis** = trailing pause: `I... I don't know what to say.`
|
|
152
152
|
- **Parenthetical stage direction is ignored** — `(angrily)` is read as the word "angrily". Use stability/style instead.
|
|
@@ -230,7 +230,7 @@ Excited young hero: 18-28, high energy, mid-high pitch
|
|
|
230
230
|
Cold villain: 30-50, neutral/theatrical, low-mid, slow with sharp consonants
|
|
231
231
|
Mischievous trickster: theatrical, light, fast cadence
|
|
232
232
|
Calm scholar: 30-50, neutral, mid, even cadence
|
|
233
|
-
Scared / breathy:
|
|
233
|
+
Scared / breathy: stability=0.25, style=0.5
|
|
234
234
|
Robotic AI: stability=1.0, style=0.0
|
|
235
235
|
Narrator cinematic: mid-deep, neutral/theatrical, even, very stable
|
|
236
236
|
Narrator intimate: warmer mid pitch, lower stability for breath
|
|
@@ -250,9 +250,9 @@ Narrator intimate: warmer mid pitch, lower stability for breath
|
|
|
250
250
|
|
|
251
251
|
## Edge cases
|
|
252
252
|
|
|
253
|
-
- **Line longer than ~1000 characters.** ElevenLabs caps per-call. Split at sentence boundaries, generate each,
|
|
253
|
+
- **Line longer than ~1000 characters.** ElevenLabs caps per-call. Split at sentence boundaries, generate each, and play them in order by chaining the player's `finished` signal.
|
|
254
254
|
- **Mispronunciation of a fictional word.** Spell it phonetically: `Caelthorne` → `KEL-thorn` or `KAYL-thorn`. Or use SSML if the model supports it.
|
|
255
|
-
- **Voice drifts in long lines.** Increase `
|
|
255
|
+
- **Voice drifts in long lines.** Increase `similarityBoost` toward 0.9; or split.
|
|
256
256
|
- **Need a non-English line.** `eleven_multilingual_v2` supports 29 languages. Just write in the target language; the same voice id works.
|
|
257
257
|
- **User wants the line shorter on regen.** Edit the text first; don't try to compress with `speed` past 1.15 (artifacts).
|
|
258
258
|
- **NPC bark variants.** Generate 3–5 variants of the same intent (`"They're at the gate!"`, `"Enemy approaching!"`, `"Look out!"`) and pick at random in code so the bark doesn't repeat.
|
|
@@ -266,10 +266,10 @@ Print the call (text, voice id, params, target path). User runs via the Summer d
|
|
|
266
266
|
> Line `hodge_hold_the_line.mp3` wired to `NPC/VoiceLine` on the `Voice` bus. Cast bible updated. Next:
|
|
267
267
|
> - Generate 3 bark variants of the same intent so the NPC doesn't sound like a recording.
|
|
268
268
|
> - For the upcoming gate scene, run `/voice-line` with `text_to_dialogue` for the multi-turn exchange.
|
|
269
|
-
> - Set up music ducking on the `Music` bus when `Voice` is active (one Tween or
|
|
269
|
+
> - Set up music ducking on the `Music` bus when `Voice` is active (one Tween, or an `AudioEffectCompressor` on `Music` with `sidechain` set to `Voice`).
|
|
270
270
|
|
|
271
271
|
## See also
|
|
272
272
|
|
|
273
|
-
- `audio
|
|
274
|
-
- `
|
|
275
|
-
- `
|
|
273
|
+
- `audio-direction` — Voice bus and ducking rules
|
|
274
|
+
- `sound-effect` — non-verbal vocal SFX (grunt, scream)
|
|
275
|
+
- `adaptive-music` — ducking integration
|
|
@@ -17,7 +17,7 @@ Input is a candidate global position and global Euler rotation. The subject's cu
|
|
|
17
17
|
|
|
18
18
|
Interpretation:
|
|
19
19
|
|
|
20
|
-
- Physics overlap counts are lower bounds because
|
|
20
|
+
- Physics overlap counts are lower bounds because the physics server exposes no broadphase-completeness bit.
|
|
21
21
|
- Any known obstruction makes `fits: false`.
|
|
22
22
|
- Zero known physics overlaps can still yield `fits: null`; never coerce it to success.
|
|
23
23
|
- `grounded`, signed `floorGap`, and support evidence are independent of overlap certainty. Claim physics-grounded only when `floorEvidence` is `physics` and `supportQueryComplete` is true; otherwise label the evidence approximate or incomplete.
|
|
@@ -42,7 +42,7 @@ This is one-dimensional arrangement evidence. It does not prove clearance on the
|
|
|
42
42
|
|
|
43
43
|
## `summer_navigation_probe`
|
|
44
44
|
|
|
45
|
-
Iteration 0 is unready; iteration 1 and later can be queried. Layer-filtered snapped endpoints and the reported snap distances define what
|
|
45
|
+
Iteration 0 is unready; iteration 1 and later can be queried. Layer-filtered snapped endpoints and the reported snap distances define what the engine actually tested. `ready: false` means unknown, not unreachable.
|
|
46
46
|
|
|
47
47
|
Require both a reachable path and a small endpoint snap distance appropriate to the authored target.
|
|
48
48
|
Probe every independent destination; one reachable subject does not validate the
|
|
@@ -66,9 +66,9 @@ This structure informs the task decomposition. Each task should produce self-con
|
|
|
66
66
|
### Task N: [Component Name]
|
|
67
67
|
|
|
68
68
|
**Files:**
|
|
69
|
-
- Create: `exact/path/to/file.
|
|
70
|
-
- Modify: `exact/path/to/existing.
|
|
71
|
-
- Test: `tests/exact/path/to/
|
|
69
|
+
- Create: `exact/path/to/file.gd`
|
|
70
|
+
- Modify: `exact/path/to/existing.gd:123-145`
|
|
71
|
+
- Test: `tests/exact/path/to/test_file.gd`
|
|
72
72
|
|
|
73
73
|
- [ ] **Step 1: Write the failing test**
|
|
74
74
|
|
|
@@ -103,7 +103,7 @@ Expected: PASS
|
|
|
103
103
|
- [ ] **Step 5: Commit**
|
|
104
104
|
|
|
105
105
|
```bash
|
|
106
|
-
git add tests/
|
|
106
|
+
git add tests/unit/test_health.gd scripts/health.gd
|
|
107
107
|
git commit -m "feat: add specific feature"
|
|
108
108
|
```
|
|
109
109
|
````
|
|
@@ -104,7 +104,7 @@ skills/
|
|
|
104
104
|
|
|
105
105
|
```markdown
|
|
106
106
|
---
|
|
107
|
-
name:
|
|
107
|
+
name: skill-name-with-hyphens
|
|
108
108
|
description: Use when [specific triggering conditions and symptoms]
|
|
109
109
|
---
|
|
110
110
|
|
|
@@ -260,7 +260,7 @@ You: Searching...
|
|
|
260
260
|
|
|
261
261
|
**Verification:**
|
|
262
262
|
```bash
|
|
263
|
-
wc -w skills
|
|
263
|
+
wc -w library/skills/<slug>/SKILL.md
|
|
264
264
|
# getting-started workflows: aim for <150 each
|
|
265
265
|
# Other frequently-loaded: aim for <200 total
|
|
266
266
|
```
|
|
@@ -287,7 +287,7 @@ Use skill name only, with explicit requirement markers:
|
|
|
287
287
|
|
|
288
288
|
**Check the skill exists before you point at it.** The registry of shipped skills is `registry/generated/skills-registry.json` (generated from `library/skills/`); `summer skills list` prints it. A `REQUIRED SUB-SKILL` pointing at a skill that was never shipped is worse than no cross-reference: the reader stops and looks for something that does not exist.
|
|
289
289
|
|
|
290
|
-
**Why no @ links:** `@` syntax force-loads files immediately
|
|
290
|
+
**Why no @ links:** `@` syntax force-loads files immediately and spends context before you need them.
|
|
291
291
|
|
|
292
292
|
## Flowchart Usage
|
|
293
293
|
|
|
@@ -549,7 +549,7 @@ Run same scenarios WITH skill. Agent should now comply.
|
|
|
549
549
|
|
|
550
550
|
Agent found new rationalization? Add explicit counter. Re-test until bulletproof.
|
|
551
551
|
|
|
552
|
-
**Testing methodology:** See
|
|
552
|
+
**Testing methodology:** See `testing-skills-with-subagents.md` in this directory for the complete testing methodology:
|
|
553
553
|
- How to write pressure scenarios
|
|
554
554
|
- Pressure types (time, sunk cost, authority, exhaustion)
|
|
555
555
|
- Plugging holes systematically
|
|
@@ -633,10 +633,10 @@ Deploying untested skills = deploying untested code. It's a violation of quality
|
|
|
633
633
|
How future Claude finds your skill:
|
|
634
634
|
|
|
635
635
|
1. **Encounters problem** ("tests are flaky")
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
636
|
+
2. **Finds SKILL** (description matches)
|
|
637
|
+
3. **Scans overview** (is this relevant?)
|
|
638
|
+
4. **Reads patterns** (quick reference table)
|
|
639
|
+
5. **Loads example** (only when implementing)
|
|
640
640
|
|
|
641
641
|
**Optimize for this flow** - put searchable terms early and often.
|
|
642
642
|
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
id: tool/capture-gameplay
|
|
2
2
|
kind: tool
|
|
3
3
|
version: 1.0.0
|
|
4
|
-
summary: Capture real gameplay
|
|
4
|
+
summary: Capture real gameplay PNGs (HUD included) offscreen without a running editor; game flags and player steps (press, key, click) get past the title screen.
|
|
5
5
|
use_when:
|
|
6
6
|
- '"take gameplay screenshots for my store page"'
|
|
7
7
|
- '"I need screenshots but the editor is not open"'
|
|
8
8
|
- '"capture a 1920x1080 frame of my game"'
|
|
9
9
|
- collecting real gameplay screenshots for summer_store_set_art desktop.screenshots or mobile.screenshots
|
|
10
|
+
- every capture shows the title screen — pass the game's flags in args or steps like press Play
|
|
10
11
|
do_not_use_when:
|
|
11
12
|
- the editor is open and the game is running — tool/screenshot with target game shows the live game
|
|
12
13
|
- key art, covers or icons — those are generated art, not gameplay frames
|
|
@@ -62,6 +63,70 @@ input_schema:
|
|
|
62
63
|
out:
|
|
63
64
|
type: string
|
|
64
65
|
description: Output folder. Defaults to <project>/.summer/captures/<time>/ (ignored by git).
|
|
66
|
+
args:
|
|
67
|
+
type: array
|
|
68
|
+
maxItems: 32
|
|
69
|
+
items:
|
|
70
|
+
type: string
|
|
71
|
+
description: The game's own command-line flags, passed after "--" (OS.get_cmdline_user_args()), e.g. ["--autostart", "--solo"] to skip the title screen.
|
|
72
|
+
steps:
|
|
73
|
+
type: array
|
|
74
|
+
maxItems: 50
|
|
75
|
+
description: 'What to do after waitSeconds, in order; exactly one of press, key, action, click, drag, wait, shot per step. Example: [{"press":"Play"},{"wait":3000},{"key":"Space"},{"shot":true},{"action":"jump"},{"wait":500},{"shot":true}]. With a shot step only shot steps save frames. A step that cannot run becomes a warning.'
|
|
76
|
+
items:
|
|
77
|
+
type: object
|
|
78
|
+
properties:
|
|
79
|
+
press:
|
|
80
|
+
type: string
|
|
81
|
+
description: Press the visible button with this text (or node name); waits up to timeoutSeconds (default 10) for it.
|
|
82
|
+
timeoutSeconds:
|
|
83
|
+
type: number
|
|
84
|
+
minimum: 0
|
|
85
|
+
maximum: 60
|
|
86
|
+
key:
|
|
87
|
+
type: string
|
|
88
|
+
description: Press a key by Godot name (Space, Enter, Escape, A, Up).
|
|
89
|
+
action:
|
|
90
|
+
type: string
|
|
91
|
+
description: Press an input action from the project's InputMap, e.g. jump.
|
|
92
|
+
holdMs:
|
|
93
|
+
type: number
|
|
94
|
+
minimum: 0
|
|
95
|
+
maximum: 10000
|
|
96
|
+
description: How long key or action is held (default 100).
|
|
97
|
+
click:
|
|
98
|
+
type: array
|
|
99
|
+
items:
|
|
100
|
+
type: number
|
|
101
|
+
description: Left-click at [x, y] in frame pixels.
|
|
102
|
+
drag:
|
|
103
|
+
type: object
|
|
104
|
+
properties:
|
|
105
|
+
from:
|
|
106
|
+
type: array
|
|
107
|
+
items:
|
|
108
|
+
type: number
|
|
109
|
+
to:
|
|
110
|
+
type: array
|
|
111
|
+
items:
|
|
112
|
+
type: number
|
|
113
|
+
ms:
|
|
114
|
+
type: number
|
|
115
|
+
minimum: 0
|
|
116
|
+
maximum: 10000
|
|
117
|
+
required:
|
|
118
|
+
- from
|
|
119
|
+
- to
|
|
120
|
+
description: Drag with the left button from [x, y] to [x, y] over ms (default 300).
|
|
121
|
+
wait:
|
|
122
|
+
type: number
|
|
123
|
+
minimum: 0
|
|
124
|
+
maximum: 60000
|
|
125
|
+
description: Wait this many milliseconds.
|
|
126
|
+
shot:
|
|
127
|
+
type: boolean
|
|
128
|
+
description: true saves a frame now.
|
|
129
|
+
additionalProperties: false
|
|
65
130
|
additionalProperties: false
|
|
66
131
|
authority:
|
|
67
132
|
filesystem: true
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
id: tool/creator-publish
|
|
2
2
|
kind: tool
|
|
3
3
|
version: 1.1.0
|
|
4
|
-
summary: "Deprecated: publishes a .pck to the legacy
|
|
4
|
+
summary: "Deprecated: publishes a .pck to the legacy creator API. Use summer_export_game, then summer_publish_build, to upload to summer.games."
|
|
5
5
|
use_when:
|
|
6
|
-
-
|
|
7
|
-
-
|
|
8
|
-
- '"release version 1.2.0 of my game"'
|
|
6
|
+
- an old project that still publishes a .pck to the legacy Summercraft creator channel with an sc_ creator token
|
|
7
|
+
- a ~/.summer/config.json that names a legacy creator projectId and channel
|
|
9
8
|
do_not_use_when:
|
|
9
|
+
- releasing a version on summer.games — summer_publish_build, then summer_store_submit (the owner approves)
|
|
10
10
|
- uploading to summer.games — summer_export_game, then summer_publish_build
|
|
11
11
|
- the user has not approved the exact version, digest, and channel
|
|
12
12
|
- the game is not exported yet — export the .pck first (skill/export-and-ship)
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
id: tool/creator-releases
|
|
2
2
|
kind: tool
|
|
3
3
|
version: 1.0.2
|
|
4
|
-
summary:
|
|
4
|
+
summary: "Deprecated: lists releases on the legacy creator API. For summer.games use summer_store_releases."
|
|
5
5
|
use_when:
|
|
6
|
-
-
|
|
7
|
-
-
|
|
8
|
-
- '"did the publish go through?" — confirming a release landed'
|
|
6
|
+
- an old project that published a .pck to the legacy Summercraft creator channel with an sc_ creator token
|
|
7
|
+
- paging legacy creator releases by projectId and cursor
|
|
9
8
|
do_not_use_when:
|
|
9
|
+
- what players get on summer.games, or whether a release landed — summer_store_releases
|
|
10
10
|
- publishing a new release — summer_publish_build
|
|
11
11
|
facets:
|
|
12
12
|
lifecycle:
|
|
@@ -18,7 +18,7 @@ compatibility:
|
|
|
18
18
|
engine: ">=4.6"
|
|
19
19
|
source: official
|
|
20
20
|
license: MIT
|
|
21
|
-
status:
|
|
21
|
+
status: deprecated
|
|
22
22
|
aliases:
|
|
23
23
|
- summer_creator_releases
|
|
24
24
|
implementation:
|
|
@@ -61,6 +61,9 @@ input_schema:
|
|
|
61
61
|
minimum: 10
|
|
62
62
|
maximum: 7200
|
|
63
63
|
description: Stop the engine after this many seconds (default 900; a first export imports every asset).
|
|
64
|
+
alignDeclaration:
|
|
65
|
+
type: boolean
|
|
66
|
+
description: A game with a server, set summer.build.json targetPlatforms to targets before exporting. The store refuses an upload whose declaration differs from the exported platforms (declaration_mismatch) and that spends the version.
|
|
64
67
|
additionalProperties: false
|
|
65
68
|
authority:
|
|
66
69
|
filesystem: true
|
|
@@ -33,8 +33,7 @@ input_schema:
|
|
|
33
33
|
description: Description of the image to generate
|
|
34
34
|
model:
|
|
35
35
|
type: string
|
|
36
|
-
|
|
37
|
-
description: Model name or full provider ID
|
|
36
|
+
description: Model name or full provider ID. Omit it and the server picks one that reaches the requested size (nano-banana-2 when no size is asked).
|
|
38
37
|
style:
|
|
39
38
|
type: string
|
|
40
39
|
default: realistic
|
|
@@ -63,6 +62,9 @@ input_schema:
|
|
|
63
62
|
type: object
|
|
64
63
|
additionalProperties: {}
|
|
65
64
|
description: Extra model params (seed, negative_prompt, ...). The result lists any it did not use in ignoredOptions.
|
|
65
|
+
out:
|
|
66
|
+
type: string
|
|
67
|
+
description: Where to save the image on this machine, a folder or a file path ending in .png, .jpg or .webp. Default is <TMPDIR>/summer-gen/.
|
|
66
68
|
required:
|
|
67
69
|
- prompt
|
|
68
70
|
additionalProperties: false
|
|
@@ -6,12 +6,16 @@ use_when:
|
|
|
6
6
|
- '"upload my game to summer.games"'
|
|
7
7
|
- '"publish this build to my store page"'
|
|
8
8
|
- '"put my game online so my friends can play it"'
|
|
9
|
+
- '"release version 1.2.0 of my game"'
|
|
10
|
+
- '"ship this exported build to the live channel"'
|
|
9
11
|
- uploading the .zip from summer_export_game as a new Build
|
|
10
12
|
- uploading a web build or a macOS or Windows download from summer_export_game format download
|
|
11
13
|
do_not_use_when:
|
|
12
14
|
- the user has not approved the exact game, file, digest, version and publish choice
|
|
13
15
|
- the game is not exported yet — summer_export_game first
|
|
14
|
-
- store page text,
|
|
16
|
+
- store page text, art or price — summer_store_update_listing, summer_store_set_art (mounted after summer login --store)
|
|
17
|
+
- making the build live — summer_store_submit (the owner approves publishing), then summer_build_release
|
|
18
|
+
- what players get now — summer_store_releases
|
|
15
19
|
facets:
|
|
16
20
|
lifecycle:
|
|
17
21
|
- launch
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "summer-engine",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.5.0",
|
|
4
4
|
"description": "Local Summer CLI and MCP server for Summer Engine. Install and run the engine, connect Claude Code, Cursor, Codex, Gemini, and other agents, and build real games with bundled skills, hooks, and plugins.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"summer-engine",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"_generated": "GENERATED from integrations/gemini — do not edit; npm run generate:registry",
|
|
3
3
|
"name": "summer",
|
|
4
|
-
"version": "3.
|
|
4
|
+
"version": "3.5.0",
|
|
5
5
|
"description": "Agent tooling for Summer Engine: MCP bridge, context primer, and game-dev skills. Use with the npm CLI for skill files on disk.",
|
|
6
6
|
"contextFileName": "GEMINI.md",
|
|
7
7
|
"mcpServers": {
|
|
@@ -68,6 +68,7 @@
|
|
|
68
68
|
"./library/skills/gdscript-patterns/",
|
|
69
69
|
"./library/skills/generate-motion/",
|
|
70
70
|
"./library/skills/godogen-visual-proof-game-generation/",
|
|
71
|
+
"./library/skills/grow-analytics/",
|
|
71
72
|
"./library/skills/headless-scripting/",
|
|
72
73
|
"./library/skills/in-game-purchases/",
|
|
73
74
|
"./library/skills/instantiate-asset-pack/",
|
|
@@ -90,6 +91,7 @@
|
|
|
90
91
|
"./library/skills/procedural-animation/",
|
|
91
92
|
"./library/skills/prop-model/",
|
|
92
93
|
"./library/skills/psx-retro-rendering/",
|
|
94
|
+
"./library/skills/publish-your-game/",
|
|
93
95
|
"./library/skills/realtime-wet-surfaces/",
|
|
94
96
|
"./library/skills/remote-deploy/",
|
|
95
97
|
"./library/skills/retarget/",
|
|
@@ -107,6 +109,8 @@
|
|
|
107
109
|
"./library/skills/sound-effect/",
|
|
108
110
|
"./library/skills/spatial-placement/",
|
|
109
111
|
"./library/skills/sprite-sheet/",
|
|
112
|
+
"./library/skills/store-art/",
|
|
113
|
+
"./library/skills/store-listing/",
|
|
110
114
|
"./library/skills/summer-analytics/",
|
|
111
115
|
"./library/skills/summer-friends/",
|
|
112
116
|
"./library/skills/summer-leaderboards/",
|