☰
从零到可玩:浏览器桌游引擎 noname 的三国杀 DIY 完整指南
2026/10/22 1:34:31 网站建设 项目流程

从零到可玩:浏览器桌游引擎 noname 的三国杀 DIY 完整指南

【免费下载链接】noname项目地址: https://gitcode.com/GitHub_Trending/no/noname

noname(无名杀)是一个跑在浏览器里的开源三国杀类桌游引擎:克隆仓库、起个静态服务,网页里就能开局;武将、卡牌、模式全用 JS 描述,改一行文件、刷新页面就生效,是你入门游戏 DIY 的好对象。

先跑起来:把项目开到浏览器里

noname 是一组静态文件,不需要数据库,也不用装 Node。最快路径两步:

git clone https://gitcode.com/GitHub_Trending/no/noname cd noname python -m http.server 8000

浏览器打开 http://localhost:8000 就进了游戏大厅。两点注意:官方推荐 Chrome 系内核且版本不低于 85,老版本 Firefox 不保证兼容;想局域网联机或开联机大厅,可以跑仓库自带的noname-server.js,或直接看 docker/docker.md 用容器部署(web 界面默认 8734、联机大厅 8324)。

改文件的反馈循环很短:保存后刷新浏览器即可,不用重新构建。

它到底能干嘛:三个核心能力

能玩什么

mode/ 下每个文件对应一种玩法:identity.js是身份局,brawl.js是斗地主,chess.js、stone.js分别是围棋和五子棋。单机模式自带 AI 陪练,开了联机服务还能在局域网匹配。选模式不用写代码,大厅里直接挑。

能改什么

改数据。character/ 下按系列存放武将定义,一个武将就是一段 JS:势力、体力、技能、台词,改完刷新即可进游戏。card/ 同理,是标准牌与各卡牌系列的定义(standard.js是标准牌)。

能造什么

造规则。新游戏模式写在 mode/,新卡牌系列写在 card/,新武将挂在 character/ 下,再配上 theme/ 的主题皮肤和 audio/ 里的配音。一条牌、一个武将、一整套模式,都能从零加进去。

跟着一张图看懂目录与模块

要改什么,就去哪个目录,基本一一对应:

noname/ ├── audio/ 背景音乐、武将语音、技能音效 ├── card/ 卡牌定义:standard.js 为基本盘,其余各为一套系列 ├── character/ 武将数据:按系列分目录,标准武将看 standard/ ├── game/ 引擎加载、资源与运行时配置 ├── image/ 立绘、卡牌图、背景 ├── mode/ 游戏模式:identity、brawl、chess、stone…… └── noname/ 核心引擎:事件流、UI 渲染、工具库

记忆方法:改武将去 character/,换皮肤去 layout/ 和 theme/,改规则才需要碰 noname/ 里的引擎代码。

动手做一次:加一个自定义武将的完整过程

先看仓库怎么描述武将。在character/standard/character.js里,一个武将就是一个数组,依次是性别、势力、体力上限、技能列表、语音引用:

caocao: ["male", "wei", 4, ["jianxiong", "hujia"], ["zhu"]],

技能在character/standard/skill.js,每个技能是一个对象,trigger声明"什么时候触发",content写结算逻辑。照这个思路,在 character/diy/ 下新建一个文件,做一个最小可用的新武将:

const characters = { diy_qimo: ["male", "wei", 3, ["jimo"]], }; const skills = { jimo: { trigger: { player: "phaseZhi" }, async content(event, player) { if (await player.discard("h")) await player.draw(2); }, }, }; export default { characters, skills };

保存、刷新,新武将就能选。想要完整体验还有三件配套的事:立绘放 image/character/,中文名可以在系列的translate.js里加,配音规则见 docs/audio-guide.md。上面是教学写法,真正想让 AI 会用它、让结算更严谨,还得参照skill.js里现成技能补上 AI 评估等细节。

设计上的几处巧思

三处值得学,点到为止。

  • 数据与逻辑分离:character/ 和 card/ 几乎全是纯数据,引擎逻辑全在 noname/ 里。改数据碰不到引擎,这也是 DIY 门槛低的原因。
  • 事件驱动的技能系统:技能声明触发时机,引擎统一派发事件,结算写在技能对象里。skill.js里的写法就是现成样板,新增技能不会和已有逻辑打架。
  • 主题与存储:版式按目录分主题,layout/ 下 default、mobile、nova 等多套并存,换皮肤就是换一组 CSS;设置和存档走浏览器 localStorage,不需要账号体系。

上手之后还能玩出什么

  1. 造一个新游戏模式:照 mode/ 里的文件写流程和胜负判定。
  2. 出一套新卡牌系列:在 card/ 建文件,配 image/card/ 的图。
  3. 调 AI 行为:每个技能里都有 AI 评估写法,让它变聪明或变"有性格"。
  4. 做主题皮肤:往 theme/ 或 layout/ 加一套样式。
  5. 给武将配音:按 docs/audio-guide.md 的命名规则放文件即可。

想参与进来?

文档入口在 docs/,目前有音频与异步两篇指南;扩展的写法规范,最快的学法是直接抄 character/ 下现成文件的结构。提交代码按仓库约定,Pull Request 推送到 PR-Branch 分支,规范见 README.md。

把 character/diy/ 里放一个新武将,刷新页面选上他——你的 DIY 就算入门了。

【免费下载链接】noname项目地址: https://gitcode.com/GitHub_Trending/no/noname

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询