Collider: An experimental Minecraft server

Lobsters Hottest Tools

Summary

Collider is an experimental Minecraft server written in Clojure that implements parallel tick processing without locks or regions, achieving 4.5 times faster performance than vanilla on multiple cores.

<p><a href="https://lobste.rs/s/fdbblk/collider_experimental_minecraft_server">Comments</a></p>
Original Article
View Cached Full Text

Cached at: 09/04/26, 02:16 PM

Nozistance/collider

Source: https://github.com/Nozistance/collider

Collider

A proof-of-concept Minecraft server

About

Collider is a Minecraft server with a parallel tick and no asterisks: no locks, no regions, no thread ownership, no rules about which mechanics may cross a boundary. Every part of it is as simple as I could make it.

On one core it matches vanilla 1.8.9 performance; on six it is 4.5 times faster.

FAQ

Why Clojure?

Servers that try to parallelize the tick end up reaching for the same ideas: an immutable snapshot, a pure read phase, changes as data instead of in-place edits. Each gets one or two of them, hand-written, for one subsystem. I did not have to collect them: the language hands over all of it at once. The whole tick, six lines:

(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)))

Which Minecraft projects is this for?

None. The feature set is deliberately small - the point was to be able to measure performance, and to have a reference for working with the data model. It is a personal experiment, ~5500 lines of Clojure.

How does this compare to the region (Folia) approach?

Regions need spatial independence: split the world, give each part a thread, never let two touch. A crowd merges neighboring regions back into one thread. Collider does not care where the players are.

What is implemented

The only mob is the sheep, with a closely reproduced AI. There is light, water, lava, fire, block physics, dropped items, TNT, damage, a day and night cycle, world saving, chat with commands, and an inventory.

World: Minecraft 1.8.9, flat, creative, peaceful.

Some features exist to load the benchmarks, the rest to prove the data model carries real mechanics.

How to run it

java \
  -XX:+UseG1GC -XX:MaxGCPauseMillis=5 \
  -XX:G1PeriodicGCInterval=60000 -Xmx2g \
  --sun-misc-unsafe-memory-access=allow \
  -jar collider.jar

Requires Java 21+. Server properties go in a config.edn file in the working directory.

Credits

To recreate vanilla behavior I read the decompiled 1.8.9 sources of MCP-919.

Similar Articles

Clojure is almost as fast as C (with some help)

Lobsters Hottest

This article details how Clojure, with the JVM's Vector API and careful optimization, achieved frame rates within 20% of C for a 3D stress test, demonstrating that a dynamic language can approach low-level performance on hot loops.

Code mode with a stateful REPL

Reddit r/AI_Agents

The author introduces ptc_runner_mcp, an MCP server that provides a stateful, sandboxed REPL using a Clojure-like language, allowing AI agents to perform exploratory computations without overwhelming the context window.