Collider: 一个实验性的 Minecraft 服务器
摘要
Collider 是一个使用 Clojure 编写的实验性 Minecraft 服务器,它实现了无需锁或区域的并行 tick 处理,在多个核心上实现了比原版快 4.5 倍的性能。
查看缓存全文
缓存时间: 2026/09/04 14:16
Nozistance/collider
来源:https://github.com/Nozistance/collider
Collider
一个概念验证型 Minecraft 服务器
关于
Collider 是一个采用并行 tick 机制的 Minecraft 服务器,且没有任何附加条件:无锁机制、无线程区域划分、无线程所有权规定、无跨边界机制限制。每个组件都尽可能做到极致简约。
在单核上其性能与原版 1.8.9 持平;在六核环境下则能达到 4.5 倍加速。
常见问题
为何选择 Clojure?
尝试并行化 tick 的服务器最终都会采用相似的思路:不可变快照、纯读取阶段、用数据而非就地编辑来表示变更。通常每个系统会手写一到两种此类机制。而 Clojure 直接提供了全部这些特性,无需我逐个收集整合——整个 tick 逻辑仅需六行:
(defn tick [world events]
(let [world' (-> (update world :tick inc)
(update :time-of-day (fnil inc 0)))
world' (reduce state/apply-event world' events)
deltas (deltas/of systems world' events)]
(state/apply-deltas world' deltas)))
此项目适用于哪些 Minecraft 项目?
不适用于任何项目。功能集被刻意精简——核心目标是测量性能基准,并提供数据模型的参考实现。这是一个个人实验项目,约 5500 行 Clojure 代码。
与区域化(Folia)方案相比如何?
区域化方案需要空间独立性:分割世界、为每个区域分配独立线程、绝不允许两个线程交互。当负载过高时,系统会将相邻区域重新合并到单线程中。而 Collider 完全不关心玩家所在位置。
已实现功能
目前仅实现了羊的生物,其 AI 行为经过精细还原。此外包含光照、水、熔岩、火焰、方块物理、掉落物品、TNT、伤害系统、昼夜循环、世界存储、带命令的聊天系统以及物品栏。
世界设定:Minecraft 1.8.9,超平坦地形,创造模式,和平难度。
部分功能为加载基准测试而存在,其余功能则用于验证数据模型承载实际游戏机制的能力。
运行方法
java \
-XX:+UseG1GC -XX:MaxGCPauseMillis=5 \
-XX:G1PeriodicGCInterval=60000 -Xmx2g \
--sun-misc-unsafe-memory-access=allow \
-jar collider.jar
需要 Java 21+。服务器参数需放置在工作目录的 config.edn 文件中。
致谢
为还原原版游戏行为,我参考了 MCP-919 (https://github.com/Marcelektro/MCP-919) 反编译的 1.8.9 源代码。
相似文章
我同时运行 Claude Code 和 Codex,却总是丢失它们之间的线索——于是构建了一个位于 S3 存储桶中的无服务器协调层
tracecraft 是一个 CLI 工具,使用兼容 S3 的存储桶作为多个编码代理(如 Claude Code 和 Codex)的无状态协调层,支持原子任务认领、邮箱、共享内存和跨工具框架会话镜像。
Clojure 速度几乎媲美 C(需借助一些优化)
本文详细介绍了 Clojure 如何借助 JVM 的 Vector API 和精心优化,在 3D 压力测试中达到接近 C 的帧率(仅差 20%),展示了动态语言在热循环中也能接近底层性能。
带有状态REPL的代码模式
作者介绍了 ptc_runner_mcp,这是一个 MCP 服务器,它提供了一个有状态的、沙盒化的 REPL,使用类似 Clojure 的语言,允许 AI 代理进行探索性计算,而不会使上下文窗口过载。
@1jehuang:我将20个编码代理并行运行作为我的日常工作流。今天,我发布Jcode。它是一个开源代理,内存效率提升20倍…
1jehuang发布了Jcode,这是一个用Rust编写的开源终端编码代理,声称内存效率比Claude Code高20倍,可以并行运行数十个代理。
@liambraus: CLAUDE CODE 启动需要 3.4 秒,而这个只需 14 毫秒。一位独立开发者刚刚构建了自己的…
一位独立开发者用 Rust 构建了一个代码代理框架,启动速度比 Claude Code 快 245 倍(14 毫秒 vs 3.4 秒),内存消耗最多减少 20 倍,在 GitHub 上获得了 10.4k 星标。