Files
NumberSwipe_New/docs/PRODUCT.md
T
cabinw 56ac6f317f 移除玩法二(连连气球),产品收敛为两个玩法
- 删除 modes/02-connect-1234 全部内容(历史见首个提交 8026e46)
- 重写根 README:共同规则、两玩法差异、仓库结构、快速开始、关卡、工程约定、文档索引、路线
- PRODUCT.md / design.md / shared/README / 两份 GDD / 玩法一 README 去掉玩法二引用
- 保留 01 / 03 目录编号并注明原因(存档桶名、Cocos 资源路径)
2026-09-16 14:47:04 +08:00

3.3 KiB
Raw Blame History

产品结构

这是一个多玩法休闲 puzzle,不是单一机制的游戏。两个玩法共用一个壳,规则、盘面模型和关卡彼此独立。

工作名沿用目录 number-swipe。上架名未定。两个玩法各自有对外名称。

目录编号保留 01 / 03:曾有玩法二(连连气球),2026-09-16 放弃并移出仓库。编号同时是存档桶名和 Cocos 资源路径,不要重排。

目录

number-swipe/
  docs/PRODUCT.md                 本文件:壳、隔离规则、玩法清单
  docs/design.md                  UI 设计规范:令牌、组件、动效(玩法一为参考实现)
  docs/design.html                同上的设计师版:色板、样张、可回放动效
  modes/
    01-number-stroke/             玩法一 · 数字一笔
      docs/GDD.md
      levels/
    03-hex-walls/                 玩法三 · 六边一笔
      docs/GDD.md
      levels/
  shared/                         壳:选玩法、设置、存档索引、广告位

隔离规则

  1. 玩法之间禁止互相引用。 modes/* 之间不得互相 import。
  2. 规则、求解器、关卡、对局视图属于玩法。 盘面模型不默认共用。玩法一是矩形格,玩法三是六边形 + 边墙,即使都是“顺序一笔画”也各写一份。
  3. shared/ 只放壳。 允许:玩法注册表、首页选玩法、设置、存档索引、广告位、安全区、通用按钮皮肤。禁止:过关判定、邻接、提示算法、关卡 JSON。
  4. 存档按玩法分桶。 mode:01-number-stroke / mode:03-hex-walls。
  5. 原型按玩法分开跑。 各玩法的 Web 原型进自己的 web/。不要求绑在同一个 index.html。
  6. Cocos 按玩法切场景。 资源与脚本放 assets/modes/<id>/。

壳看到的入口:

interface PuzzleMode {
  id: string;
  title: string;
  mount(root: HTMLElement, ctx: ShellContext): void;
  unmount(): void;
}

ShellContext 只提供存档读写、音效、振动、返回首页。

玩法清单

id 目录 类型 状态 规格
01-number-stroke modes/01-number-stroke 关卡逻辑:矩形一笔画 + 序号 M1/M2:Web 原型可玩,26 关(教学 10 + 进阶 10 + 奇偶 6) GDD
03-hex-walls modes/03-hex-walls 关卡逻辑:六边形一笔画 + 边墙 M1/M2:Web 原型可玩,10 关 + 转墙实验包 9 关 GDD

一和三同属路径推理,但几何和障碍不同,不是 DLC 关系。

新玩法开工顺序:写该玩法 GDD → 锁规则 → 再写该玩法的 src/。

共享决策(全产品)

  • 手机竖屏,单机,离线可玩
  • 默认无体力、无计时、无分数
  • 竖直切面无广告;上线后的去广告 / 激励视频由壳统一接
  • 先 Web 原型验证该玩法,再进 Cocos
  • 关卡、美术全部原创,不使用第三方题库和素材

里程碑(产品级)

阶段 内容
现在 两个玩法独立可运行,均为关卡原型(M1/M2),未进 Cocos
各玩法 M1 只在自己的 modes/<id> 里做可玩原型,互不阻塞
壳 两个玩法原型都已可玩,选玩法首页可以开工

任意一个玩法都可以单独推进,不必互相等待。