My kid is getting interested in Minecraft, just by osmosis. It's absolutely everywhere, and even if it has already peaked, it seems to still be very appealing to young minds.

I admit that I'm not a 'gamer'. I enjoyed playing video games with my friends when I was younger, but it was almost purely an in-person social thing. Specifically my childhood spans the Nintendo to N64 years. ( I have one very early memory of an Atari ). I never got very good at video games, so as the games got harder I just found it less engaging.

I acknowledge that several epochs have passed in the world of video games since those days.

I'm told a lot of things about the modern videogame landscape: how it overlaps with pop culture and social media, how parents can introduce responsible habits, how much is 'normal', etc. What I've been told is that if your kid is going to play video games, then Minecraft is the kind of creative game you want your kid playing.

Minecraft for dummies

I honestly don't know anything about Minecraft.

There is a server, there is a client, together it constitutes a multi-player game. That much I completely understood. But when I downloaded the desktop client I needed a Minecraft account before being able to play the game.

It was at this point that I realized that it isn't free. You can host your own server to 'sandbox' your worlds, but the cost of access to the game on the client ( outside of a demo ) is apparently $30 per user, one time.

I realize that things need to cost money, I'm not opposed to the $30 cost itself. What bothered me was the "home screen" that just promoted all the other games and upgrades for purchase on the platform. I'm not interested in paying for an opportunity to pay for more things.

I also want it to be less distracting when simply starting the game. The paradox of choice is a real thing, especially for kids, whose attention is easily hijacked by visual clickbait. I want something a little less 'online'.

Requirements:

  • Self-hosted and "Offline"
  • Multiplayer over LAN
  • Not commercialized, no "splash screen" of other things to buy

Not strictly requirements, but I also love when things are:

  • Open source
  • Free

Introducing: Minetest

Yes there is an open-source alternative! I assume it was created by a bunch of creative and intelligent people who also wanted to stick it to the man and avoid paying $30 for (each) of their kids to play this game.

Actually, Minetest is, "a free game engine... for blocky games" [source]

The whole project has been rebranded as Lunati, a platfom for "voxel-based" Minecraft-like games. Now Minetest is just the original game on the platform, but there are others.

From my extremely-limited understanding of the online gaming platform/frameworks, I think Luanti is also somewhat parallel to Roblox. I probably sound like an old person.

Fun Fact: Luanti is a nod to Lua

The Docker Part

Just like Minecraft there is a backend server which you can run within Docker.

https://hub.docker.com/r/linuxserver/minetest

They provide an example docker-compose.yml:

services:
  minetest:
    image: linuxserver/minetest:5.10.0 # I used this version specifically
    container_name: minetest
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Etc/UTC
      - "CLI_ARGS=--gameid devtest" #optional
    volumes:
      - ./data:/config/.minetest
    ports:
      - 30000:30000/udp
    restart: unless-stopped

If you want to provide a custom config file ( an example here ), create a minetest.confg that gets mounted into /config/.minetest/ This will allow you to tweak the basic variables of the platform, like which map generator is used, how quickly time passes within the game, etc.

The Client part

This is the open source alternative/equivalent to "Minecraft Java Edition" - the client-side software that runs the game on the player's device.

ON ubuntu there is a snap package, which allows me to play long on my PC.

Install minetest on Ubuntu using the Snap Store | Snapcraft
Get the latest version of minetest for on Ubuntu - Open source voxel game engine

There are downloads for all major operating systems, see the Minetest wiki

The platform supports mods and all kinds of minecraft-like features. It seems surprisingly well supported.

Launch the client, select the 'Join Game' tab and then type in your server's address and the default port.

localhost:30000 on the host itself, otherwise <ip_of_host_on_LAN>:30000 for other devices

Then you're off and running. I don't know how the gameplay or features stack up to the original, but it's quick to learn and fun to play. There are more complex flavors of the game with more non-player-characters and economics, like villages and stuff - but let's not get ahead of ourselves.

Android

The touch interface on a tablet was easy to learn and this is how my 6 year old plays.

The Google Play store has a Lunati app, which seems to have the identical interface to the Ubuntu client. I followed exactly the same steps to connect to the server ( by its IP address ) , register a new account, and then join the game.

Luanti (formerly Minetest) - Apps on Google Play
Luanti is a block-based game platform.

Remember that every client connecting to your server will need to be connected to the network and using the server's IP address.

Note about parenting

This probably seems like far too much effort and an unrealistic amount of parental control over his digital habits. It's nearly impossible to control the content that reaches kids via all of the platforms and channels ( and devices ) that are increasingly present in their world. This is kind of a testament to that. I'm just trying. For the time being he's happy in the sandbox.

Someday he'll realize this isn't the real Minecraft and then shortly after that he'll be off playing who-knows-what with his friends. I'll be glad I spent at least some time playing video games with him.

Next Steps

It seems like an ecosystem with a lot to explore. What other fun can be had hosting my own server?

  • Can I script some world-interactions with python ( or... Lua? )?
  • I can build my own mods?
  • Can I automate or train autonomous agents within the game?
  • Can I interact with the server headlessly?

We're already having a great time building castles and exploring dungeons ( and spawning farm animals with god-like power ).

I also built my first mod! It provides a new block type: