This code is a prototypal implementation of a minigame franchise server. In short, there are a few components:
- Controller: the brains of the operation, orchestrating and communicating between the various ephemeral servers.
- Proxy: receives incoming player connections, and teleports them to different servers.
- Lobby servers: ephemeral, dynamically scalable servers that proxies forward players to upon joining.
- Minigame servers: ephemeral, dynamically scalable servers that players must ask to join.
This could eventually be horizontally scaled if you put in time to look into Docker Swarm.
If you have Docker, this project should be a piece of cake to deploy. Try it out!
-
Clone the project
git clone https://github.com/SirJosh3917/ephemeral-minigame-server.git cd ephemeral-minigame-server
-
Download some plugins
Put these jar files into
./servers/assets/waterfall/
. Pretty sure I can't automate this for ToS reasons. -
Agree to the EULA
Agree to the EULA in
./servers/eula.txt
. Also pretty sure I can't automate this.# Agree to Mojang's EULA. echo "eula=true" >> servers/eula.txt
-
Start the project!
# Necessary wrapper for `docker compose up` ./start.sh
If you're on windows, the script is simple enough - you can figure it out :)
It might take a long while before it starts up, but soon you'll have a server
listening on :25565
to join!