evomeme 0.1.9 → 0.1.10-beta.3

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.
Files changed (406) hide show
  1. package/dist/canvas-public/app.js +509 -5999
  2. package/dist/canvas-public/assets/presets/catalog.json +47 -0
  3. package/dist/canvas-public/assets/presets/tiles/A_01_CaoDi.png +0 -0
  4. package/dist/canvas-public/assets/presets/tiles/A_02_ShaMo.png +0 -0
  5. package/dist/canvas-public/assets/presets/tiles/A_03_TianKong.png +0 -0
  6. package/dist/canvas-public/assets/presets/tiles/A_04_ShuiBo.png +0 -0
  7. package/dist/canvas-public/assets/presets/tiles/A_05_HaiMian.png +0 -0
  8. package/dist/canvas-public/assets/presets/tiles/A_06_MuDiBan.png +0 -0
  9. package/dist/canvas-public/assets/presets/tiles/A_07_ShiZhuan.png +0 -0
  10. package/dist/canvas-public/assets/presets/tiles/A_08_AnRongYan.png +0 -0
  11. package/dist/canvas-public/assets/presets/tiles/A_09_QingTaiShi.png +0 -0
  12. package/dist/canvas-public/assets/presets/tiles/A_10_ShenHai.png +0 -0
  13. package/dist/canvas-public/assets/presets/tiles/A_11_HuiYanShi.png +0 -0
  14. package/dist/canvas-public/assets/presets/tiles/A_12_HongTu.png +0 -0
  15. package/dist/canvas-public/assets/presets/tiles/A_13_GengDi.png +0 -0
  16. package/dist/canvas-public/assets/presets/tiles/A_14_HuoShanYan.png +0 -0
  17. package/dist/canvas-public/assets/presets/tiles/A_15_NiTu.png +0 -0
  18. package/dist/canvas-public/assets/presets/tiles/A_16_HuangSha.png +0 -0
  19. package/dist/canvas-public/assets/presets/tiles/A_17_CongLin.png +0 -0
  20. package/dist/canvas-public/assets/presets/tiles/A_18_ZiYanShi.png +0 -0
  21. package/dist/canvas-public/assets/presets/tiles/A_19_MoGuTu.png +0 -0
  22. package/dist/canvas-public/assets/presets/tiles/A_20_HuaDian.png +0 -0
  23. package/dist/canvas-public/assets/presets/tiles/A_21_HaiLang.png +0 -0
  24. package/dist/canvas-public/assets/presets/tiles/A_22_GanTu.png +0 -0
  25. package/dist/canvas-public/assets/presets/tiles/A_23_QingTaiShiBan.png +0 -0
  26. package/dist/canvas-public/assets/presets/tiles/A_24_XingKong.png +0 -0
  27. package/dist/canvas-public/assets/presets/tiles/A_25_MoFaFuWen.png +0 -0
  28. package/dist/canvas-public/assets/presets/tiles/A_26_ShiTuYeDi.png +0 -0
  29. package/dist/canvas-public/assets/presets/tiles/A_27_LanZhuan.png +0 -0
  30. package/dist/canvas-public/assets/presets/tiles/A_28_HongZhuan.png +0 -0
  31. package/dist/canvas-public/assets/presets/tiles/A_29_YueQiu.png +0 -0
  32. package/dist/canvas-public/assets/presets/tiles/A_30_JinShuGe.png +0 -0
  33. package/dist/canvas-public/assets/presets/tiles/A_31_JinShuJingGai.png +0 -0
  34. package/dist/canvas-public/assets/presets/tiles/A_32_ShuZiChuang.png +0 -0
  35. package/dist/canvas-public/canvas/actions.js +143 -0
  36. package/dist/canvas-public/canvas/camera.js +28 -0
  37. package/dist/canvas-public/canvas/chrome.js +13 -0
  38. package/dist/canvas-public/canvas/data.js +123 -0
  39. package/dist/canvas-public/canvas/dependencies.js +19 -0
  40. package/dist/canvas-public/canvas/interactions.js +544 -0
  41. package/dist/canvas-public/canvas/panel-resize.js +5 -0
  42. package/dist/canvas-public/canvas/renderer.js +297 -0
  43. package/dist/canvas-public/canvas/selection.js +62 -0
  44. package/dist/canvas-public/canvas/serialization.js +118 -0
  45. package/dist/canvas-public/canvas/sync.js +202 -0
  46. package/dist/canvas-public/core/api.js +27 -0
  47. package/dist/canvas-public/core/feature-registry.js +29 -0
  48. package/dist/canvas-public/core/feature-state.js +228 -0
  49. package/dist/canvas-public/core/layout.js +133 -0
  50. package/dist/canvas-public/core/operations.js +38 -0
  51. package/dist/canvas-public/core/project.js +203 -0
  52. package/dist/canvas-public/core/state.js +27 -0
  53. package/dist/canvas-public/dialogs/context-menu.js +118 -0
  54. package/dist/canvas-public/elements/base.js +100 -0
  55. package/dist/canvas-public/elements/connections.js +105 -0
  56. package/dist/canvas-public/elements/drag.js +53 -0
  57. package/dist/canvas-public/elements/image.js +259 -0
  58. package/dist/canvas-public/elements/loading-recovery.js +5 -0
  59. package/dist/canvas-public/elements/loading.js +21 -0
  60. package/dist/canvas-public/elements/map.js +64 -0
  61. package/dist/canvas-public/elements/registry.js +58 -0
  62. package/dist/canvas-public/elements/replacement.js +78 -0
  63. package/dist/canvas-public/elements/resize.js +210 -0
  64. package/dist/canvas-public/elements/task-pipeline.js +234 -0
  65. package/dist/canvas-public/elements/types.js +21 -0
  66. package/dist/canvas-public/elements/ui.js +14 -0
  67. package/dist/canvas-public/elements/video.js +64 -0
  68. package/dist/canvas-public/features/assets/local-assets.js +72 -0
  69. package/dist/canvas-public/features/assets/official-assets.js +538 -0
  70. package/dist/canvas-public/features/editing/canvas-size.js +532 -0
  71. package/dist/canvas-public/features/editing/color-key.js +469 -0
  72. package/dist/canvas-public/features/editing/cutout.js +20 -0
  73. package/dist/canvas-public/features/editing/interactive-image-editing.js +981 -0
  74. package/dist/canvas-public/features/editing/layer-decomposition.js +44 -0
  75. package/dist/canvas-public/features/editing/manual-split.js +114 -0
  76. package/dist/canvas-public/features/editing/perfect-pixel.js +336 -0
  77. package/dist/canvas-public/features/editing/scroll-preview.js +129 -0
  78. package/dist/canvas-public/features/editing/scroll-seam-elimination.js +71 -0
  79. package/dist/canvas-public/features/editing/seam-elimination.js +46 -0
  80. package/dist/canvas-public/features/editing/smart-split.js +48 -0
  81. package/dist/canvas-public/features/editing/source-preview.js +43 -0
  82. package/dist/canvas-public/features/editing/video-cycle.js +49 -0
  83. package/dist/canvas-public/features/editing/video-frames.js +35 -0
  84. package/dist/canvas-public/features/frame-editor/frame-editing.js +755 -0
  85. package/dist/canvas-public/features/frame-editor/frame-model.js +63 -0
  86. package/dist/canvas-public/features/frame-editor/playback.js +83 -0
  87. package/dist/canvas-public/features/frame-editor/preview.js +149 -0
  88. package/dist/canvas-public/features/generation/animation.js +272 -0
  89. package/dist/canvas-public/features/generation/asset-batch.js +102 -0
  90. package/dist/canvas-public/features/generation/direction.js +163 -0
  91. package/dist/canvas-public/features/generation/fields.js +73 -0
  92. package/dist/canvas-public/features/generation/game-ui.js +64 -0
  93. package/dist/canvas-public/features/generation/image.js +96 -0
  94. package/dist/canvas-public/features/generation/scroll-image.js +157 -0
  95. package/dist/canvas-public/features/generation/seamless-tile.js +52 -0
  96. package/dist/canvas-public/features/generation/tile-transition-atlas.js +79 -0
  97. package/dist/canvas-public/features/generation/video.js +105 -0
  98. package/dist/canvas-public/features/map/creation.js +73 -0
  99. package/dist/canvas-public/features/map/tile-map-editor.js +2518 -0
  100. package/dist/canvas-public/features/registry.js +59 -0
  101. package/dist/canvas-public/index.html +84 -259
  102. package/dist/canvas-public/inspector/controls.js +49 -0
  103. package/dist/canvas-public/inspector/frame-preview.js +11 -0
  104. package/dist/canvas-public/inspector/inspector.js +190 -0
  105. package/dist/canvas-public/inspector/media-inspector.js +517 -0
  106. package/dist/canvas-public/inspector/media-preview.js +56 -0
  107. package/dist/canvas-public/inspector/number-stepper.js +96 -0
  108. package/dist/canvas-public/inspector/resize.js +88 -0
  109. package/dist/canvas-public/inspector/scroll-preview.js +11 -0
  110. package/dist/canvas-public/inspector/ui-inspector.js +14 -0
  111. package/dist/canvas-public/language/en-US.js +1059 -0
  112. package/dist/canvas-public/language/index.js +79 -0
  113. package/dist/canvas-public/language/zh-CN.js +1059 -0
  114. package/dist/canvas-public/map/export.js +9 -0
  115. package/dist/canvas-public/map/inspector.js +8 -0
  116. package/dist/canvas-public/map/model.js +409 -0
  117. package/dist/canvas-public/map/tile-map-editor.js +2 -0
  118. package/dist/canvas-public/media/metadata.js +183 -0
  119. package/dist/canvas-public/media/support.js +183 -0
  120. package/dist/canvas-public/styles/base.css +49 -0
  121. package/dist/canvas-public/styles/canvas.css +127 -0
  122. package/dist/canvas-public/styles/controls.css +203 -0
  123. package/dist/canvas-public/styles/dialogs.css +521 -0
  124. package/dist/canvas-public/styles/feature-form.css +409 -0
  125. package/dist/canvas-public/styles/inspector.css +441 -0
  126. package/dist/canvas-public/styles/layout.css +344 -0
  127. package/dist/canvas-public/styles/map.css +11 -0
  128. package/dist/canvas-public/styles/nodes.css +636 -0
  129. package/dist/canvas-public/styles.css +9 -2247
  130. package/dist/canvas-public/ui/controls.js +222 -0
  131. package/dist/canvas-public/ui/elements.js +9 -0
  132. package/dist/canvas-public/ui/feature-controller.js +296 -0
  133. package/dist/canvas-public/ui/feature-form.js +401 -0
  134. package/dist/canvas-public/ui/settings.js +83 -0
  135. package/dist/canvas-public/ui/toolbar.js +55 -0
  136. package/dist/canvas-public/vendor/pixi-tilemap.js +126 -0
  137. package/dist/canvas-public/vendor/pixi.min.js +2340 -0
  138. package/dist/canvas-public/workers/color-key-worker.js +289 -0
  139. package/dist/canvas-public/workers/perfect-pixel-worker.js +510 -0
  140. package/dist/index.js +42004 -12938
  141. package/dist/skills/en-US/evomeme-canvas/SKILL.md +52 -0
  142. package/dist/skills/en-US/evomeme-canvas/agents/openai.yaml +7 -0
  143. package/dist/skills/en-US/evomeme-cloud-fs/SKILL.md +197 -0
  144. package/dist/skills/en-US/evomeme-cloud-fs/agents/openai.yaml +7 -0
  145. package/dist/skills/en-US/evomeme-cover/SKILL.md +131 -0
  146. package/dist/skills/en-US/evomeme-cover/agents/openai.yaml +7 -0
  147. package/dist/skills/en-US/evomeme-game-maker/SKILL.md +288 -0
  148. package/dist/skills/en-US/evomeme-game-maker/agents/openai.yaml +4 -0
  149. package/dist/skills/en-US/evomeme-login/SKILL.md +92 -0
  150. package/dist/skills/en-US/evomeme-login/agents/openai.yaml +7 -0
  151. package/dist/skills/en-US/evomeme-native-bridge-sdk/SKILL.md +286 -0
  152. package/dist/skills/en-US/evomeme-native-bridge-sdk/agents/openai.yaml +8 -0
  153. package/dist/skills/en-US/evomeme-tos-upload/SKILL.md +47 -0
  154. package/dist/skills/en-US/evomeme-tos-upload/agents/openai.yaml +5 -0
  155. package/dist/skills/en-US/evomeme-ui/SKILL.md +123 -0
  156. package/dist/skills/en-US/evomeme-ui/agents/openai.yaml +4 -0
  157. package/dist/skills/en-US/evomeme-ui/references/host-layout.md +69 -0
  158. package/dist/skills/en-US/game-art/SKILL.md +121 -0
  159. package/dist/skills/en-US/game-art/agents/openai.yaml +8 -0
  160. package/dist/skills/en-US/game-asset-align/SKILL.md +45 -0
  161. package/dist/skills/en-US/game-asset-align/agents/openai.yaml +8 -0
  162. package/dist/skills/en-US/game-asset-align/references/alignment-contract.md +61 -0
  163. package/dist/skills/en-US/game-asset-align/references/blender-scene-pipeline.md +45 -0
  164. package/dist/skills/en-US/game-asset-align/references/canonical-package.md +26 -0
  165. package/dist/skills/en-US/game-asset-align/references/engine-capabilities.md +14 -0
  166. package/dist/skills/en-US/game-asset-align/references/lightweight-review.md +32 -0
  167. package/dist/skills/en-US/game-asset-align/references/repair-policy.md +30 -0
  168. package/dist/skills/en-US/game-asset-align/references/tool-contract.md +39 -0
  169. package/dist/skills/en-US/game-asset-align/references/visual-review.md +26 -0
  170. package/dist/skills/en-US/game-asset-image-generator/SKILL.md +64 -0
  171. package/dist/skills/en-US/game-asset-image-generator/agents/openai.yaml +7 -0
  172. package/dist/skills/en-US/game-asset-image-generator/references/background.md +32 -0
  173. package/dist/skills/en-US/game-asset-image-generator/references/static-game-assets.md +38 -0
  174. package/dist/skills/en-US/game-audio/SKILL.md +82 -0
  175. package/dist/skills/en-US/game-audio/agents/openai.yaml +4 -0
  176. package/dist/skills/en-US/game-demo/SKILL.md +103 -0
  177. package/dist/skills/en-US/game-demo/agents/openai.yaml +7 -0
  178. package/dist/skills/en-US/game-maker/SKILL.md +111 -0
  179. package/dist/skills/en-US/game-maker/agents/openai.yaml +4 -0
  180. package/dist/skills/en-US/game-test/SKILL.md +58 -0
  181. package/dist/skills/en-US/game-test/agents/openai.yaml +7 -0
  182. package/dist/skills/en-US/game-ui/SKILL.md +177 -0
  183. package/dist/skills/en-US/game-ui/agents/openai.yaml +4 -0
  184. package/dist/skills/en-US/godot-3d-game/SKILL.md +39 -0
  185. package/dist/skills/en-US/godot-3d-game/agents/openai.yaml +8 -0
  186. package/dist/skills/en-US/godot-3d-game/references/alignment-gates.md +26 -0
  187. package/dist/skills/en-US/godot-3d-game/references/appearance-alignment.md +52 -0
  188. package/dist/skills/en-US/godot-3d-game/references/build-and-qa.md +22 -0
  189. package/dist/skills/en-US/godot-3d-game/references/canonical-asset-runtime.md +27 -0
  190. package/dist/skills/en-US/godot-3d-game/references/import-and-wrapper-scenes.md +20 -0
  191. package/dist/skills/en-US/godot-3d-game/references/physics-colliders.md +13 -0
  192. package/dist/skills/en-US/godot-3d-game/references/project-structure.md +22 -0
  193. package/dist/skills/en-US/godot-3d-game/references/skeleton-animation.md +16 -0
  194. package/dist/skills/en-US/phaser-2d-game/SKILL.md +127 -0
  195. package/dist/skills/en-US/phaser-2d-game/agents/openai.yaml +8 -0
  196. package/dist/skills/en-US/phaser-2d-game/references/engine-performance.md +64 -0
  197. package/dist/skills/en-US/phaser-2d-game/references/engine-physics.md +139 -0
  198. package/dist/skills/en-US/phaser-2d-game/references/engine-runtime.md +129 -0
  199. package/dist/skills/en-US/phaser-2d-game/references/engine-spritesheets.md +99 -0
  200. package/dist/skills/en-US/phaser-2d-game/references/engine-tilemaps.md +80 -0
  201. package/dist/skills/en-US/phaser-2d-game/references/file-structure.md +94 -0
  202. package/dist/skills/en-US/phaser-2d-graphics-builder/SKILL.md +68 -0
  203. package/dist/skills/en-US/phaser-2d-graphics-builder/agents/openai.yaml +7 -0
  204. package/dist/skills/en-US/threejs-3d-game/SKILL.md +117 -0
  205. package/dist/skills/en-US/threejs-3d-game/agents/openai.yaml +7 -0
  206. package/dist/skills/en-US/threejs-3d-game/references/engine-asset-pipeline.md +153 -0
  207. package/dist/skills/en-US/threejs-3d-game/references/engine-audio.md +70 -0
  208. package/dist/skills/en-US/threejs-3d-game/references/engine-input-camera.md +84 -0
  209. package/dist/skills/en-US/threejs-3d-game/references/engine-performance.md +96 -0
  210. package/dist/skills/en-US/threejs-3d-game/references/engine-physics.md +142 -0
  211. package/dist/skills/en-US/threejs-3d-game/references/engine-runtime.md +199 -0
  212. package/dist/skills/en-US/threejs-3d-game/references/file-structure.md +353 -0
  213. package/dist/skills/en-US/threejs-aaa-graphics-builder/SKILL.md +62 -0
  214. package/dist/skills/en-US/threejs-aaa-graphics-builder/agents/openai.yaml +7 -0
  215. package/{skills → dist/skills/zh-CN}/evomeme-cloud-fs/SKILL.md +28 -7
  216. package/{skills → dist/skills/zh-CN}/evomeme-cover/SKILL.md +7 -8
  217. package/{skills → dist/skills/zh-CN}/evomeme-game-maker/SKILL.md +91 -88
  218. package/{skills → dist/skills/zh-CN}/evomeme-tos-upload/SKILL.md +6 -5
  219. package/dist/skills/zh-CN/evomeme-ui/SKILL.md +123 -0
  220. package/dist/skills/zh-CN/evomeme-ui/agents/openai.yaml +4 -0
  221. package/dist/skills/zh-CN/evomeme-ui/references/host-layout.md +69 -0
  222. package/dist/skills/zh-CN/game-asset-align/SKILL.md +45 -0
  223. package/dist/skills/zh-CN/game-asset-align/agents/openai.yaml +8 -0
  224. package/dist/skills/zh-CN/game-asset-align/references/alignment-contract.md +61 -0
  225. package/dist/skills/zh-CN/game-asset-align/references/blender-scene-pipeline.md +45 -0
  226. package/dist/skills/zh-CN/game-asset-align/references/canonical-package.md +26 -0
  227. package/dist/skills/zh-CN/game-asset-align/references/engine-capabilities.md +14 -0
  228. package/dist/skills/zh-CN/game-asset-align/references/lightweight-review.md +32 -0
  229. package/dist/skills/zh-CN/game-asset-align/references/repair-policy.md +30 -0
  230. package/dist/skills/zh-CN/game-asset-align/references/tool-contract.md +39 -0
  231. package/dist/skills/zh-CN/game-asset-align/references/visual-review.md +26 -0
  232. package/dist/skills/zh-CN/game-asset-image-generator/SKILL.md +64 -0
  233. package/{skills → dist/skills/zh-CN}/game-asset-image-generator/references/background.md +1 -1
  234. package/{skills → dist/skills/zh-CN}/game-asset-image-generator/references/static-game-assets.md +2 -2
  235. package/dist/skills/zh-CN/game-audio/references/bgm-cdn.md +127 -0
  236. package/dist/skills/zh-CN/game-audio/references/sfx-cdn.md +77 -0
  237. package/dist/skills/zh-CN/game-test/references/checklists/playtest-qa.md +12 -0
  238. package/{skills → dist/skills/zh-CN}/game-ui/SKILL.md +9 -1
  239. package/dist/skills/zh-CN/game-ui/references/checklists/game-ui-quality.md +14 -0
  240. package/dist/skills/zh-CN/game-ui/references/checklists/hud-readability.md +12 -0
  241. package/dist/skills/zh-CN/game-ui/references/checklists/mobile-input.md +12 -0
  242. package/dist/skills/zh-CN/game-ui/references/checklists/responsive-ui-fit.md +12 -0
  243. package/dist/skills/zh-CN/game-ui/references/ui-patterns.md +140 -0
  244. package/dist/skills/zh-CN/game-ui/references/ui-prompt-templates.md +63 -0
  245. package/dist/skills/zh-CN/godot-3d-game/SKILL.md +39 -0
  246. package/dist/skills/zh-CN/godot-3d-game/agents/openai.yaml +8 -0
  247. package/dist/skills/zh-CN/godot-3d-game/references/alignment-gates.md +26 -0
  248. package/dist/skills/zh-CN/godot-3d-game/references/appearance-alignment.md +52 -0
  249. package/dist/skills/zh-CN/godot-3d-game/references/build-and-qa.md +22 -0
  250. package/dist/skills/zh-CN/godot-3d-game/references/canonical-asset-runtime.md +27 -0
  251. package/dist/skills/zh-CN/godot-3d-game/references/import-and-wrapper-scenes.md +20 -0
  252. package/dist/skills/zh-CN/godot-3d-game/references/physics-colliders.md +13 -0
  253. package/dist/skills/zh-CN/godot-3d-game/references/project-structure.md +22 -0
  254. package/dist/skills/zh-CN/godot-3d-game/references/skeleton-animation.md +16 -0
  255. package/dist/skills/zh-CN/phaser-2d-graphics-builder/assets/scorecard-anchors/scene-1.jpeg +0 -0
  256. package/dist/skills/zh-CN/phaser-2d-graphics-builder/assets/scorecard-anchors/scene-2.jpeg +0 -0
  257. package/dist/skills/zh-CN/phaser-2d-graphics-builder/assets/scorecard-anchors/scene-3.jpg +0 -0
  258. package/dist/skills/zh-CN/phaser-2d-graphics-builder/references/checklists/compose-quality.md +10 -0
  259. package/dist/skills/zh-CN/phaser-2d-graphics-builder/references/checklists/performance-safe-visual-detail.md +9 -0
  260. package/dist/skills/zh-CN/phaser-2d-graphics-builder/references/checklists/premium-game-quality-gate.md +15 -0
  261. package/dist/skills/zh-CN/phaser-2d-graphics-builder/references/checklists/sprite-quality.md +10 -0
  262. package/dist/skills/zh-CN/phaser-2d-graphics-builder/references/checklists/technical-art-quality.md +9 -0
  263. package/dist/skills/zh-CN/phaser-2d-graphics-builder/references/checklists/visual-scorecard.md +9 -0
  264. package/dist/skills/zh-CN/phaser-2d-graphics-builder/references/compose-recipes.md +71 -0
  265. package/dist/skills/zh-CN/phaser-2d-graphics-builder/references/graphics-prompt-templates.md +33 -0
  266. package/dist/skills/zh-CN/phaser-2d-graphics-builder/references/implementation-blueprint.md +82 -0
  267. package/dist/skills/zh-CN/phaser-2d-graphics-builder/references/sprite-recipes.md +90 -0
  268. package/dist/skills/zh-CN/phaser-2d-graphics-builder/references/technical-art.md +67 -0
  269. package/dist/skills/zh-CN/phaser-2d-graphics-builder/references/vfx-recipes.md +67 -0
  270. package/dist/skills/zh-CN/phaser-2d-graphics-builder/references/visual-scorecard.md +129 -0
  271. package/{skills → dist/skills/zh-CN}/threejs-3d-game/SKILL.md +6 -2
  272. package/{skills → dist/skills/zh-CN}/threejs-3d-game/references/engine-asset-pipeline.md +52 -15
  273. package/dist/skills/zh-CN/threejs-aaa-graphics-builder/assets/scorecard-anchors/scene-1.jpg +0 -0
  274. package/dist/skills/zh-CN/threejs-aaa-graphics-builder/assets/scorecard-anchors/scene-2.jpg +0 -0
  275. package/dist/skills/zh-CN/threejs-aaa-graphics-builder/assets/scorecard-anchors/scene-3.jpg +0 -0
  276. package/dist/skills/zh-CN/threejs-aaa-graphics-builder/references/checklists/aaa-game-quality-gate.md +23 -0
  277. package/dist/skills/zh-CN/threejs-aaa-graphics-builder/references/checklists/aaa-visual-scorecard.md +19 -0
  278. package/dist/skills/zh-CN/threejs-aaa-graphics-builder/references/checklists/material-lighting-quality.md +14 -0
  279. package/dist/skills/zh-CN/threejs-aaa-graphics-builder/references/checklists/performance-safe-visual-detail.md +14 -0
  280. package/dist/skills/zh-CN/threejs-aaa-graphics-builder/references/checklists/procedural-model-quality.md +15 -0
  281. package/dist/skills/zh-CN/threejs-aaa-graphics-builder/references/checklists/technical-art-quality.md +17 -0
  282. package/dist/skills/zh-CN/threejs-aaa-graphics-builder/references/graphics-prompt-templates.md +236 -0
  283. package/dist/skills/zh-CN/threejs-aaa-graphics-builder/references/implementation-blueprint.md +161 -0
  284. package/dist/skills/zh-CN/threejs-aaa-graphics-builder/references/model-recipes.md +146 -0
  285. package/dist/skills/zh-CN/threejs-aaa-graphics-builder/references/render-recipes.md +90 -0
  286. package/dist/skills/zh-CN/threejs-aaa-graphics-builder/references/shader-cookbook.md +292 -0
  287. package/dist/skills/zh-CN/threejs-aaa-graphics-builder/references/technical-art.md +167 -0
  288. package/dist/skills/zh-CN/threejs-aaa-graphics-builder/references/visual-scorecard.md +147 -0
  289. package/dist/stage-blender/bake_materials.py +102 -0
  290. package/dist/stage-blender/export_scene.py +275 -0
  291. package/dist/stage-blender/preview_camera.py +90 -0
  292. package/dist/stage-blender/repair_mesh.py +112 -0
  293. package/dist/stage-public/app.js +759 -0
  294. package/dist/stage-public/baked/bakePilot.js +44 -0
  295. package/dist/stage-public/baked/bakedScene.js +129 -0
  296. package/dist/stage-public/baked/sceneAppearance.js +225 -0
  297. package/dist/stage-public/baked/sceneCamera.js +45 -0
  298. package/dist/stage-public/comparison-contract.js +28 -0
  299. package/dist/stage-public/delivery.html +4 -0
  300. package/dist/stage-public/delivery.js +17 -0
  301. package/dist/stage-public/godot/appearance.gd +170 -0
  302. package/dist/stage-public/godot/preview.gd +79 -0
  303. package/dist/stage-public/index.html +141 -0
  304. package/dist/stage-public/review-app.js +289 -0
  305. package/dist/stage-public/review-runtime.js +63 -0
  306. package/dist/stage-public/review.css +24 -0
  307. package/dist/stage-public/review.html +47 -0
  308. package/dist/stage-public/scene-runtime.js +212 -0
  309. package/dist/stage-public/sceneContractRuntime.js +235 -0
  310. package/dist/stage-public/styles.css +328 -0
  311. package/dist/stage-public/three-appearance.js +104 -0
  312. package/dist/stage-public/vendor/three170/LICENSE +21 -0
  313. package/dist/stage-public/vendor/three170/build/three.module.js +54571 -0
  314. package/dist/stage-public/vendor/three170/examples/jsm/controls/OrbitControls.js +1523 -0
  315. package/dist/stage-public/vendor/three170/examples/jsm/environments/RoomEnvironment.js +144 -0
  316. package/dist/stage-public/vendor/three170/examples/jsm/libs/fflate.module.js +2672 -0
  317. package/dist/stage-public/vendor/three170/examples/jsm/loaders/EXRLoader.js +2563 -0
  318. package/dist/stage-public/vendor/three170/examples/jsm/loaders/GLTFLoader.js +4727 -0
  319. package/dist/stage-public/vendor/three170/examples/jsm/utils/BufferGeometryUtils.js +1373 -0
  320. package/dist/tile-transition-mask.svg +40 -0
  321. package/package.json +21 -7
  322. package/dist/canvas-public/cycle-detect.js +0 -166
  323. package/dist/canvas-public/smart-split.js +0 -185
  324. package/skills/game-asset-image-generator/SKILL.md +0 -104
  325. /package/{skills → dist/skills/en-US}/game-audio/references/bgm-cdn.md +0 -0
  326. /package/{skills → dist/skills/en-US}/game-audio/references/sfx-cdn.md +0 -0
  327. /package/{skills → dist/skills/en-US}/game-test/references/checklists/playtest-qa.md +0 -0
  328. /package/{skills → dist/skills/en-US}/game-ui/references/checklists/game-ui-quality.md +0 -0
  329. /package/{skills → dist/skills/en-US}/game-ui/references/checklists/hud-readability.md +0 -0
  330. /package/{skills → dist/skills/en-US}/game-ui/references/checklists/mobile-input.md +0 -0
  331. /package/{skills → dist/skills/en-US}/game-ui/references/checklists/responsive-ui-fit.md +0 -0
  332. /package/{skills → dist/skills/en-US}/game-ui/references/ui-patterns.md +0 -0
  333. /package/{skills → dist/skills/en-US}/game-ui/references/ui-prompt-templates.md +0 -0
  334. /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/assets/scorecard-anchors/scene-1.jpeg +0 -0
  335. /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/assets/scorecard-anchors/scene-2.jpeg +0 -0
  336. /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/assets/scorecard-anchors/scene-3.jpg +0 -0
  337. /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/references/checklists/compose-quality.md +0 -0
  338. /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/references/checklists/performance-safe-visual-detail.md +0 -0
  339. /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/references/checklists/premium-game-quality-gate.md +0 -0
  340. /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/references/checklists/sprite-quality.md +0 -0
  341. /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/references/checklists/technical-art-quality.md +0 -0
  342. /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/references/checklists/visual-scorecard.md +0 -0
  343. /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/references/compose-recipes.md +0 -0
  344. /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/references/graphics-prompt-templates.md +0 -0
  345. /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/references/implementation-blueprint.md +0 -0
  346. /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/references/sprite-recipes.md +0 -0
  347. /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/references/technical-art.md +0 -0
  348. /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/references/vfx-recipes.md +0 -0
  349. /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/references/visual-scorecard.md +0 -0
  350. /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/assets/scorecard-anchors/scene-1.jpg +0 -0
  351. /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/assets/scorecard-anchors/scene-2.jpg +0 -0
  352. /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/assets/scorecard-anchors/scene-3.jpg +0 -0
  353. /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/references/checklists/aaa-game-quality-gate.md +0 -0
  354. /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/references/checklists/aaa-visual-scorecard.md +0 -0
  355. /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/references/checklists/material-lighting-quality.md +0 -0
  356. /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/references/checklists/performance-safe-visual-detail.md +0 -0
  357. /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/references/checklists/procedural-model-quality.md +0 -0
  358. /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/references/checklists/technical-art-quality.md +0 -0
  359. /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/references/graphics-prompt-templates.md +0 -0
  360. /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/references/implementation-blueprint.md +0 -0
  361. /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/references/model-recipes.md +0 -0
  362. /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/references/render-recipes.md +0 -0
  363. /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/references/shader-cookbook.md +0 -0
  364. /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/references/technical-art.md +0 -0
  365. /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/references/visual-scorecard.md +0 -0
  366. /package/{skills → dist/skills/zh-CN}/evomeme-canvas/SKILL.md +0 -0
  367. /package/{skills → dist/skills/zh-CN}/evomeme-canvas/agents/openai.yaml +0 -0
  368. /package/{skills → dist/skills/zh-CN}/evomeme-cloud-fs/agents/openai.yaml +0 -0
  369. /package/{skills → dist/skills/zh-CN}/evomeme-cover/agents/openai.yaml +0 -0
  370. /package/{skills → dist/skills/zh-CN}/evomeme-game-maker/agents/openai.yaml +0 -0
  371. /package/{skills → dist/skills/zh-CN}/evomeme-login/SKILL.md +0 -0
  372. /package/{skills → dist/skills/zh-CN}/evomeme-login/agents/openai.yaml +0 -0
  373. /package/{skills → dist/skills/zh-CN}/evomeme-native-bridge-sdk/SKILL.md +0 -0
  374. /package/{skills → dist/skills/zh-CN}/evomeme-native-bridge-sdk/agents/openai.yaml +0 -0
  375. /package/{skills → dist/skills/zh-CN}/evomeme-tos-upload/agents/openai.yaml +0 -0
  376. /package/{skills → dist/skills/zh-CN}/game-art/SKILL.md +0 -0
  377. /package/{skills → dist/skills/zh-CN}/game-art/agents/openai.yaml +0 -0
  378. /package/{skills → dist/skills/zh-CN}/game-asset-image-generator/agents/openai.yaml +0 -0
  379. /package/{skills → dist/skills/zh-CN}/game-audio/SKILL.md +0 -0
  380. /package/{skills → dist/skills/zh-CN}/game-audio/agents/openai.yaml +0 -0
  381. /package/{skills → dist/skills/zh-CN}/game-demo/SKILL.md +0 -0
  382. /package/{skills → dist/skills/zh-CN}/game-demo/agents/openai.yaml +0 -0
  383. /package/{skills → dist/skills/zh-CN}/game-maker/SKILL.md +0 -0
  384. /package/{skills → dist/skills/zh-CN}/game-maker/agents/openai.yaml +0 -0
  385. /package/{skills → dist/skills/zh-CN}/game-test/SKILL.md +0 -0
  386. /package/{skills → dist/skills/zh-CN}/game-test/agents/openai.yaml +0 -0
  387. /package/{skills → dist/skills/zh-CN}/game-ui/agents/openai.yaml +0 -0
  388. /package/{skills → dist/skills/zh-CN}/phaser-2d-game/SKILL.md +0 -0
  389. /package/{skills → dist/skills/zh-CN}/phaser-2d-game/agents/openai.yaml +0 -0
  390. /package/{skills → dist/skills/zh-CN}/phaser-2d-game/references/engine-performance.md +0 -0
  391. /package/{skills → dist/skills/zh-CN}/phaser-2d-game/references/engine-physics.md +0 -0
  392. /package/{skills → dist/skills/zh-CN}/phaser-2d-game/references/engine-runtime.md +0 -0
  393. /package/{skills → dist/skills/zh-CN}/phaser-2d-game/references/engine-spritesheets.md +0 -0
  394. /package/{skills → dist/skills/zh-CN}/phaser-2d-game/references/engine-tilemaps.md +0 -0
  395. /package/{skills → dist/skills/zh-CN}/phaser-2d-game/references/file-structure.md +0 -0
  396. /package/{skills → dist/skills/zh-CN}/phaser-2d-graphics-builder/SKILL.md +0 -0
  397. /package/{skills → dist/skills/zh-CN}/phaser-2d-graphics-builder/agents/openai.yaml +0 -0
  398. /package/{skills → dist/skills/zh-CN}/threejs-3d-game/agents/openai.yaml +0 -0
  399. /package/{skills → dist/skills/zh-CN}/threejs-3d-game/references/engine-audio.md +0 -0
  400. /package/{skills → dist/skills/zh-CN}/threejs-3d-game/references/engine-input-camera.md +0 -0
  401. /package/{skills → dist/skills/zh-CN}/threejs-3d-game/references/engine-performance.md +0 -0
  402. /package/{skills → dist/skills/zh-CN}/threejs-3d-game/references/engine-physics.md +0 -0
  403. /package/{skills → dist/skills/zh-CN}/threejs-3d-game/references/engine-runtime.md +0 -0
  404. /package/{skills → dist/skills/zh-CN}/threejs-3d-game/references/file-structure.md +0 -0
  405. /package/{skills → dist/skills/zh-CN}/threejs-aaa-graphics-builder/SKILL.md +0 -0
  406. /package/{skills → dist/skills/zh-CN}/threejs-aaa-graphics-builder/agents/openai.yaml +0 -0
