Context
Annihilation as a game mode has been around for a long time, but there are almost no public networks left that support the modern 1.21. We decided to build a standalone network where players can play on a current client and extend the mechanics (loot boxes, progression) without depending on third-party platforms.
Solution
An architecture of several containerized components: Velocity as the proxy, lobby and Anni game servers on Paper 1.21, and NanoLimbo as a fallback in case the game nodes go down. Player state (classes, progress, inventory shared across servers) lives in MongoDB and Redis.
Stack and architecture
- Runtime: Java 21, Maven multi-module.
- Proxy: Velocity.
- Game servers: Paper 1.21.
- Fallback: NanoLimbo.
- State store: MongoDB + Redis.
- Deployment: Docker Compose (
ops/docker-compose.yml).
Role and outcome
We delivered the network's framework. The next step is building out game mechanics on top of the ready-made infrastructure.