Pandemic Panic Alternative #1 – Build a Minecraft Server in the Cloud

I can’t think of any situations when panic is useful. Fear, however, is an emotion that can either be healthy or unhealthy. Healthy fear protects us from dangers, such as lions, tigers, and the plethora of other harmful things in the world (you thought I was going to say ‘bears’, oh my). Unhealthy fear can cause us to panic or perhaps worse, do nothing in the face of danger.

Pandemic ‘experts’ say this pandemic will last for some time and that we should physically isolate ourselves to slow the spread. As an alternative to panic or unhealthy fear, we can redeem the time in isolation through prayer, education, family time, etc. Here I’ll focus on learning some skills in cloud computing and encourage social interaction with your co-workers, family, and friends.

Specifically, I describe how to get started deploying a Minecraft Server to your cloud provider of choice and serve up blocks of fun to your social circle. Truth be told I am not a ‘gamer’ and actually do not like first person video games, but I do like to mess around with all sorts of technology. If you find this subject area interesting, building a Minecraft server for others is a good place to start.

Screenshot of Minecraft Java Edition on MacOS

Start Here

I began with this blog and this tutorial. Some key considerations to save you time:

Choose a platform for hosting – If you don’t have any background in cloud technologies, but wish to learn, there are numerous online resources available, such as Coursera (for Google Cloud Platform), Udemy, A Cloud Guru (AWS and others), etc. I chose to deploy my Minecraft server to a Google Cloud Compute Engine VM. You could alternatively install a Minecraft server on local hardware, but that comes with its own risks and challenges too.

Choose a Version of Minecraft to Deploy– Minecraft has a ‘million’ different versions of servers and client software. There is the Bedrock Edition, the Java Edition, and others…I am not a Minecraft expert. Do an internet search for Minecraft editions and you’ll be overwhelmed by the number of editions and versions. I chose to use the Java Edition, primarily because the previously mentioned tutorials are based on this version.

Important Note – Unfortunately, for multi-player Minecraft games the edition and version matter! Pay attention to these two things, because it will save you pain and time in the long run. You often cannot play cross-edition and cross-versions, but sometimes can play cross-platform. In my experience, the iOS version does not work with the Java Edition Server or the Bedrock Edition Server. Confused yet? Good.

I deployed a n1-standard-2 (2 vCPUs, 7.5 GB memory) VM with the Minecraft Java Edition version 1.15.2 server. The setup easily handled five players and I imagine could have handled quite a few more players. I whitelisted players’ IP addresses in the firewall to limit access to the server and keep it more secure. The blog post referenced earlier includes a process for automating adding players that I have yet to implement and may be worthy of an additional update.

n1-standard-2 (2 vCPUs, 7.5 GB memory) – The CPU usage and Network transfer for the Minecraft Server. Five players just after 4:30 PM going to three players at about 5:00 PM.

You’ll also need to purchase the Java Edition client for your MacOS, PC, or Linux machine. It’s about $26 and can be purchased through the Minecraft website. This was a bit frustrating, because I really couldn’t figure out how to use the client multiple times without purchasing it multiple times and creating multiple accounts. If you have a lot of kids and a restricted budget, this could become a limiting factor for you.

Enjoy your isolation with a little social technology! Let me know if you enjoy these posts.

Update – 3 April 2020

Here are the virtual machine performance stats for a recent seven player (at the peak) event on 3 April.

Disclaimer: These micro-tutorials and blog posts about various technologies and solutions do not represent an endorsement by me, my employer, or entities that I am affiliated with and are solely to be used for what they are intended (i.e. recreational learning in topic areas discussed).

Copyright 2020 – Jeff Cunningham