docs: Phase 1 立项完成 — 城市抓猫猫
- 01-project-charter.md: 立项书(方向/MVP范围/成功指标/待决策项) - 02-game-design.md: 游戏设计(玩法规则/地图/猫猫/图鉴/广告/分享) - 03-content-pipeline.md: 内容管线(数据结构/素材规范/分包策略) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
10
AGENTS.md
10
AGENTS.md
@@ -1,11 +1,11 @@
|
|||||||
<!-- BRIEFING: auto-maintained -->
|
<!-- BRIEFING: auto-maintained -->
|
||||||
## Project State
|
## Project State
|
||||||
- **Project**: wechat-minigame — 微信小游戏
|
- **Project**: 城市抓猫猫 (wechat-minigame) — City-themed stacking match-3 WeChat mini game
|
||||||
- **Stage**: Phase 1 立项(待开始)
|
- **Stage**: Phase 1 charter done, 5 design decisions pending before Phase 2
|
||||||
- **Last action**: project init + standard dev process setup
|
- **Last action**: Wrote 01-charter + 02-game-design + 03-content-pipeline
|
||||||
- **Next task**: Phase 1 — define game type, target users, project charter
|
- **Next task**: Lock pending decisions → Codex supplements system design → Phase 2
|
||||||
- **Dev process**: 10-phase gated flow (~/pro/kb/workflows/standard-dev-process/SKILL.md)
|
- **Dev process**: 10-phase gated flow (~/pro/kb/workflows/standard-dev-process/SKILL.md)
|
||||||
- **Hard constraints**: Canvas rendering | 4MB first package | No DOM/BOM | 60fps target
|
- **Hard constraints**: Canvas 2D (no engine) | 4MB first package | No DOM/BOM | 60fps
|
||||||
- **KB**: ~/pro/kb/projects/wechat-minigame/
|
- **KB**: ~/pro/kb/projects/wechat-minigame/
|
||||||
<!-- END BRIEFING -->
|
<!-- END BRIEFING -->
|
||||||
|
|
||||||
|
|||||||
12
CLAUDE.md
12
CLAUDE.md
@@ -1,13 +1,13 @@
|
|||||||
# wechat-minigame
|
# 城市抓猫猫(wechat-minigame)
|
||||||
|
|
||||||
<!-- BRIEFING: auto-maintained, do not edit manually -->
|
<!-- BRIEFING: auto-maintained, do not edit manually -->
|
||||||
## 项目速览
|
## 项目速览
|
||||||
- **项目**:wechat-minigame — 微信小游戏
|
- **项目**:城市抓猫猫 — 城市主题堆叠三消微信小游戏
|
||||||
- **阶段**:Phase 1 立项(待开始)
|
- **阶段**:Phase 1 立项完成,待锁定 5 项设计决策后进入 Phase 2
|
||||||
- **上次结论**:项目初始化 + 标准开发流程接入
|
- **上次结论**:立项书 + 游戏设计 + 内容管线 3 份文档完成
|
||||||
- **下一步**:Phase 1 立项 — 确定游戏类型、目标用户、项目愿景
|
- **下一步**:锁定待决策项 → Codex 补充系统设计 → Phase 2 竞品深度调研
|
||||||
- **开发流程**:10 阶段门禁制(~/pro/kb/workflows/standard-dev-process/SKILL.md)
|
- **开发流程**:10 阶段门禁制(~/pro/kb/workflows/standard-dev-process/SKILL.md)
|
||||||
- **关键约束**:Canvas 渲染 | 首包 4MB | 无 DOM/BOM | 60fps 目标
|
- **关键约束**:Canvas 渲染 | 首包 4MB | 无 DOM/BOM | 60fps | 纯手写框架无引擎
|
||||||
- **KB 指针**:~/pro/kb/projects/wechat-minigame/
|
- **KB 指针**:~/pro/kb/projects/wechat-minigame/
|
||||||
<!-- END BRIEFING -->
|
<!-- END BRIEFING -->
|
||||||
|
|
||||||
|
|||||||
194
docs/01-project-charter.md
Normal file
194
docs/01-project-charter.md
Normal file
@@ -0,0 +1,194 @@
|
|||||||
|
# 01 Project Charter
|
||||||
|
|
||||||
|
## 1. 项目基本信息
|
||||||
|
|
||||||
|
| 字段 | 内容 |
|
||||||
|
|------|------|
|
||||||
|
| 项目名 | 城市抓猫猫 |
|
||||||
|
| 项目类型 | 微信小游戏 |
|
||||||
|
| 当前阶段 | 立项 / MVP 定义 |
|
||||||
|
| 平台约束 | Canvas 渲染、竖屏单手、首包 4 MB、无 DOM/BOM、60 fps 目标 |
|
||||||
|
| 文档目标 | 明确产品方向、MVP 范围、核心差异化与成功标准,作为后续设计和开发依据 |
|
||||||
|
|
||||||
|
## 2. 一句话定义
|
||||||
|
|
||||||
|
城市主题的"抓大鹅式堆叠三消"微信小游戏,玩家通过解锁全球城市、收集特色猫猫与城市图鉴,获得"解谜 + 旅行收藏"的双重体验。
|
||||||
|
|
||||||
|
## 3. 产品愿景
|
||||||
|
|
||||||
|
- 做一个不只是"换皮抓大鹅"的小游戏,而是具备长期扩展能力的城市收藏型解谜产品。
|
||||||
|
- 用"城市文化 + 猫猫 IP + 关卡挑战"形成可传播、可持续更新的内容结构。
|
||||||
|
- 在微信生态内验证"轻玩法 + 强主题 + 强收集"的产品路线。
|
||||||
|
|
||||||
|
## 4. 目标用户
|
||||||
|
|
||||||
|
**核心画像**
|
||||||
|
|
||||||
|
- **休闲解谜用户** -- 喜欢抓大鹅、羊了个羊、收纳、找物、消除类产品,追求短局放松和通关成就感。
|
||||||
|
- **女性和泛休闲用户** -- 对猫猫、旅行、城市文化、可爱视觉有偏好,愿意截图分享和收藏打卡。
|
||||||
|
- **微信生态用户** -- 碎片化游玩(通勤、午休、睡前),愿意分享和打卡,接受广告换奖励。
|
||||||
|
|
||||||
|
**市场数据支撑**
|
||||||
|
|
||||||
|
| 数据点 | 数值 | 来源 |
|
||||||
|
|--------|------|------|
|
||||||
|
| 微信小游戏 MAU | 5.71 亿 | 2025 微信公开课 |
|
||||||
|
| 微信渗透率 | 51.5% | 同上 |
|
||||||
|
| 40 岁以上用户占比 | 42.1% | 同上 |
|
||||||
|
| 女性用户占比 | 53% | 同上 |
|
||||||
|
| 主动找游戏(下拉/搜索/分享) | > 80% | 同上 |
|
||||||
|
| 2025 小程序游戏市场收入 | 535.35 亿元(YoY +34.39%) | DataEye 2025 报告 |
|
||||||
|
| 收入结构 -- IAP 占比 | 68.11% | 同上 |
|
||||||
|
| 收入结构 -- IAA 占比 | 31.89% | 同上 |
|
||||||
|
|
||||||
|
**用户获取关键路径**:微信下拉入口 > 好友分享卡片 > 搜索 > 广告投放。MVP 阶段优先依赖分享裂变和搜索自然流量。
|
||||||
|
|
||||||
|
## 5. 核心卖点
|
||||||
|
|
||||||
|
| # | 卖点 | 具体说明 |
|
||||||
|
|---|------|---------|
|
||||||
|
| 1 | 城市主题 | 每个城市都有独立视觉记忆点和特色物件(冰箱贴/纪念品/贴纸),形成可辨识的关卡身份 |
|
||||||
|
| 2 | 猫猫 IP | 每个城市对应一只特色猫猫(融合城市文化元素的参数化设计),形成收集驱动 |
|
||||||
|
| 3 | 探索 Meta | 通过城市解锁、护照盖章、图鉴完成度形成长期目标,激发完成主义动力 |
|
||||||
|
| 4 | 易上手 | 核心操作沿用成熟堆叠三消机制(点击拾取 → 槽位堆叠 → 三消消除),学习成本低,首局即懂 |
|
||||||
|
| 5 | 可扩展 | 城市内容包可持续更新(新洲/新城市/新猫猫),适合长线运营和版本节奏 |
|
||||||
|
|
||||||
|
## 6. 竞品对比
|
||||||
|
|
||||||
|
### 6.1 直接竞品对比表
|
||||||
|
|
||||||
|
| 维度 | 羊了个羊 | 抓大鹅 | Water Sort Puzzle | Hexa Sort | 城市抓猫猫(本项目) |
|
||||||
|
|------|---------|--------|-------------------|-----------|---------------------|
|
||||||
|
| 品类 | 堆叠三消 | 堆叠三消 | 排序解谜 | 排序 + 建造 | 堆叠三消 + 城市收藏 |
|
||||||
|
| 核心驱动 | 社交裂变 + 高难度情绪 | 活动运营 + 闯关 | 单局解谜快感 | 排序 + 建造 Meta | 通关 + 收集 + 打卡 + 解锁 |
|
||||||
|
| 主题/世界观 | 弱(纯抽象) | 中(杂物主题) | 弱(纯色水管) | 中(城镇建造) | 强(全球城市 + 猫猫 IP) |
|
||||||
|
| D1 留存 | 高(社交拉动) | 35-45% | 40-50% | 45-55% | 目标 > 40% |
|
||||||
|
| D30 留存 | 依赖社交热度,衰减快 | 中等 | < 10%(无 Meta 层) | > 15%(有建造 Meta) | 目标 > 8%(城市图鉴 Meta) |
|
||||||
|
| 长线内容 | 弱 | 中 | 弱 | 中(建造) | 强(城市包持续扩展) |
|
||||||
|
| 日活参考 | 峰值超 300 万 | 百万级 | 全球千万级下载 | 终身收入 $2700 万+ | -- |
|
||||||
|
| 变现模型 | IAA 为主 | IAA + 轻 IAP | IAA 为主 | IAA + IAP | IAA 为主 → 逐步加 IAP |
|
||||||
|
|
||||||
|
### 6.2 我们的差异化
|
||||||
|
|
||||||
|
- **不是单纯高难度情绪型产品**,而是"城市收藏型解谜" -- 用正向收集感替代挫败-裂变循环。
|
||||||
|
- **不是杂物堆叠**,而是统一的"城市纪念品 / 冰箱贴 / 贴纸"视觉体系 -- 每个城市关卡有清晰的文化身份。
|
||||||
|
- **不是单局刺激为主**,而是"通关 + 收集 + 打卡 + 解锁"复合驱动 -- 提供跨局的长期目标感。
|
||||||
|
- **通过城市内容系统和难度控制系统建立后续壁垒** -- 竞品可抄玩法,但不易复制完整的城市内容库和生产流水线。
|
||||||
|
|
||||||
|
## 7. 核心产品判断
|
||||||
|
|
||||||
|
| 判断维度 | 方向 |
|
||||||
|
|---------|------|
|
||||||
|
| 核心玩法 | 抓大鹅式堆叠三消(点击拾取 → 槽位堆叠 → 三消消除) |
|
||||||
|
| 包装方向 | 城市探索 + 猫猫收集(护照/图鉴/猫猫档案) |
|
||||||
|
| 变现方向 | IAA 为主(冷启动期占比约 80%),轻 IAP 为辅;成熟期目标 IAP 提升至 40-45% |
|
||||||
|
| 版本策略 | 先做小而完整的 MVP(1 洲 6 城市),验证后再扩洲、国家、城市 |
|
||||||
|
| 激励视频 eCPM | 约 60-120 元/千次曝光(微信小游戏休闲品类参考值) |
|
||||||
|
| 社交裂变贡献 | 目标 30-50% 新用户来自好友分享 |
|
||||||
|
| 2026 首发激励金 | 上限 400 万/款(微信小游戏首发激励计划) |
|
||||||
|
|
||||||
|
## 8. MVP 范围
|
||||||
|
|
||||||
|
### 8.1 进入 MVP
|
||||||
|
|
||||||
|
| 模块 | 范围 | 说明 |
|
||||||
|
|------|------|------|
|
||||||
|
| 城市地图 | 1 个洲(亚洲) | 作为首批内容包 |
|
||||||
|
| 城市数量 | 6 个:北京、东京、曼谷、首尔、新加坡、伊斯坦布尔 | 文化辨识度高、素材丰富、覆盖东亚/东南亚/西亚 |
|
||||||
|
| 城市元素 | 每城市 12-15 个特色元素(冰箱贴风格) | 建筑、美食、文化符号、交通工具等 |
|
||||||
|
| 猫猫形象 | 每城市 1 个猫猫头形象 | 融合城市文化元素的参数化猫猫设计 |
|
||||||
|
| 图鉴系统 | 1 套基础城市护照/图鉴系统 | 城市解锁进度、猫猫收集、护照盖章 |
|
||||||
|
| 每日挑战 | 1 套每日挑战 | 每日 1 关限时挑战,提供日常活跃目标 |
|
||||||
|
| 分享系统 | 1 套基础分享明信片 | 城市通关/猫猫收集成果分享卡片 |
|
||||||
|
| 激励视频广告 | 复活、重排、道具、奖励翻倍 | 核心变现手段 |
|
||||||
|
| 插屏广告 | 局后展示 | 严格控频(每 3 局最多 1 次,单日上限 5 次) |
|
||||||
|
|
||||||
|
### 8.2 不进入 MVP
|
||||||
|
|
||||||
|
| 排除项 | 原因 |
|
||||||
|
|--------|------|
|
||||||
|
| 复杂剧情 | MVP 聚焦玩法验证,剧情增加开发和内容成本 |
|
||||||
|
| 重社交系统(组队、实时对战) | 技术复杂度高,MVP 只做分享裂变 |
|
||||||
|
| 过深国家/洲多级地图运营玩法 | MVP 简化为"洲 → 城市"二级结构 |
|
||||||
|
| 大量皮肤付费系统 | MVP 不做 IAP,V1.1+ 再引入 |
|
||||||
|
| 多玩法混合模式 | MVP 只验证堆叠三消核心玩法 |
|
||||||
|
| IAP 内购 | MVP 只做 IAA 验证,V1.1+ 加入去广告月卡等轻 IAP |
|
||||||
|
|
||||||
|
## 9. 技术与内容壁垒
|
||||||
|
|
||||||
|
### 9.1 技术壁垒
|
||||||
|
|
||||||
|
| 壁垒 | 说明 |
|
||||||
|
|------|------|
|
||||||
|
| 城市内容系统 | 城市元素、标签、图鉴、封面、猫猫资产统一配置化(JSON 驱动),新增城市只需配置 + 资源,不改代码 |
|
||||||
|
| 可控难度生成器 | 控制遮挡层级、解法数、失败率、难度曲线;支持按城市/关卡精调,保证通关率在目标区间 |
|
||||||
|
| 资源分包策略 | 按洲/城市内容包加载,首包只含核心代码 + 首城资源;后续城市按需下载,保证首包 < 4 MB |
|
||||||
|
| 纯 Canvas 2D 手写框架 | 不用引擎(Cocos/Laya),首包预算约 2.5 MB;自研轻量渲染/事件/动画/资源管理模块 |
|
||||||
|
|
||||||
|
### 9.2 内容壁垒
|
||||||
|
|
||||||
|
| 壁垒 | 说明 |
|
||||||
|
|------|------|
|
||||||
|
| 参数化猫猫设计体系 | 基于统一猫猫基础形态 + 城市文化参数(服饰/配饰/颜色/表情),批量生成城市猫猫 |
|
||||||
|
| 城市纪念品视觉语言 | 扁平冰箱贴风格,统一线条粗细、调色板、圆角风格,形成系列感 |
|
||||||
|
| 可持续扩展的城市图库和图鉴数据 | 结构化城市数据(地标、美食、交通、文化符号),支持快速扩展新城市 |
|
||||||
|
| AI 生成 + 人工修正的内容生产流水线 | AI 出图(Midjourney/SD)→ 人工修正(一致性/尺寸/透明背景)→ 入库,单城市素材产出周期 2-3 天 |
|
||||||
|
|
||||||
|
## 10. 商业化思路
|
||||||
|
|
||||||
|
| 变现方式 | 触发场景 | 预估收入占比 | 阶段 |
|
||||||
|
|---------|---------|-------------|------|
|
||||||
|
| 激励视频 | 复活(通关失败时)、重排(牌面无解时)、获取道具、额外奖励翻倍 | 55-65% | MVP 起 |
|
||||||
|
| 插屏广告 | 局后结算页、城市解锁节点 | 15-20% | MVP 起 |
|
||||||
|
| 去广告月卡 | 12-18 元/月,免除所有强制广告 | 10-15% | V1.1+ |
|
||||||
|
| 猫猫装扮 | 猫猫皮肤/配饰付费解锁 | 3-5% | V1.1+ |
|
||||||
|
| 城市快速解锁 | 跳过通关直接解锁城市内容 | 2-5% | V1.1+ |
|
||||||
|
|
||||||
|
**变现节奏**:冷启动期 IAA 占比约 80%,成熟期目标 IAP 提升至 40-45%。
|
||||||
|
|
||||||
|
**分享裂变**:城市解锁、猫猫收集、护照打卡结果生成分享卡片 → 好友点击进入游戏。
|
||||||
|
|
||||||
|
**开发者分成**:基础 60% + 月流水梯度激励最高 10% = 最高可达 70%。
|
||||||
|
|
||||||
|
## 11. 成功指标
|
||||||
|
|
||||||
|
### 11.1 MVP 验证指标(上线 2 周内)
|
||||||
|
|
||||||
|
| 指标 | 目标值 | 说明 |
|
||||||
|
|------|--------|------|
|
||||||
|
| 新手首局完成率 | > 95% | 首关必须极简,验证新手引导有效性 |
|
||||||
|
| 单局时长 | 2-4 分钟 | 休闲小游戏最佳甜区,太短无沉浸感,太长碎片化不友好 |
|
||||||
|
| 次日留存(D1) | > 40% | 微信小游戏休闲品类合格线,低于此值需检查核心循环 |
|
||||||
|
| 激励视频完成率 | > 60% | 验证广告触发时机和奖励吸引力是否合理 |
|
||||||
|
| 首城通关率(6 关) | > 70% | 验证前 6 关难度曲线是否平滑 |
|
||||||
|
| 分享率(DAU 中分享人数占比) | > 15% | 验证分享明信片的传播动力 |
|
||||||
|
|
||||||
|
### 11.2 中期指标(上线 1-3 个月)
|
||||||
|
|
||||||
|
| 指标 | 目标值 | 说明 |
|
||||||
|
|------|--------|------|
|
||||||
|
| 7 日留存(D7) | > 20% | 验证城市解锁和图鉴系统能否提供跨日目标 |
|
||||||
|
| 30 日留存(D30) | > 8% | 验证 Meta 层(护照/图鉴/猫猫收集)的长期留存能力 |
|
||||||
|
| 人均解锁城市数 | > 3(6 城中) | 验证城市间推进动力是否足够 |
|
||||||
|
| 图鉴完成度(活跃用户平均) | > 40% | 验证收集系统的参与度 |
|
||||||
|
| ARPDAU | > 0.3 元 | 微信小游戏 IAA 品类基准线 |
|
||||||
|
| 自然新增占比 | > 50% | 验证产品自传播能力,降低获客成本依赖 |
|
||||||
|
|
||||||
|
## 12. 当前待锁定决策
|
||||||
|
|
||||||
|
| # | 决策项 | 建议方向 | 决策依据 | 状态 |
|
||||||
|
|---|--------|---------|---------|------|
|
||||||
|
| 1 | 消除机制 | 沿用抓大鹅堆叠三消,不做大变体 | 机制成熟、用户认知成本低、开发风险小 | 待确认 |
|
||||||
|
| 2 | 首页层级 | MVP 简化为"洲 → 城市"二级(去掉国家层) | 减少导航深度,MVP 只有 1 洲 6 城市,三级无意义 | 待确认 |
|
||||||
|
| 3 | 首批 6 城市 | 北京、东京、曼谷、首尔、新加坡、伊斯坦布尔 | 文化辨识度高、素材丰富、地理分布覆盖亚洲主要区域 | 待确认 |
|
||||||
|
| 4 | 美术风格 | 扁平冰箱贴风 | 辨识度高、AI 生成友好、适合小尺寸 Canvas 渲染 | 待确认 |
|
||||||
|
| 5 | 素材生产 | AI 出图 + 人工修正 | 单城市 2-3 天产出,成本可控,质量可接受 | 待确认 |
|
||||||
|
|
||||||
|
## 13. 下一步产出
|
||||||
|
|
||||||
|
| 产出物 | 文件 | 内容要点 |
|
||||||
|
|--------|------|---------|
|
||||||
|
| 核心玩法与系统设计 | `02-game-design.md` | 堆叠三消规则、槽位机制、道具设计、地图结构、图鉴系统、每日挑战规则 |
|
||||||
|
| 内容生产流水线 | `03-content-pipeline.md` | 城市数据结构(JSON schema)、素材规范(尺寸/格式/命名)、AI 生成 prompt 模板、人工修正 checklist |
|
||||||
|
| MVP 城市清单 | 同上或独立文档 | 6 城市元素清单(每城 12-15 个)、猫猫设计参数、封面/图鉴配置 |
|
||||||
|
| 核心玩法原型 | 代码原型 | 关卡生成规则草案、难度参数定义、核心交互 demo |
|
||||||
193
docs/02-game-design.md
Normal file
193
docs/02-game-design.md
Normal file
@@ -0,0 +1,193 @@
|
|||||||
|
# 02 Game Design — 城市抓猫猫
|
||||||
|
|
||||||
|
## 1. 核心玩法规则
|
||||||
|
|
||||||
|
### 1.1 基础机制
|
||||||
|
|
||||||
|
抓大鹅式堆叠三消:
|
||||||
|
|
||||||
|
- 场景中多层堆叠物件(城市特色元素:冰箱贴、美食、建筑、动物等)
|
||||||
|
- 上层物件遮挡下层,只有**未被完全遮挡**的物件可点击拾取
|
||||||
|
- 底部 **7 格暂存槽**
|
||||||
|
- 点击物件 → 飞入暂存槽 → 3 个同类物件自动消除
|
||||||
|
- 暂存槽满 7 格且无法消除 → 游戏失败
|
||||||
|
|
||||||
|
### 1.2 胜利/失败条件
|
||||||
|
|
||||||
|
| 条件 | 规则 |
|
||||||
|
|------|------|
|
||||||
|
| 胜利 | 清除场景中所有物件 |
|
||||||
|
| 失败 | 暂存槽满 7 格无法消除 |
|
||||||
|
| 时间 | 无时间限制(MVP 阶段),靠物件数量控制局时 2-4 分钟 |
|
||||||
|
|
||||||
|
### 1.3 道具系统(MVP)
|
||||||
|
|
||||||
|
| 道具 | 效果 | 免费额度 | 额外使用 |
|
||||||
|
|------|------|---------|---------|
|
||||||
|
| 重排 Shuffle | 重新打乱场景中剩余物件的堆叠顺序 | 每局 1 次 | 激励视频 |
|
||||||
|
| 撤回 Undo | 撤回最后拾取的 3 个物件放回场景原位 | 每局 1 次 | 激励视频 |
|
||||||
|
| 移出 Remove | 从暂存槽移出 3 个不同物件放到临时区(下次消除后回归暂存槽) | 每局 1 次 | 激励视频 |
|
||||||
|
|
||||||
|
### 1.4 操作交互
|
||||||
|
|
||||||
|
| 交互 | 规格 |
|
||||||
|
|------|------|
|
||||||
|
| 拾取方式 | 单点点击(不用拖拽) |
|
||||||
|
| 飞入动画 | 贝塞尔曲线路径,0.2s |
|
||||||
|
| 消除动画 | 闪光 + 缩放消失,0.3s |
|
||||||
|
| 通关动画 | 撒花 + 城市特色猫猫出现,1s |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 2. 地图结构
|
||||||
|
|
||||||
|
### 2.1 导航层级(MVP 简化为二级)
|
||||||
|
|
||||||
|
```
|
||||||
|
主页面:洲选择(3x3 棋盘)
|
||||||
|
└── 洲内页面:城市选择(3x3 棋盘)
|
||||||
|
└── 城市关卡(单局游戏)
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2.2 主页面设计
|
||||||
|
|
||||||
|
- 3x3 棋盘布局,每格代表一个洲
|
||||||
|
- MVP 只开放 1 个洲(亚洲),其余锁定显示"即将开放"
|
||||||
|
- 洲封面:标志性元素 + 解锁进度(如"3/9 城市已解锁")
|
||||||
|
|
||||||
|
### 2.3 洲内页面设计
|
||||||
|
|
||||||
|
- 3x3 棋盘布局,每格代表一个城市
|
||||||
|
- 城市封面:特色猫猫头像 + 城市名
|
||||||
|
- 已通关城市:猫猫头像点亮 + 通关星级
|
||||||
|
- 未解锁城市:灰色剪影 + 锁图标
|
||||||
|
- 解锁规则:顺序解锁(通关前一个解锁下一个),第 1 个城市默认解锁
|
||||||
|
|
||||||
|
### 2.4 城市关卡结构
|
||||||
|
|
||||||
|
每个城市包含 **6 个基础关卡**,全部通关才算"通关该城市"。
|
||||||
|
|
||||||
|
- 每关使用该城市 12-15 个特色元素中的 8-12 个
|
||||||
|
- 难度递增:关 1 用 6 种元素各 3 个,关 6 用 10 种元素各 3-4 个 + 更深堆叠
|
||||||
|
- 通关后获得该城市的猫猫收集卡
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 3. 城市猫猫系统
|
||||||
|
|
||||||
|
### 3.1 猫猫收集
|
||||||
|
|
||||||
|
- 每个城市对应 1 只特色猫猫
|
||||||
|
- 通关该城市所有 6 关 → 获得猫猫收集卡
|
||||||
|
- 猫猫头像作为城市封面显示在地图上
|
||||||
|
|
||||||
|
### 3.2 猫猫设计规则
|
||||||
|
|
||||||
|
每只猫猫的差异化维度:
|
||||||
|
|
||||||
|
| 维度 | 说明 |
|
||||||
|
|------|------|
|
||||||
|
| 品种暗示 | 不写实,用颜色和花纹暗示 |
|
||||||
|
| 城市穿戴 | 城市特色装饰(东京猫戴招财猫面具、北京猫戴虎头帽) |
|
||||||
|
| 视觉风格 | 统一扁平冰箱贴风格,确保一致性 |
|
||||||
|
|
||||||
|
### 3.3 猫猫展示
|
||||||
|
|
||||||
|
| 场景 | 表现 |
|
||||||
|
|------|------|
|
||||||
|
| 通关城市 | 猫猫出场动画(从屏幕外跳入 + 特效) |
|
||||||
|
| 图鉴页面 | 已收集猫猫陈列展示 |
|
||||||
|
| 未收集 | 灰色剪影 + "???" |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 4. 图鉴系统
|
||||||
|
|
||||||
|
### 4.1 城市图鉴
|
||||||
|
|
||||||
|
- 记录每个城市的通关状态、星级、特色元素收集进度
|
||||||
|
- 展示该城市文化小知识(1-2 句话)
|
||||||
|
|
||||||
|
### 4.2 猫猫图鉴
|
||||||
|
|
||||||
|
- 已收集猫猫陈列(按洲分类)
|
||||||
|
- 每只猫猫有名字 + 1 句话介绍
|
||||||
|
- 收集进度:X/Y 只
|
||||||
|
|
||||||
|
### 4.3 护照系统
|
||||||
|
|
||||||
|
- 每通关一个城市,护照盖一个章
|
||||||
|
- 护照页面可分享为"明信片"
|
||||||
|
- 护照进度是核心成就展示
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 5. 每日挑战
|
||||||
|
|
||||||
|
| 项目 | 规格 |
|
||||||
|
|------|------|
|
||||||
|
| 内容 | 每天 1 个随机城市的特殊关卡 |
|
||||||
|
| 难度 | 比普通关卡略高(更多物件种类、更深堆叠) |
|
||||||
|
| 奖励 | 金币(用于未来 IAP 系统)+ 特殊明信片 |
|
||||||
|
| 生成方式 | 程序化生成(基于难度参数随机组合) |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 6. 广告入口设计
|
||||||
|
|
||||||
|
| 广告类型 | 触发点 | 频次控制 |
|
||||||
|
|---------|--------|---------|
|
||||||
|
| 激励视频 | 失败后"复活"(清空暂存槽继续) | 每局最多 1 次 |
|
||||||
|
| 激励视频 | 使用额外道具(重排/撤回/移出) | 每种每局 1 次 |
|
||||||
|
| 激励视频 | 通关后"双倍奖励" | 每局可选 |
|
||||||
|
| 激励视频 | 每日签到奖励翻倍 | 每日 1 次 |
|
||||||
|
| 插屏广告 | 通关结算后(非失败后) | 每 3 局 1 次 |
|
||||||
|
|
||||||
|
原则:**失败后不弹插屏**(避免负面情绪叠加),激励视频全部可选不强制。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 7. 分享入口设计
|
||||||
|
|
||||||
|
| 触发点 | 分享内容 | 奖励 |
|
||||||
|
|--------|---------|------|
|
||||||
|
| 通关城市 | 城市猫猫卡片 + "我解锁了XX猫!" | 金币 |
|
||||||
|
| 护照盖章 | 护照截图 + 收集进度 | 道具 |
|
||||||
|
| 每日挑战通关 | 挑战结果卡片 | 金币 |
|
||||||
|
| 图鉴里程碑 | "已收集X只猫猫" | 特殊明信片 |
|
||||||
|
|
||||||
|
分享卡片设计:猫猫形象 + 城市背景色 + 进度信息 + 小程序入口按钮。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 8. 难度设计思路
|
||||||
|
|
||||||
|
### 8.1 难度参数
|
||||||
|
|
||||||
|
| 参数 | 范围 | 说明 |
|
||||||
|
|------|------|------|
|
||||||
|
| 物件种类数 | 6-12 | 种类越多,匹配越难 |
|
||||||
|
| 每种物件数量 | 3 的倍数(通常 3 或 6) | 必须是 3 的倍数保证可消除 |
|
||||||
|
| 堆叠层数 | 2-5 层 | 层数越多,可见物件越少 |
|
||||||
|
| 遮挡密度 | 低/中/高 | 物件重叠面积占比 |
|
||||||
|
| 总物件数 | 18-60 | 局时控制核心参数 |
|
||||||
|
|
||||||
|
### 8.2 城市内难度曲线
|
||||||
|
|
||||||
|
```
|
||||||
|
关1: 6种 × 3个 = 18件, 2层, 低遮挡 → 新手教学
|
||||||
|
关2: 7种 × 3个 = 21件, 2层, 低遮挡 → 轻松熟悉
|
||||||
|
关3: 8种 × 3个 = 24件, 3层, 中遮挡 → 开始有策略
|
||||||
|
关4: 9种 × 3个 = 27件, 3层, 中遮挡 → 需要思考
|
||||||
|
关5: 10种 × 3个 = 30件, 4层, 中高遮挡 → 考验规划
|
||||||
|
关6: 10种 × 3-6个 = 36件, 4层, 高遮挡 → Boss关
|
||||||
|
```
|
||||||
|
|
||||||
|
### 8.3 跨城市难度递进
|
||||||
|
|
||||||
|
| 城市序号 | 定位 | 特点 |
|
||||||
|
|---------|------|------|
|
||||||
|
| 城市 1(北京) | 教学城市 | 最简单,引导玩家熟悉机制 |
|
||||||
|
| 城市 2-3 | 平滑上升 | 物件种类增加,层级不变 |
|
||||||
|
| 城市 4-5 | 进阶挑战 | 引入更高层级 + 更多种类 |
|
||||||
|
| 城市 6 | 挑战级 | 最大物件数 + 最深堆叠 |
|
||||||
261
docs/03-content-pipeline.md
Normal file
261
docs/03-content-pipeline.md
Normal file
@@ -0,0 +1,261 @@
|
|||||||
|
# 03 Content Pipeline — 城市抓猫猫
|
||||||
|
|
||||||
|
## 1. 城市数据结构
|
||||||
|
|
||||||
|
每个城市是一个独立的内容包。使用 JS module 格式(微信小游戏 `require()` 不支持 JSON)。
|
||||||
|
|
||||||
|
### 1.1 城市配置
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
// cities/beijing.js
|
||||||
|
module.exports = {
|
||||||
|
id: 'beijing',
|
||||||
|
name: '北京',
|
||||||
|
nameEn: 'Beijing',
|
||||||
|
continent: 'asia',
|
||||||
|
// 地图封面
|
||||||
|
cover: {
|
||||||
|
catImage: 'images/cats/beijing.png', // 猫猫头像
|
||||||
|
bgColor: '#CC2936', // 城市主色调
|
||||||
|
},
|
||||||
|
// 城市文化信息
|
||||||
|
culture: {
|
||||||
|
tagline: '天安门前看猫猫', // 一句话标语
|
||||||
|
funFact: '北京是世界上拥有最多宫殿的城市', // 文化冷知识
|
||||||
|
},
|
||||||
|
// 特色元素列表(12-15个)
|
||||||
|
elements: [
|
||||||
|
{ id: 'beijing_01', name: '糖葫芦', category: 'food', image: 'elements/beijing/tanghulu.png' },
|
||||||
|
{ id: 'beijing_02', name: '京剧脸谱', category: 'culture', image: 'elements/beijing/opera_mask.png' },
|
||||||
|
// ... 12-15 个
|
||||||
|
],
|
||||||
|
// 关卡配置(6关)
|
||||||
|
levels: [
|
||||||
|
{ id: 1, elementCount: 6, piecesPerElement: 3, layers: 2, density: 'low' },
|
||||||
|
{ id: 2, elementCount: 7, piecesPerElement: 3, layers: 2, density: 'low' },
|
||||||
|
{ id: 3, elementCount: 8, piecesPerElement: 3, layers: 3, density: 'medium' },
|
||||||
|
{ id: 4, elementCount: 9, piecesPerElement: 3, layers: 3, density: 'medium' },
|
||||||
|
{ id: 5, elementCount: 10, piecesPerElement: 3, layers: 4, density: 'medium_high' },
|
||||||
|
{ id: 6, elementCount: 10, piecesPerElement: [3,3,3,3,3,6,3,3,3,3], layers: 4, density: 'high' },
|
||||||
|
],
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
**字段说明:**
|
||||||
|
|
||||||
|
| 字段 | 类型 | 必填 | 说明 |
|
||||||
|
|------|------|------|------|
|
||||||
|
| `id` | string | Y | 城市唯一标识,小写英文,用于文件路径 |
|
||||||
|
| `name` | string | Y | 中文名 |
|
||||||
|
| `nameEn` | string | Y | 英文名 |
|
||||||
|
| `continent` | string | Y | 所属洲 id |
|
||||||
|
| `cover.catImage` | string | Y | 猫猫头像路径(相对于资源根目录) |
|
||||||
|
| `cover.bgColor` | string | Y | 城市主色调 HEX |
|
||||||
|
| `culture.tagline` | string | Y | 一句话标语,不超过 10 个字 |
|
||||||
|
| `culture.funFact` | string | Y | 文化冷知识,不超过 25 个字 |
|
||||||
|
| `elements[].id` | string | Y | 格式 `{city_id}_{两位序号}` |
|
||||||
|
| `elements[].name` | string | Y | 元素中文名 |
|
||||||
|
| `elements[].category` | string | Y | 分类:`food` / `culture` / `landmark` / `nature` / `item` |
|
||||||
|
| `elements[].image` | string | Y | 图片路径(相对于资源根目录) |
|
||||||
|
| `levels[].piecesPerElement` | number\|number[] | Y | 3 的倍数;数组时长度须等于 `elementCount` |
|
||||||
|
|
||||||
|
### 1.2 洲索引配置
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
// continents/asia.js
|
||||||
|
module.exports = {
|
||||||
|
id: 'asia',
|
||||||
|
name: '亚洲',
|
||||||
|
nameEn: 'Asia',
|
||||||
|
bgColor: '#FF6B6B',
|
||||||
|
cities: ['beijing', 'tokyo', 'bangkok', 'seoul', 'singapore', 'istanbul'],
|
||||||
|
unlockOrder: ['beijing', 'tokyo', 'bangkok', 'seoul', 'singapore', 'istanbul'],
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
`unlockOrder` 决定城市解锁顺序:通关前一个城市后解锁下一个。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 2. 素材规范
|
||||||
|
|
||||||
|
### 2.1 元素图标
|
||||||
|
|
||||||
|
| 项目 | 规范 |
|
||||||
|
|------|------|
|
||||||
|
| 尺寸 | 128x128px @2x(实际渲染 64x64) |
|
||||||
|
| 格式 | PNG,透明背景 |
|
||||||
|
| 风格 | 扁平冰箱贴风 -- 圆角矩形白底 + 彩色图标 + 1px 浅灰描边 + 微投影 |
|
||||||
|
| 色彩 | 高饱和度,同城市内元素色彩需有区分度(消除时快速识别) |
|
||||||
|
| 命名 | `{city_id}_{序号}.png`,如 `beijing_01.png` |
|
||||||
|
|
||||||
|
### 2.2 猫猫头像
|
||||||
|
|
||||||
|
| 项目 | 规范 |
|
||||||
|
|------|------|
|
||||||
|
| 尺寸 | 封面 256x256px @2x + 图鉴 128x128px @2x |
|
||||||
|
| 格式 | PNG,透明背景 |
|
||||||
|
| 风格 | 正面朝向的扁平猫猫头,统一基础轮廓 + 城市特色装饰 |
|
||||||
|
| 差异化 | 通过颜色、花纹、头饰/装饰体现城市特色 |
|
||||||
|
| 命名 | `cat_{city_id}.png`(封面)、`cat_{city_id}_thumb.png`(图鉴) |
|
||||||
|
|
||||||
|
### 2.3 城市背景
|
||||||
|
|
||||||
|
- 不做复杂背景图
|
||||||
|
- 用城市主色调 (`bgColor`) 作为纯色/渐变底
|
||||||
|
- 可选:底部用 2-3 个城市地标的简笔剪影
|
||||||
|
|
||||||
|
### 2.4 音效
|
||||||
|
|
||||||
|
| 音效 | 描述 | 时长 |
|
||||||
|
|------|------|------|
|
||||||
|
| 点击拾取 | 轻快的"叮" | 0.1s |
|
||||||
|
| 三消消除 | 满足感的"嗒嗒嗒"连续音 | 0.3s |
|
||||||
|
| 通关 | 猫叫 + 欢快音效 | 1s |
|
||||||
|
| 失败 | 温和的失望音(不要太负面) | 0.5s |
|
||||||
|
|
||||||
|
格式要求:MP3,单声道,44.1kHz,单个文件 < 50KB。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 3. 猫猫生成规则
|
||||||
|
|
||||||
|
### 3.1 基础模板
|
||||||
|
|
||||||
|
所有猫猫基于统一的基础轮廓模板:
|
||||||
|
|
||||||
|
- 圆形头部
|
||||||
|
- 三角形耳朵
|
||||||
|
- 简笔五官(两眼 + 鼻 + 嘴 + 胡须)
|
||||||
|
|
||||||
|
### 3.2 差异化参数
|
||||||
|
|
||||||
|
| 参数 | 说明 | 示例 |
|
||||||
|
|------|------|------|
|
||||||
|
| `baseColor` | 主体毛色 | 北京: 橘色, 东京: 白色 |
|
||||||
|
| `pattern` | 花纹类型 | 虎斑 / 纯色 / 三花 / 奶牛 |
|
||||||
|
| `patternColor` | 花纹颜色 | -- |
|
||||||
|
| `accessory` | 头饰/装饰 | 北京: 虎头帽, 东京: 招财猫铃铛 |
|
||||||
|
| `expression` | 表情 | 微笑 / 眯眼 / 吐舌 |
|
||||||
|
|
||||||
|
### 3.3 生产流程
|
||||||
|
|
||||||
|
1. 用 AI 工具(Midjourney / DALL-E / Stable Diffusion)按参数生成初稿
|
||||||
|
2. Prompt 模板:
|
||||||
|
```
|
||||||
|
flat design cat head icon, {baseColor} cat with {pattern},
|
||||||
|
wearing {accessory}, cute, simple, sticker style,
|
||||||
|
white background, no text
|
||||||
|
```
|
||||||
|
3. 人工修正:统一线条粗细、色彩饱和度、整体风格一致性
|
||||||
|
4. 导出 2 个尺寸(256px + 128px)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 4. 关卡配置格式
|
||||||
|
|
||||||
|
### 4.1 难度参数
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
{
|
||||||
|
elementCount: 8, // 使用多少种元素
|
||||||
|
piecesPerElement: 3, // 每种元素几个(必须是 3 的倍数)
|
||||||
|
layers: 3, // 堆叠层数
|
||||||
|
density: 'medium', // 遮挡密度:low / medium / medium_high / high
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
**难度递进规律:** 关 1-2 低密度入门 -> 关 3-4 中密度爬坡 -> 关 5-6 高密度挑战。关 6 允许 `piecesPerElement` 为数组,制造不均匀分布的额外难度。
|
||||||
|
|
||||||
|
### 4.2 关卡布局生成
|
||||||
|
|
||||||
|
不手工摆放物件位置,用程序化生成器:
|
||||||
|
|
||||||
|
- **输入:** 难度参数 + 城市元素列表
|
||||||
|
- **输出:** 每个物件的 `{ elementId, x, y, layer, rotation }`
|
||||||
|
- **生成约束:**
|
||||||
|
- 每层物件不超过总数的 40%
|
||||||
|
- 最底层至少有 30% 的物件初始可点击
|
||||||
|
- 保证可解性(从目标状态反向推导)
|
||||||
|
|
||||||
|
### 4.3 难度验证
|
||||||
|
|
||||||
|
用脚本模拟 1000 次随机合理操作,验证通关率:
|
||||||
|
|
||||||
|
| 关卡 | 目标通关率 |
|
||||||
|
|------|-----------|
|
||||||
|
| 关 1 | > 95% |
|
||||||
|
| 关 2 | > 90% |
|
||||||
|
| 关 3 | > 80% |
|
||||||
|
| 关 4 | > 70% |
|
||||||
|
| 关 5 | > 60% |
|
||||||
|
| 关 6 | 50-60% |
|
||||||
|
|
||||||
|
失败率过高时降低 `density` 或 `layers`。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 5. 分包策略
|
||||||
|
|
||||||
|
### 5.1 包体划分
|
||||||
|
|
||||||
|
```
|
||||||
|
主包(<= 4MB):
|
||||||
|
├── game.js + js/(核心框架、渲染引擎、游戏逻辑) ~150KB
|
||||||
|
├── images/ui/(通用 UI 元素、按钮、图标) ~300KB
|
||||||
|
├── images/cats/beijing.png(首个城市猫猫头像) ~50KB
|
||||||
|
├── audio/(通用音效,6-8 个) ~300KB
|
||||||
|
├── cities/beijing.js(首个城市数据配置) ~5KB
|
||||||
|
└── images/elements/beijing/(首个城市元素图标) ~200KB
|
||||||
|
─────────
|
||||||
|
~1005KB
|
||||||
|
|
||||||
|
分包 - 城市包(每包 <= 2MB):
|
||||||
|
└── sub-asia/
|
||||||
|
├── cities/tokyo.js + bangkok.js + ...
|
||||||
|
├── images/elements/tokyo/ + bangkok/ + ...
|
||||||
|
└── images/cats/tokyo.png + bangkok.png + ...
|
||||||
|
```
|
||||||
|
|
||||||
|
### 5.2 首包预算分配
|
||||||
|
|
||||||
|
| 内容 | 预估大小 | 说明 |
|
||||||
|
|------|---------|------|
|
||||||
|
| 代码(框架 + 逻辑) | ~150KB | 纯 Canvas 手写,无引擎 |
|
||||||
|
| 通用 UI 素材 | ~300KB | 按钮、图标、背景、字体 |
|
||||||
|
| 首城市素材(北京) | ~250KB | 15 元素 + 猫猫 + 封面 |
|
||||||
|
| 音效 | ~300KB | 6-8 个通用音效 |
|
||||||
|
| **合计** | **~1000KB** | **利用率 25%,空间充裕** |
|
||||||
|
|
||||||
|
### 5.3 加载策略
|
||||||
|
|
||||||
|
- 进入洲页面时预下载该洲分包(`wx.preDownloadSubpackage`)
|
||||||
|
- 单个城市包预估:配置 ~5KB + 元素图 15x10KB = ~155KB + 猫猫 ~30KB = ~190KB
|
||||||
|
- 6 城市约 1.14MB,在分包限制内
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 6. MVP 城市清单与素材计划
|
||||||
|
|
||||||
|
### 6.1 首批 6 城市
|
||||||
|
|
||||||
|
| 城市 | 元素主题方向 | 猫猫特色 |
|
||||||
|
|------|------------|---------|
|
||||||
|
| 北京 | 糖葫芦、京剧脸谱、天安门、烤鸭、兔儿爷、长城砖、故宫角楼、豆汁、二锅头、鸟巢、铜锣、毛笔 | 橘猫 + 虎头帽 |
|
||||||
|
| 东京 | 寿司、招财猫、富士山、樱花、鸟居、拉面、抹茶、浮世绘、新干线、达摩、和服扇、章鱼烧 | 白猫 + 招财猫铃铛 |
|
||||||
|
| 曼谷 | 冬阴功、嘟嘟车、大象、泰拳手套、芒果糯米饭、金佛、莲花、榴莲、泰丝、椰子、船面、佛塔 | 暹罗猫配色 + 泰式花环 |
|
||||||
|
| 首尔 | 泡菜坛、石锅拌饭、韩服、景福宫、烧酒瓶、年糕、K-pop 话筒、太极旗扇、韩式炸鸡、柿子、海苔卷 | 韩国短尾猫 + 韩服小帽 |
|
||||||
|
| 新加坡 | 鱼尾狮、辣椒螃蟹、榴莲建筑、叻沙、金沙酒店、兰花、肉骨茶、冰激凌三明治、组屋、咖椰吐司 | 花猫 + 小狮子鬃毛 |
|
||||||
|
| 伊斯坦布尔 | 土耳其红茶、蓝色清真寺、热气球、烤肉串、郁金香、恶魔之眼、土耳其冰淇淋、地毯、石榴、旋转舞裙 | 安哥拉猫 + 恶魔之眼项圈 |
|
||||||
|
|
||||||
|
### 6.2 生产时间估算(单城市)
|
||||||
|
|
||||||
|
| 步骤 | 耗时 | 说明 |
|
||||||
|
|------|------|------|
|
||||||
|
| 元素清单确认 | 0.5h | 确定 12-15 个特色元素 |
|
||||||
|
| AI 出图 | 1h | Prompt 生成 + 筛选 |
|
||||||
|
| 人工修正 | 2-3h | 统一风格、调色、切图 |
|
||||||
|
| 猫猫设计 | 1h | AI 出图 + 人工修正 |
|
||||||
|
| 数据配置 | 0.5h | 写城市 JS module |
|
||||||
|
| **单城市合计** | **5-6h** | -- |
|
||||||
|
| **6 城市合计** | **30-36h** | 可并行压缩 |
|
||||||
Reference in New Issue
Block a user