简介
我们的身体里,每天都在打一场仗。Cell War 把它做成了一款六边形回合制战棋:免疫细胞前期弱、后期越练越强;癌细胞前期强、扩张快。它由我们自己设计的一款医学桌游电子化而来,Windows、Mac 和浏览器都能玩:一个人打 AI、几个人一台电脑轮流下,或者联网、局域网对战。
项目缘起
我们想让人在玩的过程中了解免疫学:癌细胞的扩张、免疫细胞的识别与清除,都对应真实的生物学机制,玩家为了赢下一局,会自己去弄明白 PD-L1 是什么、乳酸为什么能削弱 T 细胞。
项目概览
它怎么玩
-
棋盘有 127 个六边形格子,每一格是人体的一块组织;2、4、6 人一局,两方人数相同、轮流行动。
-
迁移、抽卡和大多数主动技能都要花能量,能量归零细胞就死。免疫方靠有氧呼吸稳定收入,攒够抗原记忆升级、分化;癌症方靠无氧呼吸,地盘越大赚得越多,守得久的癌组织会固化成复活点。
-
按下「迁移」会高亮走得到的格子,攻击要掷骰。
-
免疫方要让癌细胞全部死亡、场上不剩可供复活的固化癌组织;癌症方要让「癌组织 + 2 × 固化癌组织」连续两个世界回合结束时达到 90。

项目亮点
-
两个阵营,九种细胞
免疫方从基础免疫细胞升级,分化成 B、T、巨噬、树突状细胞,满级(X 级)各有大招。癌症方每个席位是一种癌:恶性黑色素瘤能经血管转移,印戒细胞癌可以自爆、铺开黏液,骨肉瘤标记过的组织两个世界回合后直接固化,小细胞肺癌跑得快。

-
卡牌取材自真实免疫学
67 张卡牌的名字几乎都来自免疫学和肿瘤生物学,效果也尽量照着真实机制设计。【PD-L1 表达】对应肿瘤给 T 细胞「踩刹车」的免疫检查点,下一次被攻击时判定降一级。核心规则也有出处:癌症方靠无氧呼吸,对应癌细胞有氧也偏爱糖酵解的瓦博格效应;免疫方靠抗原记忆升级,对应免疫系统对见过的敌人反应更快。

-
三个平台,联机防越权
安装包在官网和 GitHub 发布页下载,浏览器打开 cellwar.jiling.chat/play 不用安装;电脑版启动时自动打补丁。联机可以观战,有人掉线或超时由 AI 代打。整局在服务器上算,客户端只能报「我选第几项」,服务器核对是不是轮到这一席、选项合不合法,没法替别人出招;别人的手牌不下发,只显示「?」。

技术与方法
客户端用 Godot 4 和 GDScript;规则内核新版换成了单独的 C# 程序(正式版候选,还没发布)。每一步由内核结算、界面只管播放,同一套规则因此能服务单机、AI、教程和联机。

五档 AI(单机任选,新内核只留其中三档)都没有用神经网络:普通是手写的优先级规则;较强是扁平蒙特卡洛,让普通 AI 往后试打最多 40 步再打分;树搜索是 UCT 蒙特卡洛树搜索,每步最多 160 次迭代;意图档把「不动」、所有 1 步移动和部分 2 步路线在副本上真走一遍,挑打分最高的;搜索档在意图档上再做两层 alpha-beta。只有搜索档的叶子估值是学出来的:逻辑回归预测免疫方胜率,在 1175 局 AI 对局上按整局 5 折交叉验证,AUC 0.879。
下一步的神经网络 AI:Transformer(4 层、256 维)加每个席位一个 GRU 记忆,只看自己能看到的信息,用循环版 PPO 自博弈训练;方案已写好,还没开始训练。
成果与数据
- 从 8 月 26 日第一次提交到 10 月 2 日做出新内核的正式版候选,用了 37 天;截至 10 月底,累计提交 1100 多次。
- 自动检查从 8 月 28 日的 309 项涨到 10 月的 4000 多项;换内核时用 180 局让新旧内核一步一步重放,结果必须一模一样。

不足与取舍
- 网页版第一次要下载约 11 MB,实测要等半分钟左右。
- 防作弊只做到服务器这一层:没有账号系统,房主打开「观众能看全部手牌」时有人能开小号偷看;局域网联机时房主技术上可以动手脚。
- 会推演的几档 AI 看得到对手手牌,旧版意图和搜索两档还用了真局接下来要掷的骰子,AI 互搏胜率不能当作公平条件下的强度。
- Mac 版没有苹果签名。
- 取舍:内核单独成程序,是因为 Godot 的 C# 版本导不出网页版,热更新也换不了编进 Godot 的 C# 代码;代价是 Windows 安装包大了约 37 MB,新版 Mac 先只支持 Apple 芯片。
- 取舍:改完规则后 AI 互搏一度癌症方全赢,免疫方换上更强的蒙特卡洛 AI 就能赢 55%:一半问题出在 AI 太笨,所以平衡目标定为「真人对真人公平」。
未来方向
- 神经网络 AI 作为最强的一档加入游戏
- 新内核正式版发布,随后第一次更新让 AI 学会放 X 级大招;在新内核上重做回放再开放
- 网页版提速,做手机触屏适配
- 接入世界事件
- 后续 DLC
