Files
echo-nexus/worklog.md
T

159 lines
11 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 回响星核 / Echo Nexus — 开发工作日志
> 持续性任务的工作交接文档。每个阶段更新,避免进度丢失。
---
## 一、项目当前状态描述 / 判断
### 概况
- **项目**:回响星核 / Echo Nexus — 深空考古放置策略游戏
- **一句话**:自治无人机采矿 → 解码记忆晶体(原创共振谜题)→ 拼凑碎片叙事 → 飞升多周目。差异化:解码谜题驱动叙事涌现,全息晶体 + 深空粒子美学。
- **当前版本****v0.6**(dev 服务器版本号已同步)
- **在线游玩**https://gitea-pages.atdunbg.xyz/Super_Z/echo-nexus/
- **仓库**https://git.atdunbg.xyz/Super_Z/echo-nexus
- **技术栈**Next.js 16 (App Router) + TypeScript + Tailwind + shadcn/ui + Canvas 2D + Zustand + Web Audio API
- **定时任务**:每 15 分钟一次 `webDevReview`(自动 QA + 迭代开发)。注意:该任务每次跑完会被系统自动清除,需定期重建。
### 状态判断
- dev 服务器运行正常(HTTP 200,编译 < 250ms
- v0.6 核心功能(深空巡航 Canvas 2D 实时玩法)已上线,UI 偏移/重叠 BUG 已修复
- 上一轮因对话上下文截断,CrystalOrb Canvas 粒子系统升级**未完成**,是下一阶段第一优先级
- 系统总体稳定,无阻塞性 bug,可继续推进新功能
### 已完成版本里程碑(精简)
| 版本 | 核心内容 |
|------|---------|
| v0.1 | MVP:放置采矿 + 解码共振谜题 + 技术树 + 记忆图谱 + 飞升 + 统计 |
| v0.1.1 | 解码可解性修复(路径构造法生成器,100% 可解率)|
| v0.2 | 遗迹探险肉鸽系统(能量/探险力/6 节点/程序化路径/BOSS)|
| v0.2.1 | 程序化音频(15 种音效)+ 14 项成就 + 视觉打磨 |
| v0.3 | 星潮事件系统(6 种星潮 + 全屏叠层 + 程序化音效)|
| v0.3.1 | 星图天文台元进程(6 类 × 3 = 18 天赋 + 飞升后 3 选 1 draft + Canvas 星图)|
| v0.4 | 回响编年史(5 纪元循环命名 + 模板化叙事 + 时间轴 UI + 6 项新成就 + 飞升 BUG 修复)|
| v0.5 | 深空信标(每日挑战 + 本地排行榜 Top20 + 7 标签页 + 编年史历史 BUG 修复)|
| v0.5.1 | 静态部署 Gitea Pages + 新手教程系统(7 步聚光灯引导)+ UI 间距优化 |
| v0.5.2 | 离线收益报告弹窗 + 标签页 UI 重设计 + persist rehydrate 竞态修复 |
| v0.6 | **深空巡航 Canvas 2D 实时玩法** + UI 偏移重叠修复(见下方详细记录)|
### 核心系统清单(8 大系统)
1. **放置采矿** — 中央晶体球 + 主动脉冲 + 连击加成(`CrystalOrb.tsx`
2. **谐振解码** — 原创路径谜题,路径构造法 100% 可解(`DecodeArray.tsx` + `engine.ts`
3. **技术树** — 三层科技解锁,提升产能/解码/探险(`TechTree.tsx`
4. **遗迹探险** — 肉鸽系统,6 种节点 + 程序化路径 + BOSS(`ExpeditionPanel.tsx` + `expedition.ts`
5. **星潮事件** — 6 种动态事件,为放置循环注入变化(`StarTide.tsx` + `starTide.ts`
6. **星图天文台** — 飞升后 3 选 1 天赋 draft,跨周目永久生效,18 个天赋(`ConstellationPanel.tsx` + `constellation.ts`
7. **回响编年史** — 跨周目叙事时间轴,5 纪元循环命名(`ChronicleDialog.tsx` + `chronicle.ts`
8. **深空信标** — 每日挑战 + 本地排行榜 Top20(`BeaconPanel.tsx` + `beacon.ts`
9. **深空巡航** — Canvas 2D 实时玩法,飞船操控/陨石躲避/星门通关(`CruiseMode.tsx` + `cruise.ts`)【v0.6 新增】
---
## 二、当前目标 / 已完成的修改 / 验证结果
### v0.6 深空巡航 Canvas 2D 实时玩法(已完成)
**动机**:回应用户反馈「玩法太单调(全是点点点)」+「视觉震撼不足」——首次引入实时操作玩法。
**新增文件**
- `src/lib/game/cruise.ts`~520 行逻辑层)
- 类型系统:CruiseEntity 联合类型(ship/asteroid/storm/crystal/insight/beacon/stargate/particle 共 8 种)
- mulberry32 + FNV-1a 种子化 RNG`cruiseSeed(level)`
- `generateLevel`:程序化生成陨石带(8+lvl×2)、虚空风暴(1+lvl/2)、晶体碎片(5+lvl)、洞见光球(2+lvl/3)、信标(1+lvl/4)、星门
- `updateCruise`:物理推进 + 碰撞检测 + 粒子系统 + 震动 + 600ms 无敌帧
- `computeRewards`crystals=碎片×(8+lvl×2)、insights=洞见×(2+lvl×0.5)、contact=信标×(1.5+lvl×0.3);通关×1.5、失败×0.5
- 独立 localStorage `echo-nexus-cruise-v1`:最高分/累计通关/最高关卡/累计奖励/最近 20 局
- `src/components/game/CruiseMode.tsx`~830 行渲染层)
- 全屏 fixed inset-0 z-50 CanvasDPR cap 2resize 监听
- 3 层视差星空:远(100星)/中(60星)/近(30星),独立漂移 + 飞船速度视差 + 闪烁
- 8 种实体全部 ctx.shadowBlur 辉光绘制
- 粒子系统:尾焰/收集/碰撞/烟花,上限 200
- 屏幕震动 280ms 衰减;低护盾(<30%)红色边框脉冲
- HUDHTML 叠层,glass+backdrop-blur80ms 节流):护盾/能量/分数/用时/收集计数
- 控制:桌面 WASD/方向键 8 方向 + 移动端虚拟摇杆 + P 暂停 + Esc 退出 + 失焦自动暂停
- 阶段:ready → playing → won/lost(结算明细 + 奖励 + 下一关/重试/返回)
**修改文件**
- `src/app/page.tsx`header 新增 amber 主题「巡航」按钮(Navigation 图标)+ cruiseOpen state + 条件渲染 CruiseMode
- `src/store/gameStore.ts`:新增 `grantCruiseReward({crystals?, insights?, contact?})` actioncrystals 受 crystalCap 限制,contact 受 100 上限)
- 版本号 v0.5.2 → v0.6
**UI 偏移/重叠 BUG 修复**3 处):
- `DecodeArray.tsx`:移除 className 冲突的 `-translate-x-1/2 -translate-y-1/2`,统一用 inline transform 定位+缩放
- `AchievementsPanel.tsx`:移除内层 `max-h-[300px]`,改 `flex-1 min-h-0` 自适应父容器
- `page.tsx`:调整三个 section 的 min-h,避免小屏单列时总高度超过手机视口
**色彩规范**:严格遵循 emerald(#34d399) / rose(#fb7185) / amber(#fbbf24) / fuchsia(#e879f9) 四色全息色谱,零蓝色/靛色
**QA 验证**agent-browser + VLM):
- lint 零错误;dev 服务器 HTTP 200;编译 < 250ms
- VLM 确认主界面:巡航按钮存在、晶体球居中、解码区正常、无重叠偏移
- VLM 确认巡航玩法:飞船可见(绿色三角形)、HUD 完整、陨石+星空背景、粒子特效(黄色尾焰+紫色辉光)
- WASD 控制飞船移动,按 W 直冲星门 → 通关,奖励 +30 晶体(2×10×1.5=30 计算正确)
- localStorage 正确记录 highScore/totalRuns/totalWins/bestLevel
- 奖励同步 gameStoregrantCruiseReward,满仓时 cap 逻辑正确)
- 退出返回主界面,7 标签页 + 晶体球 + 解码面板均完好
---
## 三、未解决问题或风险 / 下一阶段优先事项
### 已知问题 / 风险
1. **dev 服务器 Turbopack 缓存偶发损坏**`Unable to open static sorted file` + 进程被杀,需 `rm -rf .next` 重启。静态导出构建稳定可靠。
2. **定时任务被系统自动清除**`webDevReview` 类型任务每次跑完会被标记完成并清除,需定期重建(cron `0 0/15 * * * ?`tz Asia/Shanghai)。
3. **v0.3 星潮为单机版**:原计划 socket 全局事件,后续可扩展为多人同步。
4. **v0.5 信标排行榜为本地版**(纯 localStorage):升级云排行榜需后端 API。
5. **v0.5 每日挑战仅 1 个/天**:可加入"周挑战"或"信标链"(连续完成 N 天奖励)。
6. **探险 BOSS 战胜率较低**:基础探索力 10 vs BOSS 难度 5-7,胜率约 25%,需玩家投资探险技术。
7. **探险能量恢复较慢**45s/点,可加技术提升恢复速度。
8. **编年史上限 50 条**:超过自动丢弃最早的;v0.4 之前飞升无回填(空状态有提示)。
9. **5 纪元叙事为模板化生成**v0.5+ 将加入手写剧情节点。
10. **CrystalOrb 仍为 CSS 动画**v0.6 未完成 Canvas 粒子系统升级(上下文截断),是下一阶段第一优先级。
### 下一阶段优先级
1. **🔴 P0 — CrystalOrb Canvas 粒子系统升级**:中央晶体球从 CSS 动画升级为 Canvas 粒子视觉(能量流动/晶体共振/脉冲冲击波/环境粒子),提升视觉震撼。文件:`src/components/game/CrystalOrb.tsx`,保留对 `data-tut="crystal-orb"` 锚点。
2. **🟠 P1 — 角色属性系统**:探索力/智慧/勇气/灵感四维属性,影响探险/解码/星潮/巡航,增加 RPG 深度。
3. **🟠 P1 — 巡航玩法增强**:BOSS 战关卡 / 事件选择节点 / 更多关卡类型 / 道具掉落。
4. **🟡 P2 — UI 样式细节打磨**:标签页图标/文字比例、视觉层次强化、移动端响应式进一步优化。
5. **🟡 P2 — 云存档 + 云排行榜**:v0.5+ 后端 API(需评估是否引入 mini-service)。
6. **🟢 P3 — 全 5 纪元手写叙事节点**:替换模板化 lore。
7. **🟢 P3 — socket 多人同步星潮**:全局事件共享。
### 定时任务
- **当前**:job_id 待重建(上一轮被系统清除)
- **配置**cron `0 0/15 * * * ?`tz Asia/Shanghaikind=webDevReview
- **任务描述**:见下方"定时任务描述模板"(每次重建使用此模板)
---
## 定时任务描述模板(webDevReview
```
请先判断当前项目状态,使用 agent-browser 进行必要测试和 QA,然后自主选择本轮最合适的工作重点(修 bug 或提出新需求)并继续开发。
要求:
1. 开始任务的时候需要查看之前的 /home/z/my-project/worklog.md 了解实际的项目进展, 并且拆解当前详细的todo
2. 先判断当前项目状态,使用 agent-browser 进行必要测试和 QA(使用 `agent-browser` 进行网页自动化操作,运行 `agent-browser --help` 查看所有可用命令),如果存在 bug、报错、测试失败、构建失败、运行错误或明确 QA 问题,优先修复。
3. 如果当前阶段相对稳定,则自主根据任务描述必须提出更多可做的新需求,继续推进合理的下一步开发任务。
4. 样式要越做细节越多!!
5. 功能要越做越多!!
6. 工作告一段落后更新或创建交接文档 /home/z/my-project/worklog.md(工作期间也建议及时进行更新,避免进度丢失),方便下一阶段继续开发。
7. 项目结束后一定要把工作记录写在 /home/z/my-project/worklog.md 里。
建议在交接文档 /home/z/my-project/worklog.md 中包含三部分:
- 项目当前状态描述/判断
- 当前目标/已完成的修改/验证结果
- 未解决问题或风险,建议下一阶段优先事项
```
---
## 历史详细版本记录(按需查阅 docs/repo/docs/
- `04-解码系统修复-v0.1.1.md`
- `05-遗迹探险系统-v0.2.md`
- `06-音频与成就系统-v0.2.1.md`
- `07-星潮事件系统-v0.3.md`
- `08-星图天文台系统-v0.3.1.md`
- `09-回响编年史系统-v0.4.md`
- `10-深空信标系统-v0.5.md`