Soul Knight Like
元气骑士 Like 的俯视角地牢射击小游戏,Web Canvas + TypeScript, 内容深度借鉴重生细胞(翻滚闪避已实装)。
- 本地:
D:\Aproject\soul-knight-like\ - 仓库:
LongJie686/soul-knight-like(master 分支,私有)
bash
cd soul-knight-like/web
npm install && npm run build
npm run serve # http://localhost:8765操作:WASD 移动,鼠标瞄准,左键射击,空格翻滚闪避(带无敌帧)。
架构铁律:core 零引擎依赖
[Input] → core/GameSim.update(dt, inputs) → Snapshot → Canvas 渲染assets/scripts/core/ 是纯逻辑层,禁止出现任何引擎或浏览器 API: 不得 import ... from 'cc',不得引用 document / window / canvas / Image / requestAnimationFrame。
理由是 core 要能整体搬到 Node 服务端跑状态同步,也要能原样移植到微信小游戏。 渲染层(web/src/)单向依赖 core,core 永远不反向依赖渲染层。
落到日常开发上就一条规矩:新增玩法逻辑一律进 core 的 systems/, 渲染层只消费 Snapshot 和事件。
这条铁律为什么值得单独记
它本质上是「把不确定的东西挡在门外」的架构模式,跟服务端项目里 LLM 输出一律当不可信输入校验是同一个思路: 把易变、不可控、平台相关的部分圈在边界外,核心层只处理确定的输入输出。
游戏这边圈的是渲染引擎,服务端那边圈的是模型输出,做法一致—— 定一条谁都不能破的单向依赖,然后靠 lint 或 review 守住它。
相关笔记:设计原则