Hosting a Minecraft Server for My Kid and His Friends
Back in 2013, I ran a Minecraft server with my (at the time, teenage) nephew, Alex Gray. It actually grew to a pretty good size, hosting a couple-hundred players. We had a few mods installed, and had a lot of fun making dungeon-crawling playing areas, marketplaces, and all kinds of fun things. We ended up stopping eventually, as neither of us were really experienced enough in maintaining any server at all, and it all kind-of hit critical mass.
Fast-forward ten (omg, it's ten) years, and he's now a grown ass adult working as a programmer and I've since switched careers from mechanical engineering to programming, each of us now equipped with loads and loads of experience in running Linux servers, writing in Java, and the like. The only thing stopping us from making a "proper" server at this point is time, and just good old fashioned burnout. Neither of us have the will to really go all-out like we did back then, and I honestly don't think we'll ever try something at that scale again.
Another curious facet of my life, is I live in a camper full-time. The travel is awesome, but I've lamented in the past that it can be pretty isolating. You're always coming or going, and never really get to have any regular friends. This is especially noticeable in my 8 year old son, Bennett.
I've often wished I had a way for him to be able to stay connected with the friends he makes in our travels. Most of them don't have phone numbers, or any way to stay connected, so as soon as we leave, he rarely ever gets to stay in-touch. It's kind-of a bummer, honestly, but I get it - you can't trust most 6 year olds (definitely not Bennett) with a phone. They're usually too big to fit in their pocket, they'll lose them, and they never put the damn things on the charger. What you'd end up with is a dead, broken, phone sitting god knows where in a campground 2000 miles away.
Then, over the holidays, it hit me - all of his friends play Minecraft, but none of them really have a good single place where they can all hang out and play. I thought hmm...I know how to make a Minecraft Server. Maybe I can set it up and allow his friends to join?
So I decided to spin up a server on Digital Ocean (which was so easy). I talked a bit about this with Alex, who has continued to spin up private servers for him and his friends every year, and managed to get my hands on the right plugins for this type of server. It's possible to "claim" a parcel of land, essentially locking it down, and preventing other players from accessing the stuff on that land. It allows everyone to build their own home base without worrying about some other kid coming in and ruining their base. There's a few other goodies in there, too, but I felt that was the big one.
I spent a little time thinking over how I'd protect the world, and interact with uploading files to the server quickly and easily. I know I can use SCP, but decided I wanted something a little simpler to use, and also something that backs up the files in the process. So, I ended up setting up a SyncThings program on the server and on my local machine and am literally syncing the files all the time. I might switch this over to use something less instant, like GitAnnex (h/t: to Yaan), but for now I'm pretty happy with how it works.
The craziest part though? the server supports crossplay! In other words, you can play Java Edition on PC, and Bedrock Edition on a tablet and both can still connect, interact, and flawlessly play on the server together. It's amazing! I had to install a couple plugins to get that to work, but once it was set up and going it worked like a charm.
Reflecting on all of this, I can't help but think just how similar the Minecraft Ecosystem is compared to the WordPress ecosystem. Someone owns it (Microsoft, Automattic), and has their own version of the software that they maintain (WordPress.com, Minecraft Bedrock Edition), and an open version of the software that is more community ran (WordPress.org, Minecraft Java Edition). Even how the platform works is strikingly similar to WordPress. Want to install a plugin? Just drop it in the plugin folder and restart the program to activate it. Want to change the (WordPress theme) world? Replace the world directory with a different world and restart.
I have no idea if it will actually make a difference or not. Maybe his friends will never log on. Maybe he'll lose interest and this entire thing will fall to the wayside. But regardless, I had a lot of fun experimenting with it this week, and it's re-kindled an interest in self-hosting everything all over again. Actually, it made me start up a Factorio server, too. But that's a different story.