BlueDragon
A custom Minecraft server with a diverse set of fun minigames. Built from scratch using Minestom and deployed locally with Kubernetes.
BlueDragon is a custom server for Minecraft. It is a combination of many sub-projects. The current codebase (June 27th, 2022 — Present) is the culmination of many iterations and rewrites due to changing requirements and design decisions.
Server
BlueDragon’s Minestom implementation. Main features include:
- Creating isolated instances for different game types and modes
- A modular system for adding functionality to games
- This allows for a very high degree of code reusability and simplicity, and makes rapid prototyping of games very quick and easy.
- System for handling player punishments
- Database support linked to every Player using a player provider
- Synchronization with other servers using gRPC messaging and a Mongo database
- Routing players to the correct instance when they join
- Separated, per-instance chat and tablist functionality
- Basic commands
An example minigame built on BlueDragonMC/Server can be found here.
Puffin
An independent service running as BlueDragon’s game server manager and queue system.
- Uses the Kubernetes API to monitor the current state of the cluster
- Tracks players across game servers and routes messages to them from other game servers
- Allocates game instances to balance resource usage across a Kubernetes cluster
- Handles features such as parties and private messaging which rely on inter-service gRPC messaging
Komodo
A plugin for Velocity proxies that interacts with Puffin to keep in sync with the cluster.
- Routes players to servers based on received gRPC messages
- Dynamically creates and removes server registrations
- Requests a player count from an external service and generates a server list ping response with it
- Sends players to a lobby when they first join
Jukebox
A plugin and API for playing Note Block Studio (NBS) songs on a Velocity proxy.
- Parses and plays NBS files
- Uses Protocolize to create custom GUIs on the proxy
- Continues playback between backend servers
Website
BlueDragon’s official website, featuring:
- A markdown blog
- Server status
- Leaderboards
- Player statistics
- An official API
- Instructions for each minigame