@funpixel/tools 0.1.0 → 0.1.1
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/bench/handlers/bake_emissive.py +2 -2
- package/bench/handlers/decimate.py +2 -2
- package/bench/handlers/fracture.py +1 -1
- package/bench/handlers/normalize_transform.py +3 -3
- package/bench/handlers/render_views.py +2 -2
- package/bench/handlers/views.py +6 -6
- package/dist/cli.js +8 -9
- package/dist/commands/feedback.js +5 -5
- package/dist/commands/init.js +1 -1
- package/dist/direct/read.js +1 -1
- package/dist/doctor/unity-checks.js +5 -5
- package/dist/doctor/unity-history.js +17 -33
- package/dist/feedback/ab.js +0 -40
- package/dist/gen/unity.js +3 -3
- package/dist/mcp/server.js +2 -1
- package/dist/pipeline/pipeline.js +6 -6
- package/dist/playtest/moments.js +1 -1
- package/dist/playtest/report.js +1 -1
- package/dist/production/mirror.js +2 -2
- package/dist/sim/curve.js +3 -3
- package/dist/spec/scaffold.js +1 -1
- package/dist/studio/pitch.js +1 -1
- package/dist/unity/probe/install.js +1 -1
- package/dist/vendor/verify/src/page/actors.js +2 -2
- package/dist/vendor/verify/src/page/capture_view.js +2 -2
- package/dist/vendor/verify/src/page/dressing.js +1 -1
- package/dist/vendor/verify/src/page/frame_honesty.js +1 -1
- package/dist/vendor/verify/src/page/front_door.js +2 -2
- package/dist/vendor/verify/src/page/grounding.js +3 -3
- package/dist/vendor/verify/src/page/hud.js +3 -3
- package/dist/vendor/verify/src/page/layout.js +5 -5
- package/dist/vendor/verify/src/page/life_anim.js +6 -6
- package/dist/vendor/verify/src/page/mechanic_check.js +1 -1
- package/dist/vendor/verify/src/page/phone_check.js +2 -2
- package/dist/vendor/verify/src/page/recorder.js +2 -2
- package/dist/vendor/verify/src/page/surfaces.js +2 -2
- package/dist/vendor/verify/src/page/world_actors.js +3 -3
- package/package.json +2 -2
- package/plugins/README.md +16 -0
- package/plugins/claude/README.md +2 -3
- package/plugins/claude/agents/art-director.md +2 -2
- package/plugins/claude/commands/playtest.md +2 -2
- package/plugins/claude/hooks/brief.md +1 -1
- package/plugins/claude/hooks/guidance.json +1 -1
- package/plugins/claude/hooks/vendor/pipeline/pipeline.mjs +6 -6
- package/plugins/claude/hooks/vendor/studio/pitch.mjs +1 -1
- package/plugins/claude/skills/3d/references/bake-off.md +3 -3
- package/plugins/claude/skills/3d/references/characters.md +1 -1
- package/plugins/claude/skills/3d/references/hero-route.md +5 -5
- package/plugins/claude/skills/3d/references/level-spec.md +1 -1
- package/plugins/claude/skills/3d/references/levels.md +3 -3
- package/plugins/claude/skills/3d/references/light-and-places.md +3 -3
- package/plugins/claude/skills/3d/references/painted-target.md +7 -7
- package/plugins/claude/skills/3d/references/three-loading.md +4 -4
- package/plugins/claude/skills/3d/references/unity.md +13 -13
- package/plugins/claude/skills/art/references/animation.md +1 -1
- package/plugins/claude/skills/art/references/cast.md +3 -3
- package/plugins/claude/skills/art/references/effects.md +2 -2
- package/plugins/claude/skills/art/references/frames.md +6 -6
- package/plugins/claude/skills/art/references/judging-frames.md +8 -8
- package/plugins/claude/skills/art/references/look.md +4 -4
- package/plugins/claude/skills/art/references/pipeline.md +2 -2
- package/plugins/claude/skills/art/references/prompts.md +4 -4
- package/plugins/claude/skills/art/references/ui.md +15 -15
- package/plugins/claude/skills/art/references/unity.md +14 -14
- package/plugins/claude/skills/audio/references/adaptive-music.md +4 -4
- package/plugins/claude/skills/audio/references/engine.md +2 -2
- package/plugins/claude/skills/audio/references/measure.md +1 -1
- package/plugins/claude/skills/audio/references/unity.md +20 -19
- package/plugins/claude/skills/game-feel/SKILL.md +4 -4
- package/plugins/claude/skills/game-feel/references/contact.md +6 -6
- package/plugins/claude/skills/game-feel/references/unity.md +18 -23
- package/plugins/claude/skills/game-logic/SKILL.md +3 -3
- package/plugins/claude/skills/game-logic/references/balance.md +2 -2
- package/plugins/claude/skills/game-logic/references/depth.md +2 -2
- package/plugins/claude/skills/game-logic/references/escalation.md +5 -5
- package/plugins/claude/skills/game-logic/references/probes.md +10 -10
- package/plugins/claude/skills/game-logic/references/unity.md +28 -28
- package/plugins/claude/skills/game-spine/SKILL.md +1 -1
- package/plugins/claude/skills/game-spine/references/performance.md +2 -2
- package/plugins/claude/skills/game-spine/references/replay.md +11 -11
- package/plugins/claude/skills/game-spine/references/room-api.md +1 -1
- package/plugins/claude/skills/game-spine/references/sdk.md +1 -1
- package/plugins/claude/skills/gdd/SKILL.md +2 -2
- package/plugins/claude/skills/gdd/references/as-built.md +2 -2
- package/plugins/claude/skills/gdd/references/design-measures.md +2 -2
- package/plugins/claude/skills/gdd/references/design-note.md +1 -1
- package/plugins/claude/skills/gdd/references/first-look.md +1 -1
- package/plugins/claude/skills/gdd/references/floors.md +2 -2
- package/plugins/claude/skills/gdd/references/gameplay-contract.md +1 -1
- package/plugins/claude/skills/gdd/references/genre-puzzle.md +4 -4
- package/plugins/claude/skills/gdd/references/genre-racing.md +2 -2
- package/plugins/claude/skills/gdd/references/genre-rpg.md +2 -2
- package/plugins/claude/skills/gdd/references/genre-shooter.md +2 -2
- package/plugins/claude/skills/gdd/references/genre-survival.md +2 -2
- package/plugins/claude/skills/gdd/references/invent-first.md +3 -3
- package/plugins/claude/skills/gdd/references/level-and-fun.md +11 -11
- package/plugins/claude/skills/gdd/references/pages.md +2 -5
- package/plugins/claude/skills/gdd/references/plan-at-size.md +5 -5
- package/plugins/claude/skills/gdd/references/production-tiers.md +11 -11
- package/plugins/claude/skills/gdd/references/sections.md +7 -7
- package/plugins/claude/skills/gdd/references/spec-folder.md +3 -3
- package/plugins/claude/skills/gdd/references/the-path.md +3 -4
- package/plugins/claude/skills/gdd/references/world-and-identity.md +4 -4
- package/plugins/claude/skills/gdd/references/worth.md +4 -4
- package/plugins/claude/skills/mobile-ui/SKILL.md +3 -3
- package/plugins/claude/skills/mobile-ui/references/hud-and-title.md +3 -3
- package/plugins/claude/skills/mobile-ui/references/phone-check.md +1 -1
- package/plugins/claude/skills/mobile-ui/references/recipes.md +1 -1
- package/plugins/claude/skills/mobile-ui/references/restyle-ui.md +11 -11
- package/plugins/claude/skills/mobile-ui/references/unity.md +23 -23
- package/plugins/claude/skills/publishing/references/compose.md +1 -1
- package/plugins/claude/skills/publishing/references/server-build.md +1 -1
- package/plugins/claude/skills/store/SKILL.md +3 -3
- package/plugins/claude/skills/store/references/app-store.md +1 -1
- package/plugins/claude/skills/store/references/google-play.md +2 -2
- package/plugins/claude/skills/store/references/ios-release.md +19 -20
- package/plugins/claude/skills/store/references/money.md +2 -2
- package/plugins/claude/skills/store/references/purchases-and-review.md +18 -18
- package/plugins/claude/skills/store/references/readiness-page.md +1 -1
- package/plugins/claude/skills/store/references/readiness.md +3 -3
- package/plugins/claude/skills/store/references/unity-store.md +9 -12
- package/plugins/claude/skills/unity-game/SKILL.md +28 -35
- package/plugins/claude/skills/unity-game/references/agent-ops.md +9 -9
- package/plugins/claude/skills/unity-game/references/fixes.md +21 -21
- package/plugins/claude/skills/unity-game/references/from-a-web-game.md +17 -17
- package/plugins/claude/skills/unity-game/references/handing-off.md +4 -4
- package/plugins/claude/skills/unity-game/references/performance.md +10 -14
- package/plugins/claude/skills/unity-game/references/probe.md +4 -4
- package/plugins/claude/skills/unity-game/references/shared-mac.md +1 -1
- package/plugins/claude/skills/unity-game/references/traps.md +13 -14
- package/plugins/claude/skills/verifying/references/bar.md +1 -1
- package/plugins/claude/skills/verifying/references/fidelity.md +11 -11
- package/plugins/claude/skills/verifying/references/mobile-qa.md +10 -10
- package/plugins/claude/skills/verifying/references/playtest.md +14 -14
- package/plugins/claude/skills/verifying/references/unity.md +11 -11
- package/plugins/claude/skills/world-and-story/SKILL.md +1 -1
- package/plugins/claude/skills/world-and-story/references/atmosphere.md +4 -4
- package/plugins/claude/skills/world-and-story/references/living-world.md +2 -2
- package/plugins/claude/skills/world-and-story/references/opening-and-chapters.md +1 -1
- package/plugins/claude/skills/world-and-story/references/story-at-size.md +2 -2
- package/plugins/claude/skills/world-and-story/references/voice.md +1 -1
- package/plugins/codex/AGENTS.md +1 -1
- package/plugins/codex/README.md +1 -1
- package/plugins/codex/hooks/brief.md +1 -1
- package/plugins/codex/hooks/guidance.json +1 -1
- package/plugins/codex/hooks/host.md +1 -1
- package/plugins/codex/hooks/vendor/pipeline/pipeline.mjs +6 -6
- package/plugins/codex/hooks/vendor/studio/pitch.mjs +1 -1
- package/plugins/codex/skills/fp-art-director/SKILL.md +2 -2
- package/plugins/codex/skills/fp-art-director/references/codex.md +1 -1
- package/plugins/codex/skills/fp-audio-director/references/codex.md +1 -1
- package/plugins/codex/skills/fp-critic/references/codex.md +1 -1
- package/plugins/codex/skills/fp-lane/references/codex.md +1 -1
- package/plugins/codex/skills/fp-level-designer/references/codex.md +1 -1
- package/plugins/codex/skills/fp-mobile-qa-seat/references/codex.md +1 -1
- package/plugins/codex/skills/fp-player/references/codex.md +1 -1
- package/plugins/codex/skills/fp-playtest/SKILL.md +2 -2
- package/plugins/codex/skills/fp-qa-lead/references/codex.md +1 -1
- package/plugins/codex/skills/fp-studio/SKILL.md +1 -1
- package/plugins/codex/skills/funpixel-3d/references/bake-off.md +3 -3
- package/plugins/codex/skills/funpixel-3d/references/characters.md +1 -1
- package/plugins/codex/skills/funpixel-3d/references/hero-route.md +5 -5
- package/plugins/codex/skills/funpixel-3d/references/level-spec.md +1 -1
- package/plugins/codex/skills/funpixel-3d/references/levels.md +3 -3
- package/plugins/codex/skills/funpixel-3d/references/light-and-places.md +3 -3
- package/plugins/codex/skills/funpixel-3d/references/painted-target.md +7 -7
- package/plugins/codex/skills/funpixel-3d/references/three-loading.md +4 -4
- package/plugins/codex/skills/funpixel-3d/references/unity.md +13 -13
- package/plugins/codex/skills/funpixel-art/references/animation.md +1 -1
- package/plugins/codex/skills/funpixel-art/references/cast.md +3 -3
- package/plugins/codex/skills/funpixel-art/references/effects.md +2 -2
- package/plugins/codex/skills/funpixel-art/references/frames.md +6 -6
- package/plugins/codex/skills/funpixel-art/references/judging-frames.md +8 -8
- package/plugins/codex/skills/funpixel-art/references/look.md +4 -4
- package/plugins/codex/skills/funpixel-art/references/pipeline.md +2 -2
- package/plugins/codex/skills/funpixel-art/references/prompts.md +4 -4
- package/plugins/codex/skills/funpixel-art/references/ui.md +15 -15
- package/plugins/codex/skills/funpixel-art/references/unity.md +14 -14
- package/plugins/codex/skills/funpixel-audio/references/adaptive-music.md +4 -4
- package/plugins/codex/skills/funpixel-audio/references/engine.md +2 -2
- package/plugins/codex/skills/funpixel-audio/references/measure.md +1 -1
- package/plugins/codex/skills/funpixel-audio/references/unity.md +20 -19
- package/plugins/codex/skills/funpixel-game-feel/SKILL.md +4 -4
- package/plugins/codex/skills/funpixel-game-feel/references/contact.md +6 -6
- package/plugins/codex/skills/funpixel-game-feel/references/unity.md +18 -23
- package/plugins/codex/skills/funpixel-game-logic/SKILL.md +3 -3
- package/plugins/codex/skills/funpixel-game-logic/references/balance.md +2 -2
- package/plugins/codex/skills/funpixel-game-logic/references/depth.md +2 -2
- package/plugins/codex/skills/funpixel-game-logic/references/escalation.md +5 -5
- package/plugins/codex/skills/funpixel-game-logic/references/probes.md +10 -10
- package/plugins/codex/skills/funpixel-game-logic/references/unity.md +28 -28
- package/plugins/codex/skills/funpixel-game-spine/SKILL.md +1 -1
- package/plugins/codex/skills/funpixel-game-spine/references/performance.md +2 -2
- package/plugins/codex/skills/funpixel-game-spine/references/replay.md +11 -11
- package/plugins/codex/skills/funpixel-game-spine/references/room-api.md +1 -1
- package/plugins/codex/skills/funpixel-game-spine/references/sdk.md +1 -1
- package/plugins/codex/skills/funpixel-gdd/SKILL.md +2 -2
- package/plugins/codex/skills/funpixel-gdd/references/as-built.md +2 -2
- package/plugins/codex/skills/funpixel-gdd/references/design-measures.md +2 -2
- package/plugins/codex/skills/funpixel-gdd/references/design-note.md +1 -1
- package/plugins/codex/skills/funpixel-gdd/references/first-look.md +1 -1
- package/plugins/codex/skills/funpixel-gdd/references/floors.md +2 -2
- package/plugins/codex/skills/funpixel-gdd/references/gameplay-contract.md +1 -1
- package/plugins/codex/skills/funpixel-gdd/references/genre-puzzle.md +4 -4
- package/plugins/codex/skills/funpixel-gdd/references/genre-racing.md +2 -2
- package/plugins/codex/skills/funpixel-gdd/references/genre-rpg.md +2 -2
- package/plugins/codex/skills/funpixel-gdd/references/genre-shooter.md +2 -2
- package/plugins/codex/skills/funpixel-gdd/references/genre-survival.md +2 -2
- package/plugins/codex/skills/funpixel-gdd/references/invent-first.md +3 -3
- package/plugins/codex/skills/funpixel-gdd/references/level-and-fun.md +11 -11
- package/plugins/codex/skills/funpixel-gdd/references/pages.md +2 -5
- package/plugins/codex/skills/funpixel-gdd/references/plan-at-size.md +5 -5
- package/plugins/codex/skills/funpixel-gdd/references/production-tiers.md +11 -11
- package/plugins/codex/skills/funpixel-gdd/references/sections.md +7 -7
- package/plugins/codex/skills/funpixel-gdd/references/spec-folder.md +3 -3
- package/plugins/codex/skills/funpixel-gdd/references/the-path.md +3 -4
- package/plugins/codex/skills/funpixel-gdd/references/world-and-identity.md +4 -4
- package/plugins/codex/skills/funpixel-gdd/references/worth.md +4 -4
- package/plugins/codex/skills/funpixel-mobile-ui/SKILL.md +3 -3
- package/plugins/codex/skills/funpixel-mobile-ui/references/hud-and-title.md +3 -3
- package/plugins/codex/skills/funpixel-mobile-ui/references/phone-check.md +1 -1
- package/plugins/codex/skills/funpixel-mobile-ui/references/recipes.md +1 -1
- package/plugins/codex/skills/funpixel-mobile-ui/references/restyle-ui.md +11 -11
- package/plugins/codex/skills/funpixel-mobile-ui/references/unity.md +23 -23
- package/plugins/codex/skills/funpixel-publish/references/compose.md +1 -1
- package/plugins/codex/skills/funpixel-publish/references/server-build.md +1 -1
- package/plugins/codex/skills/funpixel-store/SKILL.md +3 -3
- package/plugins/codex/skills/funpixel-store/references/app-store.md +1 -1
- package/plugins/codex/skills/funpixel-store/references/google-play.md +2 -2
- package/plugins/codex/skills/funpixel-store/references/ios-release.md +19 -20
- package/plugins/codex/skills/funpixel-store/references/money.md +2 -2
- package/plugins/codex/skills/funpixel-store/references/purchases-and-review.md +18 -18
- package/plugins/codex/skills/funpixel-store/references/readiness-page.md +1 -1
- package/plugins/codex/skills/funpixel-store/references/readiness.md +3 -3
- package/plugins/codex/skills/funpixel-store/references/unity-store.md +9 -12
- package/plugins/codex/skills/funpixel-unity-game/SKILL.md +28 -35
- package/plugins/codex/skills/funpixel-unity-game/references/agent-ops.md +9 -9
- package/plugins/codex/skills/funpixel-unity-game/references/fixes.md +21 -21
- package/plugins/codex/skills/funpixel-unity-game/references/from-a-web-game.md +17 -17
- package/plugins/codex/skills/funpixel-unity-game/references/handing-off.md +4 -4
- package/plugins/codex/skills/funpixel-unity-game/references/performance.md +10 -14
- package/plugins/codex/skills/funpixel-unity-game/references/probe.md +4 -4
- package/plugins/codex/skills/funpixel-unity-game/references/shared-mac.md +1 -1
- package/plugins/codex/skills/funpixel-unity-game/references/traps.md +13 -14
- package/plugins/codex/skills/funpixel-verify/references/bar.md +1 -1
- package/plugins/codex/skills/funpixel-verify/references/fidelity.md +11 -11
- package/plugins/codex/skills/funpixel-verify/references/mobile-qa.md +10 -10
- package/plugins/codex/skills/funpixel-verify/references/playtest.md +14 -14
- package/plugins/codex/skills/funpixel-verify/references/unity.md +11 -11
- package/plugins/codex/skills/funpixel-world-and-story/SKILL.md +1 -1
- package/plugins/codex/skills/funpixel-world-and-story/references/atmosphere.md +4 -4
- package/plugins/codex/skills/funpixel-world-and-story/references/living-world.md +2 -2
- package/plugins/codex/skills/funpixel-world-and-story/references/opening-and-chapters.md +1 -1
- package/plugins/codex/skills/funpixel-world-and-story/references/story-at-size.md +2 -2
- package/plugins/codex/skills/funpixel-world-and-story/references/voice.md +1 -1
- package/plugins/cursor/README.md +1 -1
- package/plugins/cursor/agents/art-director.md +2 -2
- package/plugins/cursor/commands/playtest.md +2 -2
- package/plugins/cursor/hooks/brief.md +1 -1
- package/plugins/cursor/hooks/guidance.json +1 -1
- package/plugins/cursor/hooks/vendor/pipeline/pipeline.mjs +6 -6
- package/plugins/cursor/hooks/vendor/studio/pitch.mjs +1 -1
- package/plugins/cursor/rules/funpixel-brief.mdc +1 -1
- package/plugins/cursor/skills/funpixel-3d/references/bake-off.md +3 -3
- package/plugins/cursor/skills/funpixel-3d/references/characters.md +1 -1
- package/plugins/cursor/skills/funpixel-3d/references/hero-route.md +5 -5
- package/plugins/cursor/skills/funpixel-3d/references/level-spec.md +1 -1
- package/plugins/cursor/skills/funpixel-3d/references/levels.md +3 -3
- package/plugins/cursor/skills/funpixel-3d/references/light-and-places.md +3 -3
- package/plugins/cursor/skills/funpixel-3d/references/painted-target.md +7 -7
- package/plugins/cursor/skills/funpixel-3d/references/three-loading.md +4 -4
- package/plugins/cursor/skills/funpixel-3d/references/unity.md +13 -13
- package/plugins/cursor/skills/funpixel-art/references/animation.md +1 -1
- package/plugins/cursor/skills/funpixel-art/references/cast.md +3 -3
- package/plugins/cursor/skills/funpixel-art/references/effects.md +2 -2
- package/plugins/cursor/skills/funpixel-art/references/frames.md +6 -6
- package/plugins/cursor/skills/funpixel-art/references/judging-frames.md +8 -8
- package/plugins/cursor/skills/funpixel-art/references/look.md +4 -4
- package/plugins/cursor/skills/funpixel-art/references/pipeline.md +2 -2
- package/plugins/cursor/skills/funpixel-art/references/prompts.md +4 -4
- package/plugins/cursor/skills/funpixel-art/references/ui.md +15 -15
- package/plugins/cursor/skills/funpixel-art/references/unity.md +14 -14
- package/plugins/cursor/skills/funpixel-audio/references/adaptive-music.md +4 -4
- package/plugins/cursor/skills/funpixel-audio/references/engine.md +2 -2
- package/plugins/cursor/skills/funpixel-audio/references/measure.md +1 -1
- package/plugins/cursor/skills/funpixel-audio/references/unity.md +20 -19
- package/plugins/cursor/skills/funpixel-game-feel/SKILL.md +4 -4
- package/plugins/cursor/skills/funpixel-game-feel/references/contact.md +6 -6
- package/plugins/cursor/skills/funpixel-game-feel/references/unity.md +18 -23
- package/plugins/cursor/skills/funpixel-game-logic/SKILL.md +3 -3
- package/plugins/cursor/skills/funpixel-game-logic/references/balance.md +2 -2
- package/plugins/cursor/skills/funpixel-game-logic/references/depth.md +2 -2
- package/plugins/cursor/skills/funpixel-game-logic/references/escalation.md +5 -5
- package/plugins/cursor/skills/funpixel-game-logic/references/probes.md +10 -10
- package/plugins/cursor/skills/funpixel-game-logic/references/unity.md +28 -28
- package/plugins/cursor/skills/funpixel-game-spine/SKILL.md +1 -1
- package/plugins/cursor/skills/funpixel-game-spine/references/performance.md +2 -2
- package/plugins/cursor/skills/funpixel-game-spine/references/replay.md +11 -11
- package/plugins/cursor/skills/funpixel-game-spine/references/room-api.md +1 -1
- package/plugins/cursor/skills/funpixel-game-spine/references/sdk.md +1 -1
- package/plugins/cursor/skills/funpixel-gdd/SKILL.md +2 -2
- package/plugins/cursor/skills/funpixel-gdd/references/as-built.md +2 -2
- package/plugins/cursor/skills/funpixel-gdd/references/design-measures.md +2 -2
- package/plugins/cursor/skills/funpixel-gdd/references/design-note.md +1 -1
- package/plugins/cursor/skills/funpixel-gdd/references/first-look.md +1 -1
- package/plugins/cursor/skills/funpixel-gdd/references/floors.md +2 -2
- package/plugins/cursor/skills/funpixel-gdd/references/gameplay-contract.md +1 -1
- package/plugins/cursor/skills/funpixel-gdd/references/genre-puzzle.md +4 -4
- package/plugins/cursor/skills/funpixel-gdd/references/genre-racing.md +2 -2
- package/plugins/cursor/skills/funpixel-gdd/references/genre-rpg.md +2 -2
- package/plugins/cursor/skills/funpixel-gdd/references/genre-shooter.md +2 -2
- package/plugins/cursor/skills/funpixel-gdd/references/genre-survival.md +2 -2
- package/plugins/cursor/skills/funpixel-gdd/references/invent-first.md +3 -3
- package/plugins/cursor/skills/funpixel-gdd/references/level-and-fun.md +11 -11
- package/plugins/cursor/skills/funpixel-gdd/references/pages.md +2 -5
- package/plugins/cursor/skills/funpixel-gdd/references/plan-at-size.md +5 -5
- package/plugins/cursor/skills/funpixel-gdd/references/production-tiers.md +11 -11
- package/plugins/cursor/skills/funpixel-gdd/references/sections.md +7 -7
- package/plugins/cursor/skills/funpixel-gdd/references/spec-folder.md +3 -3
- package/plugins/cursor/skills/funpixel-gdd/references/the-path.md +3 -4
- package/plugins/cursor/skills/funpixel-gdd/references/world-and-identity.md +4 -4
- package/plugins/cursor/skills/funpixel-gdd/references/worth.md +4 -4
- package/plugins/cursor/skills/funpixel-mobile-ui/SKILL.md +3 -3
- package/plugins/cursor/skills/funpixel-mobile-ui/references/hud-and-title.md +3 -3
- package/plugins/cursor/skills/funpixel-mobile-ui/references/phone-check.md +1 -1
- package/plugins/cursor/skills/funpixel-mobile-ui/references/recipes.md +1 -1
- package/plugins/cursor/skills/funpixel-mobile-ui/references/restyle-ui.md +11 -11
- package/plugins/cursor/skills/funpixel-mobile-ui/references/unity.md +23 -23
- package/plugins/cursor/skills/funpixel-publish/references/compose.md +1 -1
- package/plugins/cursor/skills/funpixel-publish/references/server-build.md +1 -1
- package/plugins/cursor/skills/funpixel-store/SKILL.md +3 -3
- package/plugins/cursor/skills/funpixel-store/references/app-store.md +1 -1
- package/plugins/cursor/skills/funpixel-store/references/google-play.md +2 -2
- package/plugins/cursor/skills/funpixel-store/references/ios-release.md +19 -20
- package/plugins/cursor/skills/funpixel-store/references/money.md +2 -2
- package/plugins/cursor/skills/funpixel-store/references/purchases-and-review.md +18 -18
- package/plugins/cursor/skills/funpixel-store/references/readiness-page.md +1 -1
- package/plugins/cursor/skills/funpixel-store/references/readiness.md +3 -3
- package/plugins/cursor/skills/funpixel-store/references/unity-store.md +9 -12
- package/plugins/cursor/skills/funpixel-unity-game/SKILL.md +28 -35
- package/plugins/cursor/skills/funpixel-unity-game/references/agent-ops.md +9 -9
- package/plugins/cursor/skills/funpixel-unity-game/references/fixes.md +21 -21
- package/plugins/cursor/skills/funpixel-unity-game/references/from-a-web-game.md +17 -17
- package/plugins/cursor/skills/funpixel-unity-game/references/handing-off.md +4 -4
- package/plugins/cursor/skills/funpixel-unity-game/references/performance.md +10 -14
- package/plugins/cursor/skills/funpixel-unity-game/references/probe.md +4 -4
- package/plugins/cursor/skills/funpixel-unity-game/references/shared-mac.md +1 -1
- package/plugins/cursor/skills/funpixel-unity-game/references/traps.md +13 -14
- package/plugins/cursor/skills/funpixel-verify/references/bar.md +1 -1
- package/plugins/cursor/skills/funpixel-verify/references/fidelity.md +11 -11
- package/plugins/cursor/skills/funpixel-verify/references/mobile-qa.md +10 -10
- package/plugins/cursor/skills/funpixel-verify/references/playtest.md +14 -14
- package/plugins/cursor/skills/funpixel-verify/references/unity.md +11 -11
- package/plugins/cursor/skills/funpixel-world-and-story/SKILL.md +1 -1
- package/plugins/cursor/skills/funpixel-world-and-story/references/atmosphere.md +4 -4
- package/plugins/cursor/skills/funpixel-world-and-story/references/living-world.md +2 -2
- package/plugins/cursor/skills/funpixel-world-and-story/references/opening-and-chapters.md +1 -1
- package/plugins/cursor/skills/funpixel-world-and-story/references/story-at-size.md +2 -2
- package/plugins/cursor/skills/funpixel-world-and-story/references/voice.md +1 -1
- package/plugins/kiro/AGENTS.md +1 -1
- package/plugins/kiro/README.md +1 -1
- package/plugins/kiro/hooks/brief.md +1 -1
- package/plugins/kiro/hooks/guidance.json +1 -1
- package/plugins/kiro/hooks/vendor/pipeline/pipeline.mjs +6 -6
- package/plugins/kiro/hooks/vendor/studio/pitch.mjs +1 -1
- package/plugins/kiro/skills/fp-art-director/SKILL.md +2 -2
- package/plugins/kiro/skills/fp-playtest/SKILL.md +2 -2
- package/plugins/kiro/skills/funpixel-3d/references/bake-off.md +3 -3
- package/plugins/kiro/skills/funpixel-3d/references/characters.md +1 -1
- package/plugins/kiro/skills/funpixel-3d/references/hero-route.md +5 -5
- package/plugins/kiro/skills/funpixel-3d/references/level-spec.md +1 -1
- package/plugins/kiro/skills/funpixel-3d/references/levels.md +3 -3
- package/plugins/kiro/skills/funpixel-3d/references/light-and-places.md +3 -3
- package/plugins/kiro/skills/funpixel-3d/references/painted-target.md +7 -7
- package/plugins/kiro/skills/funpixel-3d/references/three-loading.md +4 -4
- package/plugins/kiro/skills/funpixel-3d/references/unity.md +13 -13
- package/plugins/kiro/skills/funpixel-art/references/animation.md +1 -1
- package/plugins/kiro/skills/funpixel-art/references/cast.md +3 -3
- package/plugins/kiro/skills/funpixel-art/references/effects.md +2 -2
- package/plugins/kiro/skills/funpixel-art/references/frames.md +6 -6
- package/plugins/kiro/skills/funpixel-art/references/judging-frames.md +8 -8
- package/plugins/kiro/skills/funpixel-art/references/look.md +4 -4
- package/plugins/kiro/skills/funpixel-art/references/pipeline.md +2 -2
- package/plugins/kiro/skills/funpixel-art/references/prompts.md +4 -4
- package/plugins/kiro/skills/funpixel-art/references/ui.md +15 -15
- package/plugins/kiro/skills/funpixel-art/references/unity.md +14 -14
- package/plugins/kiro/skills/funpixel-audio/references/adaptive-music.md +4 -4
- package/plugins/kiro/skills/funpixel-audio/references/engine.md +2 -2
- package/plugins/kiro/skills/funpixel-audio/references/measure.md +1 -1
- package/plugins/kiro/skills/funpixel-audio/references/unity.md +20 -19
- package/plugins/kiro/skills/funpixel-game-feel/SKILL.md +4 -4
- package/plugins/kiro/skills/funpixel-game-feel/references/contact.md +6 -6
- package/plugins/kiro/skills/funpixel-game-feel/references/unity.md +18 -23
- package/plugins/kiro/skills/funpixel-game-logic/SKILL.md +3 -3
- package/plugins/kiro/skills/funpixel-game-logic/references/balance.md +2 -2
- package/plugins/kiro/skills/funpixel-game-logic/references/depth.md +2 -2
- package/plugins/kiro/skills/funpixel-game-logic/references/escalation.md +5 -5
- package/plugins/kiro/skills/funpixel-game-logic/references/probes.md +10 -10
- package/plugins/kiro/skills/funpixel-game-logic/references/unity.md +28 -28
- package/plugins/kiro/skills/funpixel-game-spine/SKILL.md +1 -1
- package/plugins/kiro/skills/funpixel-game-spine/references/performance.md +2 -2
- package/plugins/kiro/skills/funpixel-game-spine/references/replay.md +11 -11
- package/plugins/kiro/skills/funpixel-game-spine/references/room-api.md +1 -1
- package/plugins/kiro/skills/funpixel-game-spine/references/sdk.md +1 -1
- package/plugins/kiro/skills/funpixel-gdd/SKILL.md +2 -2
- package/plugins/kiro/skills/funpixel-gdd/references/as-built.md +2 -2
- package/plugins/kiro/skills/funpixel-gdd/references/design-measures.md +2 -2
- package/plugins/kiro/skills/funpixel-gdd/references/design-note.md +1 -1
- package/plugins/kiro/skills/funpixel-gdd/references/first-look.md +1 -1
- package/plugins/kiro/skills/funpixel-gdd/references/floors.md +2 -2
- package/plugins/kiro/skills/funpixel-gdd/references/gameplay-contract.md +1 -1
- package/plugins/kiro/skills/funpixel-gdd/references/genre-puzzle.md +4 -4
- package/plugins/kiro/skills/funpixel-gdd/references/genre-racing.md +2 -2
- package/plugins/kiro/skills/funpixel-gdd/references/genre-rpg.md +2 -2
- package/plugins/kiro/skills/funpixel-gdd/references/genre-shooter.md +2 -2
- package/plugins/kiro/skills/funpixel-gdd/references/genre-survival.md +2 -2
- package/plugins/kiro/skills/funpixel-gdd/references/invent-first.md +3 -3
- package/plugins/kiro/skills/funpixel-gdd/references/level-and-fun.md +11 -11
- package/plugins/kiro/skills/funpixel-gdd/references/pages.md +2 -5
- package/plugins/kiro/skills/funpixel-gdd/references/plan-at-size.md +5 -5
- package/plugins/kiro/skills/funpixel-gdd/references/production-tiers.md +11 -11
- package/plugins/kiro/skills/funpixel-gdd/references/sections.md +7 -7
- package/plugins/kiro/skills/funpixel-gdd/references/spec-folder.md +3 -3
- package/plugins/kiro/skills/funpixel-gdd/references/the-path.md +3 -4
- package/plugins/kiro/skills/funpixel-gdd/references/world-and-identity.md +4 -4
- package/plugins/kiro/skills/funpixel-gdd/references/worth.md +4 -4
- package/plugins/kiro/skills/funpixel-mobile-ui/SKILL.md +3 -3
- package/plugins/kiro/skills/funpixel-mobile-ui/references/hud-and-title.md +3 -3
- package/plugins/kiro/skills/funpixel-mobile-ui/references/phone-check.md +1 -1
- package/plugins/kiro/skills/funpixel-mobile-ui/references/recipes.md +1 -1
- package/plugins/kiro/skills/funpixel-mobile-ui/references/restyle-ui.md +11 -11
- package/plugins/kiro/skills/funpixel-mobile-ui/references/unity.md +23 -23
- package/plugins/kiro/skills/funpixel-publish/references/compose.md +1 -1
- package/plugins/kiro/skills/funpixel-publish/references/server-build.md +1 -1
- package/plugins/kiro/skills/funpixel-store/SKILL.md +3 -3
- package/plugins/kiro/skills/funpixel-store/references/app-store.md +1 -1
- package/plugins/kiro/skills/funpixel-store/references/google-play.md +2 -2
- package/plugins/kiro/skills/funpixel-store/references/ios-release.md +19 -20
- package/plugins/kiro/skills/funpixel-store/references/money.md +2 -2
- package/plugins/kiro/skills/funpixel-store/references/purchases-and-review.md +18 -18
- package/plugins/kiro/skills/funpixel-store/references/readiness-page.md +1 -1
- package/plugins/kiro/skills/funpixel-store/references/readiness.md +3 -3
- package/plugins/kiro/skills/funpixel-store/references/unity-store.md +9 -12
- package/plugins/kiro/skills/funpixel-unity-game/SKILL.md +28 -35
- package/plugins/kiro/skills/funpixel-unity-game/references/agent-ops.md +9 -9
- package/plugins/kiro/skills/funpixel-unity-game/references/fixes.md +21 -21
- package/plugins/kiro/skills/funpixel-unity-game/references/from-a-web-game.md +17 -17
- package/plugins/kiro/skills/funpixel-unity-game/references/handing-off.md +4 -4
- package/plugins/kiro/skills/funpixel-unity-game/references/performance.md +10 -14
- package/plugins/kiro/skills/funpixel-unity-game/references/probe.md +4 -4
- package/plugins/kiro/skills/funpixel-unity-game/references/shared-mac.md +1 -1
- package/plugins/kiro/skills/funpixel-unity-game/references/traps.md +13 -14
- package/plugins/kiro/skills/funpixel-verify/references/bar.md +1 -1
- package/plugins/kiro/skills/funpixel-verify/references/fidelity.md +11 -11
- package/plugins/kiro/skills/funpixel-verify/references/mobile-qa.md +10 -10
- package/plugins/kiro/skills/funpixel-verify/references/playtest.md +14 -14
- package/plugins/kiro/skills/funpixel-verify/references/unity.md +11 -11
- package/plugins/kiro/skills/funpixel-world-and-story/SKILL.md +1 -1
- package/plugins/kiro/skills/funpixel-world-and-story/references/atmosphere.md +4 -4
- package/plugins/kiro/skills/funpixel-world-and-story/references/living-world.md +2 -2
- package/plugins/kiro/skills/funpixel-world-and-story/references/opening-and-chapters.md +1 -1
- package/plugins/kiro/skills/funpixel-world-and-story/references/story-at-size.md +2 -2
- package/plugins/kiro/skills/funpixel-world-and-story/references/voice.md +1 -1
- package/plugins/robin/README.md +1 -1
- package/plugins/robin/claude/README.md +2 -3
- package/plugins/robin/claude/agents/art-director.md +2 -2
- package/plugins/robin/claude/commands/playtest.md +2 -2
- package/plugins/robin/claude/hooks/brief.md +1 -1
- package/plugins/robin/claude/hooks/guidance.json +1 -1
- package/plugins/robin/claude/hooks/vendor/pipeline/pipeline.mjs +6 -6
- package/plugins/robin/claude/hooks/vendor/studio/pitch.mjs +1 -1
- package/plugins/robin/claude/skills/3d/references/bake-off.md +3 -3
- package/plugins/robin/claude/skills/3d/references/characters.md +1 -1
- package/plugins/robin/claude/skills/3d/references/hero-route.md +5 -5
- package/plugins/robin/claude/skills/3d/references/level-spec.md +1 -1
- package/plugins/robin/claude/skills/3d/references/levels.md +3 -3
- package/plugins/robin/claude/skills/3d/references/light-and-places.md +3 -3
- package/plugins/robin/claude/skills/3d/references/painted-target.md +7 -7
- package/plugins/robin/claude/skills/3d/references/three-loading.md +4 -4
- package/plugins/robin/claude/skills/3d/references/unity.md +13 -13
- package/plugins/robin/claude/skills/art/references/animation.md +1 -1
- package/plugins/robin/claude/skills/art/references/cast.md +3 -3
- package/plugins/robin/claude/skills/art/references/effects.md +2 -2
- package/plugins/robin/claude/skills/art/references/frames.md +6 -6
- package/plugins/robin/claude/skills/art/references/judging-frames.md +8 -8
- package/plugins/robin/claude/skills/art/references/look.md +4 -4
- package/plugins/robin/claude/skills/art/references/pipeline.md +2 -2
- package/plugins/robin/claude/skills/art/references/prompts.md +4 -4
- package/plugins/robin/claude/skills/art/references/ui.md +15 -15
- package/plugins/robin/claude/skills/art/references/unity.md +14 -14
- package/plugins/robin/claude/skills/audio/references/adaptive-music.md +4 -4
- package/plugins/robin/claude/skills/audio/references/engine.md +2 -2
- package/plugins/robin/claude/skills/audio/references/measure.md +1 -1
- package/plugins/robin/claude/skills/audio/references/unity.md +20 -19
- package/plugins/robin/claude/skills/game-feel/SKILL.md +4 -4
- package/plugins/robin/claude/skills/game-feel/references/contact.md +6 -6
- package/plugins/robin/claude/skills/game-feel/references/unity.md +18 -23
- package/plugins/robin/claude/skills/game-logic/SKILL.md +3 -3
- package/plugins/robin/claude/skills/game-logic/references/balance.md +2 -2
- package/plugins/robin/claude/skills/game-logic/references/depth.md +2 -2
- package/plugins/robin/claude/skills/game-logic/references/escalation.md +5 -5
- package/plugins/robin/claude/skills/game-logic/references/probes.md +10 -10
- package/plugins/robin/claude/skills/game-logic/references/unity.md +28 -28
- package/plugins/robin/claude/skills/game-spine/SKILL.md +1 -1
- package/plugins/robin/claude/skills/game-spine/references/performance.md +2 -2
- package/plugins/robin/claude/skills/game-spine/references/replay.md +11 -11
- package/plugins/robin/claude/skills/game-spine/references/room-api.md +1 -1
- package/plugins/robin/claude/skills/game-spine/references/sdk.md +1 -1
- package/plugins/robin/claude/skills/gdd/SKILL.md +2 -2
- package/plugins/robin/claude/skills/gdd/references/as-built.md +2 -2
- package/plugins/robin/claude/skills/gdd/references/design-measures.md +2 -2
- package/plugins/robin/claude/skills/gdd/references/design-note.md +1 -1
- package/plugins/robin/claude/skills/gdd/references/first-look.md +1 -1
- package/plugins/robin/claude/skills/gdd/references/floors.md +2 -2
- package/plugins/robin/claude/skills/gdd/references/gameplay-contract.md +1 -1
- package/plugins/robin/claude/skills/gdd/references/genre-puzzle.md +4 -4
- package/plugins/robin/claude/skills/gdd/references/genre-racing.md +2 -2
- package/plugins/robin/claude/skills/gdd/references/genre-rpg.md +2 -2
- package/plugins/robin/claude/skills/gdd/references/genre-shooter.md +2 -2
- package/plugins/robin/claude/skills/gdd/references/genre-survival.md +2 -2
- package/plugins/robin/claude/skills/gdd/references/invent-first.md +3 -3
- package/plugins/robin/claude/skills/gdd/references/level-and-fun.md +11 -11
- package/plugins/robin/claude/skills/gdd/references/pages.md +2 -5
- package/plugins/robin/claude/skills/gdd/references/plan-at-size.md +5 -5
- package/plugins/robin/claude/skills/gdd/references/production-tiers.md +11 -11
- package/plugins/robin/claude/skills/gdd/references/sections.md +7 -7
- package/plugins/robin/claude/skills/gdd/references/spec-folder.md +3 -3
- package/plugins/robin/claude/skills/gdd/references/the-path.md +3 -4
- package/plugins/robin/claude/skills/gdd/references/world-and-identity.md +4 -4
- package/plugins/robin/claude/skills/gdd/references/worth.md +4 -4
- package/plugins/robin/claude/skills/mobile-ui/SKILL.md +3 -3
- package/plugins/robin/claude/skills/mobile-ui/references/hud-and-title.md +3 -3
- package/plugins/robin/claude/skills/mobile-ui/references/phone-check.md +1 -1
- package/plugins/robin/claude/skills/mobile-ui/references/recipes.md +1 -1
- package/plugins/robin/claude/skills/mobile-ui/references/restyle-ui.md +11 -11
- package/plugins/robin/claude/skills/mobile-ui/references/unity.md +23 -23
- package/plugins/robin/claude/skills/publishing/references/compose.md +1 -1
- package/plugins/robin/claude/skills/publishing/references/server-build.md +1 -1
- package/plugins/robin/claude/skills/store/SKILL.md +3 -3
- package/plugins/robin/claude/skills/store/references/app-store.md +1 -1
- package/plugins/robin/claude/skills/store/references/google-play.md +2 -2
- package/plugins/robin/claude/skills/store/references/ios-release.md +19 -20
- package/plugins/robin/claude/skills/store/references/money.md +2 -2
- package/plugins/robin/claude/skills/store/references/purchases-and-review.md +18 -18
- package/plugins/robin/claude/skills/store/references/readiness-page.md +1 -1
- package/plugins/robin/claude/skills/store/references/readiness.md +3 -3
- package/plugins/robin/claude/skills/store/references/unity-store.md +9 -12
- package/plugins/robin/claude/skills/unity-game/SKILL.md +28 -35
- package/plugins/robin/claude/skills/unity-game/references/agent-ops.md +9 -9
- package/plugins/robin/claude/skills/unity-game/references/fixes.md +21 -21
- package/plugins/robin/claude/skills/unity-game/references/from-a-web-game.md +17 -17
- package/plugins/robin/claude/skills/unity-game/references/handing-off.md +4 -4
- package/plugins/robin/claude/skills/unity-game/references/performance.md +10 -14
- package/plugins/robin/claude/skills/unity-game/references/probe.md +4 -4
- package/plugins/robin/claude/skills/unity-game/references/shared-mac.md +1 -1
- package/plugins/robin/claude/skills/unity-game/references/traps.md +13 -14
- package/plugins/robin/claude/skills/verifying/references/bar.md +1 -1
- package/plugins/robin/claude/skills/verifying/references/fidelity.md +11 -11
- package/plugins/robin/claude/skills/verifying/references/mobile-qa.md +10 -10
- package/plugins/robin/claude/skills/verifying/references/playtest.md +14 -14
- package/plugins/robin/claude/skills/verifying/references/unity.md +11 -11
- package/plugins/robin/claude/skills/world-and-story/SKILL.md +1 -1
- package/plugins/robin/claude/skills/world-and-story/references/atmosphere.md +4 -4
- package/plugins/robin/claude/skills/world-and-story/references/living-world.md +2 -2
- package/plugins/robin/claude/skills/world-and-story/references/opening-and-chapters.md +1 -1
- package/plugins/robin/claude/skills/world-and-story/references/story-at-size.md +2 -2
- package/plugins/robin/claude/skills/world-and-story/references/voice.md +1 -1
- package/plugins/robin/skills/fp-playtest/SKILL.md +2 -2
- package/plugins/robin/skills/funpixel-3d/references/bake-off.md +3 -3
- package/plugins/robin/skills/funpixel-3d/references/characters.md +1 -1
- package/plugins/robin/skills/funpixel-3d/references/hero-route.md +5 -5
- package/plugins/robin/skills/funpixel-3d/references/level-spec.md +1 -1
- package/plugins/robin/skills/funpixel-3d/references/levels.md +3 -3
- package/plugins/robin/skills/funpixel-3d/references/light-and-places.md +3 -3
- package/plugins/robin/skills/funpixel-3d/references/painted-target.md +7 -7
- package/plugins/robin/skills/funpixel-3d/references/three-loading.md +4 -4
- package/plugins/robin/skills/funpixel-3d/references/unity.md +13 -13
- package/plugins/robin/skills/funpixel-art/references/animation.md +1 -1
- package/plugins/robin/skills/funpixel-art/references/cast.md +3 -3
- package/plugins/robin/skills/funpixel-art/references/effects.md +2 -2
- package/plugins/robin/skills/funpixel-art/references/frames.md +6 -6
- package/plugins/robin/skills/funpixel-art/references/judging-frames.md +8 -8
- package/plugins/robin/skills/funpixel-art/references/look.md +4 -4
- package/plugins/robin/skills/funpixel-art/references/pipeline.md +2 -2
- package/plugins/robin/skills/funpixel-art/references/prompts.md +4 -4
- package/plugins/robin/skills/funpixel-art/references/ui.md +15 -15
- package/plugins/robin/skills/funpixel-art/references/unity.md +14 -14
- package/plugins/robin/skills/funpixel-audio/references/adaptive-music.md +4 -4
- package/plugins/robin/skills/funpixel-audio/references/engine.md +2 -2
- package/plugins/robin/skills/funpixel-audio/references/measure.md +1 -1
- package/plugins/robin/skills/funpixel-audio/references/unity.md +20 -19
- package/plugins/robin/skills/funpixel-brief/SKILL.md +1 -1
- package/plugins/robin/skills/funpixel-game-feel/SKILL.md +4 -4
- package/plugins/robin/skills/funpixel-game-feel/references/contact.md +6 -6
- package/plugins/robin/skills/funpixel-game-feel/references/unity.md +18 -23
- package/plugins/robin/skills/funpixel-game-logic/SKILL.md +3 -3
- package/plugins/robin/skills/funpixel-game-logic/references/balance.md +2 -2
- package/plugins/robin/skills/funpixel-game-logic/references/depth.md +2 -2
- package/plugins/robin/skills/funpixel-game-logic/references/escalation.md +5 -5
- package/plugins/robin/skills/funpixel-game-logic/references/probes.md +10 -10
- package/plugins/robin/skills/funpixel-game-logic/references/unity.md +28 -28
- package/plugins/robin/skills/funpixel-game-spine/SKILL.md +1 -1
- package/plugins/robin/skills/funpixel-game-spine/references/performance.md +2 -2
- package/plugins/robin/skills/funpixel-game-spine/references/replay.md +11 -11
- package/plugins/robin/skills/funpixel-game-spine/references/room-api.md +1 -1
- package/plugins/robin/skills/funpixel-game-spine/references/sdk.md +1 -1
- package/plugins/robin/skills/funpixel-gdd/SKILL.md +2 -2
- package/plugins/robin/skills/funpixel-gdd/references/as-built.md +2 -2
- package/plugins/robin/skills/funpixel-gdd/references/design-measures.md +2 -2
- package/plugins/robin/skills/funpixel-gdd/references/design-note.md +1 -1
- package/plugins/robin/skills/funpixel-gdd/references/first-look.md +1 -1
- package/plugins/robin/skills/funpixel-gdd/references/floors.md +2 -2
- package/plugins/robin/skills/funpixel-gdd/references/gameplay-contract.md +1 -1
- package/plugins/robin/skills/funpixel-gdd/references/genre-puzzle.md +4 -4
- package/plugins/robin/skills/funpixel-gdd/references/genre-racing.md +2 -2
- package/plugins/robin/skills/funpixel-gdd/references/genre-rpg.md +2 -2
- package/plugins/robin/skills/funpixel-gdd/references/genre-shooter.md +2 -2
- package/plugins/robin/skills/funpixel-gdd/references/genre-survival.md +2 -2
- package/plugins/robin/skills/funpixel-gdd/references/invent-first.md +3 -3
- package/plugins/robin/skills/funpixel-gdd/references/level-and-fun.md +11 -11
- package/plugins/robin/skills/funpixel-gdd/references/pages.md +2 -5
- package/plugins/robin/skills/funpixel-gdd/references/plan-at-size.md +5 -5
- package/plugins/robin/skills/funpixel-gdd/references/production-tiers.md +11 -11
- package/plugins/robin/skills/funpixel-gdd/references/sections.md +7 -7
- package/plugins/robin/skills/funpixel-gdd/references/spec-folder.md +3 -3
- package/plugins/robin/skills/funpixel-gdd/references/the-path.md +3 -4
- package/plugins/robin/skills/funpixel-gdd/references/world-and-identity.md +4 -4
- package/plugins/robin/skills/funpixel-gdd/references/worth.md +4 -4
- package/plugins/robin/skills/funpixel-mobile-ui/SKILL.md +3 -3
- package/plugins/robin/skills/funpixel-mobile-ui/references/hud-and-title.md +3 -3
- package/plugins/robin/skills/funpixel-mobile-ui/references/phone-check.md +1 -1
- package/plugins/robin/skills/funpixel-mobile-ui/references/recipes.md +1 -1
- package/plugins/robin/skills/funpixel-mobile-ui/references/restyle-ui.md +11 -11
- package/plugins/robin/skills/funpixel-mobile-ui/references/unity.md +23 -23
- package/plugins/robin/skills/funpixel-publish/references/compose.md +1 -1
- package/plugins/robin/skills/funpixel-publish/references/server-build.md +1 -1
- package/plugins/robin/skills/funpixel-store/SKILL.md +3 -3
- package/plugins/robin/skills/funpixel-store/references/app-store.md +1 -1
- package/plugins/robin/skills/funpixel-store/references/google-play.md +2 -2
- package/plugins/robin/skills/funpixel-store/references/ios-release.md +19 -20
- package/plugins/robin/skills/funpixel-store/references/money.md +2 -2
- package/plugins/robin/skills/funpixel-store/references/purchases-and-review.md +18 -18
- package/plugins/robin/skills/funpixel-store/references/readiness-page.md +1 -1
- package/plugins/robin/skills/funpixel-store/references/readiness.md +3 -3
- package/plugins/robin/skills/funpixel-store/references/unity-store.md +9 -12
- package/plugins/robin/skills/funpixel-unity-game/SKILL.md +28 -35
- package/plugins/robin/skills/funpixel-unity-game/references/agent-ops.md +9 -9
- package/plugins/robin/skills/funpixel-unity-game/references/fixes.md +21 -21
- package/plugins/robin/skills/funpixel-unity-game/references/from-a-web-game.md +17 -17
- package/plugins/robin/skills/funpixel-unity-game/references/handing-off.md +4 -4
- package/plugins/robin/skills/funpixel-unity-game/references/performance.md +10 -14
- package/plugins/robin/skills/funpixel-unity-game/references/probe.md +4 -4
- package/plugins/robin/skills/funpixel-unity-game/references/shared-mac.md +1 -1
- package/plugins/robin/skills/funpixel-unity-game/references/traps.md +13 -14
- package/plugins/robin/skills/funpixel-verify/references/bar.md +1 -1
- package/plugins/robin/skills/funpixel-verify/references/fidelity.md +11 -11
- package/plugins/robin/skills/funpixel-verify/references/mobile-qa.md +10 -10
- package/plugins/robin/skills/funpixel-verify/references/playtest.md +14 -14
- package/plugins/robin/skills/funpixel-verify/references/unity.md +11 -11
- package/plugins/robin/skills/funpixel-world-and-story/SKILL.md +1 -1
- package/plugins/robin/skills/funpixel-world-and-story/references/atmosphere.md +4 -4
- package/plugins/robin/skills/funpixel-world-and-story/references/living-world.md +2 -2
- package/plugins/robin/skills/funpixel-world-and-story/references/opening-and-chapters.md +1 -1
- package/plugins/robin/skills/funpixel-world-and-story/references/story-at-size.md +2 -2
- package/plugins/robin/skills/funpixel-world-and-story/references/voice.md +1 -1
- package/templates/common/.agents/skills/funpixel-3d/references/bake-off.md +3 -3
- package/templates/common/.agents/skills/funpixel-3d/references/characters.md +1 -1
- package/templates/common/.agents/skills/funpixel-3d/references/hero-route.md +5 -5
- package/templates/common/.agents/skills/funpixel-3d/references/level-spec.md +1 -1
- package/templates/common/.agents/skills/funpixel-3d/references/levels.md +3 -3
- package/templates/common/.agents/skills/funpixel-3d/references/light-and-places.md +3 -3
- package/templates/common/.agents/skills/funpixel-3d/references/painted-target.md +7 -7
- package/templates/common/.agents/skills/funpixel-3d/references/three-loading.md +4 -4
- package/templates/common/.agents/skills/funpixel-3d/references/unity.md +13 -13
- package/templates/common/.agents/skills/funpixel-art/references/animation.md +1 -1
- package/templates/common/.agents/skills/funpixel-art/references/cast.md +3 -3
- package/templates/common/.agents/skills/funpixel-art/references/effects.md +2 -2
- package/templates/common/.agents/skills/funpixel-art/references/frames.md +6 -6
- package/templates/common/.agents/skills/funpixel-art/references/judging-frames.md +8 -8
- package/templates/common/.agents/skills/funpixel-art/references/look.md +4 -4
- package/templates/common/.agents/skills/funpixel-art/references/pipeline.md +2 -2
- package/templates/common/.agents/skills/funpixel-art/references/prompts.md +4 -4
- package/templates/common/.agents/skills/funpixel-art/references/ui.md +15 -15
- package/templates/common/.agents/skills/funpixel-art/references/unity.md +14 -14
- package/templates/common/.agents/skills/funpixel-audio/references/adaptive-music.md +4 -4
- package/templates/common/.agents/skills/funpixel-audio/references/engine.md +2 -2
- package/templates/common/.agents/skills/funpixel-audio/references/measure.md +1 -1
- package/templates/common/.agents/skills/funpixel-audio/references/unity.md +20 -19
- package/templates/common/.agents/skills/funpixel-game-feel/SKILL.md +4 -4
- package/templates/common/.agents/skills/funpixel-game-feel/references/contact.md +6 -6
- package/templates/common/.agents/skills/funpixel-game-feel/references/unity.md +18 -23
- package/templates/common/.agents/skills/funpixel-game-logic/SKILL.md +3 -3
- package/templates/common/.agents/skills/funpixel-game-logic/references/balance.md +2 -2
- package/templates/common/.agents/skills/funpixel-game-logic/references/depth.md +2 -2
- package/templates/common/.agents/skills/funpixel-game-logic/references/escalation.md +5 -5
- package/templates/common/.agents/skills/funpixel-game-logic/references/probes.md +10 -10
- package/templates/common/.agents/skills/funpixel-game-logic/references/unity.md +28 -28
- package/templates/common/.agents/skills/funpixel-game-spine/SKILL.md +1 -1
- package/templates/common/.agents/skills/funpixel-game-spine/references/performance.md +2 -2
- package/templates/common/.agents/skills/funpixel-game-spine/references/replay.md +11 -11
- package/templates/common/.agents/skills/funpixel-game-spine/references/room-api.md +1 -1
- package/templates/common/.agents/skills/funpixel-game-spine/references/sdk.md +1 -1
- package/templates/common/.agents/skills/funpixel-gdd/SKILL.md +2 -2
- package/templates/common/.agents/skills/funpixel-gdd/references/as-built.md +2 -2
- package/templates/common/.agents/skills/funpixel-gdd/references/design-measures.md +2 -2
- package/templates/common/.agents/skills/funpixel-gdd/references/design-note.md +1 -1
- package/templates/common/.agents/skills/funpixel-gdd/references/first-look.md +1 -1
- package/templates/common/.agents/skills/funpixel-gdd/references/floors.md +2 -2
- package/templates/common/.agents/skills/funpixel-gdd/references/gameplay-contract.md +1 -1
- package/templates/common/.agents/skills/funpixel-gdd/references/genre-puzzle.md +4 -4
- package/templates/common/.agents/skills/funpixel-gdd/references/genre-racing.md +2 -2
- package/templates/common/.agents/skills/funpixel-gdd/references/genre-rpg.md +2 -2
- package/templates/common/.agents/skills/funpixel-gdd/references/genre-shooter.md +2 -2
- package/templates/common/.agents/skills/funpixel-gdd/references/genre-survival.md +2 -2
- package/templates/common/.agents/skills/funpixel-gdd/references/invent-first.md +3 -3
- package/templates/common/.agents/skills/funpixel-gdd/references/level-and-fun.md +11 -11
- package/templates/common/.agents/skills/funpixel-gdd/references/pages.md +2 -5
- package/templates/common/.agents/skills/funpixel-gdd/references/plan-at-size.md +5 -5
- package/templates/common/.agents/skills/funpixel-gdd/references/production-tiers.md +11 -11
- package/templates/common/.agents/skills/funpixel-gdd/references/sections.md +7 -7
- package/templates/common/.agents/skills/funpixel-gdd/references/spec-folder.md +3 -3
- package/templates/common/.agents/skills/funpixel-gdd/references/the-path.md +3 -4
- package/templates/common/.agents/skills/funpixel-gdd/references/world-and-identity.md +4 -4
- package/templates/common/.agents/skills/funpixel-gdd/references/worth.md +4 -4
- package/templates/common/.agents/skills/funpixel-mobile-ui/SKILL.md +3 -3
- package/templates/common/.agents/skills/funpixel-mobile-ui/references/hud-and-title.md +3 -3
- package/templates/common/.agents/skills/funpixel-mobile-ui/references/phone-check.md +1 -1
- package/templates/common/.agents/skills/funpixel-mobile-ui/references/recipes.md +1 -1
- package/templates/common/.agents/skills/funpixel-mobile-ui/references/restyle-ui.md +11 -11
- package/templates/common/.agents/skills/funpixel-mobile-ui/references/unity.md +23 -23
- package/templates/common/.agents/skills/funpixel-publish/references/compose.md +1 -1
- package/templates/common/.agents/skills/funpixel-publish/references/server-build.md +1 -1
- package/templates/common/.agents/skills/funpixel-store/SKILL.md +3 -3
- package/templates/common/.agents/skills/funpixel-store/references/app-store.md +1 -1
- package/templates/common/.agents/skills/funpixel-store/references/google-play.md +2 -2
- package/templates/common/.agents/skills/funpixel-store/references/ios-release.md +19 -20
- package/templates/common/.agents/skills/funpixel-store/references/money.md +2 -2
- package/templates/common/.agents/skills/funpixel-store/references/purchases-and-review.md +18 -18
- package/templates/common/.agents/skills/funpixel-store/references/readiness-page.md +1 -1
- package/templates/common/.agents/skills/funpixel-store/references/readiness.md +3 -3
- package/templates/common/.agents/skills/funpixel-store/references/unity-store.md +9 -12
- package/templates/common/.agents/skills/funpixel-unity-game/SKILL.md +28 -35
- package/templates/common/.agents/skills/funpixel-unity-game/references/agent-ops.md +9 -9
- package/templates/common/.agents/skills/funpixel-unity-game/references/fixes.md +21 -21
- package/templates/common/.agents/skills/funpixel-unity-game/references/from-a-web-game.md +17 -17
- package/templates/common/.agents/skills/funpixel-unity-game/references/handing-off.md +4 -4
- package/templates/common/.agents/skills/funpixel-unity-game/references/performance.md +10 -14
- package/templates/common/.agents/skills/funpixel-unity-game/references/probe.md +4 -4
- package/templates/common/.agents/skills/funpixel-unity-game/references/shared-mac.md +1 -1
- package/templates/common/.agents/skills/funpixel-unity-game/references/traps.md +13 -14
- package/templates/common/.agents/skills/funpixel-verify/references/bar.md +1 -1
- package/templates/common/.agents/skills/funpixel-verify/references/fidelity.md +11 -11
- package/templates/common/.agents/skills/funpixel-verify/references/mobile-qa.md +10 -10
- package/templates/common/.agents/skills/funpixel-verify/references/playtest.md +14 -14
- package/templates/common/.agents/skills/funpixel-verify/references/unity.md +11 -11
- package/templates/common/.agents/skills/funpixel-world-and-story/SKILL.md +1 -1
- package/templates/common/.agents/skills/funpixel-world-and-story/references/atmosphere.md +4 -4
- package/templates/common/.agents/skills/funpixel-world-and-story/references/living-world.md +2 -2
- package/templates/common/.agents/skills/funpixel-world-and-story/references/opening-and-chapters.md +1 -1
- package/templates/common/.agents/skills/funpixel-world-and-story/references/story-at-size.md +2 -2
- package/templates/common/.agents/skills/funpixel-world-and-story/references/voice.md +1 -1
- package/templates/common/AGENTS.md +1 -1
- package/templates/common/src/platform.ts +1 -1
- package/templates/common/src/probe-human.ts +3 -3
- package/templates/common/src/save.ts +1 -1
- package/templates/common/test/platform.test.ts +1 -1
- package/templates/three-world/src/budget.ts +1 -1
- package/templates/three-world/src/cutouts.ts +2 -2
- package/templates/three-world/src/game.ts +1 -1
- package/templates/three-world/src/models.ts +1 -1
- package/unity/com.funpixel.probe/Runtime/Player/Args.cs +1 -1
- package/unity/com.funpixel.probe/Runtime/Player/Bridge.cs +2 -2
- package/unity/com.funpixel.probe/Runtime/Player/Capture.cs +2 -2
- package/unity/com.funpixel.probe/Runtime/Player/Inject.cs +1 -2
- package/unity/com.funpixel.probe/Runtime/Player/Probe.cs +2 -2
- package/unity/com.funpixel.probe/Runtime/Player/UiTargets.cs +1 -1
- package/plugins/claude/skills/unity-game/references/studio-packages.md +0 -127
- package/plugins/codex/skills/funpixel-unity-game/references/studio-packages.md +0 -127
- package/plugins/cursor/skills/funpixel-unity-game/references/studio-packages.md +0 -127
- package/plugins/kiro/skills/funpixel-unity-game/references/studio-packages.md +0 -127
- package/plugins/robin/claude/skills/unity-game/references/studio-packages.md +0 -127
- package/plugins/robin/skills/funpixel-unity-game/references/studio-packages.md +0 -127
- package/templates/common/.agents/skills/funpixel-unity-game/references/studio-packages.md +0 -127
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
Two options for a game whose rules already step from input (skill `fp:game-logic`: seeded,
|
|
4
4
|
engine-free, a fixed step): keep a run as data and play it back frame by frame, and prove a
|
|
5
|
-
refactor changed nothing a player sees. Both are lessons from one game
|
|
5
|
+
refactor changed nothing a player sees. Both are lessons from one game (a third-person
|
|
6
6
|
3D horror chapter in three.js, September 2026, hand-iterated over many agent sessions), gathered by
|
|
7
|
-
|
|
7
|
+
its lane. No first-try action game has tested them yet; read them as options with the
|
|
8
8
|
reasons they earned, not as a procedure.
|
|
9
9
|
|
|
10
10
|
## What the kit already does
|
|
@@ -30,7 +30,7 @@ If the sim advances one fixed step per intent (what the hands asked for this ste
|
|
|
30
30
|
dodge), a run is the list of intents plus the seed and any setting that changes the sim. Replaying
|
|
31
31
|
it means feeding that list instead of live input.
|
|
32
32
|
|
|
33
|
-
- **
|
|
33
|
+
- **That game's shape.** Its chapter bots produce intents; a small script wrote a bot run's intents
|
|
34
34
|
to JSON, and the game read them from a window global in place of the controls, through the real
|
|
35
35
|
renderer, camera and sound. One test made the replay trustworthy:
|
|
36
36
|
`same_seed_same_inputs_same_events` plays a bot's intents again on a fresh sim with the same seed
|
|
@@ -39,10 +39,10 @@ it means feeding that list instead of live input.
|
|
|
39
39
|
what a step did; turning it on by default silently broke every recorded replay. The game now
|
|
40
40
|
turns the assist off whenever a replay runs. Store such settings with the recording.
|
|
41
41
|
- **Re-record after a sim change.** A recording holds intents, not positions: a tuned run speed
|
|
42
|
-
moves where she stands when the next intent arrives, and the replay drifts. The symptom
|
|
43
|
-
|
|
42
|
+
moves where she stands when the next intent arrives, and the replay drifts. The symptom the
|
|
43
|
+
game learned to read: a still of her staring at a wall is usually a stale recording.
|
|
44
44
|
- **A recorder in the game.** A key saves a person's run the same way, with its long frames,
|
|
45
|
-
camera jumps and errors marked.
|
|
45
|
+
camera jumps and errors marked. The game's note says a human run beats any bot for feel; when it
|
|
46
46
|
was written, no human run had been replayed yet.
|
|
47
47
|
|
|
48
48
|
## Film mode: the same frame every time
|
|
@@ -59,16 +59,16 @@ function loop(now: number) {
|
|
|
59
59
|
}
|
|
60
60
|
```
|
|
61
61
|
|
|
62
|
-
|
|
62
|
+
Its stills script replayed an intent file, ticked 1/60 s at a time until the sim's clock
|
|
63
63
|
reached each requested second, held the sim for about 20 frames so the camera settled, then shot.
|
|
64
64
|
A still at 36.8 s was the same picture every run, so:
|
|
65
65
|
|
|
66
66
|
- **A moment can be debugged a frame at a time.** Replay to just before it, tick, read
|
|
67
|
-
`__FPX_STATE__` and `funtools inspect --at x,y` on each frame.
|
|
67
|
+
`__FPX_STATE__` and `funtools inspect --at x,y` on each frame. Its "what is that white
|
|
68
68
|
ball?" was found this way: at one fixed frame, hide one thing at a time (the torch light, the
|
|
69
69
|
enemy, the particles, the beam) until it goes. It was an additive beam seen down its own axis
|
|
70
70
|
(skill `fp:art`, `references/frames.md`).
|
|
71
|
-
- **An A/B at a frame only means something if the frame keeps it.**
|
|
71
|
+
- **An A/B at a frame only means something if the frame keeps it.** The game's torch and emissive
|
|
72
72
|
materials were re-posed every frame, so turning them off in a debug step did nothing, while the
|
|
73
73
|
albedo, which nothing re-set, could be tested. Turn a thing off where the frame reads it from.
|
|
74
74
|
- **Wall-clock work does not follow the film clock.** CSS transitions and timers ran in real time;
|
|
@@ -78,7 +78,7 @@ This is the spine's one loop and one clock with a second driver, not a second lo
|
|
|
78
78
|
|
|
79
79
|
## Proving a refactor or a split
|
|
80
80
|
|
|
81
|
-
|
|
81
|
+
The game's `sim.ts`, `station.ts` and `game.ts` each grew past 800 to 1,100 lines and were split
|
|
82
82
|
into small modules with typed seams. A split that should change nothing was accepted on four
|
|
83
83
|
agreements, each an option:
|
|
84
84
|
|
|
@@ -94,7 +94,7 @@ wall clock, can differ between two captures of one build; capture the same build
|
|
|
94
94
|
treat a later difference no larger than that as noise (the same idea as `journey replay --repeat 2`).
|
|
95
95
|
With film mode the stills can be identical to the pixel, and then any difference is real.
|
|
96
96
|
|
|
97
|
-
The case for it, from
|
|
97
|
+
The case for it, from that game: after the game split, the capture hook reached the game through a
|
|
98
98
|
loose cast, the replay cursor and the intro timer had moved, and every capture view silently sat at
|
|
99
99
|
t = 0 behind the opening shot. A blind panel scored that round 4.9 ("no enemy in any capture").
|
|
100
100
|
Typing the seam (no cast) and logging an error when a view misses its beat fixed it; on real
|
|
@@ -18,7 +18,7 @@ and tweens).
|
|
|
18
18
|
|
|
19
19
|
## The surface
|
|
20
20
|
|
|
21
|
-
1. Pin it exactly: `"@funpixel/sdk": "0.
|
|
21
|
+
1. Pin it exactly: `"@funpixel/sdk": "0.7.0"`, no caret. The root export is `setupGameResize`
|
|
22
22
|
only; everything else comes from a subpath (`/audio`, `/multiplayer`, `/save`, `/liveParams`,
|
|
23
23
|
`/device`).
|
|
24
24
|
2. **Resize.** `setupGameResize(cb: (width: number, height: number) => void, win?: Window): () => void`
|
|
@@ -28,8 +28,8 @@ is an evidence gap, not a rebuild.
|
|
|
28
28
|
|
|
29
29
|
## Invent first, then fill the template
|
|
30
30
|
|
|
31
|
-
A plan filled template-first lost 3 of 3 blind seats to one that spent its time on design (
|
|
32
|
-
|
|
31
|
+
A plan filled template-first lost 3 of 3 blind seats to one that spent its time on design (one
|
|
32
|
+
game, 1 Oct 2026). The order that won, in [references/invent-first.md](references/invent-first.md):
|
|
33
33
|
|
|
34
34
|
1. **Six forcing questions**, in `## The invention`: what the core object means, why the verb
|
|
35
35
|
exists in this world, who wants what by name, what the twist costs in feeling and in play, the
|
|
@@ -28,9 +28,9 @@ team's robot game passed that test: its Unity port matched the web build exactly
|
|
|
28
28
|
- Name what is not built yet as not built. A planned feature stays in Part 1 until a test or a
|
|
29
29
|
recorded playthrough shows it running.
|
|
30
30
|
- Write each value beside where it lives (`src/tuning.ts · FUSE_S = 3.0`), a shape a short script
|
|
31
|
-
can compare to the code on every build (
|
|
31
|
+
can compare to the code on every build (one game checked 213 numbers that way). Where a value
|
|
32
32
|
moved from its target, "the reason was not recorded" is better than a guessed one.
|
|
33
|
-
- Keep a list of the defects writing the spec found; writing
|
|
33
|
+
- Keep a list of the defects writing the spec found; writing one game's found five.
|
|
34
34
|
- Say what nothing has observed yet (unheard, never played on a phone, fun unproven) and leave the
|
|
35
35
|
person's own play as a question for them until it happens.
|
|
36
36
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# The design measures
|
|
2
2
|
|
|
3
3
|
`npx @funpixel/tools gdd` ends with six numbers read off the GDD, each with why and the peers' figures. They come
|
|
4
|
-
from
|
|
4
|
+
from one game's field report (10 Oct 2026), and its owner's rule holds them: "Advise, never gate." Each is advice.
|
|
5
5
|
Read them, decide what to do, and leave the call on the game's size and scope to the owner. A dense, systemic game
|
|
6
6
|
can be the choice; the lint then says "dense: is each element learned (used again after its teach)?", never "too
|
|
7
7
|
many".
|
|
@@ -13,7 +13,7 @@ it.
|
|
|
13
13
|
| Measure | What it reads | The line |
|
|
14
14
|
|---|---|---|
|
|
15
15
|
| Elements per hour | `design/spec/elements.json` (`[{id, kind, name, debut_place, debut_beat_t, uses}]`), else `## Elements`, else the tables under `## Content` (`### Roster` and its kin, the player's row left out) | new mechanics, enemies, tools and systems ÷ first-playthrough hours; good games sit at about 1.4–3 (Prey 1.4, Scorn 2.2, Superhot 2–3); warns above about 4; any element used fewer than twice after its teach is "check by hand" |
|
|
16
|
-
| The spine | `## The spine`: a `Spine:` sentence, clauses split by `;`, and a table of system, the clause it serves (quoted or by number), genre beat | a system that serves no clause warns:
|
|
16
|
+
| The spine | `## The spine`: a `Spine:` sentence, clauses split by `;`, and a table of system, the clause it serves (quoted or by number), genre beat | a system that serves no clause warns: one game cut the systems that mapped to none |
|
|
17
17
|
| Sources | every table with a Source column (the identity lock's and the asset script's are pictures, not claims), footnotes `[^n]` with their `[^n]: …` line, `[source?]` markers | a marked claim with no source line warns; "approx, from memory" is kept and listed as secondhand; `gdd --sources` lists them all |
|
|
18
18
|
| Peers | `## Worth against the genre` or `## Peers` | each peer's length and elements per hour: the report's figures where it has them, the GDD's own figure when its row carries a link, else unknown, never guessed |
|
|
19
19
|
| Length totals | the parts' minutes: `design/spec/places/*.json` `target_minutes.first_time`, else a Length column in `## Chapters`, `## Places` or `### Stages` | summed against `Play length:` (or `**Length:**`), the difference shown; warns past 10% (or 2 minutes); the owner's `target_minutes` is shown, never judged |
|
|
@@ -19,7 +19,7 @@ What each line is for:
|
|
|
19
19
|
- **Depth** is where a finished level still loses to the genre hit: critics picked the hit for a
|
|
20
20
|
longer, denser run and a reason to replay. Fill the `Depth:` line under the core loop from bot
|
|
21
21
|
runs; the options and genre numbers are in the game-logic skill's depth reference.
|
|
22
|
-
- **The first minute** puts the signature on screen early:
|
|
22
|
+
- **The first minute** puts the signature on screen early: one game's first cut showed it at
|
|
23
23
|
3:45, and the fix moved it under 30 s.
|
|
24
24
|
- **Juice** maps actual events to visible responses and explicit audio choices, including silence.
|
|
25
25
|
Remove inapplicable example rows: a loss or reward tier invented to fill the template is a
|
|
@@ -36,7 +36,7 @@ style words or the rule, redraw that frame once, and write what changed into the
|
|
|
36
36
|
## Identity lock first
|
|
37
37
|
|
|
38
38
|
Make each recurring design's sheet from its best draft before anything else, then draw every picture
|
|
39
|
-
to the sheets and one verbatim style block (
|
|
39
|
+
to the sheets and one verbatim style block (one game: seven of seven redraws on-model). Drift
|
|
40
40
|
check: frames side by side, each design part by part (hair, outfit, silhouette, colours, a vehicle's
|
|
41
41
|
shape); `funtools judge identity <frames…> --concept ref-hero.png` asks a seat. Keep a before/after
|
|
42
42
|
of each redraw, then list the honest breaks. Details: [world-and-identity.md](world-and-identity.md).
|
|
@@ -14,8 +14,8 @@ game keeps the checks; a Stop with nothing open or deferred removes it. Delete i
|
|
|
14
14
|
What the team's best shipped games had in common (research 08, 17, 20), each with why:
|
|
15
15
|
- coherent art and readable actors, scenery and UI in the chosen medium;
|
|
16
16
|
- every row of the juice table in the game, with its limits (skill `fp:game-feel`);
|
|
17
|
-
- the signature on screen within about 30 seconds, and controls taught where first needed (
|
|
18
|
-
|
|
17
|
+
- the signature on screen within about 30 seconds, and controls taught where first needed (one
|
|
18
|
+
game's first cut showed its signature at 3:45);
|
|
19
19
|
- a signature-moment view (`moment: true`) that plays the payoff, since critics judge stills
|
|
20
20
|
(skill `fp:verifying`);
|
|
21
21
|
- the full screen set: a real title, how to play, settings (sound, motion), play, pause, and the
|
|
@@ -62,7 +62,7 @@ state and emitted events. A table and an existing test file prove neither execut
|
|
|
62
62
|
Keep a seeded novice simulation beside the skilled balance bot. The novice receives only the
|
|
63
63
|
observation a player could have, reacts at a declared interval, and sometimes misses or hesitates;
|
|
64
64
|
it cannot inspect future spawns, exact hidden state or a solver's answer. Freeze its policy and
|
|
65
|
-
seed list before tuning. A floor used on
|
|
65
|
+
seed list before tuning. A floor used on one game's first wave: 100
|
|
66
66
|
fixed seeds, at least 80 runs that both survive the stage and earn score. Record both counts, elapsed time,
|
|
67
67
|
deaths by cause, policy parameters and failing seeds. Other genres state the equivalent first
|
|
68
68
|
success and deadline before the run. This is a regression floor, not a human success estimate.
|
|
@@ -62,7 +62,7 @@ What a player of the hit expects without being told. Keep them as defaults; brea
|
|
|
62
62
|
Starting code with these as defaults, and the screen flow: [starters.md](starters.md), "Merge or drop".
|
|
63
63
|
|
|
64
64
|
- Drop and merge (Suika): the piece hangs over a drop line that shows where it will fall, and the next piece is shown.
|
|
65
|
-
- Aim and bounce (Peggle): the aim guide shows the first path, and the free-ball bucket moves along the bottom every shot; it never runs out. A capped helper read as a bug twice in
|
|
65
|
+
- Aim and bounce (Peggle): the aim guide shows the first path, and the free-ball bucket moves along the bottom every shot; it never runs out. A capped helper read as a bug twice in one of our games.
|
|
66
66
|
- A wrong move is cheap: undo or an instant restart of the level, and a solved state that is unmistakable.
|
|
67
67
|
- No clock on thinking in a pure puzzle (Monument Valley has no fail state); pressure comes from a board that fills, not a timer.
|
|
68
68
|
|
|
@@ -85,7 +85,7 @@ Pick one signature and up to three more before building (`npx @funpixel/tools wo
|
|
|
85
85
|
Portal, Monument Valley and The Witness are puzzles you walk through. What differs from a board:
|
|
86
86
|
|
|
87
87
|
- **The chamber is the unit.** Each debuts one element, then asks for it in a new combination; a
|
|
88
|
-
chapter spends itself on one trick. A chamber that tells you every step is a tutorial:
|
|
88
|
+
chapter spends itself on one trick. A chamber that tells you every step is a tutorial: one game's
|
|
89
89
|
first version cleared in 1:11 with a hint per step, and critics called it "a tutorial, not a
|
|
90
90
|
puzzle". The aha is a known tool used a new way: the exit seen through the portal, the cube
|
|
91
91
|
carried through it, the switch reachable only from the far side.
|
|
@@ -94,7 +94,7 @@ Portal, Monument Valley and The Witness are puzzles you walk through. What diffe
|
|
|
94
94
|
- **Readable space.** The player always knows which side of a portal they are on (a different light
|
|
95
95
|
or colour per room), where a carried object will land (a ring on the floor before the drop) and
|
|
96
96
|
when something is in reach (it answers before the tap). These were our blind players' three
|
|
97
|
-
medium findings on
|
|
97
|
+
medium findings on that game.
|
|
98
98
|
- **Controls.** First person, or a fixed three-quarter view with tap-to-move (Monument Valley). Held
|
|
99
99
|
sideways: move on the left thumb, look on the right, one action button of at least 44 px, and the
|
|
100
100
|
two thumbs never share a zone.
|
|
@@ -123,7 +123,7 @@ Options with reasons; more in skill `fp:game-logic`, its depth reference.
|
|
|
123
123
|
places its hard levels on a rhythm the player can feel; a daily seeded board gives a reason to
|
|
124
124
|
return.
|
|
125
125
|
- Pressure from the first drops: a small container or a partly filled seeded start, so the first
|
|
126
|
-
minute already asks where things go. Critics called
|
|
126
|
+
minute already asks where things go. Critics called one game's early basket "too sparse, no
|
|
127
127
|
packing pressure" beside Suika Game.
|
|
128
128
|
- The best score per mode saved, the next piece shown, restart in one tap.
|
|
129
129
|
|
|
@@ -31,7 +31,7 @@ that catch this genre's quiet bugs. The creator's brief wins over anything here.
|
|
|
31
31
|
time), a colour that owns it, and a body that leans, squats and bounces with the physics.
|
|
32
32
|
- A driver visible in the seat, or a face on the kart, buys character for very little.
|
|
33
33
|
- Rivals each keep one colour and one personality in how they drive (the bully, the careful one).
|
|
34
|
-
- **Keep the pack in view** (
|
|
34
|
+
- **Keep the pack in view** (one racer, Oct 2026). Draw rivals at true scale out to about 60 m
|
|
35
35
|
and compress the distance beyond it, so the pack stays on screen while contact up close reads
|
|
36
36
|
exactly. A bunching rule tuned for the chase keeps it there: a racer more than 10 m from the
|
|
37
37
|
pack's mean distance is pulled toward it, 0.05 m/s per metre beyond, at most 0.8 m/s, ahead or
|
|
@@ -76,7 +76,7 @@ What a player of the hit expects without being told. Keep them as defaults; brea
|
|
|
76
76
|
Starting code with these as defaults, and the screen flow: [starters.md](starters.md), "Racing".
|
|
77
77
|
|
|
78
78
|
- A fall or a wall is a short respawn on the track, never a restart of the race.
|
|
79
|
-
- Position and lap are always on screen; the rivals' pace is beatable with a thumb, not only with frame-perfect input (
|
|
79
|
+
- Position and lap are always on screen; the rivals' pace is beatable with a thumb, not only with frame-perfect input (one racer's last cup was won only at 60 decisions a second).
|
|
80
80
|
- Help for the back of the pack: Mario Kart weights its items toward the players behind, so a race stays open.
|
|
81
81
|
- A ghost or a best time to beat on the next attempt.
|
|
82
82
|
|
|
@@ -86,8 +86,8 @@ Pick one signature and up to three more before building (`npx @funpixel/tools wo
|
|
|
86
86
|
|
|
87
87
|
A design question for the GDD: for each weapon, ability or spell, the situation where it beats the
|
|
88
88
|
others (reach, a crowd, a shield, a state it opens or finishes) and what it costs. A choice of three
|
|
89
|
-
reads as a choice when the three answer different situations (our reading).
|
|
90
|
-
hand-iterated games
|
|
89
|
+
reads as a choice when the three answer different situations (our reading). One of our
|
|
90
|
+
hand-iterated games answered it per weapon (a cutter for joints, a rivet driver that pins an enemy
|
|
91
91
|
from range, a scattergun that clears a crowd at the cost of stealth, a knife that finishes a staggered
|
|
92
92
|
enemy). A question, not a mandate; more in skill `fp:game-feel`, `references/contact.md`.
|
|
93
93
|
|
|
@@ -87,8 +87,8 @@ Pick one signature and up to three more before building (`npx @funpixel/tools wo
|
|
|
87
87
|
|
|
88
88
|
A design question for the GDD: for each gun, upgrade or panic button, the situation where it beats
|
|
89
89
|
the others (range, a crowd, armour, a state it opens or finishes) and what it costs. Two guns that
|
|
90
|
-
answer the same situation are one weapon wearing two looks (our reading).
|
|
91
|
-
hand-iterated games
|
|
90
|
+
answer the same situation are one weapon wearing two looks (our reading). One of our
|
|
91
|
+
hand-iterated games answered it per weapon (a cutter for joints, a rivet driver that pins an enemy
|
|
92
92
|
from range, a scattergun that clears a crowd at the cost of stealth, a knife that finishes a staggered
|
|
93
93
|
enemy). A question, not a mandate; more in skill `fp:game-feel`, `references/contact.md`.
|
|
94
94
|
|
|
@@ -83,8 +83,8 @@ Pick one signature and up to three more before building (`npx @funpixel/tools wo
|
|
|
83
83
|
|
|
84
84
|
A design question for the GDD: for each weapon, tool or upgrade, the situation where it beats the
|
|
85
85
|
others (a crowd, range, the night, a resource it saves) and what it costs. An upgrade that answers
|
|
86
|
-
no new situation is a bigger number rather than a choice (our reading).
|
|
87
|
-
hand-iterated games
|
|
86
|
+
no new situation is a bigger number rather than a choice (our reading). One of our
|
|
87
|
+
hand-iterated games answered it per weapon (a cutter for joints, a rivet driver that pins an enemy
|
|
88
88
|
from range, a scattergun that clears a crowd at the cost of stealth, a knife that finishes a staggered
|
|
89
89
|
enemy). A question, not a mandate; more in skill `fp:game-feel`, `references/contact.md`.
|
|
90
90
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Invent first, then fill the template
|
|
2
2
|
|
|
3
|
-
Two plans were written from one brief on 1 Oct 2026 (
|
|
3
|
+
Two plans were written from one brief on 1 Oct 2026 (a first-person paint shooter in
|
|
4
4
|
a museum at night). The plan that followed this skill's template was clearer (8.4 against 8.1) and
|
|
5
5
|
more buildable (7.2 against 6.4), and lost 3 of 3 blind seats, 7.0 against 8.0. It trailed on level
|
|
6
6
|
design by 1.8, story and world by 1.7, fun by 1.2 and phone controls by 1.0. It spent its extra
|
|
@@ -70,14 +70,14 @@ Canvas): genre and fidelity, depth (5 minutes, 30 minutes or chapters), the core
|
|
|
70
70
|
clock, question, antagonist, frame), extras with their cost (voice per character, cutscenes, photo
|
|
71
71
|
mode, multiplayer, and for a deep game two takes: two parallel builds of the locked plan, played
|
|
72
72
|
side by side from the title by `npx @funpixel/tools compare-takes`, the mix keeping what each won;
|
|
73
|
-
on
|
|
73
|
+
on one game, one take won the environment and the other the dynamics). Propose a pick per card with its reason for this game
|
|
74
74
|
(`pitch propose core world --why "…"`); the plan shows your picks and the owner approves them with it
|
|
75
75
|
at the lock (`flow ask`). Under their autonomy "ask", each card is theirs instead: `pitch ask` posts each
|
|
76
76
|
as a question in the chat, and `pitch lock` waits for their answers. From then on the core gets the art budget, the tests and the hardest checks, and
|
|
77
77
|
what was not picked stays light. Autonomy is the OWNER's setting (funpixel.json `flow.autonomy`,
|
|
78
78
|
from their brief), never a card you propose: under `ask` and `plan-then-go` every pitch card waits
|
|
79
79
|
for their answer; only their `go` lets you pick, record each pick with its reason, and lock.
|
|
80
|
-
(
|
|
80
|
+
(One game, 4 Oct: under "ask" the agent proposed and locked all seven cards itself.)
|
|
81
81
|
|
|
82
82
|
## 4. Named behaviour tests, before code
|
|
83
83
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Levels, a world that plays, fun and the phone
|
|
2
2
|
|
|
3
|
-
Where a plan made with the kit lost to the owner's own workflow (
|
|
3
|
+
Where a plan made with the kit lost to the owner's own workflow (one game, 1 Oct 2026: two
|
|
4
4
|
GDDs from one brief, three blind judges, 7.0 against 8.0). The kit's plan led on clarity and
|
|
5
5
|
feasibility and trailed on level design (−1.8), story and world (−1.7), fun (−1.2) and phone UX
|
|
6
6
|
(−1.0). Every judge named the same four things, so this page is those four, with what our best
|
|
@@ -26,9 +26,9 @@ Write the place row before drawing its picture, and draw each picture from its r
|
|
|
26
26
|
pictures to each other: if two could swap captions, one of them is not a place yet.
|
|
27
27
|
|
|
28
28
|
**Shape of a level.** Teach the new thing alone, test it, twist it, then combine it with what came
|
|
29
|
-
before (teach, develop, twist, test, celebrate).
|
|
30
|
-
rule;
|
|
31
|
-
joins a crowd (41, 82, then 100 robots per floor).
|
|
29
|
+
before (teach, develop, twist, test, celebrate). One game gave each of its eight islands one
|
|
30
|
+
rule; another debuts each of its nine kinds alone at the head of its wave before it
|
|
31
|
+
joins a crowd (41, 82, then 100 robots per floor). A third calmed its level after watching the
|
|
32
32
|
gray-box: a plan is allowed to lose to the game in front of you.
|
|
33
33
|
|
|
34
34
|
**Layout laws as tests.** The winning plan wrote its rooms as data with laws a test can read: a
|
|
@@ -61,7 +61,7 @@ Ask of the world: **what does it do when you play?**
|
|
|
61
61
|
one kind is a painting to the gun (auto-fire skips him), one sidesteps after 0.3 s of lock so your
|
|
62
62
|
burst flies into the art, one always perches against a dark backdrop, one carries a canvas as a
|
|
63
63
|
shield. Each asks a different question of the same verb. The kit's roster was one striped body
|
|
64
|
-
with five props: one enemy in five coats.
|
|
64
|
+
with five props: one enemy in five coats. One game's "one chassis, nine heads" works
|
|
65
65
|
because each head is a different idea, not because the chassis is shared.
|
|
66
66
|
|
|
67
67
|
## 3. Fun with depth
|
|
@@ -69,13 +69,13 @@ Ask of the world: **what does it do when you play?**
|
|
|
69
69
|
| Ask | A strong answer | Where it showed |
|
|
70
70
|
|---|---|---|
|
|
71
71
|
| How many decisions a minute does the verb make? | every shot is a choice about where you stand | the winning plan: "the game rewards the step before the shot" |
|
|
72
|
-
| What is the boring optimum, and what makes it lose? | named, with the rule that beats it | panic-firing pays nothing;
|
|
73
|
-
| Does risk pay? | a riskier line scores more, never only costs more |
|
|
74
|
-
| What does each verb cost? | a price in time, resource or the route |
|
|
75
|
-
| Why play the next room? | it asks a new question of the same verb | each kind debuts alone (
|
|
72
|
+
| What is the boring optimum, and what makes it lose? | named, with the rule that beats it | panic-firing pays nothing; in one horror game, welding every door runs you out of gas |
|
|
73
|
+
| Does risk pay? | a riskier line scores more, never only costs more | one game's kill ladder (10 in 2 s up to 100 in 3 s, slow motion on the top rung) |
|
|
74
|
+
| What does each verb cost? | a price in time, resource or the route | the horror game: hold 1.5 s, 25 gas, and the room beyond is gone |
|
|
75
|
+
| Why play the next room? | it asks a new question of the same verb | each kind debuts alone (the nine-kind game above) |
|
|
76
76
|
| Why play again? | a grade, a medal for clean play, a best to beat | the winning plan's results screen grades splashes, and only your own cost the clean-hand medal |
|
|
77
77
|
|
|
78
|
-
|
|
78
|
+
The horror game added weapons only when each answered a different situation, all drawing on one canister;
|
|
79
79
|
two answers to the same situation are one tool wearing two looks.
|
|
80
80
|
|
|
81
81
|
## 4. Phone UX: two thumbs, 852 × 393
|
|
@@ -85,7 +85,7 @@ The phone is where a plan is cheapest to fix and most often lost.
|
|
|
85
85
|
- **Controls off the play and off the held thing.** Both plans first put Fire and Cover on the gun;
|
|
86
86
|
the kit's HUD v2 moved them to the right edge and shrank the gun to a sixth of the screen.
|
|
87
87
|
Whatever the hero holds is part of the frame budget; a mockup that breaks its own cap breaks it in
|
|
88
|
-
the build.
|
|
88
|
+
the build. One game's HUD covered 41% of the phone screen until it was measured.
|
|
89
89
|
- **One gesture per thumb zone.** The winning plan put aim, tap-for-cover and hold-to-wipe all in
|
|
90
90
|
the right thumb's zone: three gestures that collide. Give each zone one gesture, or make one a
|
|
91
91
|
button.
|
|
@@ -11,11 +11,8 @@ data gets none; a map drawn by hand is a page of its own.
|
|
|
11
11
|
## The bar: the studio's best GDD pages
|
|
12
12
|
|
|
13
13
|
The owner judges a plan page against the studio's own bespoke design pages, not against the base
|
|
14
|
-
`gdd page` writes.
|
|
15
|
-
|
|
16
|
-
- **Knockout Lap v0.2**: kept locally by the owner, so ask for it by name.
|
|
17
|
-
- **Particle Rush**'s GDD page: ask the owner for its link.
|
|
18
|
-
- **Gallery Heist**'s GDD page.
|
|
14
|
+
`gdd page` writes. Ask the owner for them (one is kept locally by the owner, the others by link),
|
|
15
|
+
name them when you show yours, and say where yours falls short.
|
|
19
16
|
|
|
20
17
|
What makes them strong, and how much of it `gdd page` draws:
|
|
21
18
|
|
|
@@ -29,11 +29,11 @@ What play must reach, counted. It goes in the GDD's `## Content list`:
|
|
|
29
29
|
- **Size it to play length:** a game is at least 15 minutes of real play by a first-time
|
|
30
30
|
player, even with one level: escalation (a new idea per stage, not only speed), variety, a twist
|
|
31
31
|
around the middle, and an ending worth reaching. Write the `Play length:` line and count the
|
|
32
|
-
content that fills it (
|
|
32
|
+
content that fills it (two of our games: "at least 15 minutes play, to be a game", owner,
|
|
33
33
|
3 Oct); a 2-minute arcade round is a choice the line states "on purpose". `funtools sim` holds
|
|
34
34
|
the skilled bot's run to that line and asks that it reaches the ending, and `playtest experience` fills `Reached in play` for areas,
|
|
35
35
|
levels and waves from the long blind player and the bot (marked `(measured)`). Play reaching half
|
|
36
|
-
the claimed areas or less is a warn:
|
|
36
|
+
the claimed areas or less is a warn: one game claimed 8 worlds and play reached 2.
|
|
37
37
|
- **Size it to the game:** a one-screen toy can honestly say "Levels 1"; say that it is the choice
|
|
38
38
|
in the list ("one screen on purpose") and the ambition read leaves it alone. A full game names
|
|
39
39
|
its areas, kinds with a debut each (the `## Content` roster), a climax and at least one ending.
|
|
@@ -96,7 +96,7 @@ under `## AD rules` (the hooks and the fidelity seat read that heading):
|
|
|
96
96
|
|
|
97
97
|
- **Offer them and explain why:** every playtest round, the fidelity seat judges each line held,
|
|
98
98
|
partly held or broken beside the target frames. Without lines, "does it still look like the plan"
|
|
99
|
-
has no answer.
|
|
99
|
+
has no answer. One game's six lines caught a darker art pass that hid its threats.
|
|
100
100
|
- **They are the creator's words.** Offer drafts from the pitch and the first look; the creator
|
|
101
101
|
rewrites, keeps or cuts them.
|
|
102
102
|
- **Declining is fine, and kept:** `Declined: I will judge the look by eye (the creator, 30 Sep)`.
|
|
@@ -121,8 +121,8 @@ them once to PNGs.
|
|
|
121
121
|
Moments that invite someone to look: after the plan is applied, after the first look, after the
|
|
122
122
|
first slice. The someone can be a friend, the owner, a player, or the creator's next-morning self.
|
|
123
123
|
Offer the pause, record who looked and what they said in the GDD's `## Pause points` table, and
|
|
124
|
-
carry on either way.
|
|
125
|
-
minutes after its approval;
|
|
124
|
+
carry on either way. One game waited four days for its owner's "go ahead"; another built twenty
|
|
125
|
+
minutes after its approval; a third never paused and still reached its gate. The pause is there
|
|
126
126
|
because a second pair of eyes is cheapest before code, not because the path needs permission.
|
|
127
127
|
|
|
128
128
|
## 6 · The plan grows with the game
|
|
@@ -45,14 +45,14 @@ and that wins.
|
|
|
45
45
|
|
|
46
46
|
| Setting | What it adds | Seen in |
|
|
47
47
|
|---|---|---|
|
|
48
|
-
| small | The GDD and one target frame of the moment that sells the game; the meta layer (stars, collection, a map of levels) planned with the mechanic, not after it. |
|
|
49
|
-
| mid | A target frame per place or level, the story's beats as ids the game reports, progress saved per level or chapter, and a runbook of what proves each step. The plan is also a spec folder the game loads (`design/spec/`: every number in `tunables.json`, rooms and chapters as data with pars, slice first; `funtools spec init`, skill `fp:gdd`, references/spec-folder.md). |
|
|
50
|
-
| deep | A making-of log (`design/MAKING.md`: decision, numbers, lesson, one entry per lane). Show first: films or a proofs page the owner picks from, then build behind a flag, measure, merge. One lane per worktree. |
|
|
48
|
+
| small | The GDD and one target frame of the moment that sells the game; the meta layer (stars, collection, a map of levels) planned with the mechanic, not after it. | Four casual puzzle games: a one-second mechanic, a meta layer, many levels. |
|
|
49
|
+
| mid | A target frame per place or level, the story's beats as ids the game reports, progress saved per level or chapter, and a runbook of what proves each step. The plan is also a spec folder the game loads (`design/spec/`: every number in `tunables.json`, rooms and chapters as data with pars, slice first; `funtools spec init`, skill `fp:gdd`, references/spec-folder.md). | One game (`GAME.md`, `QUALITY_BAR.md`, design addenda per pass), another (`RUNBOOK.md`, `runbook.json`), a third. |
|
|
50
|
+
| deep | A making-of log (`design/MAKING.md`: decision, numbers, lesson, one entry per lane). Show first: films or a proofs page the owner picks from, then build behind a flag, measure, merge. One lane per worktree. | One game (`design/MAKING.md`, `PERF.md`, frames at 0:10, 1:00, 2:00 as the definition of done), another, and one game's plan. |
|
|
51
51
|
|
|
52
52
|
Lanes at deep: `npx @funpixel/tools lanes plan` splits a build stage into lanes, each with a brief,
|
|
53
53
|
its own paths, a spend cap, a time-box and a merge gate; `lanes merge` lands one only after a seat
|
|
54
54
|
that did not build it passes it and the owner has picked between any candidates (`/fp:lanes`).
|
|
55
|
-
Lane hygiene, from
|
|
55
|
+
Lane hygiene, from one game's builder. Use one worktree per lane, never `git stash` (it is
|
|
56
56
|
shared across worktrees), and never rewrite history. Never run two headless Blender jobs at once:
|
|
57
57
|
their dialogs land on the owner's screen. A stale build fools a screenshot, so rebuild before every
|
|
58
58
|
capture. The owner's screenshots become named before-frames.
|
|
@@ -61,17 +61,17 @@ capture. The owner's screenshots become named before-frames.
|
|
|
61
61
|
|
|
62
62
|
| Setting | What it adds | Seen in |
|
|
63
63
|
|---|---|---|
|
|
64
|
-
| small | One palette in code (a `palette.ts` or the style tokens) and one verbatim style block every generation carries. | The
|
|
65
|
-
| mid | Reference sheets before any art (`ref-*` in `assets/assets.json`). Several draws per item, the most on-palette one kept (`assets gen` scores each by hue against the palette and warns under 55%). Every provider original kept in `assets/raw/`, with a line per job in `assets/costs.jsonl`. Colour ownership: one colour, one meaning. |
|
|
66
|
-
| deep | Identity locks for every recurring design (GDD `## Identity lock`, skill `fp:gdd`). The 3D line: reference images, then the model, then the original kept with its request id and seed, then cleanup on the bench, then two tiers (phone and HD). Hard-surface pieces are rebuilt or baked from the high-poly onto clean geometry. A decimated AI mesh looks melted, and no shader fixes it. Materials are normalised in code and in the files. |
|
|
64
|
+
| small | One palette in code (a `palette.ts` or the style tokens) and one verbatim style block every generation carries. | The studio's casual games. |
|
|
65
|
+
| mid | Reference sheets before any art (`ref-*` in `assets/assets.json`). Several draws per item, the most on-palette one kept (`assets gen` scores each by hue against the palette and warns under 55%). Every provider original kept in `assets/raw/`, with a line per job in `assets/costs.jsonl`. Colour ownership: one colour, one meaning. | One game (`tools/luminance.mjs`, `contact-sheet.mjs`, `asset-coverage.mjs`), another (`ASSETS.md`), the harness games' `forge.mjs` palette scoring. |
|
|
66
|
+
| deep | Identity locks for every recurring design (GDD `## Identity lock`, skill `fp:gdd`). The 3D line: reference images, then the model, then the original kept with its request id and seed, then cleanup on the bench, then two tiers (phone and HD). Hard-surface pieces are rebuilt or baked from the high-poly onto clean geometry. A decimated AI mesh looks melted, and no shader fixes it. Materials are normalised in code and in the files. | One game (`sources/`, `design/assets.md`, models and models/hd), another (raw art kept with request ids and seeds), a third (seven redraws on-model at the first try once the sheets existed). |
|
|
67
67
|
|
|
68
68
|
## Verify, the QA loop
|
|
69
69
|
|
|
70
70
|
| Setting | What it adds | Seen in |
|
|
71
71
|
|---|---|---|
|
|
72
72
|
| small | Rules tests with a seed (same seed and inputs, same round), `verify`, `look --hud` at phone size, `feel`, and one blind phone player. | Every funtools starter ships the seed test. |
|
|
73
|
-
| mid | Bots on several seeds through every level (`sim`, per-level curves; `rooms` for a spec folder's rooms, each against its par), a replay test, a boot test where storage throws (the starter's `test/platform.test.ts`), and fixed-framing before and after on every visual change: `capture --all` then `compare` at desktop 1280x720 and phone 844x390, plus a short film (`clip`). |
|
|
74
|
-
| deep | Blind phone players from the title, with no view jumps, as the gate a panel cannot replace (a wrong kit fact sank one version that panels passed). An interleaved A/B phone profile: 844x390 at 3x, CPU slowed four times, a fixed seed, reading p95, long frames and mid-play shader compiles (`profile --viewport phone --throttle 4 --seed 7 --compare`). Evidence per lane in the making-of log. |
|
|
73
|
+
| mid | Bots on several seeds through every level (`sim`, per-level curves; `rooms` for a spec folder's rooms, each against its par), a replay test, a boot test where storage throws (the starter's `test/platform.test.ts`), and fixed-framing before and after on every visual change: `capture --all` then `compare` at desktop 1280x720 and phone 844x390, plus a short film (`clip`). | One game (`src/test/sim.test.ts`, `platform.test.ts`, `tools/release-check.mjs`, `bless-check.mjs`), another (`scripts/screen-audit.mjs`, `smoke.mjs`, audio pause tests), a third (`src/test/`). |
|
|
74
|
+
| deep | Blind phone players from the title, with no view jumps, as the gate a panel cannot replace (a wrong kit fact sank one version that panels passed). An interleaved A/B phone profile: 844x390 at 3x, CPU slowed four times, a fixed seed, reading p95, long frames and mid-play shader compiles (`profile --viewport phone --throttle 4 --seed 7 --compare`). Evidence per lane in the making-of log. | One game (`design/PERF.md`, `tools/profile.mjs`, `tools/compare.mjs`), another (a 3.7 s splash fooled the captures; the fixes were level design: practice zones, camera volumes, a landing ring). |
|
|
75
75
|
|
|
76
76
|
## One structure that has worked
|
|
77
77
|
|
|
@@ -79,10 +79,10 @@ Not required; the outcome is what checks read. The owner's deeper games split an
|
|
|
79
79
|
`src/sim/` (fixed step, seeded, cloneable, so a save is a `structuredClone` and bots play whole
|
|
80
80
|
chapters) from `src/view/` (the engine draws the sim and decides nothing) and `src/ui/` (Preact
|
|
81
81
|
screens and HUD). Tests drive the sim with bots on several seeds. Every view lane can then prove the
|
|
82
|
-
sim untouched.
|
|
82
|
+
sim untouched. The funtools starters keep the
|
|
83
83
|
same split in small: `rules.ts` engine-free and seeded, `game.ts` drawing it.
|
|
84
84
|
|
|
85
|
-
The 3D starter's quality tier follows the GPU, never `pointer: coarse` (
|
|
85
|
+
The 3D starter's quality tier follows the GPU, never `pointer: coarse` (one game's
|
|
86
86
|
`src/view/device.ts`). A desktop window in touch emulation reports a coarse pointer and would get the
|
|
87
87
|
phone's budget; the touch layout still follows the pointer.
|
|
88
88
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# What makes each section strong
|
|
2
2
|
|
|
3
|
-
Distilled from the team's GDDs
|
|
4
|
-
to end on 28–29 September (
|
|
3
|
+
Distilled from two of the team's GDDs and five the owner wrote end
|
|
4
|
+
to end on 28–29 September (a crew platformer, a deep-sea horror, a kart racer, a frozen metroidvania, a
|
|
5
5
|
marionette party game). Each row: what the strong version holds, what the thin version looks like,
|
|
6
6
|
and the example that made the difference. `funtools gdd` looks for the evidence in the strong
|
|
7
7
|
column; it cannot tell a good design from a long one, so use it as a checklist, not a grade.
|
|
@@ -18,7 +18,7 @@ The robot game's smile (a face flickers onto every defeated robot) and the Greek
|
|
|
18
18
|
(the count over the army is health, weapon and story) are theses you can see. The owner's horror
|
|
19
19
|
design adds a top-five table: the one reason each hit worked, and what a naive version of our game
|
|
20
20
|
would lack. For each big choice, name the answer everyone reaches for first and the answer of someone
|
|
21
|
-
merely avoiding it, then choose past both; write them down as "Ruled out: X · Y" (the
|
|
21
|
+
merely avoiding it, then choose past both; write them down as "Ruled out: X · Y" (the horror game: guns
|
|
22
22
|
and gore, then no combat at all, then a welder that cuts the enemies' limbs). A pillar with its **risk** beside it ("horror on a phone:
|
|
23
23
|
risky, since a lit room and a small screen flatten fear; answered by a brightness step and sound
|
|
24
24
|
drawn as arcs") is a
|
|
@@ -33,7 +33,7 @@ optimum named, and the rule that makes it lose (panic-firing pays nothing; weldi
|
|
|
33
33
|
you out of gas). Thin: numbers with no reasons, or a loop with "and also" in it, which is two games.
|
|
34
34
|
The numbers are targets until a test pins them; say so. Give each verb its **price** (weld a door:
|
|
35
35
|
hold 1.5 s, 25 gas, and the room beyond is gone for good): a verb that costs nothing stops being a
|
|
36
|
-
choice. Play one level's economy on paper before code, as a middling player would (the
|
|
36
|
+
choice. Play one level's economy on paper before code, as a middling player would (the horror game's
|
|
37
37
|
chapter 2 needed 187 gas across cuts, burns, a pin and a door, so it placed 1.3 × 187 = 243).
|
|
38
38
|
|
|
39
39
|
## Opening (the first minute)
|
|
@@ -57,7 +57,7 @@ in its tell at a time; never spawn in view; each kind debuts alone) are what mak
|
|
|
57
57
|
Give each kind something it **takes** besides health (the resource, time, the route, a connection,
|
|
58
58
|
your attention, your plan): a roster where every kind only takes health is one enemy in different
|
|
59
59
|
coats. A tell stays honest when an enemy that chooses a target takes the nearest, never a random one,
|
|
60
|
-
and online it adds the round trip (
|
|
60
|
+
and online it adds the round trip (the marionette party game uses 0.8 s against about 300 ms of phone lag).
|
|
61
61
|
|
|
62
62
|
## Look
|
|
63
63
|
|
|
@@ -66,7 +66,7 @@ colour for "you", one for "hurts", one for "you can touch this"); a font chosen
|
|
|
66
66
|
asset economy (what is generated, what is built in code, how many); **five AD rules**, each
|
|
67
67
|
checkable in one frame (a colour count, a size at which a thing reads, where grime may and may
|
|
68
68
|
not live); and **target frames**: the key art plus four whole frames of the ladder's moments, each
|
|
69
|
-
saying which claim it pins.
|
|
69
|
+
saying which claim it pins. The horror game's were timed to its ladder (0:10, 1:00, 2:00, 3:00, 5:00), so
|
|
70
70
|
captures of the same seconds could be laid beside them (skill `fp:art`).
|
|
71
71
|
Thin: "stylised and colourful". The owner's docs keep the style words
|
|
72
72
|
in one file and repeat them word for word in every prompt; reference sheets pin each recurring
|
|
@@ -113,7 +113,7 @@ controls) before any content; when time runs short, the dressing shrinks, never
|
|
|
113
113
|
|
|
114
114
|
## Requests against the pillars, and the pillar audit
|
|
115
115
|
|
|
116
|
-
|
|
116
|
+
The owner's deep-sea horror game (September 2026) was audited against its own GDD
|
|
117
117
|
mid-build: an agent graded every beat on both platforms, about 6.6 of 10 against the plan. The
|
|
118
118
|
lesson was that requests made mid-build can quietly break a pillar. "Add guns" broke "you have no
|
|
119
119
|
gun", "make her faster" broke the one-canister economy (its chapter bots could no longer afford the
|
|
@@ -9,11 +9,11 @@ loads at build time.
|
|
|
9
9
|
|
|
10
10
|
Our real games were built this way, and the GDK's games were not.
|
|
11
11
|
|
|
12
|
-
- **
|
|
12
|
+
- **One heist game** was built against `design/gdd/spec/`, written before code. Its README set the
|
|
13
13
|
order of reading. Its `tunables.json` held every number with an id, a default, a range, a unit,
|
|
14
14
|
a why and the tests that pin it. It grew from 652 to 941 tunables while lanes built, because each
|
|
15
15
|
lane wrote its numbers back. It had six rooms whose pars add up to an 18-minute night.
|
|
16
|
-
- **
|
|
16
|
+
- **Two others** kept their levels as data with tested laws, and their bots
|
|
17
17
|
finished every level on several seeds.
|
|
18
18
|
- The GDK games were one screen and one GDD, with the numbers in a markdown table that nothing loaded.
|
|
19
19
|
|
|
@@ -110,7 +110,7 @@ near its par.
|
|
|
110
110
|
`funtools spec lint` checks the folder against itself and the code, and records `.funtools/spec.json`.
|
|
111
111
|
The GDD stage reads that record past the small tier. It checks:
|
|
112
112
|
|
|
113
|
-
- the sections the tier needs (
|
|
113
|
+
- the sections the tier needs (the heist game's names count: `crew.md`, `fun-and-difficulty.md`, `sfx.md`);
|
|
114
114
|
- every default inside its own range, ids used once, and the tests they name;
|
|
115
115
|
- unknown ids in the code, the rooms or the spec files (a `P-TUNE-` proposal is a note);
|
|
116
116
|
- tunables the code never reads, and a tunable's number still typed into `src/`;
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
# The path, step by step
|
|
2
2
|
|
|
3
3
|
The brief's path, step by step. This is the long form: what each step is for, the tool that helps,
|
|
4
|
-
and the signal that says it is done. It is how the owner's best games were made (
|
|
5
|
-
`design/MAKING.md` writes it down end to end;
|
|
6
|
-
The Hot Gates ran the same way): a plan that is a contract, target frames that show what done
|
|
4
|
+
and the signal that says it is done. It is how the owner's best games were made (one game's
|
|
5
|
+
`design/MAKING.md` writes it down end to end; four others ran the same way): a plan that is a contract, target frames that show what done
|
|
7
6
|
looks like, the sim first, assets generated and made to behave, and every round spent closing the
|
|
8
7
|
gap between the game and its targets.
|
|
9
8
|
|
|
@@ -112,7 +111,7 @@ green throughout.
|
|
|
112
111
|
game goes chapter by chapter (the GDD's `## Chapters`, the `chapters` stage): plan the chapter with
|
|
113
112
|
the owner, make its target frames first, build it to them, show it, and open the next only on their
|
|
114
113
|
yes (`note verdict chapter:<id> accept "<their words>"`). Fold a
|
|
115
|
-
mid-build request back into the pillars before you build it:
|
|
114
|
+
mid-build request back into the pillars before you build it: one game's "add guns", "make her
|
|
116
115
|
faster" and "make maneuvers easier" each broke a stated rule until they were folded back.
|
|
117
116
|
**Done when:** the content list is reached in play.
|
|
118
117
|
|