ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

noname 无名杀:在浏览器里直接运行的三国杀 Web 版

noname 无名杀:在浏览器里直接运行的三国杀 Web 版

noname 无名杀:在浏览器里直接运行的三国杀 Web 版

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

noname(中文名为"无名杀")是一个完全在浏览器中运行的三国杀卡牌游戏实现。把仓库拉到本地、用一个静态服务器把目录托管出去,就能在电脑或手机浏览器里开始对局,不需要安装客户端。它适合两类人:想随时在浏览器里玩三国杀的玩家,以及想动手写自定义武将、扩展或音频资源的开发者。唯一的前置条件是浏览器内核:README 建议使用 Chromium 内核 85 及以上的版本(Chrome、Edge 等),不推荐低版本 Firefox。

第一次运行:用静态服务器启动网页版三国杀

克隆仓库到本地:

git clone https://gitcode.com/GitHub_Trending/no/noname cd noname

仓库根目录就有index.html,整个游戏是纯静态资源,所以任意一个静态文件服务器都能启动它。在仓库目录下运行:

python -m http.server 8000

然后打开http://localhost:8000即可进入游戏主界面。首次进入会有新手引导,之后浏览器会用本地存储记住你的设置,刷新页面不会丢进度。

其他启动方式:联机大厅与 Docker 部署

如果你希望不止本地单机,还有两条路:

  • 本地服务端:仓库根目录的noname-server.js是一个基于 Node.js(express)的服务端,deno.json里也配置了deno task start,可以直接用 Deno 跑,供多人联机使用。
  • Docker 部署:docker/docker.md 给出了完整步骤,构建镜像后启动容器:
docker build -t noname . docker run -dit -p 8734:8089 -p 8324:8080 noname

启动后8734端口是网页游戏界面,8324端口是联机大厅,端口号可以自行修改。

启动方式命令能拿到什么
静态服务器python -m http.server 8000本地单机页面,零依赖
Node 服务端运行noname-server.js联机能力的本地服务
Docker见 docker/docker.md容器化部署,含游戏页与大厅两个端口

打开页面后能看到什么:模式包与武将包

进入游戏后,可选的内容由两类"包"决定,分别对应mode/和character/两个目录:

  • 游戏模式(mode/):每个 js 文件是一种玩法,例如identity.js是经典身份场,guozhan.js是国战(双将配合),versus.js是 1v1 对决,此外还有boss.js、doudizhu.js等非三国杀玩法。
  • 武将包(character/):按系列分子目录,如standard/(标准包)、shenhua/(神话再临)、yijiang/(一将成名)、sp/等。每个包内都有结构一致的文件:character.js定义武将,skill.js定义技能,intro.js是人物介绍,translate.js是台词与翻译。
  • 卡牌包(card/):standard.js、guozhan.js、yongjian.js等分别对应不同玩法用到的卡牌。

武将立绘放在image/character/(仓库里已有两千多张),场景背景放在image/background/,这些资源加载后就是你看到的界面素材。

写一个新武将:extension/ 扩展目录的加载机制

项目把"本体数据"和"第三方扩展"分开:启动时会自动扫描extension/目录,加载其中形如extension/<扩展名>/extension.js的文件(自动加载逻辑在 noname/init/import.js)。也就是说,你不需要改核心代码,只要新建一个扩展文件夹就能加内容。

如果你想往本体里加一个系列武将,可以参考现有包的结构:在character/下建一个子目录,放入character.js、skill.js等文件,再把立绘放进image/character/。技能代码怎么写、新版的Async Content(基于 async 函数的技能写法,取代早期的 step 分步写法)和旧写法有何区别,docs/async-guide.md 有面向初学者的完整讲解。

替换声音资源:audio/ 目录的命名规则

游戏的声音资源全部集中在audio/:

  • audio/background/背景音乐
  • audio/skill/技能音效
  • audio/voice/武将语音
  • audio/card/female/、audio/card/male/按性别区分的卡牌音效

技能语音不需要在代码里写绝对路径,而是按命名约定自动匹配:技能配置里写true就播放skill/<技能名>.mp3,写数字2则依次播放<技能名>1.mp3、<技能名>2.mp3。完整的格式规则(包括引用其他技能音频、指定自定义路径等写法)见 docs/audio-guide.md。要换背景音乐或给新武将配音,按同样的目录和命名放对应 mp3 即可。界面样式层面,layout/和theme/下是各套 CSS 布局与主题,改这里的文件可以调整视觉风格。

需要注意的边界条件

  • 浏览器:网页端建议 Chromium 内核 85+ 的浏览器;老内核上部分新写法(如 Async Content 依赖的语言特性)可能跑不起来。
  • 仓库体积:整个仓库约 1.9GB,绝大部分是 mp3 音频,克隆时注意磁盘空间;git clone --depth=1浅克隆可加快拉取。
  • 联机服务:静态服务器只够单机游玩,多人联机需要 Node 服务端或 Docker 部署,且注意端口占用。
  • 协议:项目按 GPL-3.0 开源,README 中对衍生、闭源分发行为有明确的社区立场说明,二次开发前建议先读 LICENSE 和 README.md。

下一步

先在仓库目录运行python -m http.server 8000,打开http://localhost:8000把身份场打一局;如果你想写武将,就从 docs/async-guide.md 开始读。

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

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

返回列表