—Present

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

View source

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

View source

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

View source

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

View source

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

View source

BlueDragon’s official website, featuring:

  • A markdown blog
  • Server status
  • Leaderboards
  • Player statistics
  • An official API
  • Instructions for each minigame