Tom Offermann: Introducing Minecloud
There comes a time ter the life of every extended family, where tho’ they may be divided by excellent geographic distance, they remain united te their desire to stay connected. by joining together and playing Minecraft on a collective server.
OK. Maybe that doesn’t toebijten ter all families. And, I voorwaarde confess, maybe not everyone te ours wasgoed fairly so united. But, after various grandparents, and aunts, and uncles all voiced a desire to join ter on the tree-punching, ore-mining, zombie-slaying joy, it wasgoed clear wij had to make the family Minecraft server toebijten. And, spil the programmer te the family, that job fell to mij.
At very first, I attempted running the Minecraft server on the Mac Mini tucked away te our living slagroom that doubles spil our huis entertainment center, but when the kids discovered that wij were incapable to stream Netflix and run Minecraft at the same time, that proved to be a very unpopular solution.
At that point, the effortless thing to do would have bot to lease a Minecraft server from a hosting company that specializes te that sort of thing, or maybe use a cheap VPS from Digital Ocean, but I had a different idea. It occurred to mij that our family Minecraft server wouldn’t be used all that often. Perhaps a duo hours a night, at most. So, why should I pay for a server to run 24/7?
Wouldn’t it be more interesting more joy more economical to run the server only when wij were playing, and then shut it down when wij weren’t? Wij wouldn’t just be hosting Minecraft. wij would be running Minecraft te the cloud! How buzzword-y!
And, thus, “Minecloud” wasgoed born.
Problems to Solve
While a solid concept, my on-demand, cloud-based Minecraft server idea had a few obstacles to overcome before it wasgoed ready for prime time.
Very first, I needed a way to save the state of the Minecraft world, so that you could shut down the server today, and then, when you launched it tomorrow, you would terugwedstrijd to the precies same time and place te the world. (Players get very cranky when their elaborate castle additions vanish because their last few hours of work weren’t saved decently.) Of course, all that world saving and restoring had to toebijten automatically behind-the-scenes.
2nd, launching a Minecraft server needed to be effortless enough so that everyone from an 11-year old to a 70-year old could do it. That ruled out the very first duo of options that came to mind for commencing a server, like running a script, or logging into the complicated admin panel of a Web host provider. While I may be convenient with those options, I didn’t want to inflict them on the surplus of the clan.
Instead, I envisioned a Web interface with a single button:
Click it once to “Wake Up the Server.” Click it again to “Shut Down the Server.”
What could be simpler?
But, That’s Not the Entire User Practice.
Unluckily, even if I make the process of launching a server ridiculously ordinary, I vereiste admit that it still does complicate the process of commencing to play Minecraft.
With your typical, always-on Minecraft server, here’s the process of preparing to play:
Launch Minecraft client.
Click on “Join Server.”
Te constrast, here’s how the Minecloud process would work:
Te your browser, go to the Minecloud Web application.
If your Minecraft server isn’t already running, click the “Wake up Server” button.
Wait for the Minecraft server to launch and be ready. (Grabbing a cup of coffee during this step is optional, but very recommended.)
Get the IP address of the Minecraft server from the Minecloud Web application.
Te the Minecraft client, edit the Server configuration and add the fresh IP address.
Click on “Join Server.”
So, there’s a tradeoff. Using Minecloud is a little more complicated for players, but hopefully, it’s still effortless enough to be worth it for the savings te hosting costs.
Making the Minecloud Vision Real
The solution I came up with consists of two parts:
- Configuring a virtual machine with all the software necessary to manage and run a Minecraft server.
- Running a Web application that launches and terminates the virtual machine.
Minecloud relies strenuously on Amazon Web Services. Their Elastic Cloud Compute (EC2) service permits you to pay for servers te 1 hour increments, so it’s ideal for a short-lived Minecraft server, while their Plain Storage Service (S3) solves the problem of where to store backups of the Minecraft spel gegevens files. And, the combination of their API and the fabulous boto python library make it effortless to programatically utilize AWS services.
Spil for the Web application, I designed it to run on Heroku’s free services, to keep costs down even further.
Ter the next duo of blog posts (Part Two), I’ll discuss what went into building the two different parts. Te the meantime, here are linksaf to the Github repositories for each part of the Minecloud project.