evomeme 0.1.9 → 0.1.10
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/dist/canvas-public/app.js +509 -5999
- package/dist/canvas-public/assets/presets/catalog.json +47 -0
- package/dist/canvas-public/assets/presets/tiles/A_01_CaoDi.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_02_ShaMo.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_03_TianKong.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_04_ShuiBo.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_05_HaiMian.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_06_MuDiBan.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_07_ShiZhuan.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_08_AnRongYan.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_09_QingTaiShi.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_10_ShenHai.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_11_HuiYanShi.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_12_HongTu.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_13_GengDi.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_14_HuoShanYan.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_15_NiTu.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_16_HuangSha.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_17_CongLin.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_18_ZiYanShi.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_19_MoGuTu.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_20_HuaDian.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_21_HaiLang.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_22_GanTu.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_23_QingTaiShiBan.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_24_XingKong.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_25_MoFaFuWen.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_26_ShiTuYeDi.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_27_LanZhuan.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_28_HongZhuan.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_29_YueQiu.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_30_JinShuGe.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_31_JinShuJingGai.png +0 -0
- package/dist/canvas-public/assets/presets/tiles/A_32_ShuZiChuang.png +0 -0
- package/dist/canvas-public/canvas/actions.js +143 -0
- package/dist/canvas-public/canvas/camera.js +28 -0
- package/dist/canvas-public/canvas/chrome.js +13 -0
- package/dist/canvas-public/canvas/data.js +123 -0
- package/dist/canvas-public/canvas/dependencies.js +19 -0
- package/dist/canvas-public/canvas/interactions.js +544 -0
- package/dist/canvas-public/canvas/panel-resize.js +5 -0
- package/dist/canvas-public/canvas/renderer.js +297 -0
- package/dist/canvas-public/canvas/selection.js +62 -0
- package/dist/canvas-public/canvas/serialization.js +118 -0
- package/dist/canvas-public/canvas/sync.js +202 -0
- package/dist/canvas-public/core/api.js +27 -0
- package/dist/canvas-public/core/feature-registry.js +29 -0
- package/dist/canvas-public/core/feature-state.js +228 -0
- package/dist/canvas-public/core/layout.js +133 -0
- package/dist/canvas-public/core/operations.js +38 -0
- package/dist/canvas-public/core/project.js +203 -0
- package/dist/canvas-public/core/state.js +27 -0
- package/dist/canvas-public/dialogs/context-menu.js +118 -0
- package/dist/canvas-public/elements/base.js +100 -0
- package/dist/canvas-public/elements/connections.js +105 -0
- package/dist/canvas-public/elements/drag.js +53 -0
- package/dist/canvas-public/elements/image.js +259 -0
- package/dist/canvas-public/elements/loading-recovery.js +5 -0
- package/dist/canvas-public/elements/loading.js +21 -0
- package/dist/canvas-public/elements/map.js +64 -0
- package/dist/canvas-public/elements/registry.js +58 -0
- package/dist/canvas-public/elements/replacement.js +78 -0
- package/dist/canvas-public/elements/resize.js +210 -0
- package/dist/canvas-public/elements/task-pipeline.js +234 -0
- package/dist/canvas-public/elements/types.js +21 -0
- package/dist/canvas-public/elements/ui.js +14 -0
- package/dist/canvas-public/elements/video.js +64 -0
- package/dist/canvas-public/features/assets/local-assets.js +72 -0
- package/dist/canvas-public/features/assets/official-assets.js +538 -0
- package/dist/canvas-public/features/editing/canvas-size.js +532 -0
- package/dist/canvas-public/features/editing/color-key.js +469 -0
- package/dist/canvas-public/features/editing/cutout.js +20 -0
- package/dist/canvas-public/features/editing/interactive-image-editing.js +981 -0
- package/dist/canvas-public/features/editing/layer-decomposition.js +44 -0
- package/dist/canvas-public/features/editing/manual-split.js +114 -0
- package/dist/canvas-public/features/editing/perfect-pixel.js +336 -0
- package/dist/canvas-public/features/editing/scroll-preview.js +129 -0
- package/dist/canvas-public/features/editing/scroll-seam-elimination.js +71 -0
- package/dist/canvas-public/features/editing/seam-elimination.js +46 -0
- package/dist/canvas-public/features/editing/smart-split.js +48 -0
- package/dist/canvas-public/features/editing/source-preview.js +43 -0
- package/dist/canvas-public/features/editing/video-cycle.js +49 -0
- package/dist/canvas-public/features/editing/video-frames.js +35 -0
- package/dist/canvas-public/features/frame-editor/frame-editing.js +755 -0
- package/dist/canvas-public/features/frame-editor/frame-model.js +63 -0
- package/dist/canvas-public/features/frame-editor/playback.js +83 -0
- package/dist/canvas-public/features/frame-editor/preview.js +149 -0
- package/dist/canvas-public/features/generation/animation.js +272 -0
- package/dist/canvas-public/features/generation/asset-batch.js +102 -0
- package/dist/canvas-public/features/generation/direction.js +163 -0
- package/dist/canvas-public/features/generation/fields.js +73 -0
- package/dist/canvas-public/features/generation/game-ui.js +64 -0
- package/dist/canvas-public/features/generation/image.js +83 -0
- package/dist/canvas-public/features/generation/scroll-image.js +157 -0
- package/dist/canvas-public/features/generation/seamless-tile.js +52 -0
- package/dist/canvas-public/features/generation/tile-transition-atlas.js +79 -0
- package/dist/canvas-public/features/generation/video.js +105 -0
- package/dist/canvas-public/features/map/creation.js +73 -0
- package/dist/canvas-public/features/map/tile-map-editor.js +2518 -0
- package/dist/canvas-public/features/registry.js +59 -0
- package/dist/canvas-public/index.html +84 -259
- package/dist/canvas-public/inspector/controls.js +49 -0
- package/dist/canvas-public/inspector/frame-preview.js +11 -0
- package/dist/canvas-public/inspector/inspector.js +190 -0
- package/dist/canvas-public/inspector/media-inspector.js +517 -0
- package/dist/canvas-public/inspector/media-preview.js +56 -0
- package/dist/canvas-public/inspector/number-stepper.js +96 -0
- package/dist/canvas-public/inspector/resize.js +88 -0
- package/dist/canvas-public/inspector/scroll-preview.js +11 -0
- package/dist/canvas-public/inspector/ui-inspector.js +14 -0
- package/dist/canvas-public/language/en-US.js +1059 -0
- package/dist/canvas-public/language/index.js +79 -0
- package/dist/canvas-public/language/zh-CN.js +1059 -0
- package/dist/canvas-public/map/export.js +9 -0
- package/dist/canvas-public/map/inspector.js +8 -0
- package/dist/canvas-public/map/model.js +409 -0
- package/dist/canvas-public/map/tile-map-editor.js +2 -0
- package/dist/canvas-public/media/metadata.js +183 -0
- package/dist/canvas-public/media/support.js +183 -0
- package/dist/canvas-public/styles/base.css +49 -0
- package/dist/canvas-public/styles/canvas.css +127 -0
- package/dist/canvas-public/styles/controls.css +203 -0
- package/dist/canvas-public/styles/dialogs.css +521 -0
- package/dist/canvas-public/styles/feature-form.css +409 -0
- package/dist/canvas-public/styles/inspector.css +441 -0
- package/dist/canvas-public/styles/layout.css +344 -0
- package/dist/canvas-public/styles/map.css +11 -0
- package/dist/canvas-public/styles/nodes.css +636 -0
- package/dist/canvas-public/styles.css +9 -2247
- package/dist/canvas-public/ui/controls.js +222 -0
- package/dist/canvas-public/ui/elements.js +9 -0
- package/dist/canvas-public/ui/feature-controller.js +296 -0
- package/dist/canvas-public/ui/feature-form.js +401 -0
- package/dist/canvas-public/ui/settings.js +83 -0
- package/dist/canvas-public/ui/toolbar.js +55 -0
- package/dist/canvas-public/vendor/pixi-tilemap.js +126 -0
- package/dist/canvas-public/vendor/pixi.min.js +2340 -0
- package/dist/canvas-public/workers/color-key-worker.js +289 -0
- package/dist/canvas-public/workers/perfect-pixel-worker.js +510 -0
- package/dist/index.js +42236 -13382
- package/dist/skills/en-US/evomeme-canvas/SKILL.md +52 -0
- package/dist/skills/en-US/evomeme-canvas/agents/openai.yaml +7 -0
- package/dist/skills/en-US/evomeme-cloud-fs/SKILL.md +176 -0
- package/dist/skills/en-US/evomeme-cloud-fs/agents/openai.yaml +7 -0
- package/dist/skills/en-US/evomeme-cover/SKILL.md +132 -0
- package/dist/skills/en-US/evomeme-cover/agents/openai.yaml +7 -0
- package/dist/skills/en-US/evomeme-game-maker/SKILL.md +288 -0
- package/dist/skills/en-US/evomeme-game-maker/agents/openai.yaml +4 -0
- package/dist/skills/en-US/evomeme-login/SKILL.md +92 -0
- package/dist/skills/en-US/evomeme-login/agents/openai.yaml +7 -0
- package/dist/skills/en-US/evomeme-native-bridge-sdk/SKILL.md +286 -0
- package/dist/skills/en-US/evomeme-native-bridge-sdk/agents/openai.yaml +8 -0
- package/dist/skills/en-US/evomeme-tos-upload/SKILL.md +47 -0
- package/dist/skills/en-US/evomeme-tos-upload/agents/openai.yaml +5 -0
- package/dist/skills/en-US/evomeme-ui/SKILL.md +123 -0
- package/dist/skills/en-US/evomeme-ui/agents/openai.yaml +4 -0
- package/dist/skills/en-US/evomeme-ui/references/host-layout.md +69 -0
- package/dist/skills/en-US/game-art/SKILL.md +121 -0
- package/dist/skills/en-US/game-art/agents/openai.yaml +8 -0
- package/dist/skills/en-US/game-asset-align/SKILL.md +45 -0
- package/dist/skills/en-US/game-asset-align/agents/openai.yaml +8 -0
- package/dist/skills/en-US/game-asset-align/references/alignment-contract.md +61 -0
- package/dist/skills/en-US/game-asset-align/references/blender-scene-pipeline.md +45 -0
- package/dist/skills/en-US/game-asset-align/references/canonical-package.md +26 -0
- package/dist/skills/en-US/game-asset-align/references/engine-capabilities.md +14 -0
- package/dist/skills/en-US/game-asset-align/references/lightweight-review.md +32 -0
- package/dist/skills/en-US/game-asset-align/references/repair-policy.md +30 -0
- package/dist/skills/en-US/game-asset-align/references/tool-contract.md +39 -0
- package/dist/skills/en-US/game-asset-align/references/visual-review.md +26 -0
- package/dist/skills/en-US/game-asset-image-generator/SKILL.md +104 -0
- package/dist/skills/en-US/game-asset-image-generator/agents/openai.yaml +7 -0
- package/dist/skills/en-US/game-asset-image-generator/references/background.md +32 -0
- package/dist/skills/en-US/game-asset-image-generator/references/static-game-assets.md +38 -0
- package/dist/skills/en-US/game-audio/SKILL.md +82 -0
- package/dist/skills/en-US/game-audio/agents/openai.yaml +4 -0
- package/dist/skills/en-US/game-demo/SKILL.md +103 -0
- package/dist/skills/en-US/game-demo/agents/openai.yaml +7 -0
- package/dist/skills/en-US/game-maker/SKILL.md +111 -0
- package/dist/skills/en-US/game-maker/agents/openai.yaml +4 -0
- package/dist/skills/en-US/game-test/SKILL.md +58 -0
- package/dist/skills/en-US/game-test/agents/openai.yaml +7 -0
- package/dist/skills/en-US/game-ui/SKILL.md +177 -0
- package/dist/skills/en-US/game-ui/agents/openai.yaml +4 -0
- package/dist/skills/en-US/godot-3d-game/SKILL.md +39 -0
- package/dist/skills/en-US/godot-3d-game/agents/openai.yaml +8 -0
- package/dist/skills/en-US/godot-3d-game/references/alignment-gates.md +26 -0
- package/dist/skills/en-US/godot-3d-game/references/appearance-alignment.md +52 -0
- package/dist/skills/en-US/godot-3d-game/references/build-and-qa.md +22 -0
- package/dist/skills/en-US/godot-3d-game/references/canonical-asset-runtime.md +27 -0
- package/dist/skills/en-US/godot-3d-game/references/import-and-wrapper-scenes.md +20 -0
- package/dist/skills/en-US/godot-3d-game/references/physics-colliders.md +13 -0
- package/dist/skills/en-US/godot-3d-game/references/project-structure.md +22 -0
- package/dist/skills/en-US/godot-3d-game/references/skeleton-animation.md +16 -0
- package/dist/skills/en-US/phaser-2d-game/SKILL.md +127 -0
- package/dist/skills/en-US/phaser-2d-game/agents/openai.yaml +8 -0
- package/dist/skills/en-US/phaser-2d-game/references/engine-performance.md +64 -0
- package/dist/skills/en-US/phaser-2d-game/references/engine-physics.md +139 -0
- package/dist/skills/en-US/phaser-2d-game/references/engine-runtime.md +129 -0
- package/dist/skills/en-US/phaser-2d-game/references/engine-spritesheets.md +99 -0
- package/dist/skills/en-US/phaser-2d-game/references/engine-tilemaps.md +80 -0
- package/dist/skills/en-US/phaser-2d-game/references/file-structure.md +94 -0
- package/dist/skills/en-US/phaser-2d-graphics-builder/SKILL.md +68 -0
- package/dist/skills/en-US/phaser-2d-graphics-builder/agents/openai.yaml +7 -0
- package/dist/skills/en-US/threejs-3d-game/SKILL.md +117 -0
- package/dist/skills/en-US/threejs-3d-game/agents/openai.yaml +7 -0
- package/dist/skills/en-US/threejs-3d-game/references/engine-asset-pipeline.md +153 -0
- package/dist/skills/en-US/threejs-3d-game/references/engine-audio.md +70 -0
- package/dist/skills/en-US/threejs-3d-game/references/engine-input-camera.md +84 -0
- package/dist/skills/en-US/threejs-3d-game/references/engine-performance.md +96 -0
- package/dist/skills/en-US/threejs-3d-game/references/engine-physics.md +142 -0
- package/dist/skills/en-US/threejs-3d-game/references/engine-runtime.md +199 -0
- package/dist/skills/en-US/threejs-3d-game/references/file-structure.md +353 -0
- package/dist/skills/en-US/threejs-aaa-graphics-builder/SKILL.md +62 -0
- package/dist/skills/en-US/threejs-aaa-graphics-builder/agents/openai.yaml +7 -0
- package/{skills → dist/skills/zh-CN}/evomeme-cloud-fs/SKILL.md +4 -4
- package/{skills → dist/skills/zh-CN}/evomeme-cover/SKILL.md +1 -1
- package/{skills → dist/skills/zh-CN}/evomeme-game-maker/SKILL.md +91 -88
- package/{skills → dist/skills/zh-CN}/evomeme-tos-upload/SKILL.md +6 -5
- package/dist/skills/zh-CN/evomeme-ui/SKILL.md +123 -0
- package/dist/skills/zh-CN/evomeme-ui/agents/openai.yaml +4 -0
- package/dist/skills/zh-CN/evomeme-ui/references/host-layout.md +69 -0
- package/dist/skills/zh-CN/game-asset-align/SKILL.md +45 -0
- package/dist/skills/zh-CN/game-asset-align/agents/openai.yaml +8 -0
- package/dist/skills/zh-CN/game-asset-align/references/alignment-contract.md +61 -0
- package/dist/skills/zh-CN/game-asset-align/references/blender-scene-pipeline.md +45 -0
- package/dist/skills/zh-CN/game-asset-align/references/canonical-package.md +26 -0
- package/dist/skills/zh-CN/game-asset-align/references/engine-capabilities.md +14 -0
- package/dist/skills/zh-CN/game-asset-align/references/lightweight-review.md +32 -0
- package/dist/skills/zh-CN/game-asset-align/references/repair-policy.md +30 -0
- package/dist/skills/zh-CN/game-asset-align/references/tool-contract.md +39 -0
- package/dist/skills/zh-CN/game-asset-align/references/visual-review.md +26 -0
- package/{skills → dist/skills/zh-CN}/game-asset-image-generator/SKILL.md +1 -1
- package/dist/skills/zh-CN/game-audio/references/bgm-cdn.md +127 -0
- package/dist/skills/zh-CN/game-audio/references/sfx-cdn.md +77 -0
- package/dist/skills/zh-CN/game-test/references/checklists/playtest-qa.md +12 -0
- package/{skills → dist/skills/zh-CN}/game-ui/SKILL.md +9 -1
- package/dist/skills/zh-CN/game-ui/references/checklists/game-ui-quality.md +14 -0
- package/dist/skills/zh-CN/game-ui/references/checklists/hud-readability.md +12 -0
- package/dist/skills/zh-CN/game-ui/references/checklists/mobile-input.md +12 -0
- package/dist/skills/zh-CN/game-ui/references/checklists/responsive-ui-fit.md +12 -0
- package/dist/skills/zh-CN/game-ui/references/ui-patterns.md +140 -0
- package/dist/skills/zh-CN/game-ui/references/ui-prompt-templates.md +63 -0
- package/dist/skills/zh-CN/godot-3d-game/SKILL.md +39 -0
- package/dist/skills/zh-CN/godot-3d-game/agents/openai.yaml +8 -0
- package/dist/skills/zh-CN/godot-3d-game/references/alignment-gates.md +26 -0
- package/dist/skills/zh-CN/godot-3d-game/references/appearance-alignment.md +52 -0
- package/dist/skills/zh-CN/godot-3d-game/references/build-and-qa.md +22 -0
- package/dist/skills/zh-CN/godot-3d-game/references/canonical-asset-runtime.md +27 -0
- package/dist/skills/zh-CN/godot-3d-game/references/import-and-wrapper-scenes.md +20 -0
- package/dist/skills/zh-CN/godot-3d-game/references/physics-colliders.md +13 -0
- package/dist/skills/zh-CN/godot-3d-game/references/project-structure.md +22 -0
- package/dist/skills/zh-CN/godot-3d-game/references/skeleton-animation.md +16 -0
- package/dist/skills/zh-CN/phaser-2d-graphics-builder/assets/scorecard-anchors/scene-1.jpeg +0 -0
- package/dist/skills/zh-CN/phaser-2d-graphics-builder/assets/scorecard-anchors/scene-2.jpeg +0 -0
- package/dist/skills/zh-CN/phaser-2d-graphics-builder/assets/scorecard-anchors/scene-3.jpg +0 -0
- package/dist/skills/zh-CN/phaser-2d-graphics-builder/references/checklists/compose-quality.md +10 -0
- package/dist/skills/zh-CN/phaser-2d-graphics-builder/references/checklists/performance-safe-visual-detail.md +9 -0
- package/dist/skills/zh-CN/phaser-2d-graphics-builder/references/checklists/premium-game-quality-gate.md +15 -0
- package/dist/skills/zh-CN/phaser-2d-graphics-builder/references/checklists/sprite-quality.md +10 -0
- package/dist/skills/zh-CN/phaser-2d-graphics-builder/references/checklists/technical-art-quality.md +9 -0
- package/dist/skills/zh-CN/phaser-2d-graphics-builder/references/checklists/visual-scorecard.md +9 -0
- package/dist/skills/zh-CN/phaser-2d-graphics-builder/references/compose-recipes.md +71 -0
- package/dist/skills/zh-CN/phaser-2d-graphics-builder/references/graphics-prompt-templates.md +33 -0
- package/dist/skills/zh-CN/phaser-2d-graphics-builder/references/implementation-blueprint.md +82 -0
- package/dist/skills/zh-CN/phaser-2d-graphics-builder/references/sprite-recipes.md +90 -0
- package/dist/skills/zh-CN/phaser-2d-graphics-builder/references/technical-art.md +67 -0
- package/dist/skills/zh-CN/phaser-2d-graphics-builder/references/vfx-recipes.md +67 -0
- package/dist/skills/zh-CN/phaser-2d-graphics-builder/references/visual-scorecard.md +129 -0
- package/{skills → dist/skills/zh-CN}/threejs-3d-game/SKILL.md +6 -2
- package/{skills → dist/skills/zh-CN}/threejs-3d-game/references/engine-asset-pipeline.md +52 -15
- package/dist/skills/zh-CN/threejs-aaa-graphics-builder/assets/scorecard-anchors/scene-1.jpg +0 -0
- package/dist/skills/zh-CN/threejs-aaa-graphics-builder/assets/scorecard-anchors/scene-2.jpg +0 -0
- package/dist/skills/zh-CN/threejs-aaa-graphics-builder/assets/scorecard-anchors/scene-3.jpg +0 -0
- package/dist/skills/zh-CN/threejs-aaa-graphics-builder/references/checklists/aaa-game-quality-gate.md +23 -0
- package/dist/skills/zh-CN/threejs-aaa-graphics-builder/references/checklists/aaa-visual-scorecard.md +19 -0
- package/dist/skills/zh-CN/threejs-aaa-graphics-builder/references/checklists/material-lighting-quality.md +14 -0
- package/dist/skills/zh-CN/threejs-aaa-graphics-builder/references/checklists/performance-safe-visual-detail.md +14 -0
- package/dist/skills/zh-CN/threejs-aaa-graphics-builder/references/checklists/procedural-model-quality.md +15 -0
- package/dist/skills/zh-CN/threejs-aaa-graphics-builder/references/checklists/technical-art-quality.md +17 -0
- package/dist/skills/zh-CN/threejs-aaa-graphics-builder/references/graphics-prompt-templates.md +236 -0
- package/dist/skills/zh-CN/threejs-aaa-graphics-builder/references/implementation-blueprint.md +161 -0
- package/dist/skills/zh-CN/threejs-aaa-graphics-builder/references/model-recipes.md +146 -0
- package/dist/skills/zh-CN/threejs-aaa-graphics-builder/references/render-recipes.md +90 -0
- package/dist/skills/zh-CN/threejs-aaa-graphics-builder/references/shader-cookbook.md +292 -0
- package/dist/skills/zh-CN/threejs-aaa-graphics-builder/references/technical-art.md +167 -0
- package/dist/skills/zh-CN/threejs-aaa-graphics-builder/references/visual-scorecard.md +147 -0
- package/dist/stage-blender/bake_materials.py +102 -0
- package/dist/stage-blender/export_scene.py +275 -0
- package/dist/stage-blender/preview_camera.py +90 -0
- package/dist/stage-blender/repair_mesh.py +112 -0
- package/dist/stage-public/app.js +759 -0
- package/dist/stage-public/baked/bakePilot.js +44 -0
- package/dist/stage-public/baked/bakedScene.js +129 -0
- package/dist/stage-public/baked/sceneAppearance.js +225 -0
- package/dist/stage-public/baked/sceneCamera.js +45 -0
- package/dist/stage-public/comparison-contract.js +28 -0
- package/dist/stage-public/delivery.html +4 -0
- package/dist/stage-public/delivery.js +17 -0
- package/dist/stage-public/godot/appearance.gd +170 -0
- package/dist/stage-public/godot/preview.gd +79 -0
- package/dist/stage-public/index.html +141 -0
- package/dist/stage-public/review-app.js +289 -0
- package/dist/stage-public/review-runtime.js +63 -0
- package/dist/stage-public/review.css +24 -0
- package/dist/stage-public/review.html +47 -0
- package/dist/stage-public/scene-runtime.js +212 -0
- package/dist/stage-public/sceneContractRuntime.js +235 -0
- package/dist/stage-public/styles.css +328 -0
- package/dist/stage-public/three-appearance.js +104 -0
- package/dist/stage-public/vendor/three170/LICENSE +21 -0
- package/dist/stage-public/vendor/three170/build/three.module.js +54571 -0
- package/dist/stage-public/vendor/three170/examples/jsm/controls/OrbitControls.js +1523 -0
- package/dist/stage-public/vendor/three170/examples/jsm/environments/RoomEnvironment.js +144 -0
- package/dist/stage-public/vendor/three170/examples/jsm/libs/fflate.module.js +2672 -0
- package/dist/stage-public/vendor/three170/examples/jsm/loaders/EXRLoader.js +2563 -0
- package/dist/stage-public/vendor/three170/examples/jsm/loaders/GLTFLoader.js +4727 -0
- package/dist/stage-public/vendor/three170/examples/jsm/utils/BufferGeometryUtils.js +1373 -0
- package/dist/tile-transition-mask.svg +40 -0
- package/package.json +21 -7
- package/dist/canvas-public/cycle-detect.js +0 -166
- package/dist/canvas-public/smart-split.js +0 -185
- /package/{skills → dist/skills/en-US}/game-audio/references/bgm-cdn.md +0 -0
- /package/{skills → dist/skills/en-US}/game-audio/references/sfx-cdn.md +0 -0
- /package/{skills → dist/skills/en-US}/game-test/references/checklists/playtest-qa.md +0 -0
- /package/{skills → dist/skills/en-US}/game-ui/references/checklists/game-ui-quality.md +0 -0
- /package/{skills → dist/skills/en-US}/game-ui/references/checklists/hud-readability.md +0 -0
- /package/{skills → dist/skills/en-US}/game-ui/references/checklists/mobile-input.md +0 -0
- /package/{skills → dist/skills/en-US}/game-ui/references/checklists/responsive-ui-fit.md +0 -0
- /package/{skills → dist/skills/en-US}/game-ui/references/ui-patterns.md +0 -0
- /package/{skills → dist/skills/en-US}/game-ui/references/ui-prompt-templates.md +0 -0
- /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/assets/scorecard-anchors/scene-1.jpeg +0 -0
- /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/assets/scorecard-anchors/scene-2.jpeg +0 -0
- /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/assets/scorecard-anchors/scene-3.jpg +0 -0
- /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/references/checklists/compose-quality.md +0 -0
- /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/references/checklists/performance-safe-visual-detail.md +0 -0
- /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/references/checklists/premium-game-quality-gate.md +0 -0
- /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/references/checklists/sprite-quality.md +0 -0
- /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/references/checklists/technical-art-quality.md +0 -0
- /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/references/checklists/visual-scorecard.md +0 -0
- /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/references/compose-recipes.md +0 -0
- /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/references/graphics-prompt-templates.md +0 -0
- /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/references/implementation-blueprint.md +0 -0
- /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/references/sprite-recipes.md +0 -0
- /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/references/technical-art.md +0 -0
- /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/references/vfx-recipes.md +0 -0
- /package/{skills → dist/skills/en-US}/phaser-2d-graphics-builder/references/visual-scorecard.md +0 -0
- /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/assets/scorecard-anchors/scene-1.jpg +0 -0
- /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/assets/scorecard-anchors/scene-2.jpg +0 -0
- /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/assets/scorecard-anchors/scene-3.jpg +0 -0
- /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/references/checklists/aaa-game-quality-gate.md +0 -0
- /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/references/checklists/aaa-visual-scorecard.md +0 -0
- /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/references/checklists/material-lighting-quality.md +0 -0
- /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/references/checklists/performance-safe-visual-detail.md +0 -0
- /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/references/checklists/procedural-model-quality.md +0 -0
- /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/references/checklists/technical-art-quality.md +0 -0
- /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/references/graphics-prompt-templates.md +0 -0
- /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/references/implementation-blueprint.md +0 -0
- /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/references/model-recipes.md +0 -0
- /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/references/render-recipes.md +0 -0
- /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/references/shader-cookbook.md +0 -0
- /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/references/technical-art.md +0 -0
- /package/{skills → dist/skills/en-US}/threejs-aaa-graphics-builder/references/visual-scorecard.md +0 -0
- /package/{skills → dist/skills/zh-CN}/evomeme-canvas/SKILL.md +0 -0
- /package/{skills → dist/skills/zh-CN}/evomeme-canvas/agents/openai.yaml +0 -0
- /package/{skills → dist/skills/zh-CN}/evomeme-cloud-fs/agents/openai.yaml +0 -0
- /package/{skills → dist/skills/zh-CN}/evomeme-cover/agents/openai.yaml +0 -0
- /package/{skills → dist/skills/zh-CN}/evomeme-game-maker/agents/openai.yaml +0 -0
- /package/{skills → dist/skills/zh-CN}/evomeme-login/SKILL.md +0 -0
- /package/{skills → dist/skills/zh-CN}/evomeme-login/agents/openai.yaml +0 -0
- /package/{skills → dist/skills/zh-CN}/evomeme-native-bridge-sdk/SKILL.md +0 -0
- /package/{skills → dist/skills/zh-CN}/evomeme-native-bridge-sdk/agents/openai.yaml +0 -0
- /package/{skills → dist/skills/zh-CN}/evomeme-tos-upload/agents/openai.yaml +0 -0
- /package/{skills → dist/skills/zh-CN}/game-art/SKILL.md +0 -0
- /package/{skills → dist/skills/zh-CN}/game-art/agents/openai.yaml +0 -0
- /package/{skills → dist/skills/zh-CN}/game-asset-image-generator/agents/openai.yaml +0 -0
- /package/{skills → dist/skills/zh-CN}/game-asset-image-generator/references/background.md +0 -0
- /package/{skills → dist/skills/zh-CN}/game-asset-image-generator/references/static-game-assets.md +0 -0
- /package/{skills → dist/skills/zh-CN}/game-audio/SKILL.md +0 -0
- /package/{skills → dist/skills/zh-CN}/game-audio/agents/openai.yaml +0 -0
- /package/{skills → dist/skills/zh-CN}/game-demo/SKILL.md +0 -0
- /package/{skills → dist/skills/zh-CN}/game-demo/agents/openai.yaml +0 -0
- /package/{skills → dist/skills/zh-CN}/game-maker/SKILL.md +0 -0
- /package/{skills → dist/skills/zh-CN}/game-maker/agents/openai.yaml +0 -0
- /package/{skills → dist/skills/zh-CN}/game-test/SKILL.md +0 -0
- /package/{skills → dist/skills/zh-CN}/game-test/agents/openai.yaml +0 -0
- /package/{skills → dist/skills/zh-CN}/game-ui/agents/openai.yaml +0 -0
- /package/{skills → dist/skills/zh-CN}/phaser-2d-game/SKILL.md +0 -0
- /package/{skills → dist/skills/zh-CN}/phaser-2d-game/agents/openai.yaml +0 -0
- /package/{skills → dist/skills/zh-CN}/phaser-2d-game/references/engine-performance.md +0 -0
- /package/{skills → dist/skills/zh-CN}/phaser-2d-game/references/engine-physics.md +0 -0
- /package/{skills → dist/skills/zh-CN}/phaser-2d-game/references/engine-runtime.md +0 -0
- /package/{skills → dist/skills/zh-CN}/phaser-2d-game/references/engine-spritesheets.md +0 -0
- /package/{skills → dist/skills/zh-CN}/phaser-2d-game/references/engine-tilemaps.md +0 -0
- /package/{skills → dist/skills/zh-CN}/phaser-2d-game/references/file-structure.md +0 -0
- /package/{skills → dist/skills/zh-CN}/phaser-2d-graphics-builder/SKILL.md +0 -0
- /package/{skills → dist/skills/zh-CN}/phaser-2d-graphics-builder/agents/openai.yaml +0 -0
- /package/{skills → dist/skills/zh-CN}/threejs-3d-game/agents/openai.yaml +0 -0
- /package/{skills → dist/skills/zh-CN}/threejs-3d-game/references/engine-audio.md +0 -0
- /package/{skills → dist/skills/zh-CN}/threejs-3d-game/references/engine-input-camera.md +0 -0
- /package/{skills → dist/skills/zh-CN}/threejs-3d-game/references/engine-performance.md +0 -0
- /package/{skills → dist/skills/zh-CN}/threejs-3d-game/references/engine-physics.md +0 -0
- /package/{skills → dist/skills/zh-CN}/threejs-3d-game/references/engine-runtime.md +0 -0
- /package/{skills → dist/skills/zh-CN}/threejs-3d-game/references/file-structure.md +0 -0
- /package/{skills → dist/skills/zh-CN}/threejs-aaa-graphics-builder/SKILL.md +0 -0
- /package/{skills → dist/skills/zh-CN}/threejs-aaa-graphics-builder/agents/openai.yaml +0 -0
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# Static Game Element Prompt Guide
|
|
2
|
+
|
|
3
|
+
A static game element is a single game element that can be directly represented by one standalone image and does not need animation frames or dynamic effects, such as a small stone, standalone cloud, shrub, road sign, or an enemy that only uses a fixed pose. Each static element is generated only once and used as a separate `asset` image.
|
|
4
|
+
|
|
5
|
+
This guide does not apply to:
|
|
6
|
+
|
|
7
|
+
- Complete scene backgrounds, parallax background layers, or tilesets.
|
|
8
|
+
- Characters or enemies that need animation frames such as walking, attacking, or taking hits.
|
|
9
|
+
- Dynamic effects such as fire, explosions, or trails.
|
|
10
|
+
- Game concept art, character setting art, UI, videos, or 3D models.
|
|
11
|
+
|
|
12
|
+
## Use Concept Art As Reference
|
|
13
|
+
|
|
14
|
+
If a game concept image or a setting concept image for the current element exists, the accessible URL of the concept image must be used as `reference_image_url`:
|
|
15
|
+
|
|
16
|
+
- Prefer the setting concept image for the current element; if none exists, then use the overall game concept image.
|
|
17
|
+
- Clearly state in the prompt which characteristics need to be inherited, such as element shape, silhouette, color palette, material, and art style.
|
|
18
|
+
- Do not copy layout, text, annotations, multi-view presentation, or other irrelevant elements from the concept image.
|
|
19
|
+
|
|
20
|
+
## Prompt
|
|
21
|
+
|
|
22
|
+
When writing, follow these rules:
|
|
23
|
+
|
|
24
|
+
- One image describes only one static element; collections, multiple variants, or multi-view images must not be requested.
|
|
25
|
+
- Clearly state the element's role in the game, such as obstacle, fixed enemy, or environmental decoration.
|
|
26
|
+
- For directional elements, the single facing direction must be specified; for non-directional elements, specify front view, side view, or top view.
|
|
27
|
+
- For a fixed enemy, describe only one pose that can be used directly.
|
|
28
|
+
- Keep only one to three key identifying features to ensure the silhouette remains clear after scaling down.
|
|
29
|
+
- Require the subject to be centered, fully visible, surrounded by whitespace, and not cropped at the edges.
|
|
30
|
+
- Use `pure white background, no ground, no cast shadow, clean edges` to support automatic cutout.
|
|
31
|
+
- End with `no text, no watermark, no logo, no UI, no extra objects`.
|
|
32
|
+
|
|
33
|
+
## Prohibited Wording
|
|
34
|
+
|
|
35
|
+
- `background scene`, `parallax layer`, `tileset`.
|
|
36
|
+
- `character sheet`, `multiple views`, `sprite sheet`, `animation frames`, `turnaround sheet`.
|
|
37
|
+
- Multiple elements, multiple poses, multiple directions, or multiple skins appearing in one image at the same time.
|
|
38
|
+
- Scene narrative, ground, sky, environmental lighting effects, or other content that would interfere with independent cutout.
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: game-audio
|
|
3
|
+
description: Connect hosted BGM / SFX to Phaser / Three.js runtime configuration. Use when the game needs usable CDN audio URLs, configuration binding, or loader integration, and audio is not being generated locally.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Game Audio
|
|
7
|
+
|
|
8
|
+
## Overview
|
|
9
|
+
|
|
10
|
+
Use this skill for game audio already hosted on a CDN or object storage. Compose loadable HTTPS URLs from object keys according to the conventions in the reference documents, and write them into `public/config.json` or the runtime loader.
|
|
11
|
+
|
|
12
|
+
**Do not generate new audio**. If the required audio object does not exist in the CDN and the user has not provided a URL, stop and ask the user to confirm the object key or update the reference catalog; do not invent paths.
|
|
13
|
+
|
|
14
|
+
## When To Use This Skill
|
|
15
|
+
|
|
16
|
+
- A design document, configuration file, or the user specifies the filename/key of a BGM or SFX track and a loadable URL is needed
|
|
17
|
+
- Filling audio fields such as `bgm_main`, `audio_bgm_gameplay`, `audio_sfx_click`, `backgroundMusic`, `src`, `url`
|
|
18
|
+
- The user explicitly says the audio comes from the company CDN, object storage, or a fixed hosted URL
|
|
19
|
+
- Integrating game feedback sound effects such as click, pickup, collision, shooting, explosion, success/failure sounds
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## Reading Order
|
|
24
|
+
|
|
25
|
+
1. After reading this section, choose and **open the corresponding reference document** according to the task type; do not compose URLs without reading the reference
|
|
26
|
+
2. **BGM (looping background music)**: `references/bgm-cdn.md`
|
|
27
|
+
3. **SFX (short triggered sound effects)**: `references/sfx-cdn.md`
|
|
28
|
+
4. When both BGM and SFX are involved, read both references
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## BGM Routing
|
|
33
|
+
|
|
34
|
+
- Load the BGM reference document and extract the CDN root, path prefix, and track catalog from it
|
|
35
|
+
- Used for looping background music, with configuration keys such as `bgm_main`, `audio_bgm_gameplay`, `audio_bgm_menu`, `backgroundMusic`
|
|
36
|
+
- When a track is not in the catalog, do not invent a path; ask the user to confirm the object key before configuring it
|
|
37
|
+
|
|
38
|
+
Recommended skill: `game-audio`; BGM reference `references/bgm-cdn.md`.
|
|
39
|
+
|
|
40
|
+
## SFX Routing
|
|
41
|
+
|
|
42
|
+
- Load `references/sfx-cdn.md` and extract the CDN root and filename rules
|
|
43
|
+
- Used for short triggered sound effects, with configuration keys such as `audio_sfx_click`, `audio_sfx_pickup`, `audio_sfx_impact`, `audio_sfx_shoot`, `audio_sfx_explosion`, `audio_sfx_success`, `audio_sfx_fail`
|
|
44
|
+
- High-frequency triggered sound effects (footsteps, dragging, continuous collisions) are handled through throttling or looping playback, not retriggered every frame
|
|
45
|
+
|
|
46
|
+
Recommended skill: `game-audio`; SFX reference `references/sfx-cdn.md`.
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## Workflow
|
|
51
|
+
|
|
52
|
+
1. Confirm the task type: BGM, SFX, or both
|
|
53
|
+
2. Read the corresponding reference document and extract the CDN root, required prefix, and filename rules
|
|
54
|
+
3. Find the exact object key from the user, design document, configuration table, or reference catalog
|
|
55
|
+
4. Compose the full HTTPS URL (use the CDN root and prefix from the reference; do not additionally encode the entire URL)
|
|
56
|
+
5. Write the URL into the corresponding configuration key, manifest, or runtime loading code, preserving the project's existing audio architecture
|
|
57
|
+
6. Verify control flags: BGM obeys `audio_music_enabled`, SFX obeys `audio_sfx_enabled`; in-game loops do not leak into the menu or results page
|
|
58
|
+
|
|
59
|
+
### Writing 2D Project Configuration (`public/config.json`)
|
|
60
|
+
|
|
61
|
+
```json
|
|
62
|
+
"bgm_main": { "value": "https://...", "type": "audio", "label": "Background Music" },
|
|
63
|
+
"sfx_jump": { "value": "https://...", "type": "audio", "label": "Jump Sound Effect" }
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
### Writing 3D Project Configuration
|
|
67
|
+
|
|
68
|
+
Write according to the project's existing configuration structure; config key names follow the `audio_bgm_*` / `audio_sfx_*` naming convention.
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
## Guardrails
|
|
73
|
+
|
|
74
|
+
- Do not invent filenames, CDN domains, directory prefixes, or percent-encoded fragments
|
|
75
|
+
- Do not silently swap the root paths for BGM and SFX
|
|
76
|
+
- Do not load a removed local audio generation skill on the grounds of generating audio
|
|
77
|
+
- When the object key is missing or the user has not provided a full URL, stop and require the user to provide it or update the reference; do not guess
|
|
78
|
+
|
|
79
|
+
## References
|
|
80
|
+
|
|
81
|
+
- BGM CDN catalog: `references/bgm-cdn.md`
|
|
82
|
+
- SFX CDN catalog: `references/sfx-cdn.md`
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
interface:
|
|
2
|
+
display_name: "Game Audio"
|
|
3
|
+
short_description: "Choose background music and sound effects from hosted resources, and integrate them into game configuration and playback flow"
|
|
4
|
+
default_prompt: "Please use $game-audio to choose suitable hosted background music and sound effects for my game, and integrate them into the existing configuration and playback flow."
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: game-demo
|
|
3
|
+
description: After the game engine and tech stack are clear, read the game design document and prioritize code safety and first-delivery success while building the file structure, code framework, and core systems for the minimal runnable Demo. Code and image generation proceed in parallel; all game image assets must use generated images, and SVG, line drawing, or large solid-color assets are prohibited. Use when creating a game Demo from scratch, turning a design document into the first playable version, or establishing the foundational project for later development.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Game Demo
|
|
7
|
+
|
|
8
|
+
## Goal
|
|
9
|
+
|
|
10
|
+
Read the design document, implement the core gameplay as the minimal game Demo that can start, be played, end, and restart, and establish a clear engineering foundation for later development.
|
|
11
|
+
|
|
12
|
+
This skill independently completes project setup. Its main outputs are actual project files and a runnable Demo that can continue to be improved. All game image assets are obtained through image generation and connected through a unified asset configuration or loading layer; the first batch of generated assets may be gradually replaced with higher-quality versions in later development.
|
|
13
|
+
|
|
14
|
+
## Before Starting
|
|
15
|
+
|
|
16
|
+
First clarify the game engine and tech stack used by the current project.
|
|
17
|
+
|
|
18
|
+
For an existing project, read the package manifest, lock files, build configuration, entry files, and main dependencies to confirm. For a new project, have the developer confirm the technical choices.
|
|
19
|
+
|
|
20
|
+
Confirm at least:
|
|
21
|
+
|
|
22
|
+
- Game engine and version;
|
|
23
|
+
- Programming language;
|
|
24
|
+
- Rendering and UI approach;
|
|
25
|
+
- Build tool and package manager;
|
|
26
|
+
- Target platform, aspect ratio, and input method.
|
|
27
|
+
|
|
28
|
+
Then read `/project.md` at the project root or the design document file specified by the developer to understand the core gameplay, Demo scope, game objects, controls, win/loss conditions, and the complete flow of one game session.
|
|
29
|
+
|
|
30
|
+
## First-Delivery Principles
|
|
31
|
+
|
|
32
|
+
The Demo's first delivery must target successful startup and a complete core loop. Implement only the minimum objects, systems, states, and interfaces needed for the gameplay to work, making every added part directly serve the core experience.
|
|
33
|
+
|
|
34
|
+
Code safety has the highest priority. Architectural completeness, extensibility, visual presentation, feature count, and technical complexity all defer to the stability of the first delivery. Use mature, direct, and easy-to-debug implementation paths in the current tech stack, keep dependencies lean, keep module responsibilities clear, make state transitions explicit, and provide safety boundaries for loading failures and runtime exceptions.
|
|
35
|
+
|
|
36
|
+
## Demo Production
|
|
37
|
+
|
|
38
|
+
Produce the Demo as a complete task. After development begins, prioritize starting generation for the required image assets, and build the file structure, code framework, and core game systems at the same time. When image-generation tools can be called asynchronously, submit generation tasks and then continue code work so both advance in parallel.
|
|
39
|
+
|
|
40
|
+
### Hard Requirements For Image Assets
|
|
41
|
+
|
|
42
|
+
- The Demo must not contain any SVG assets, including SVG files, inline SVG, and `data:image/svg+xml`.
|
|
43
|
+
- Do not use Canvas/Phaser/CSS lines, geometric outlines, or procedural drawing to impersonate game image assets such as characters, scenes, props, icons, or effects.
|
|
44
|
+
- Do not use large solid-color blocks or solid-color backgrounds as formal game assets or visual placeholders.
|
|
45
|
+
- All needed game image assets, including backgrounds, characters, enemies, props, terrain, decorations, icons, and visual effects, must be obtained through image generation and actually connected into the Demo.
|
|
46
|
+
- Code development and image generation may proceed in parallel, but the required generated images must be connected before the first visual delivery. If assets are not finished, continue generating them or reduce the Demo asset scope; do not replace them with SVG, line drawing, or large solid-color placeholders.
|
|
47
|
+
- Generated assets are first-version assets that can be iterated on; they can be gradually replaced later while keeping the asset interface stable, and development does not need to wait for final art quality.
|
|
48
|
+
|
|
49
|
+
The Demo runs through the following minimal complete flow:
|
|
50
|
+
|
|
51
|
+
```text
|
|
52
|
+
Start -> Load -> Begin -> Play -> Success or Failure -> Results -> Restart
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
After the code build is complete, the core loop can run, and the generated images required for this round have been connected, start a static service and open the Demo page in the environment's browser for the developer to operate and accept directly. The first presentation must not contain SVG, line drawing, or large solid-color game assets.
|
|
56
|
+
|
|
57
|
+
## Demo Construction
|
|
58
|
+
|
|
59
|
+
### File Structure
|
|
60
|
+
|
|
61
|
+
Create directories for the project entry, source code, configuration, game systems, entities, scenes, input, assets, UI, build output, and so on according to the game engine and tech stack. Give each directory and key file a clear responsibility.
|
|
62
|
+
|
|
63
|
+
### Code Framework
|
|
64
|
+
|
|
65
|
+
Set up foundational code for game startup, configuration loading, asset loading, state transitions, input mapping, game loop, render synchronization, UI communication, restart, and resource cleanup.
|
|
66
|
+
|
|
67
|
+
Separate gameplay state, rendering presentation, input, and UI into clear modules, and connect them through explicit data, events, or interfaces.
|
|
68
|
+
|
|
69
|
+
### Game Systems
|
|
70
|
+
|
|
71
|
+
Build the systems actually needed by the core loop according to the design document, such as player control, enemies or obstacles, spawning, collision, damage, scoring, progress, time, win/loss, results, and pause.
|
|
72
|
+
|
|
73
|
+
Select only the systems necessary for the current core loop, connecting them through parameterized content and a unified asset interface. All image assets use generated images and may be gradually replaced later through the same interface.
|
|
74
|
+
|
|
75
|
+
## Acceptance
|
|
76
|
+
|
|
77
|
+
The Demo is accepted in the developer's browser. The Agent does not perform automated gameplay testing, end-to-end testing, visual regression testing, or other Agent-side automated tests. After code finishes building and can run, the Agent is responsible for immediately starting a static service, opening the browser, and handing control to the developer; remaining images continue to be generated and connected after the presentation.
|
|
78
|
+
|
|
79
|
+
Before delivering to the developer, confirm:
|
|
80
|
+
|
|
81
|
+
- The project uses the confirmed game engine and tech stack;
|
|
82
|
+
- The first delivery remains minimal and can build and start successfully;
|
|
83
|
+
- File responsibilities and module boundaries are clear;
|
|
84
|
+
- The core game loop can run completely;
|
|
85
|
+
- Input, game state, rendering, and UI are correctly connected;
|
|
86
|
+
- Success, failure, results, and restart can be repeated;
|
|
87
|
+
- A new session restores the correct initial state;
|
|
88
|
+
- The Demo does not contain SVG, line drawing, or large solid-color game assets or visual placeholders;
|
|
89
|
+
- All game image assets required by the current Demo have been obtained through image generation, centrally managed, and actually connected;
|
|
90
|
+
- The static service has been started, and the Demo page has been opened in the browser.
|
|
91
|
+
|
|
92
|
+
## Output
|
|
93
|
+
|
|
94
|
+
Actual project files and a runnable build are the main deliverables. After completion, briefly describe:
|
|
95
|
+
|
|
96
|
+
- The game engine and tech stack used;
|
|
97
|
+
- The main directories and code modules established;
|
|
98
|
+
- The game systems built;
|
|
99
|
+
- The centralized configuration, connection location, and later replacement method for generated image assets;
|
|
100
|
+
- The generation and connection status of image assets;
|
|
101
|
+
- The core game loop that has been run through;
|
|
102
|
+
- The build and static-service commands executed;
|
|
103
|
+
- The developer acceptance URL in the browser.
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
interface:
|
|
2
|
+
display_name: "Game Demo"
|
|
3
|
+
short_description: "Build a safe, minimal, runnable game demo, completing code and image assets in parallel"
|
|
4
|
+
default_prompt: "Please use $game-demo to build a runnable game demo from the design document, advance image generation and code construction in parallel, provide vector fallback images for all images, and open the webpage for my acceptance review as soon as the code can run."
|
|
5
|
+
|
|
6
|
+
policy:
|
|
7
|
+
allow_implicit_invocation: true
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: game-maker
|
|
3
|
+
description: Organize the development goals of a game or game Demo into a progressively refinable task dependency graph. At the beginning, create only a rough task skeleton composed of main goals, key decisions, the core Demo, and necessary dependencies, then gradually refine relevant branches as development decisions are made and other Skills deliver their results. Use when the developer wants to create, prototype, expand, or systematically rework a game from scratch, or needs to establish and continuously maintain a game development task list.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Game Maker
|
|
7
|
+
|
|
8
|
+
## Goal
|
|
9
|
+
Organize the developer's game idea into a rough task dependency graph that can start development, and progressively fill in task details as the project advances. Plan the next step based on currently confirmed information, let the corresponding Skill take over the concrete work, and return its results to the task graph.
|
|
10
|
+
|
|
11
|
+
The core output of this Skill is a continuously updated game development task list. The initial list expresses the main work and necessary dependencies; later lists expand according to actual decisions and delivered results.
|
|
12
|
+
|
|
13
|
+
## Core Principles
|
|
14
|
+
1. The developer decides the game direction and concrete details, including gameplay direction, art style, UI style, and key parameters.
|
|
15
|
+
2. The initial plan expresses only main goals, milestones, key decisions, and necessary dependencies, keeping tasks that have not entered execution at a coarse granularity.
|
|
16
|
+
3. Create tasks and dependencies only from already confirmed information so the plan can start executing immediately.
|
|
17
|
+
4. Use stable and unique task IDs to identify each task node.
|
|
18
|
+
5. Refine the corresponding branch when a task is about to be executed, dependencies have been satisfied, or new delivery results appear.
|
|
19
|
+
6. When refining tasks, keep the original task ID as a milestone, add concrete work using new task IDs, and update the milestone's prerequisites.
|
|
20
|
+
7. Keep the core Demo as an early task node; within the same task, advance image generation and code construction in parallel, provide SVG fallbacks for all images, and show it to the developer as soon as the code can run.
|
|
21
|
+
8. Hand concrete design and implementation to the corresponding Skill, and update the design document, task status, and dependencies based on its delivered results.
|
|
22
|
+
|
|
23
|
+
## Progressive Planning
|
|
24
|
+
|
|
25
|
+
### Establish The Initial Task Skeleton
|
|
26
|
+
|
|
27
|
+
Read the developer's game idea, existing design document, and current project state. Confirm a small amount of key information that affects the overall direction, then create a rough task list containing the main decisions, core Demo, later main work, and final acceptance.
|
|
28
|
+
|
|
29
|
+
An initial task may represent a complete milestone. Task names should let the developer understand what needs to be completed, and tasks should connect only to direct dependencies that are already clear.
|
|
30
|
+
|
|
31
|
+
### Refine The Current Branch
|
|
32
|
+
|
|
33
|
+
When a task becomes the next piece of work, judge whether it needs to be split based on the outputs of its prerequisite tasks. Tasks that can be directly handed to the corresponding Skill remain unchanged; tasks that need multiple independent results are expanded using new task IDs.
|
|
34
|
+
|
|
35
|
+
After expansion, keep the original task as a milestone and make it depend on the newly added concrete tasks. Other branches that have not entered execution remain coarse-grained.
|
|
36
|
+
|
|
37
|
+
### Update The Plan Based On Results
|
|
38
|
+
|
|
39
|
+
After the developer makes a decision or another Skill returns delivered results:
|
|
40
|
+
|
|
41
|
+
1. Update the corresponding task status;
|
|
42
|
+
2. Add new tasks made clear by the result;
|
|
43
|
+
3. Update dependencies that are directly affected;
|
|
44
|
+
4. Select the next task whose dependencies have already been satisfied;
|
|
45
|
+
5. Continue refining the corresponding branch before entering that task.
|
|
46
|
+
|
|
47
|
+
## Game Development Points
|
|
48
|
+
|
|
49
|
+
### Clarify Developer Requirements
|
|
50
|
+
First, the Agent should accurately understand the game the developer wants to create. This stage focuses on the game's overall direction and core gameplay; concrete details are unfolded gradually in later planning. When the developer's description is relatively vague, ask follow-up questions about key information that affects the overall direction.
|
|
51
|
+
|
|
52
|
+
### Every Game Starts With A Demo
|
|
53
|
+
Treat building the Demo as the first main stage of the game plan. Keep the Demo minimal, implementing only the complete flow, project structure, and system architecture required to validate the core gameplay. Code safety and first-delivery success have higher priority than feature count, visual completeness, and extensibility design.
|
|
54
|
+
|
|
55
|
+
Usually only one of the Demo and game concept art is delivered; both are used to let the developer quickly see the game effect. After Demo development begins, the playable Demo carries the effect presentation, and the Demo plan does not include a game concept art drawing task; add a concept art task only when the developer explicitly needs to confirm the art direction separately.
|
|
56
|
+
|
|
57
|
+
The task list uses one "Create a playable Demo" node to uniformly carry core-loop confirmation, minimum playable system, project structure, code construction, image generation, SVG fallbacks, asset integration, and browser acceptance.
|
|
58
|
+
|
|
59
|
+
When executing the Demo task, prioritize starting generation for the required image assets, and complete project and code construction at the same time. Prepare a corresponding SVG fallback image for each image asset and connect it into the game through a unified asset interface. Replace them one by one after generated images return; images that have not finished yet continue using SVG and do not affect core gameplay operation.
|
|
60
|
+
|
|
61
|
+
After the code build is complete and the core loop can run, immediately start a static service and open the game webpage for developer acceptance. Remaining images continue to be generated and integrated after the first presentation; image-generation progress does not delay delivery of the playable Demo. Demo acceptance is completed by the developer in the browser, and no Agent-side automated test task is arranged.
|
|
62
|
+
|
|
63
|
+
### Continuously Maintain The Overall Game Design Document
|
|
64
|
+
As the core game loop and core game systems gradually become clear, the Agent and developer continuously refine the complete play path. Use `/project.md` to record gameplay, the core loop, game systems, and their details in detail.
|
|
65
|
+
|
|
66
|
+
Whenever gameplay is adjusted, update `/project.md` at the same time. All changes to gameplay direction should be discussed with the developer, and the developer makes the final decision.
|
|
67
|
+
|
|
68
|
+
### Keep Code Modular, Functional, And Parameterized
|
|
69
|
+
While building the Demo and later optimizing gameplay, split different game systems into independent code modules, and reuse common functions and logic for similar systems. Keep code paths valid, structure clear, and maintenance easy, improving the project's usability and robustness.
|
|
70
|
+
|
|
71
|
+
To make it easy for the developer to fully take over later game development, parameterize all configuration and centralize variables in locations the developer can easily find and modify. When image assets are involved, establish a unified SVG fallback and asset-loading flow for each asset, and connect generated images within the same Demo production process.
|
|
72
|
+
|
|
73
|
+
### Art And Game Code Can Advance In Parallel
|
|
74
|
+
The developer can advance art and code work in two separate conversations. Art creation starts with concept art and an art setting collection, used to unify and control the game's overall art style.
|
|
75
|
+
|
|
76
|
+
First, create concept art that represents the direction of the final game product based on information provided by the developer. Then create corresponding setting images for each type of element in the game systems, uniformly using pure white background three-view images.
|
|
77
|
+
|
|
78
|
+
Continuously adjust concept art and the setting collection based on developer feedback. After the art direction is complete and confirmed, generate the in-game asset images needed according to the corresponding concept art and setting images.
|
|
79
|
+
|
|
80
|
+
### Split Complex Tasks Into Four Types Of Subtasks
|
|
81
|
+
Any complex task can be split into the following four types of subtasks, and each type can contain multiple concrete tasks:
|
|
82
|
+
|
|
83
|
+
1. Generation task: The Agent is responsible for generating the images, code, models, and text needed by the game.
|
|
84
|
+
2. Automation task: The Agent is responsible for automated processing of assets and text, such as cutout, formatting, and Photoshop operations.
|
|
85
|
+
3. Decision task: The developer is responsible for judgments and choices about the game development direction.
|
|
86
|
+
4. Detail adjustment task: The developer is responsible for determining concrete in-game parameters, including the spatial positions of game elements, game system parameters, and in-game colors.
|
|
87
|
+
|
|
88
|
+
## Special Requirements For evomeme Platform Game Development
|
|
89
|
+
When the target platform is evomeme, the initial plan may first establish a platform adaptation milestone. After entering that branch, split the following requirements into task nodes and establish dependencies:
|
|
90
|
+
|
|
91
|
+
1. Create a mobile portrait, touch-first web game task.
|
|
92
|
+
2. Create an evomeme cloud upload task for binary assets such as images, audio, videos, fonts, and models.
|
|
93
|
+
3. Create a `public/config.json` resource configuration task, dependent on asset links returned by the cloud upload task.
|
|
94
|
+
4. Create a production build task, using `npm run build` to output the final webpage to `dist/`, and dependent on game functionality and resource configuration tasks.
|
|
95
|
+
5. Create a `dist/` build output inspection task, making it contain only the text build outputs needed for webpage runtime, and dependent on the production build task.
|
|
96
|
+
6. Create a mobile portrait, touch interaction, and remote asset loading validation task, dependent on the production build task.
|
|
97
|
+
|
|
98
|
+
## Output
|
|
99
|
+
Output a flat task dependency list in Markdown. Keep the initial list rough and include only the main tasks currently needed; as work advances, add refined tasks in the same list. All task nodes are arranged directly under the title. Each task uses a stable and unique task ID and references prerequisites by task ID.
|
|
100
|
+
|
|
101
|
+
```markdown
|
|
102
|
+
# Game Development Task List
|
|
103
|
+
|
|
104
|
+
- [ ] T001 [Decision Task - Developer] <task name>
|
|
105
|
+
- [ ] T002 [Generation Task - Agent] <task name> (depends on: T001)
|
|
106
|
+
- [ ] T003 [Automation Task - Agent] <task name> (depends on: T001)
|
|
107
|
+
- [ ] T004 [Detail Adjustment Task - Developer] <task name> (depends on: T002, T003)
|
|
108
|
+
- [x] T005 [Generation Task - Agent] <completed task name>
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
Task types use "Generation Task, Automation Task, Decision Task, Detail Adjustment Task". Use `[ ]` for incomplete and `[x]` for complete. Task IDs increase in creation order and remain stable. Initial tasks may represent larger milestones; when refining, keep the original number and assign new numbers to new tasks. When direct dependencies exist, reference the corresponding task IDs at the end of the task, and keep the task relationship as a directed acyclic graph.
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
interface:
|
|
2
|
+
display_name: "Game Maker"
|
|
3
|
+
short_description: "Organize a game idea into development tasks and dependencies that can be progressively refined and continuously maintained"
|
|
4
|
+
default_prompt: "Please use $game-maker to create a rough development task list from my game idea, and progressively supplement and update it as development proceeds."
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: game-test
|
|
3
|
+
description: After game development ends, perform smoke testing and gameplay QA for a 2D or 3D browser game, verifying that the game can start, display, and complete the core gameplay loop, while also checking main input, state transitions, failure/retry, and desktop and mobile behavior. Use when a just-completed game or Demo needs final self-checking, basic playability confirmation, or gameplay issue recording.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Game Test
|
|
7
|
+
|
|
8
|
+
## Goal
|
|
9
|
+
|
|
10
|
+
After game development ends, perform one smoke test and gameplay QA pass to confirm from the player's perspective that the game can enter, be controlled, progress, end, and restart normally, and record issues that block the basic experience.
|
|
11
|
+
|
|
12
|
+
## Smoke Testing And Gameplay QA
|
|
13
|
+
|
|
14
|
+
Before testing, read the project's startup method, target devices, input methods, core gameplay loop, and win/loss conditions. Load [`references/checklists/playtest-qa.md`](references/checklists/playtest-qa.md) as the testing reference.
|
|
15
|
+
|
|
16
|
+
### Workflow
|
|
17
|
+
|
|
18
|
+
1. Install dependencies as needed by the project and run the existing build or type-check command.
|
|
19
|
+
2. Start the development server or preview server and open the correct game page.
|
|
20
|
+
3. Capture browser console, page, and network errors.
|
|
21
|
+
4. Confirm the game screen displays normally, and the Canvas has a valid size and visible content.
|
|
22
|
+
5. Starting from a clean load, actually play the core loop for at least 2 minutes.
|
|
23
|
+
6. Test movement, aiming, jumping, attacking, dragging, or the primary inputs corresponding to the gameplay.
|
|
24
|
+
7. Verify objective progress, scoring, collection, collisions, and other core state changes.
|
|
25
|
+
8. Trigger actually existing paths such as success, failure, pause, resume, and restart.
|
|
26
|
+
9. Rapidly switch inputs and test game boundaries, repeated actions, and state recovery after restart.
|
|
27
|
+
10. Check visuals, HUD, text, safe areas, and touch regions under target desktop and mobile viewports.
|
|
28
|
+
11. When audio is part of the core experience, verify first-interaction unlock, main sound effects, background music, pause behavior, and restart behavior.
|
|
29
|
+
12. Record test results and discovered issues.
|
|
30
|
+
|
|
31
|
+
### 2D Game Focus
|
|
32
|
+
|
|
33
|
+
- Sprites, tiles, and platform positions are clear;
|
|
34
|
+
- Animation, hit reaction, and state feedback are readable;
|
|
35
|
+
- HUD and the core gameplay area remain clear;
|
|
36
|
+
- Input results are consistent with game state.
|
|
37
|
+
|
|
38
|
+
### 3D Game Focus
|
|
39
|
+
|
|
40
|
+
- Scene, camera, materials, and lighting display normally;
|
|
41
|
+
- Characters, environment, and objectives have clear silhouettes and depth relationships;
|
|
42
|
+
- Camera controls, collision, and restart behavior are stable;
|
|
43
|
+
- Models, textures, and animations can load and run during actual play.
|
|
44
|
+
|
|
45
|
+
### Test Results
|
|
46
|
+
|
|
47
|
+
Report using a brief format:
|
|
48
|
+
|
|
49
|
+
```markdown
|
|
50
|
+
# Smoke Testing And Gameplay QA
|
|
51
|
+
|
|
52
|
+
- **Result**: <Pass / Fail>
|
|
53
|
+
- **Runtime Environment**: <commands, page, and test viewports>
|
|
54
|
+
- **Verified Paths**: <core operations and gameplay loop>
|
|
55
|
+
- **Issues Found**: <none, or issue list>
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
For each issue, describe what the player sees, reproduction steps, and the impact on gameplay.
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
interface:
|
|
2
|
+
display_name: "Game Test"
|
|
3
|
+
short_description: "Complete game smoke testing and gameplay acceptance from the player's perspective, recording issues that affect the experience"
|
|
4
|
+
default_prompt: "Please use $game-test to playtest this game, complete smoke testing and core gameplay acceptance, and record the issues found."
|
|
5
|
+
|
|
6
|
+
policy:
|
|
7
|
+
allow_implicit_invocation: true
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: game-ui
|
|
3
|
+
description: Design restrained, clear, and genre-aware HUDs, menus, dialogs, touch regions, safe areas, and UI motion for games, and directly call the image-generation tools in the current environment to deliver UI concept art for different interfaces and their design rationale. Use when a game needs to determine or adjust UI style, information hierarchy, interface layout, interaction feedback, mobile adaptation, or UI concept art for states such as start, gameplay, pause, settings, win/loss, results, and selection. For evomeme platform games, MUST also read and follow evomeme-ui.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Game UI Design
|
|
7
|
+
|
|
8
|
+
## Goal
|
|
9
|
+
|
|
10
|
+
Complete UI design based on gameplay, art direction, and target devices, and generate concept art for different interfaces that can express the final game's effect. Concept art should simultaneously reflect information hierarchy, operational intent, screen composition, and a unified visual language.
|
|
11
|
+
|
|
12
|
+
## evomeme Platform Prerequisite
|
|
13
|
+
|
|
14
|
+
If the game is intended to run, launch, or be published on evomeme, MUST read and follow [`evomeme-ui`](../evomeme-ui/SKILL.md) before UI design, concept-art generation, or responsive implementation. Use the WebView container already allocated by the host as the frame. Do not design around the phone's full screen or a fixed aspect ratio, and do not subtract App bars or phone safe areas again.
|
|
15
|
+
|
|
16
|
+
For evomeme games, `evomeme-ui` governs dimension sources, safe-area handling, and responsive acceptance checks. Mobile safe-area advice in this skill and its general checklists MUST NOT cause duplicate deductions. For other platforms, follow their actual host constraints.
|
|
17
|
+
|
|
18
|
+
## Core Design Principles
|
|
19
|
+
|
|
20
|
+
1. **Less is more**: Make every UI element serve the player's current judgment, action, or understanding of feedback.
|
|
21
|
+
2. **Keep necessary information**: Prioritize survival state, current objective, progress, and immediate feedback before arranging secondary information.
|
|
22
|
+
3. **Game screen first**: Preserve a clear playable area for the player, threats, objectives, pickups, and key performance moments.
|
|
23
|
+
4. **Game interface, not generic panels**: Use meters, icons, reticles, resource slots, status bars, cooldown rings, and in-world markers to express game information.
|
|
24
|
+
5. **Unified visual language**: Let typography, icons, shapes, materials, colors, and motion continue the game's subject matter and art style.
|
|
25
|
+
6. **Full-viewport game stage**: Let the game stage itself adapt to the viewport according to the target aspect ratio; extra desktop space serves as passive background while keeping the game area complete.
|
|
26
|
+
|
|
27
|
+
## UI Design Workflow
|
|
28
|
+
|
|
29
|
+
### 1. Establish Design Context
|
|
30
|
+
|
|
31
|
+
Read the game design document, gameplay notes, existing interfaces, runtime screenshots, concept art, art settings, and references provided by the developer. Confirm:
|
|
32
|
+
|
|
33
|
+
- The core gameplay and the decisions the player needs to make in each state;
|
|
34
|
+
- Target devices, landscape/portrait orientation, aspect ratio, and safe areas;
|
|
35
|
+
- Whether the game will run or be published on evomeme; if so, MUST first complete the `evomeme-ui` prerequisite reading above and use its game container test sizes;
|
|
36
|
+
- Keyboard, mouse, touch, or native input methods;
|
|
37
|
+
- Game art style, subject matter, atmosphere, and existing visual assets;
|
|
38
|
+
- The game states that need design and the main action in each state.
|
|
39
|
+
|
|
40
|
+
### 2. Determine UI Style
|
|
41
|
+
|
|
42
|
+
Determine the UI style based on game art, genre, core gameplay, and user requirements. Clarify the following visual language and hand it to the developer for confirmation:
|
|
43
|
+
|
|
44
|
+
- Primary colors, status colors, and neutral colors;
|
|
45
|
+
- Typography direction and information font-size hierarchy;
|
|
46
|
+
- Shapes of buttons, panels, status bars, and dialogs;
|
|
47
|
+
- Icon silhouettes, materials, strokes, shadows, and decoration density;
|
|
48
|
+
- Feedback methods for clicks, value changes, rewards, and danger states.
|
|
49
|
+
|
|
50
|
+
When the direction has not yet been determined, propose a small number of clearly different candidate styles and explain each style's relationship to the game subject matter and gameplay.
|
|
51
|
+
|
|
52
|
+
### 3. Determine The Interfaces To Design
|
|
53
|
+
|
|
54
|
+
Identify the interfaces that need concept art according to the complete game flow, for example:
|
|
55
|
+
|
|
56
|
+
- Start and main menu;
|
|
57
|
+
- Core gameplay HUD;
|
|
58
|
+
- Pause, resume, and settings;
|
|
59
|
+
- Failure, retry, victory, and results;
|
|
60
|
+
- Character, level, equipment, or ability selection;
|
|
61
|
+
- Loading, asset error, and other necessary states;
|
|
62
|
+
- Mobile touch operation layer.
|
|
63
|
+
|
|
64
|
+
States with the same layout can share one design; states with obvious changes in layout, information hierarchy, or main action generate separate concept art.
|
|
65
|
+
|
|
66
|
+
### 4. Design UI Layout
|
|
67
|
+
|
|
68
|
+
First list the UI elements in the interface, then organize them by HUD, menus and dialogs, and operation UI. Determine the position, size, hierarchy, and appearance state of each element according to the player's goal.
|
|
69
|
+
|
|
70
|
+
#### HUD
|
|
71
|
+
|
|
72
|
+
- Concentrate HUD at the top of the screen, the upper sides, or near relevant world objects;
|
|
73
|
+
- Keep persistent HUD height within 8% of screen height as much as possible;
|
|
74
|
+
- Persistent HUD prioritizes showing no more than 3 key values that affect the current decision;
|
|
75
|
+
- Use stable-width containers for dynamic values such as score, time, health, and ammo;
|
|
76
|
+
- Use status bars for continuous values that must be read quickly;
|
|
77
|
+
- Use fixed colors for danger, reward, shield, buff, objective, and disabled states;
|
|
78
|
+
- Place brief warnings, combo, and event feedback where players can notice them easily without blocking action.
|
|
79
|
+
|
|
80
|
+
#### Menus And Dialogs
|
|
81
|
+
|
|
82
|
+
- Make start, resume, retry, next level, or confirm the primary action of the current interface;
|
|
83
|
+
- Put settings, exit, restart, and level selection in a secondary hierarchy;
|
|
84
|
+
- Use centered panels, bottom drawers, or top notices to express different importance levels;
|
|
85
|
+
- Keep a clear front/back relationship between overlays and the game scene;
|
|
86
|
+
- Give dialogs a clear trigger source, contained content, and return path.
|
|
87
|
+
|
|
88
|
+
#### Operation UI
|
|
89
|
+
|
|
90
|
+
- Choose click, swipe, drag, joystick, or action buttons according to the core gameplay;
|
|
91
|
+
- Place movement controls in the lower-left thumb area and primary actions in the lower-right thumb area;
|
|
92
|
+
- Make primary touch regions usually at least 44 CSS px, and leave spacing between adjacent actions;
|
|
93
|
+
- Keep HUD, operation controls, safe areas, and the core gameplay path clearly separated;
|
|
94
|
+
- Use pressed states, direction feedback, and cooldown presentation to communicate whether an operation took effect.
|
|
95
|
+
|
|
96
|
+
### 5. Simplify UI Elements
|
|
97
|
+
|
|
98
|
+
Confirm one by one the player need corresponding to each UI element. Put data that is meaningful only during results or reward stages into the corresponding interface; use icons, interaction affordances, and immediate feedback to express intuitive actions; keep teaching and explanation focused on what the player currently needs to understand.
|
|
99
|
+
|
|
100
|
+
When the game can complete the core experience through direct interaction inside the scene, the gameplay screen can use no persistent UI, with corresponding states designed for pause, results, and necessary feedback.
|
|
101
|
+
|
|
102
|
+
### 6. Design UI Motion
|
|
103
|
+
|
|
104
|
+
Make motion respond to clear player actions or game state changes:
|
|
105
|
+
|
|
106
|
+
- Button click: scale to 90-95% and then spring back, about 160-220ms, using easing with rebound feel;
|
|
107
|
+
- HUD value changes: use number bounce, status-bar change, or color feedback of about 120-200ms;
|
|
108
|
+
- Results and rewards: give the final result or main action a one-time emphasis;
|
|
109
|
+
- Menus and dialogs: use brief fade-in, movement, or scaling to establish hierarchy;
|
|
110
|
+
- Danger and high-intensity feedback: combine shape, color, motion, sound, or text to communicate state.
|
|
111
|
+
|
|
112
|
+
In static concept art, express motion intent through initial position, movement direction, afterimages, lighting effects, or state contrast.
|
|
113
|
+
|
|
114
|
+
### 7. Adapt For 2D And 3D Games
|
|
115
|
+
|
|
116
|
+
- For 2D games, make the UI and Canvas game screen form a clear hierarchy, and make pixel density, strokes, and icon style consistent with the scene;
|
|
117
|
+
- For 3D games, keep flat HUDs, menus, and overlays clear. When characters, vehicles, weapons, or trophies need to be shown, a 3D preview can be used as the interface focus;
|
|
118
|
+
- In-scene labels, objective markers, and interaction prompts coordinate with camera composition, depth of field, and world space.
|
|
119
|
+
|
|
120
|
+
### 8. Text Interaction Technical Requirements
|
|
121
|
+
|
|
122
|
+
DOM text used for in-game display should not be selectable by the mouse cursor, and text selection or copy menus should not appear on mobile long-press. Implement this with `user-select: none`, `-webkit-user-select: none`, and `-webkit-touch-callout: none`; use `user-select: text` on inputs, textareas, and editable elements to preserve normal text selection capability.
|
|
123
|
+
|
|
124
|
+
### 9. Generate UI Concept Art
|
|
125
|
+
|
|
126
|
+
Before generating UI concept art or any other image, first tell the user the images, quantity, and visual direction proposed for this round, and obtain the user's explicit consent before calling the image-generation tool. Reconfirm when the generation scope changes.
|
|
127
|
+
|
|
128
|
+
Directly call the image-generation tools available in the current environment to generate concept art for each selected interface and show it to the developer. When generating:
|
|
129
|
+
|
|
130
|
+
- Use the real aspect ratio and game perspective of the target device;
|
|
131
|
+
- Let the image directly present the combined effect of game scene and UI;
|
|
132
|
+
- Reuse existing screenshots, concept art, art settings, and confirmed interfaces as visual references;
|
|
133
|
+
- Show the relationships among HUD anchors, menu hierarchy, button positions, touch regions, and safe areas;
|
|
134
|
+
- Keep typography direction, icon language, component shape, and color roles unified across different interfaces;
|
|
135
|
+
- Use text and values close to actual content length to establish credible layout relationships.
|
|
136
|
+
|
|
137
|
+
Adjust concept art based on developer feedback, and use confirmed images as visual references for later interfaces.
|
|
138
|
+
|
|
139
|
+
After each round of UI concept art is generated and shown, the current flow must stop immediately and wait for user feedback. Later adjustments, the next round of images, or concept art for other interfaces all start only after receiving explicit feedback or confirmation from the user.
|
|
140
|
+
|
|
141
|
+
### 10. Check Concept Art
|
|
142
|
+
|
|
143
|
+
Check each concept image for game feel, HUD readability, information hierarchy, screen occlusion, text fit, safe areas, and touch regions. Confirm that stable space remains after dynamic values change, and ensure the same visual rules run through all interfaces.
|
|
144
|
+
|
|
145
|
+
## Common Quality Issues
|
|
146
|
+
|
|
147
|
+
- HUD presents as a generic dashboard or statistics cards;
|
|
148
|
+
- Too many panel layers, with decoration area exceeding effective information;
|
|
149
|
+
- UI blocks the player, threats, objectives, pickups, or next action;
|
|
150
|
+
- Dynamic values change width and push other elements;
|
|
151
|
+
- Text, icons, or touch regions are too small in the target aspect ratio;
|
|
152
|
+
- Different interfaces use conflicting colors, materials, and component shapes;
|
|
153
|
+
- A portrait game shrinks the actual game stage into a phone shell or picture-in-picture form.
|
|
154
|
+
|
|
155
|
+
## Output
|
|
156
|
+
|
|
157
|
+
Directly deliver UI concept art for different interfaces. Label each image with the interface name, and explain that interface's design goal and design rationale.
|
|
158
|
+
|
|
159
|
+
```markdown
|
|
160
|
+
# Game UI Concept Art
|
|
161
|
+
|
|
162
|
+
## <Interface Name>
|
|
163
|
+
|
|
164
|
+
<Directly show the generated concept art>
|
|
165
|
+
|
|
166
|
+
- **Design Goal**: <what the player needs to understand or complete in this interface>
|
|
167
|
+
- **Design Rationale**: <information hierarchy, visual focus, composition, operation regions, and art expression method>
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
## Reference Routing
|
|
171
|
+
|
|
172
|
+
- When designing or adapting UI for evomeme platform games, MUST first read and follow [`evomeme-ui`](../evomeme-ui/SKILL.md).
|
|
173
|
+
- When designing HUDs, menus, overlays, touch controls, and responsive layouts, read [`references/ui-patterns.md`](references/ui-patterns.md).
|
|
174
|
+
- When checking overall game feel and interface quality, read [`references/checklists/game-ui-quality.md`](references/checklists/game-ui-quality.md).
|
|
175
|
+
- When checking HUD information hierarchy and dynamic readability, read [`references/checklists/hud-readability.md`](references/checklists/hud-readability.md).
|
|
176
|
+
- When checking target aspect ratio, text boundaries, and layout stability, read [`references/checklists/responsive-ui-fit.md`](references/checklists/responsive-ui-fit.md).
|
|
177
|
+
- When checking touch regions and safe areas, read [`references/checklists/mobile-input.md`](references/checklists/mobile-input.md).
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
interface:
|
|
2
|
+
display_name: "Game UI"
|
|
3
|
+
short_description: "Design the information hierarchy, layout, and interaction of each game interface, and generate concept art after confirmation"
|
|
4
|
+
default_prompt: "Please use $game-ui to design the main interfaces for my game, first confirm the design plan with me, and stop to wait for my feedback after each round of interface concept art generation."
|