@@ -0,0 +1,9 @@
1
+ # Technical Art Quality Checklist
2
+
3
+ - [ ] Technical art brief written before broad visual changes
4
+ - [ ] Hero vs support surfaces listed
5
+ - [ ] Texture/atlas plan noted
6
+ - [ ] VFX language + caps noted
7
+ - [ ] Asset strategy per high-value surface recorded
8
+ - [ ] Mobile constraints acknowledged
9
+ - [ ] Post-pass diagnostics reported (even if qualitative + caps)
@@ -0,0 +1,9 @@
1
+ # Visual Scorecard Checklist (2D)
2
+
3
+ - [ ] Compared active-play screenshot to `assets/scorecard-anchors/` (scene-1 / scene-2 / scene-3)
4
+ - [ ] Scored from active-play screenshot (not title-only)
5
+ - [ ] All 10 categories scored 0–3 with one-line evidence
6
+ - [ ] Average computed
7
+ - [ ] Automatic Failures checked explicitly
8
+ - [ ] Fresh-eyes weakest-two named
9
+ - [ ] Measured evidence cited for textures/config/screenshots where claiming ≥2 on fidelity/performance
@@ -0,0 +1,71 @@
1
+ # Compose Recipes (Phaser 2D)
2
+
3
+ Use before changing camera, parallax, global tint, vignette, depth sorting, or screen-space overlays. Compose supports readability; it is not a replacement for authored sprites.
4
+
5
+ ## Camera
6
+
7
+ | Model | When | Notes |
8
+ | --- | --- | --- |
9
+ | Lock | `portrait_stage`, `board_table`, `fixed_arena` | Punch zoom on big events only |
10
+ | Follow + deadzone | `side_scroll_lane`, `topdown_map`, `runner_lane` | Deadzone avoids jitter |
11
+ | Room snap | Metroidvania-like | Bounds = room; no lerp fight |
12
+
13
+ Rules:
14
+
15
+ - Camera logic stays out of gameplay Systems when possible.
16
+ - Shake intensity scales with event severity; never obscure the next hazard.
17
+ - Prefer Phaser camera effects over CSS transforms on the canvas.
18
+ - World bounds and physics bounds stay aligned (`phaser-2d-game`).
19
+
20
+ ## Parallax
21
+
22
+ 1. Place Far → Mid → Play → Near per `DepthLayers`.
23
+ 2. Set `scrollFactorX/Y` (or parent container motion) so Far moves slowest.
24
+ 3. Near may move slightly faster than Play for depth, but must not cover telegraphs.
25
+ 4. Disable strong parallax on `topdown_map` / `board_table` unless subtle.
26
+
27
+ Reject: background scrolling faster than player decision reading; mismatched tile seams while scrolling.
28
+
29
+ ## Tint / Overlay / Vignette
30
+
31
+ Use a single full-screen Image/Graphics or Camera fade for:
32
+
33
+ - Biome mood (cool night, warm dusk).
34
+ - Pressure (arena wave)—keep center Play clearer than edges.
35
+ - Damage flash (≤100–150ms).
36
+
37
+ Do **not**:
38
+
39
+ - Stack multiple multiply overlays until art is gray mush.
40
+ - Use permanent heavy vignette to hide empty Far layers.
41
+ - Recolor every sprite differently so the palette collapses.
42
+
43
+ Signal colors (hazard / reward / safe) stay consistent with HUD tokens.
44
+
45
+ ## Depth Sorting
46
+
47
+ - Static world: fixed depths from the layer table.
48
+ - Mobile actors: Y-sort within Play band, or explicit depth = `base + y`.
49
+ - VFX above the actor that owns them, below Near occluders unless the FX is screen-space.
50
+
51
+ ## Screen FX vs World FX
52
+
53
+ | Kind | Placement | Examples |
54
+ | --- | --- | --- |
55
+ | World FX | At entity position, Play/Motion depth | Impact burst, dash dust |
56
+ | Screen FX | Camera-fixed container | Hit flash, edge warning |
57
+
58
+ Prefer world FX for spatial clarity; screen FX for global state only.
59
+
60
+ ## Readability Tests
61
+
62
+ After compose changes, verify on mobile:
63
+
64
+ 1. Hero silhouette still finds the eye in <1s.
65
+ 2. Next hazard/reward in the decision window is unobscured.
66
+ 3. Parallax does not cause mis-taps on touch targets (DOM HUD separate).
67
+ 4. No CSS scaling of the game canvas.
68
+
69
+ ## Checklist Hook
70
+
71
+ Run `checklists/compose-quality.md` before scoring the Compose category.
@@ -0,0 +1,33 @@
1
+ # Graphics Pass Prompt Templates (Phaser 2D)
2
+
3
+ Use only when the user asks for reusable prompts or a templated graphics pass.
4
+
5
+ ## Full premium pass
6
+
7
+ ```text
8
+ Load phaser-2d-graphics-builder. Select or confirm scene_profile_id from game-art/references/scene-profiles.md (2D Compose rail only).
9
+ Fill reference ledger (visual-scorecard, implementation-blueprint, sprite-recipes, compose-recipes, technical-art).
10
+ Score current mobile active-play screenshot. Build asset sourcing ledger; generate missing hero/bg/parallax via game-asset-image-generator.
11
+ Upgrade all weak surfaces; then compose; then event VFX. Re-score to premium thresholds or list blockers.
12
+ ```
13
+
14
+ ## Hero + background only
15
+
16
+ ```text
17
+ Graphics pass scoped to hero silhouette and Far/Mid backgrounds for profile <id>.
18
+ MCP-generate and bind config keys; do not redesign HUD. Report scorecard categories 2, 5, 6 only plus blockers.
19
+ ```
20
+
21
+ ## Compose-only
22
+
23
+ ```text
24
+ Do not regenerate art. Fix camera/parallax/depth/tint per compose-recipes for profile <id>.
25
+ Verify readability tests; update technical-art notes if layer count changed.
26
+ ```
27
+
28
+ ## VFX-only
29
+
30
+ ```text
31
+ Sprites/world already premium. Add event-driven FX from vfx-recipes for: <events>.
32
+ Pool emitters; respect technical-art caps; no ambient filler.
33
+ ```
@@ -0,0 +1,82 @@
1
+ # Phaser 2D Graphics Implementation Blueprint
2
+
3
+ Use when a Phaser game reads as basic even after it is playable. Goal: a production graphics architecture that can be iterated, scored, and budgeted. For premium/showcase work, also load `technical-art.md`.
4
+
5
+ ## Recommended Ownership
6
+
7
+ Directory layout follows `../phaser-2d-game/references/file-structure.md`. Keep **rules in Systems**, **sprites/FX in Scene or view helpers**. Suggested modules (names can merge in small games; concepts must stay separate):
8
+
9
+ ```text
10
+ src/game/assets/manifest.ts # or public/config.json bindings
11
+ src/game/view/SpriteFactory.ts # hero / hazard / reward creators
12
+ src/game/view/WorldPropKit.ts # repeated props, tileside dressing
13
+ src/game/view/DepthLayers.ts # Play/Near/Mid/Far/Motion constants
14
+ src/game/view/ComposeRig.ts # camera helpers, parallax, vignette/tint
15
+ src/game/view/VfxSystem.ts # event-driven FX (pooled)
16
+ src/game/view/QualityDiagnostics.ts # optional counters / debug overlays
17
+ src/scenes/GameplayScene.ts # wires systems → view; no rule ownership
18
+ ```
19
+
20
+ Asset files live under `assets/` (`characters/`, `environment/`, `fx/`, …) with stable keys in `public/config.json`.
21
+
22
+ ## Hybrid Asset Pipeline
23
+
24
+ Choose the asset path per surface:
25
+
26
+ - **MCP image** (`game-asset-image-generator`): hero, enemies, signature props, backgrounds, parallax layers, tileset sheets when art quality matters.
27
+ - **User-provided**: local/remote URLs the user supplies; still bind via `config.json`.
28
+ - **Procedural / Phaser Graphics / shapes**: collision debug, temporary stubs, repeated micro-detail, telegraph shapes that must stay code-driven.
29
+ - **Hybrid**: MCP base sprite + code tint/flash/outline for states; or tileset + prop kit overlays.
30
+
31
+ For premium hero, main background, and primary hazard family: do not finish with procedural-only unless a real MCP/user blocker is recorded.
32
+
33
+ ## Production Surfaces
34
+
35
+ A premium pass must touch every weak visible surface:
36
+
37
+ - Hero/player: authored silhouette, facing aligned with art brief, hurt/invuln/boost cues.
38
+ - Hazards/enemies: ≥3 distinct silhouettes when the genre has multiple threat types; telegraphs readable.
39
+ - Rewards/interactables: ≥2 forms; idle + collect states.
40
+ - World kit: Play / Near / Mid / Far / Motion matching `scene-profiles` profile; parallax ratios documented.
41
+ - Sprite fidelity: consistent pixel density; spritesheets measured before `load.spritesheet` (`engine-spritesheets.md`).
42
+ - Compose: camera model, depth sort, tint/overlay discipline (`compose-recipes.md`).
43
+ - VFX: event-driven only (`vfx-recipes.md`); pooled.
44
+ - UI/world cohesion: DOM HUD colors echo hazard/reward/safe signals—do not redesign HUD here beyond color token alignment; full HUD work is `game-ui`.
45
+ - Diagnostics: budget notes, screenshots, scorecard.
46
+
47
+ ## Technical Art Contract
48
+
49
+ Before broad implementation, write the brief from `technical-art.md`: hero vs support surfaces, texture/display/particle budgets, atlas plan, VFX caps, mobile first cuts.
50
+
51
+ ## Depth Layer Contract
52
+
53
+ Map `scene-profiles` layers to Phaser depth (example—adjust per game, keep gaps):
54
+
55
+ | Layer | Role | Typical depth |
56
+ | --- | --- | --- |
57
+ | Far | Background / sky | 0–100 |
58
+ | Mid | Stage / buildings | 100–300 |
59
+ | Play | Actors, hazards, rewards | 500–800 |
60
+ | Near | Foreground occluders | 900–1000 |
61
+ | Motion / VFX | Muzzle, impact, dashes | 1100–1200 |
62
+ | Screen FX | Flash/vignette containers | 2000+ |
63
+
64
+ Document the chosen map in `DepthLayers.ts`. Actors that need Y-sort stay within Play band.
65
+
66
+ ## State Feedback Without Fake AAA
67
+
68
+ Prefer, in order:
69
+
70
+ 1. Swap frame / anim / attachment sprite.
71
+ 2. Controlled tint / flash (short).
72
+ 3. Scale squash-stretch tied to gameplay events.
73
+ 4. Camera punch / hitstop (from `game-feel`, scaled for readability).
74
+ 5. Particles/trails last.
75
+
76
+ Never use permanent bloom-like overlays to hide missing art.
77
+
78
+ ## Wiring Rules
79
+
80
+ - Scene reads System state and spawns/updates view objects; Systems do not import Phaser GameObjects if avoidable.
81
+ - All runtime image URLs come from `config.json` / manifest—no scattered hardcoded CDN strings in multiple files.
82
+ - Scale only via Phaser Scale Manager (`engine-runtime.md`).
@@ -0,0 +1,90 @@
1
+ # Sprite Recipes (Phaser 2D)
2
+
3
+ Use before upgrading hero, hazard, reward, or world prop visuals. Recipes describe **readable silhouettes and production intent**, not full illustration briefs. Generation details stay in `../game-asset-image-generator/`.
4
+
5
+ ## Shared Rules
6
+
7
+ - One subject per asset key; facing must match gameplay (right-facing runners stay right-facing in art).
8
+ - Keep a **collision proxy** simpler than the art (rectangle/circle); art can overhang slightly if the hitbox stays fair.
9
+ - Family variants share a motif (helmet shape, horn, stripe) so players learn the cast.
10
+ - Pixel density: characters readable at mobile play size; do not upscale tiny icons into heroes.
11
+ - Prefer transparent Assets for actors; opaque Background for Far plates; Parallax layers with alpha for Mid/Near dressing.
12
+
13
+ ## Hero / Player
14
+
15
+ **Must have**
16
+
17
+ - Clear silhouette at thumbnail size.
18
+ - Readable front/facing (or top-down orientation for `topdown_map` / `board_table`).
19
+ - At least one state cue path: idle vs hurt vs power (frame, overlay, or tint—documented).
20
+
21
+ **Avoid**
22
+
23
+ - Symmetric blobs with no facing.
24
+ - Oversized weapon that hides the body.
25
+ - Relying on outline glow as the only identity.
26
+
27
+ **Upgrade path**
28
+
29
+ 1. Lock style from `game-art` (+ advanced style if requested).
30
+ 2. MCP generate `asset_player` (and optional `asset_player_hurt` / atlas frames).
31
+ 3. Wire anim keys; verify facing vs movement code.
32
+ 4. Add attach points later (dust, muzzle) without reskinning the whole hero.
33
+
34
+ ## Hazards / Enemies
35
+
36
+ **Must have**
37
+
38
+ - ≥3 variants when the design has multiple threat roles (blocker / chaser / ranged)—or document why the genre is single-threat.
39
+ - Telegraph: wind-up pose, color flash, or warning glyph **before** damage frames.
40
+ - Shape language distinct from rewards.
41
+
42
+ **Avoid**
43
+
44
+ - One square, three hues.
45
+ - Camouflage against Mid/Far that makes hits feel unfair.
46
+
47
+ ## Rewards / Interactables
48
+
49
+ **Must have**
50
+
51
+ - High contrast vs Play floor.
52
+ - Idle motion subtle (bob/pulse ≤ subtle); collect burst is event FX.
53
+ - Two forms when economy has tiers (coin vs gem, weapon vs heal).
54
+
55
+ **Avoid**
56
+
57
+ - Same shape as hazards.
58
+ - Permanent screen-covering sparkle.
59
+
60
+ ## World Prop Kit
61
+
62
+ Build a small kit, not one-off decorations:
63
+
64
+ | Kit piece | Use |
65
+ | --- | --- |
66
+ | Edge marker | Lane/arena boundary readability |
67
+ | Mid module | Repeatable building/cliff/hedge segment |
68
+ | Far plate | Single strong skyline or stage back |
69
+ | Near fringe | Grass, railing, table lip—occludes lightly |
70
+ | Hazard stripe / safe glyph | Gameplay-readable floor language |
71
+
72
+ Repeat with tint variants; do not MCP-generate 50 unique bushes.
73
+
74
+ ## Tilesets
75
+
76
+ When using tilemaps (`engine-tilemaps.md`):
77
+
78
+ - One visual language per biome.
79
+ - Collision layer ≠ decorated layer.
80
+ - Autotile/seam care: avoid noisy tiles that hide pickups.
81
+
82
+ ## Backgrounds & Parallax
83
+
84
+ - Far: full-bleed Background, no characters/UI in the plate.
85
+ - Mid/Near parallax: fewer focal subjects; leave Play cone clean per `scene-profiles`.
86
+ - Scroll factors: Far `0.1–0.3`, Mid `0.4–0.7`, Near `1.0–1.15` (tune per game; document).
87
+
88
+ ## Checklist Hook
89
+
90
+ Before scoring Sprite fidelity / Hero / Obstacles / Rewards, run `checklists/sprite-quality.md`.
@@ -0,0 +1,67 @@
1
+ # Technical Art For Phaser 2D Games
2
+
3
+ Use before premium/showcase graphics work, atlas/texture strategy, particle/VFX systems, or any visual pass that could affect mobile performance.
4
+
5
+ Technical art bridges art direction and real-time constraints. Goal: readable authored detail that survives active play on mid-tier phones—not maximum particle counts.
6
+
7
+ ## Technical Art Brief
8
+
9
+ Before implementation, write:
10
+
11
+ - Art direction in renderable terms: silhouettes, layers, compose, VFX language, camera.
12
+ - Hero surfaces vs support surfaces.
13
+ - Texture/atlas plan: max page size, shared atlases vs discrete images.
14
+ - VFX caps: max concurrent emitters, particle lifespans, pool sizes.
15
+ - Display list budget target (rough): dynamic objects in Play band.
16
+ - Asset strategy per surface: mcp-image / user / procedural / hybrid.
17
+ - Mobile first cuts: what to disable first if frame time slips (screen FX → Near props → Mid parallax detail → particle rate).
18
+
19
+ ## Budget Starting Points
20
+
21
+ Starting contracts—not universal limits. Measure on device; document overruns.
22
+
23
+ | Metric (worst active-play) | Mobile portrait target | Notes |
24
+ | --- | --- | --- |
25
+ | Unique textures (approx.) | ≤ 40–60 | Prefer atlases; huge unique BGs count heavy |
26
+ | Max single texture edge | ≤ 2048 | Prefer 1024–2048 backgrounds; split if needed |
27
+ | Concurrent particle emitters | ≤ 8 | Pool; hard-cap on spam events |
28
+ | Particles alive (sum) | ≤ 300–500 | Lower on low-end; kill on scene sleep |
29
+ | Dynamic GameObjects (Play) | keep pooled | No per-frame `new` for bullets/FX |
30
+ | Camera shake stacking | 1 active profile | Don’t stack 3 shakes |
31
+ | DPR / resolution | Scale Manager FIT/SHOW_ALL | Never CSS-scale canvas |
32
+
33
+ Also follow `../phaser-2d-game/references/engine-performance.md` (pooling, culling, update budgets).
34
+
35
+ ## Texture And Atlas Discipline
36
+
37
+ - Measure spritesheet frame size before loader config (`engine-spritesheets.md`).
38
+ - Don’t pack unrelated PPI into one sheet if it forces wasteful padding—but do atlas frequent FX/UI icons when possible.
39
+ - Prefer WebP/PNG with real alpha; avoid huge uncompressed photo BGs when a painted 1080×1920 plate suffices.
40
+ - Destroy/unload textures on scene shutdown when switching biomes with large unique plates.
41
+
42
+ ## Particles And FX Cost
43
+
44
+ - Event-driven only; no permanent full-screen ambient snow unless genre-critical and budgeted.
45
+ - Pre-create emitters; `explode`/`quantity` bursts over long-running drip when possible.
46
+ - Additive blending sparingly on mobile.
47
+ - Tie FX lifetime to gameplay feedback windows (100–400ms for hits; longer only for celebrations).
48
+
49
+ ## Compose Cost
50
+
51
+ - Parallax layers are textures too—3 strong layers beat 8 weak ones.
52
+ - Full-screen overlay Images are cheap vs thousands of nodes; don’t simulate vignette with 200 sprites.
53
+ - Lights (Phaser Lights Manager) are optional and costly—default to tint/overlay recipes first.
54
+
55
+ ## Diagnostics To Report
56
+
57
+ After a graphics pass, report:
58
+
59
+ - Which surfaces used MCP vs procedural.
60
+ - Texture strategy (atlases / largest BG size).
61
+ - Particle/emitter caps chosen.
62
+ - Any deliberate budget overrun + why.
63
+ - Mobile screenshot path(s).
64
+
65
+ ## Checklist Hook
66
+
67
+ Run `checklists/technical-art-quality.md` and `checklists/performance-safe-visual-detail.md` before claiming Performance evidence ≥ 2.
@@ -0,0 +1,67 @@
1
+ # VFX Recipes (Phaser 2D)
2
+
3
+ Event-driven visual effects that clarify game state. Load only after sprites and compose are readable. Core rule still applies: FX never substitutes for authored art.
4
+
5
+ Cross-link: hand-feel timing principles in `../game-designer/references/game-feel.md`; UI motion in `../game-art/references/animation-specs.md`. This file is **in-world / camera FX** for Phaser.
6
+
7
+ ## Principles
8
+
9
+ 1. **One trigger → one readable beat.** Prefer a single strong burst over layered noise.
10
+ 2. **Severity scale.** Pickup < hit < kill < fail/clear. Strongest events must still leave the next decision visible.
11
+ 3. **Pool everything.** No allocating emitters per bullet in `update`.
12
+ 4. **Sync with audio when present.** Same frame as SFX when `game-audio` is wired.
13
+ 5. **No ambient filler** to hide empty Far layers.
14
+
15
+ ## Recipe Table
16
+
17
+ | Event | Primary FX | Duration | Notes |
18
+ | --- | --- | --- | --- |
19
+ | Light confirm (UI-adjacent in world) | Small scale pop + brief spark | 100–200ms | Keep off HUD DOM |
20
+ | Pickup / coin | Radial burst (8–16 particles) + optional arc to HUD anchor | 200–350ms | High contrast; don’t blanket Play |
21
+ | Hit (player) | White/red flash on sprite + tiny camera shake | 80–120ms | Invuln blink separate from flash |
22
+ | Hit (enemy) | Impact ring or directional sparks + hitstop 1–2 frames | 100–180ms | Direction from attack vector |
23
+ | Block / parry | Sharp spark + short freeze | 80–150ms | Distinct from hurt |
24
+ | Dash / boost | Motion streaks or afterimage (2–3 ghosts) | During dash | Cap ghosts; fade quick |
25
+ | Death / explode | Larger burst + brief screen flash ≤30% alpha | 300–500ms | Then remove clutter |
26
+ | Spawn | Poof / ring expand | 200–300ms | Telegraph if hostile |
27
+ | Charge telegraph | Pulse outline / growing warning glyph | Wind-up length | Must be readable before damage |
28
+ | Zone warning | Edge vignette or floor decal pulse | While zone active | Center Play stays clear |
29
+ | Combo / milestone | Short celebratory burst + optional zoom punch | 250–400ms | Don’t stack with death FX |
30
+ | Fail / soft lock | Gray flash or desat pulse | 200ms | Not seizure-level strobe |
31
+
32
+ ## Implementation Notes (Phaser)
33
+
34
+ - Prefer `this.add.particles` with preconfigured `ParticleEmitter` reused via pools, or a small `VfxSystem.burst(kind, x, y, dir?)` API.
35
+ - Sprite flash: tween `setTintFill` / short `setAlpha` blink; clear tint on complete.
36
+ - Afterimages: spawn faded copies at depth just below hero; auto-destroy.
37
+ - Screen flash: camera-fixed Rectangle or Image at Screen FX depth; fade out; ignore input blocking.
38
+ - Respect `technical-art.md` emitter and particle caps; on spam (machine-gun hits), coalesce to rate-limited bursts.
39
+
40
+ ## Anti-Patterns
41
+
42
+ - Permanent floating dust as “atmosphere” when Far art is missing.
43
+ - Full-screen rainbow particles on every tap.
44
+ - Shake so strong platforms/hazards can’t be aimed at.
45
+ - Additive glow soup that blows out silhouette edges.
46
+ - FX that spawn without a gameplay event (pure decoration loops).
47
+
48
+ ## Severity Ladder (default)
49
+
50
+ ```text
51
+ 0 none
52
+ 1 sprite-only (tint/scale)
53
+ 2 local particles
54
+ 3 local particles + camera punch
55
+ 4 screen flash + particles + punch
56
+ ```
57
+
58
+ Map events to ≤ one ladder step above the previous severity so players learn intensity.
59
+
60
+ ## Checklist
61
+
62
+ Before scoring VFX/motion ≥ 2:
63
+
64
+ - [ ] Every FX kind maps to a gameplay event
65
+ - [ ] Caps documented in technical art brief
66
+ - [ ] Mobile screenshot shows FX without hiding hazards
67
+ - [ ] No ambient-only particle layer required for “premium”
@@ -0,0 +1,129 @@
1
+ # Visual Scorecard (Phaser 2D)
2
+
3
+ Score active-play screenshots, not idle title screens or isolated asset sheets. Prefer **mobile portrait** screenshots; add desktop when the project targets it.
4
+
5
+ Scores are self-assessed against the anchors below, so they drift optimistic. For premium/showcase claims: cite Measured Evidence where possible, run the Fresh-Eyes Review, and compare against packaged anchors before finalizing.
6
+
7
+ ## Calibration Anchors
8
+
9
+ Reference screenshots for score calibration are packaged in `phaser-2d-graphics-builder/assets/scorecard-anchors/`:
10
+
11
+ - `scene-1.jpeg` — score ~1: geometric/simple hero and props on a flat sparse stage, utility HUD.
12
+ - `scene-2.jpeg` — score ~2: authored sprites and scene art, readable state HUD, intentional composition; still short of dense active-play showcase.
13
+ - `scene-3.jpg` — score ~2.5–3: dense layered authored world in active play, varied character family, readable state feedback, cohesive HUD.
14
+
15
+ Before scoring World/environment, Hero/player, Sprite fidelity, Compose, or VFX, **view the anchors** and compare: if your screenshot reads closer to `scene-1.jpeg` than `scene-3.jpg` for that surface, the category is at most a 1–2 regardless of how much code was written.
16
+
17
+ Do not score against title screens, collages, or marketing montages.
18
+
19
+ ## Scoring Scale
20
+
21
+ - 0: Placeholder. Flat colors, missing art, unreadable state, debug UI, or no evidence.
22
+ - 1: Basic styled. Playable and themed, but obvious prototype assets, flat composition, or generic UI.
23
+ - 2: Premium stylized. Authored silhouettes, layered world, readable state, cohesive UI/world, measured performance.
24
+ - 3: Showcase. Strong art direction, memorable hero and world, dense authored detail, excellent readability, polished VFX, diagnostics.
25
+
26
+ ## Categories
27
+
28
+ 1. Art direction.
29
+ - 0: No clear theme.
30
+ - 1: Theme is mostly a palette swap.
31
+ - 2: Theme affects sprites, world layers, UI, and feedback.
32
+ - 3: Distinct identity on every production surface.
33
+ 2. Hero/player.
34
+ - 0: Colored rectangle / emoji / default shape.
35
+ - 1: Basic sprite with glow or simple tint.
36
+ - 2: Authored silhouette, clear facing, state cues (hurt/boost).
37
+ - 3: Memorable sprite language with expressive feedback.
38
+ 3. Obstacles/enemies.
39
+ - 0: Same box as everything else.
40
+ - 1: Recolored repeated silhouette.
41
+ - 2: At least three readable variants with telegraphs.
42
+ - 3: Varied family with anticipation and gameplay clarity.
43
+ 4. Rewards/interactables.
44
+ - 0: Plain circle/token.
45
+ - 1: Repeated icon with simple pulse.
46
+ - 2: Two authored forms with idle/collect states.
47
+ - 3: Desirable, animated, clearly valued in motion.
48
+ 5. World/environment.
49
+ - 0: Flat fill or empty stage.
50
+ - 1: Single background image, sparse props.
51
+ - 2: Layered Play/Near/Mid/Far matching `scene-profiles` profile.
52
+ - 3: Dense authored world that still preserves play readability.
53
+ 6. Sprite fidelity / atlas.
54
+ - 0: Procedural shapes only.
55
+ - 1: Mixed placeholder + one real image.
56
+ - 2: Key surfaces from MCP/user art; consistent PPI and facing; sheets measured before load.
57
+ - 3: Cohesive atlas/mip strategy, clean cutouts, no stretched mush.
58
+ 7. Compose (camera / parallax / tint).
59
+ - 0: No depth; camera fights the player.
60
+ - 1: Parallax or tint used as the whole style.
61
+ - 2: Intentional camera, parallax ratios, depth sort, readable overlays.
62
+ - 3: Cinematic but disciplined compose; never hides the next decision.
63
+ 8. VFX/motion.
64
+ - 0: None or random ambient particles.
65
+ - 1: Generic particles/trails.
66
+ - 2: Event-driven FX for hit, pickup, fail, combo, spawn, dash.
67
+ - 3: High-impact FX that clarify state and stay within budget.
68
+ 9. UI/HUD.
69
+ - 0: Debug text or missing UI.
70
+ - 1: Generic stat cards over the canvas.
71
+ - 2: Genre HUD via DOM overlay; colors echo world signals.
72
+ - 3: Cohesive hierarchy and polished transitions without covering Play.
73
+ 10. Performance evidence.
74
+ - 0: No notes after visual changes.
75
+ - 1: Informal "seems fine".
76
+ - 2: Texture/display/particle budget notes + mobile screenshot.
77
+ - 3: Before/after or budget-aware notes, pooling, atlas strategy.
78
+
79
+ ## Thresholds
80
+
81
+ Premium:
82
+
83
+ - Every category at least 2.
84
+ - Average at least 2.3.
85
+ - Mobile active-play screenshot when portrait mobile is in scope.
86
+ - Technical-art / budget notes after graphics changes.
87
+
88
+ Showcase:
89
+
90
+ - At least six categories score 3.
91
+ - No category below 2.
92
+ - Average at least 2.7.
93
+ - Performance evidence includes before/after or budget-aware notes.
94
+
95
+ ## Automatic Failures
96
+
97
+ Any of these prevents a premium/showcase claim:
98
+
99
+ - Active screenshot is placeholder-dominant (SVG/rect/emoji as hero or main threats).
100
+ - Main world is a flat fill with no authored Far/Mid layers when the profile requires them.
101
+ - Hero is mostly a shape plus glow/particles.
102
+ - Obstacles or rewards are one repeated silhouette recolored.
103
+ - Ambient particles or full-screen flash are the primary “art”.
104
+ - Compose (shake/vignette/parallax) hides the next gameplay decision.
105
+ - Dense formal HUD drawn in Canvas instead of DOM without an explicit project requirement.
106
+ - No asset sourcing ledger for premium hero/background surfaces.
107
+ - Claimed premium while required references were skipped.
108
+
109
+ ## Fresh-Eyes Review
110
+
111
+ Before finalizing premium/showcase:
112
+
113
+ 1. Look only at the latest active-play screenshot for 10 seconds.
114
+ 2. Name the weakest two categories without reading the scorecard you just filled.
115
+ 3. If either is below 2, lower scores and keep working—or report blockers.
116
+ 4. Confirm Automatic Failures are absent.
117
+
118
+ ## Measured Evidence
119
+
120
+ Prefer citing:
121
+
122
+ - `public/config.json` keys bound for hero/bg/parallax.
123
+ - Screenshot paths (mobile/desktop).
124
+ - Texture sizes / atlas notes / particle max counts from the technical art brief.
125
+ - Phaser Scale mode confirmation (no CSS canvas scale).
126
+
127
+ ## Output
128
+
129
+ When claiming premium/showcase, paste a filled table: category, score 0–3, one-line evidence, measured evidence if any. Include average and list Automatic Failures remaining (or “none”).
@@ -25,8 +25,12 @@ description: 用 Three.js、React Three Fiber、TypeScript 与 Vite 实现 3D
25
25
  3. **纯 Three 模块可单测**
