mirror of
https://github.com/PlayableIntelligence/game-creator.git
synced 2026-09-19 07:34:10 +08:00
eaa818074e
Reduce top-level directories from 19 to 14 and unify the two disconnected site pages into a single build script. Site unification: - gallery/ → site/ (manifest.json, build.js, thumbnails/, telemetry/) - New unified site/build.js generates both _site/index.html (landing) and _site/gallery/index.html (gallery) with shared CSS, nav, footer - Landing page game cards are now data-driven from manifest (no drift) - Optional benchmarks section renders when site/benchmarks.json exists - npm run build:site produces the whole _site/ Directory consolidation: - character-library/ + 3d-character-library/ → assets/characters/ + assets/3d-characters/ - evals/ → tests/ (trigger files, flows, README) - docs/troubleshooting.md → TROUBLESHOOTING.md - benchmarks/ deleted (empty) All references updated across ~15 files (CLAUDE.md, skills, templates, package.json, examples). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1.9 KiB
1.9 KiB
Flow Test 07: Make a 3D Game with Three.js
Objective
Test the full make-game pipeline for a 3D game using Three.js.
Test Prompt
"/make-game 3d space-explorer"
Steps
Phase 1: Scaffold
- Skill detects "3d" engine selection
- Copies
templates/threejs-3d/to target directory - Updates package.json name and index.html title
- Runs
npm installsuccessfully - Dev server starts without errors
Phase 2: Implementation
- Game uses Three.js with event-driven modular architecture
- EventBus singleton for cross-module communication
- GameState singleton with reset()
- Constants.js with all configuration values
- Game.js orchestrator manages lifecycle
render_game_to_text()exposed on windowadvanceTime(ms)exposed on window- Core loop: input, movement, scoring, fail condition, restart
Phase 3: Assets (if Meshy API key available)
- Prompts for MESHY_API_KEY or offers library fallback
- Replaces BoxGeometry/SphereGeometry with real models
- Animated player character (idle/walk/run)
- Uses SkeletonUtils.clone() for animated models
Phase 4: Design + Audio
- Visual polish applied (lighting, particles, effects)
- Web Audio API BGM and SFX added
- Audio activates on first user interaction
Phase 5: Build + Deploy
npm run buildsucceeds- Deploys to here.now (or GitHub Pages)
- Live URL returned and game is playable
Success Criteria
- All Phase 1-2 checkboxes pass (minimum viable)
- 0 build failures in final state
- <= 2 clarifying questions
- Game runs in browser with working 3D controls
- WASD movement + mouse camera control functional
Anti-patterns
- Using
.clone(true)instead ofSkeletonUtils.clone()for animated models - Hardcoded camera positions instead of OrbitControls
- Missing delta time capping (physics death spiral)
- Not disposing Three.js resources on cleanup