diff --git a/CLAUDE.md b/CLAUDE.md index f8f1648..925abd0 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -23,16 +23,9 @@ client/scripts/build_spine_data.cmd # 内部调用 build_spine_data.ps1 `shared/`(共享算法,待子游戏接入后才有)的改动应按两套文档「§10 测试纪律」的要求跑 Node 单测验证——目前尚未接入测试框架,意味着需要直接用 `node` 运行相应脚本。 -## 架构速览 +## 可编辑范围 -> 完整的分层、模块清单与数据流以各 README 及编号文档为权威(client 01 / server 01);此处只留改动前必须在上下文里的骨架。 - -- **两套代码库、一份协议**:`client/`(浏览器,严格 ES5,gameabc 引擎)与 `server/`(Node.js,严格 ES5,youle 平台)通过 `{ app: "youle", route, rpc, data }` JSON 包通信——`route`→模块、`rpc`→方法(`mod[pack.rpc](pack)`,一操作一 RPC,无二次 `switch(action)`)。**服务端只靠主动推送**(`o_room.method.sendpack_toseat/toother`)告知结果,`DoPack` 返回值不是下发通道。 -- **客户端依赖严格单向**:`01_SubGame/codes` → `gameabc-framework` → `gameabc.min.js`;`index.html` 的加载顺序就是依赖图,新增文件须插在依赖之后、使用者之前(无模块系统,否则拿到 `undefined`)。框架必须**游戏中立**,禁止渗入任何具体玩法逻辑/常量。 -- **服务端三层路由** app→mod→method;每房间状态挂 `o_room.o_desk.data.*`(`export.makewar` 内创建,双向引用 `o_room.o_desk ⇄ o_desk.o_room`),按房间隔离。子游戏只在 `server/<游戏容器目录>/<游戏>/` 内开发。 -- **子游戏接入二选一、不混用**:内联模式(逻辑写进三个契约文件)或 Hooks 外置模式(三契约文件退化为转发壳,逻辑放 `codes/SubGameHooks.js` + `codes/`,模板见 `gameabc-framework/templates/subgame-entry/`)。详见 client 06。 - -**可编辑范围**(完整规则见各 README「可编辑范围 / 红线速查」): +> 架构骨架(前端分层 / 服务端运作模型 / 工程七大总则)、成败协议、子游戏接入两模式等,均在下方 `@import` 常驻的三份 README「一页纸」与对应编号文档里,本文件不复述。此处只留改动前最需在手边的一张表(完整规则见各 README「红线速查」): | 路径 | 规则 | |---|---| @@ -59,13 +52,7 @@ client/scripts/build_spine_data.cmd # 内部调用 build_spine_data.ps1 @docs/server/development-guide/README.md @docs/games/engineering/README.md -各编号对应主题(改哪块查哪篇): - -| 文档 | 编号与主题 | -|---|---| -| `client/development-guide/` | 01 前端架构与运行环境 · 02 渲染与UI组件体系 · 03 事件·动画·音频·Spine · 04 网络对接与启动编排 · 05 开发规范与红线 · 06 子游戏接入模式与Hooks外置 | -| `server/development-guide/` | 01 服务端环境与框架基础 · 02 子游戏接入与开发流程 · 03 数据收发与通信协议 · 04 开发规范与红线 | -| `games/engineering/` | 01 架构总则与分层 · 02 可扩展性与配置化 · 03 数据权威·错误处理·演进 | +各篇「编号 ↔ 主题」见上面 `@import` 的三份 README 的「阅读顺序 / 阅读导航」表,此处不再复述。 ## 测试与 Git