26
26
  - `game/three/*` 禁止 import React;场景构建与数学助手可独立验证。
27
27
 
28
- 4. **资产键稳定**
29
- - 全部游戏代码通过 `manifest` / `public/config.json` 引用资产,不在业务代码中硬编码 glTF / 贴图路径。
28
+ 4. **资产键稳定 + Canonical 语义**
29
+ - 全部游戏代码通过 `manifest` / `public/config.json` / canonical 包引用资产,不在业务代码中硬编码 glTF / 贴图路径。
30
+ - **3D 网格必须来自** `assets/canonical/<id>/`(或 `evomeme_asset_sync_to_three` 同步到 `public/assets/canonical/<id>/`)。
31
+ - 加载后**必须**按 `asset.json` 应用朝向/尺度(见 `references/engine-asset-pipeline.md`);禁止在实体里硬编码 `rotation.y += Math.PI`。
32
+ - 对齐与预览默认走技能 `game-asset-align` + MCP `evomeme_stage_open`。
33
+ - **Blender 建模或修改后必须先打开 Stage,由用户查看并确认当前 Three.js 版本后才能导入。** `alignment.ready=true` 或 set_orientation 不代替用户确认;不得手工复制或替用户点击绕过门禁。
30
34
 
31
35
  ## 实现指导
32
36