diff --git a/README.md b/README.md index 71880d465..5ff51c8e5 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,35 @@ -# echo-nexus +# 回响星核 / Echo Nexus -回响星核 Echo Nexus - 原创深空考古放置策略游戏 | Original deep-space archaeology idle strategy game \ No newline at end of file +> 原创深空考古放置策略游戏 · Original deep-space archaeology idle strategy game + +你是一名深空考古指挥官,驾驶自治勘探舰回收已「飞升」的以太文明遗留的记忆晶体,解码碎片拼凑出他们的故事,并最终跨越维度发起「接触」。 + +## 项目状态 + +- **版本**:v0.1(MVP 开发中) +- **栈**:Next.js 16 · TypeScript · Tailwind · shadcn/ui · Canvas · Zustand · Prisma +- **仓库**:https://git.atdunbg.xyz/Super_Z/echo-nexus + +## 文档 + +- [`docs/01-调研报告.md`](docs/01-调研报告.md) — 游戏市场调研 +- [`docs/02-游戏设计文档.md`](docs/02-游戏设计文档.md) — GDD 策划设计 +- [`docs/03-技术架构.md`](docs/03-技术架构.md) — 技术架构 + +## 核心特色 + +- **解码共振谜题**:把放置游戏的「等待」变成有节奏的主动小谜题 +- **碎片涌现叙事**:故事从解码中自然浮现,不打断玩法 +- **深空全息美学**:晶体 + 粒子 + 共振波纹的差异化视觉 +- **飞升多周目**:终局「接触」后保留蓝图开启新周目 + +## 开发路线 + +- v0.1 放置 + 解码 + 技术树 + 图谱 + 飞升(当前) +- v0.2 遗迹探险肉鸽 +- v0.3 音频 + 全局星潮 socket 事件 +- v0.4 云存档 + 排行榜 +- v0.5 全 5 纪元叙事 + 隐藏内容 + +--- +© Super_Z · 持续开发中 diff --git a/docs/01-调研报告.md b/docs/01-调研报告.md new file mode 100644 index 000000000..a17096b82 --- /dev/null +++ b/docs/01-调研报告.md @@ -0,0 +1,95 @@ +# 游戏市场调研报告 + +> 调研日期:2025 年(持续更新) +> 调研者:Super_Z +> 目的:为原创游戏《回响星核 / Echo Nexus》的设计提供数据支撑,避免落入「1:1 复刻」陷阱。 + +--- + +## 一、市场大盘(数据时效性已核实,多源交叉验证) + +### 1.1 浏览器 / HTML5 游戏市场 +- **市场规模**:2025 年浏览器游戏市场约 **78 亿 ~ 118 亿美元**(不同机构口径略有差异),预计 2033-2034 年达到 **92 亿 ~ 163 亿美元**,CAGR 约 3.5%。 + - 来源:Research and Markets(78.1 亿→80.1 亿)、Dataintelo(118 亿→163 亿)、Business Research Insights。 +- **HTML5 游戏细分**:2024 年约 53.2 亿美元,2033 年预计 92.2 亿美元,CAGR 约 7.7%(LinkedIn / Metastat)。 +- **供给爆发**:2025 年有 **15,000+** 款 HTML5 新作上线,同比增长 **2.7 倍**(Business Research Insights)。 +- **技术趋势**:WebAssembly 让浏览器游戏性能逼近原生;WebGL/WebGPU 渲染能力持续提升。 + +**结论**:浏览器游戏是增长赛道,**可及性高、潜在受众巨大(尤其国际市场)**,但供给端竞争激烈,**必须靠差异化创新突围**。 + +### 1.2 独立游戏品类格局(Steam 视角) +- **2025 年叙事游戏**成为 Steam 达到 1000 评价数量最多的品类(#1),超越传统品类(HowToMarketAGame 年度报告)。 +- **新一代独立原生品类**:开放世界生存、卡牌构筑(deckbuilder)、Roguelike 持续走强(SuperJump)。 +- **红海/饱和品类**(Reddit 独开者共识,建议避开正面对撞):Roguelike Deckbuilder、视觉小说、本地合作、4X。 +- **2025 独立代表作**:Hades II、Deltarune、Ways of Alchemy、Cluckmech Oasis 等。 + +**结论**:纯复刻热门品类(如又一款肉鸽卡牌)会被淹没;**叙事 + 创新机制组合**是突破口。 + +### 1.3 放置 / 增量(Idle / Incremental)品类 +- **极强留存**:Idle 类天然契合浏览器场景,代表作 Cookie Clicker、Universal Paperclips、Melvor Idle 长盛不衰。 +- **2025 热度持续**:GameSpot、Bits N' Pixels 年度榜单均大量收录 idle/clicker 游戏。 +- **典型玩法**:资源自动累积 + 主动操作 + 解锁/重置(prestige)循环。 +- **优势**:开发成本可控、留存曲线平缓、适合持续迭代。 + +### 1.4 玩家留存关键洞察 +- **核心循环(core loop)**是留存的根基;D1/D7/D30 是关键基准。 +- **渐进式功能发现**:让玩家逐步解锁新机制,避免一次性信息过载。 +- **社交连接 + 流畅运营**:长期留存的两大支柱。 +- **动机分层**:成就型、探索型、社交型玩家需要差异化设计。 + +--- + +## 二、竞品分析与差异化机会 + +| 维度 | 主流放置游戏 | 主流叙事游戏 | 主流肉鸽 | 《回响星核》定位 | +|---|---|---|---|---| +| 核心 | 数值增长 | 剧情推进 | 战斗随机 | **解码谜题 + 放置 + 探险** | +| 叙事 | 弱/无 | 强但线性 | 弱 | **碎片化叙事,由玩法涌现** | +| 美术 | 简笔画/像素 | 插画 | 像素 | **全息晶体 + 深空粒子美学** | +| 留存钩子 | prestige | 章节 | 随机性 | **「接触」终局 + 多周目** | +| 单局 | 长 | 中 | 短 | **可长可短(放置 + 主动)** | + +**差异化结论**: +1. 没有任何一款主流游戏同时是「深空考古 + 记忆解码谜题 + 放置 + 肉鸽探险 + 碎片叙事」。 +2. 叙事由解码行为**涌现**而非过场灌输,符合 2025 叙事品类崛起趋势。 +3. 放置核心保证留存,解码谜题提供主动乐趣,探险提供随机性重玩价值。 + +--- + +## 三、技术选型调研结论 + +- **框架**:Next.js 16(App Router)+ TypeScript —— 本项目既有栈,SSR/路由/API 一体化,适合 web 游戏。 +- **渲染**:2D 场景用 **HTML5 Canvas**(星空/粒子/晶体动画),UI 用 **React + shadcn/ui**。3D 暂不需要,控制复杂度。 +- **状态**:Zustand(客户端)+ localStorage 持久化;后续可接 API 同步存档。 +- **后端**:Next.js API Routes + Prisma(SQLite),承载存档同步、全局统计、(后续)排行榜。 +- **实时**:socket.io 小服务,用于全局「星潮」事件(后续阶段)。 + +**结论**:在既有 Next.js 栈内即可实现,无需引入重框架,性能与可维护性平衡良好。 + +--- + +## 四、设计原则(源自调研) + +1. **原创优先**:不做任何现有游戏的 1:1 复刻,机制组合与世界观均自创。 +2. **核心循环扎实**:放置产出 → 解码消耗 → 解锁成长 → 探险扩张 → 终局「接触」。 +3. **叙事涌现**:故事从解码碎片中拼出,不打断玩法。 +4. **渐进披露**:功能随进度解锁,符合留存最佳实践。 +5. **视觉差异化**:全息晶体 + 深空粒子,第一眼即与同类区分。 +6. **可持续迭代**:模块化架构,便于后续通过工单需求持续扩展。 + +--- + +## 五、数据来源清单(真实性/时效性核验) + +1. Business Research Insights — Browser Games Market Report +2. Research and Markets — Browser Games Market 2026 +3. Dataintelo — Browser Game Market Research 2034 +4. Metastat Insights — HTML5 Games Market 2030 +5. LinkedIn (行业分析) — Casual HTML5 Games 2024-2033 +6. HowToMarketAGame — 2025 Steam 品类年度报告 +7. SuperJump — State of Indie Games 2025 +8. GameSpot / Bits N' Pixels — 2025 Idle 游戏榜单 +9. GameDesignSkills / GameDeveloper — 留存策略 17 条 +10. Reddit r/incremental_games、r/gamedev 社区共识 + +所有数据均为 2024-2026 年发布,时效性满足设计决策需要。 diff --git a/docs/02-游戏设计文档.md b/docs/02-游戏设计文档.md new file mode 100644 index 000000000..a6ed61ad4 --- /dev/null +++ b/docs/02-游戏设计文档.md @@ -0,0 +1,141 @@ +# 《回响星核 / Echo Nexus》游戏设计文档 (GDD) + +> 版本:v0.1(首发概念版) +> 作者:Super_Z +> 状态:设计已定稿,进入实现阶段 + +--- + +## 一、一句话概念 + +**你是一名深空考古指挥官,驾驶自治勘探舰回收已「飞升」的以太文明遗留的记忆晶体,解码碎片拼凑出他们的故事,并最终跨越维度发起「接触」。** + +## 二、游戏定位 + +- **品类**:深空考古放置策略 + 记忆解码谜题 + 肉鸽探险 + 涌现叙事 +- **平台**:现代浏览器(桌面优先,移动适配) +- **单局时长**:可长可短(放置 30 秒也有产出;主动游玩 10-30 分钟一轮探险) +- **目标留存**:D1 > 40%,D7 > 15%(idle 品类基准之上) +- **差异化**:业界首个「解码谜题驱动叙事涌现」的放置游戏 + +## 三、世界观 + +数万年前,银河系存在一个高度发达的文明——**以太族(Aetherians)**。他们没有灭亡,而是集体「飞升」到了更高维度。临走前,他们将文明的知识与记忆封存在遍布星系的**记忆晶体(Memory Crystals)**中,作为留给后来者的「面包屑」——只待某个文明能解读足够多的晶体,便有资格发起「接触」。 + +玩家扮演人类深空考古局的指挥官,舰载 AI「回响(Echo)」辅助你勘探遗迹、回收晶体、解码记忆。 + +## 四、核心循环 + +``` + ┌─────────────────────────────────────────────┐ + ▼ │ + [自治无人机采矿] ──产出──> [记忆晶体库存] │ + │ │ + [解码谜题] <── 主动操作 │ + │ │ + ┌──────────────┼──────────────┐ │ + ▼ ▼ ▼ │ + [记忆碎片] [技术洞见] [剧情片段] │ + (叙事资源) (解锁升级) (拼凑故事) │ + │ │ │ │ + └──────────────┴──────────────┘ │ + │ │ + [发起遗迹探险] ─肉鸽─> 新晶体类型 + │ │ + [「接触」进度条 ↑] │ + │ │ + ────── 达成 100% ───── 终局 / 新周目 +``` + +**核心循环一句话**:采矿→解码→成长→探险→填满接触条→新周目。 + +## 五、核心系统 + +### 5.1 记忆晶体采集(Idle 核心) +- 自治无人机以 **晶体/秒** 速率自动产出记忆晶体。 +- 玩家可主动「脉冲扫描」(点击/按键)获得瞬时增量 + 连击加成。 +- 离线时按 50% 效率持续产出(最多累积 8 小时)。 + +### 5.2 解码系统(主动玩法核心 ⭐) +每颗晶体需经「解码」才能释放其中内容。解码是一个**原创的图案共振谜题**: +- 屏幕呈现一个由发光节点构成的**共振阵列**(类似星图)。 +- 玩家需在限定步数内,按特定**共振顺序**点亮节点,使能量流闭合形成回路。 +- 成功 → 释放记忆碎片 + 技术洞见 + 剧情片段。 +- 不同晶体等级 / 类型 → 阵列规模与共振规则不同(渐进难度)。 +- **设计意图**:把「解码」从被动等待变成有节奏的主动小谜题,避免放置游戏「只挂机不动手」的枯燥。 + +### 5.3 技术树(成长系统) +四个分支,由「技术洞见」解锁: +- **采矿**:提升晶体/秒、仓库上限、离线效率。 +- **解码**:降低解码步数消耗、解锁阵列提示、自动解码低级晶体。 +- **探险**:提升探险成功率、降低风险、增加稀有晶体掉落。 +- **叙事**:解锁更深记忆层、揭示隐藏剧情、提升「接触」进度转化率。 + +### 5.4 遗迹探险(Roguelike 层) +- 消耗「能量」向随机生成的遗迹节点图派出探险队。 +- 每个节点有事件(战斗/解谜/宝藏/抉择),路径分支。 +- 失败损失探险队,成功带回稀有晶体 + 大量洞见 + 独有剧情。 +- 单次探险 10-30 分钟,提供短期目标与随机性重玩价值。 + +### 5.5 碎片叙事(叙事层) +- 解码与探险产出的「记忆碎片」自动归档到**记忆图谱(Memory Codex)**。 +- 图谱以星图形式呈现,碎片拼合后揭示以太族编年史(5 个纪元)。 +- 关键碎片触发**「回响回放」**——一段沉浸式全息短叙(文字 + 视觉),但**绝不打断玩法**(可随时关闭)。 + +### 5.6 「接触」终局与多周目 +- 全部行为累积「接触进度」。 +- 达 100% → 触发终局「接触」事件(戏剧性叙事高潮)。 +- 之后可选择**飞升(Prestige)**进入新周目:保留叙事图谱与技术蓝图的一部分,重置数值,开启更高难度与隐藏内容。 + +## 六、美术与音频方向 + +- **视觉**:深空黑紫底色 + 全息青/品虹光晶体 + 流动星尘粒子。整体「冷峻神秘 + 科技仪式感」。 +- **字体**:标题用未来感无衬线,正文清晰可读。 +- **动效**:晶体生长、解码共振波纹、粒子涌动、飞升白光。 +- **音频**:环境氛围 pad + 解码成功清脆音 + 关键叙事轻旋律(后续阶段)。 + +## 七、UI 信息架构 + +``` +顶栏:晶体库存 | 接触进度 | 能量 | 设置 +左侧:主视图(Canvas 星空 + 晶体集群 + 解码阵列) +右侧:标签面板 + - 采矿 (Mining) + - 解码 (Decode) ⭐默认 + - 技术 (Tech) + - 探险 (Expedition) + - 记忆图谱 (Codex) +底栏:当前目标提示 | 在线/离线收益 | 版本号 +``` + +## 八、首版(v0.1)MVP 范围 + +为快速验证核心乐趣,首版聚焦: +- [x] 放置采矿(晶体/秒 + 主动脉冲) +- [x] 解码共振谜题(3 种阵列规模) +- [x] 技术树 4 分支 × 3 级 = 12 个升级 +- [x] 记忆图谱(首纪元 8 个碎片) +- [x] 接触进度 + 飞升(Prestige) +- [x] localStorage 存档 + 离线收益 +- [x] 精美 Canvas 星空背景 + 晶体动画 +- [x] 响应式布局(桌面/移动) + +**v0.1 暂不做**:遗迹探险肉鸽、socket 全局事件、音频、多语言切换、账号云存档(留待后续版本/工单驱动)。 + +## 九、后续路线图 + +- **v0.2**:遗迹探险肉鸽系统 +- **v0.3**:音频系统 + 全局「星潮」socket 事件 +- **v0.4**:账号云存档 + 排行榜 +- **v0.5**:多周目隐藏内容 + 全 5 纪元叙事 +- **持续**:根据工单需求迭代 + +## 十、设计风险与对策 + +| 风险 | 对策 | +|---|---| +| 解码谜题单调 | 多种阵列规则 + 自动解码低级晶体 | +| 放置枯燥 | 主动脉冲 + 连击 + 探险提供短期目标 | +| 叙事打断玩法 | 所有叙事可跳过,图谱自愿浏览 | +| 数值膨胀 | 飞升重置 + 指数曲线校准 | +| 移动端操作 | 解码阵列适配触控,UI 自适应 | diff --git a/docs/03-技术架构.md b/docs/03-技术架构.md new file mode 100644 index 000000000..139366264 --- /dev/null +++ b/docs/03-技术架构.md @@ -0,0 +1,109 @@ +# 技术架构设计 + +## 一、技术栈 + +| 层 | 技术 | 说明 | +|---|---|---| +| 框架 | Next.js 16 (App Router) | 既有栈,SSR + API 一体 | +| 语言 | TypeScript 5 | 全量类型 | +| 样式 | Tailwind CSS 4 + shadcn/ui | 既有 UI 组件库 | +| 渲染 | HTML5 Canvas 2D | 星空/粒子/晶体/解码阵列 | +| 客户端状态 | Zustand + persist | 游戏状态 + localStorage 持久化 | +| 服务端状态 | TanStack Query(按需) | 存档同步、统计 | +| 后端 | Next.js API Routes | 存档同步、全局统计 | +| 数据库 | Prisma + SQLite | 存档、统计(v0.4+) | +| 实时 | socket.io mini-service | 全局「星潮」事件(v0.3+) | + +## 二、目录结构 + +``` +src/ + app/ + page.tsx # 游戏主入口(唯一用户可见路由) + layout.tsx + api/ + save/route.ts # 存档同步(v0.4+) + stats/route.ts # 全局统计 + components/ + game/ # 游戏专属组件 + StarfieldCanvas.tsx # 星空背景 + CrystalCluster.tsx # 晶体集群 + DecodeArray.tsx # 解码共振阵列 ⭐ + ResourceBar.tsx # 顶栏资源 + MiningPanel.tsx + TechTree.tsx + Codex.tsx # 记忆图谱 + PrestigeDialog.tsx + ui/ # shadcn/ui 既有 + lib/ + game/ # 游戏逻辑(纯函数,可测) + config.ts # 数值配置 + types.ts # 类型 + engine.ts # 核心 tick 引擎 + decode.ts # 解码谜题逻辑 + tech.ts # 技术树 + codex.ts # 叙事数据 + prestige.ts # 飞升 + db.ts # Prisma + store/ + gameStore.ts # Zustand 游戏状态 + hooks/ + useGameLoop.ts # 主循环 + use-toast.ts # 既有 +``` + +## 三、状态模型(Zustand) + +```ts +interface GameState { + // 资源 + crystals: number; // 记忆晶体(主货币) + insights: number; // 技术洞见 + fragments: Record; // 已获碎片 + contact: number; // 接触进度 0-100 + + // 产能 + crystalsPerSec: number; // 由技术树计算 + pulsePower: number; // 主动脉冲产出 + + // 技术 + tech: Record; // 各技术等级 + + // 飞升 + ascensions: number; + blueprints: string[]; // 保留的蓝图 + + // 解码 + currentCrystal: Crystal | null; + + // 元 + lastTick: number; + prestige: PrestigeBonus; +} +``` + +## 四、核心循环引擎 + +- 客户端 `setInterval` 每 100ms tick 一次。 +- 每次 tick:`crystals += crystalsPerSec * dt`。 +- 离线收益:加载时计算 `now - lastTick`,按 50% 效率补发(上限 8h)。 +- 状态自动持久化到 localStorage(Zustand persist,节流 1s)。 + +## 五、解码谜题实现 + +- 阵列 = 节点图(邻接表),每节点有 `resonance` 值。 +- 共振规则:玩家依序点击节点,相邻点击须满足 `resonance` 差值 ≤ 阈值,且最终形成闭合回路。 +- 步数限制:规模 3×3=9 节点 / 4×4=16 / 5×5=25,步数上限分别为 6/10/15。 +- 成功 → 结算奖励 + 动画;失败 → 晶体不损耗,可重试。 + +## 六、Canvas 渲染策略 + +- 单一全屏 Canvas 作为背景层(星空 + 星尘 + 远景星云)。 +- 晶体集群与解码阵列用**独立 Canvas 或 SVG**叠加,便于交互。 +- requestAnimationFrame 驱动,设备像素比适配,低性能设备降帧。 + +## 七、可扩展性 + +- 数值配置集中在 `config.ts`,便于平衡调整与工单需求响应。 +- 叙事数据集中在 `codex.ts`,新增碎片只需追加数据。 +- 技术树/解码规则/探险地图均数据驱动,支持后续模块化扩展。