TyphoonMC — Minecraft server engine, from scratch in Go
Open source project: a Minecraft server engine rewritten from scratch in Go — lightweight, used in production on the Endariel network.
- Go
- Minecraft protocol
- GitHub OSS
› go · tick loop · open source
Context
The official Minecraft server is in Java, and it’s heavy. For a game network like Endariel — which scaled up to 100,000+ unique players — every CPU cycle counts. TyphoonMC was born from the desire to reimplement just enough of the protocol in Go, with a minimal memory footprint and a clean tick loop.
Beyond the technical gain, it’s also an OSS playground: the Minecraft protocol is partially documented, changes with every major version, and exposes nasty edge cases (conditional compression, optional encryption, variable-length packets). Implementing it cleanly is a low-level server architecture exercise.
My role
Maintainer. It’s my personal project — I wrote the engine, tracked protocol evolution, and reviewed external contributions.
What I built
- TyphoonCore: the Minecraft server engine in Go, designed to be lightweight and embeddable
- Minecraft protocol implementation (handshake, login, play state, gameplay packets)
- Stable tick loop around the 20 TPS expected by vanilla clients
- Production usage on Endariel, the Minecraft network I was co-maintaining at the time
- Sustained OSS project over time: issues, external PRs, versioned releases
The hard part: the Minecraft protocol is a moving target. Each major version of the game shifts packets, changes enums, breaks backward compatibility. Maintaining a third-party engine means continuous protocol watch.
Results
90+ stars on GitHub. Used in production by Endariel, which served 100,000+ unique players over the lifetime of the project. Maintained for 5 years before being archived — not a given for a side project on a game protocol.