1. Hello All!

    So, I have been playing on Hypixel for a while now, and as a programmer, I have taken great inspiration on how Hypixel works (love the dev blogs, keep them coming, learning a good amount from them!)

    Recently I have been educating myself on containerized application deployment (with Docker) and I have become interested in how Hypixel provisions and deploys new server instances.

    Since playing Hypixel and my experience with servers and container applications they (presumably) have this type of system in place:

    Master Server (this manages the containers) > Storage Server (this is where all the game files are stored) > Proxy Server (they have one for each game mode I presume, or this would be a load balancing server) > Container Instances (this is what we play on).

    So I am wondering, how would I go about deploying a similar solution (code-wise with Docker), that would allow me to easily scale and be resource-efficient?

    Thanks for the help! :)
    - Shay Punter
     
    #1
  2. Hypixel uses a central management system called MasterControl. It is responsible for most things, such as server deployment. I would assume they have some form of base container or folder that is replicated, assigned a port and game server ID, then deployed. Here are some articles that contain some information regarding how Hypixel deploys there servers.

    Article 1
    Article 2

    Knowing exactly how the server deploys its servers is hard to know without having inside knowledge. I doubt the Hypixel Developers will go into mass detail in the inner workings of the server.

    As for your query in deploying a similar solution, I haven't done a lot of work with Docker but I have created programs that dynamically create servers based on player counts in other servers, etc.

    I'll do some research for you and see if I can find a solution, but I am a bit busy at the moment.

    Hope this helps.

    Cheers,
    James
     
    #2
    • Like Like x 2
  3. Interesting, of course, this MasterControl is a custom solution they've built by the looks.

    And yeah, they won't go in-depth about it and I wouldn't expect them to either since my goal isn't to replicate their system but instead learn and implement my own system of automating Minecraft server instance deployment & management.

    I would presume they deploy using a container application, as they are designed for quick and easy scaling/descaling, of course, we have no way to confirm this unless a developer confirmed it.

    As for your program that dynamically creates servers based on player counts, would I be able to see how you have done it? If not, that's perfectly good :)

    My end goal with this is to create a solution that allows server owners to easily scale and descale their network & have proactive monitoring & alerting systems in place for when something misbehaves and causes issues on the server. This is to enable them to provide a great player experience and to jump on bad cases quickly.

    This would be mostly oriented for Hytale, though since Hytale isn't out yet it will be released for MC then Hytale support would be added after the release.

    I'll keep at it with my research and learning into Docker & autonomous scaling and report back if I find anything interesting that's worth sharing.

    Thanks for the help :)
    - Shay Punter
     
    #3
    • Like Like x 1
  4. The system I created was for a client, so unfortunately I’m unable to release the source code for it as it mainly revolved around their system. I don’t actually think I have the code anymore - this was a while ago.

    As for your solution, I think it’s doable. Even if you don’t have enough experience with Docker and etc, it’s always good to make a start and learn as you’re building the application. Once you’ve done it, you can always go back and improve with the knowledge you’ve gained on the way.

    I wish you luck on creating your project, and if you need any help feel free to PM me on here!

    Cheers,
    James
     
    #4

Share This Page