无锁并行的 Minecraft 服务器「Collider」:用 Clojure 写的概念验证原型
来源: github.com — 2026-08-29
概述
GitHub 上一个有趣的实验性项目:Collider,一个用 Clojure 实现的 Minecraft 服务器,主打「并行 tick 且没有任何星号」——没有锁、没有区块(region)划分、没有线程所有权,也不限制哪些机制可以跨越边界。整个 tick 在不可变快照、纯读阶段与「以数据而非就地编辑表达变更」的思路下,只用了寥寥几行函数式代码。作者称单核上它能匹配原版 1.8.9 的性能,六核上快 4.5 倍。与把世界按空间切成区块分给不同线程、还要防拥挤再把相邻区块合并回单线程的 Folia 思路不同,Collider 根本不关心玩家在哪。项目刻意做小(约 5500 行 Clojure),只为验证数据模型能否承载真实机制与测量性能,生物只有羊,含光照、水火、方块物理、掉落物、TNT、伤害、昼夜循环与库存等,目标是 Minecraft 1.8.9 的平坦创造模式世界。
核心要点
- Collider 是约 5500 行 Clojure 写的概念验证型 Minecraft 服务器,主打无锁、无 region、无线程所有权的并行 tick
- 单核性能匹配原版 1.8.9,六核可达约 4.5 倍加速
- 与按空间切块的 Folia 不同,Collider 根本不关心玩家位置,靠不可变快照与纯读阶段实现并行
- 整个 tick 代码极短,靠 Clojure 的语言特性天然得到不可变世界状态与以数据表达变更
- 刻意只实现少数机制(唯一的生物是羊),目的在验证数据模型能否承载真实机制与做基准
金句
Every part of it is as simple as I could make it.(它的每一部分,我都尽量做到我能做到的最简单。)
👍 0
👎 0
返回 Lobsters 首页