A Dad's guide to Minecraft

The last game I was really into was Quake 1, and that was almost 20 years ago (1996 - wow, can that really be true!). Well,fast-forward twenty years and my daughter has discovered Minecraft. As a Dad who needs to get up to speed, this is a collection of thoughts and notes about Minecraft.

Resources

The main Minecraft website was my entry point but I quickly found myself on the Minecraft Wiki and Minecraft Forum. There is also a Minecraft IRC chat room.

Minecraft was made by Notch through his company Mojang which was bought by Microsoft in 2014 for a cool $2.5 billion. However, untold riches did not a happy chappy make.

Minecraft Editions

One thing I realised early-on is that we're using the Pocket Edition and it is not the same as Minecraft on the PC or XBOX. In fact there are many so-called Minecraft Editions and they aren't always compatible.

I'll talk in particular about the pocket edition, or MCPE as it is sometimes called. Where I mention other editions, I'll make that clear. Also my focus is Android.

You can get MCPE here or, if you must, here.

Game Modes

There are a few Game Modes in Minecraft but the two of most interest are survival and creative.

Survival mode is the main game-playing mode. Players have to gather all their materials to build, craft and gain experience points. There is a health, hunger and armour bar, an inventory and, when underwater, an oxygen bar. If you die you go back to your spawn point.

Creative mode gives the player an infinite amount of almost all blocks and items available, and can destroy them instantly. Players are invulnerable and do not have health, armour, or hunger, and can fly.

I think that creative mode is the most engaging and easiest entry point for young children because they can go exploring and start building straight away. It also lacks the mild violence encountered in survival mode.

Worlds

Minecraft play occurs in a Minecraft World. Players create a new world with their chosen game mode and play within it. Players can create multiple worlds (perhaps having survival and creative worlds). The current game position is automatically saved regularly, every few seconds.

Backup

MCPE world data is stored at /storage/sdcard0/games/com.mojang. This is a directory tree that contains, amongst other things, a minecraftWorlds subdirectory. As one might expect, this contains each of your Minecraft worlds in its own strangely named subdirectory - something like G4UAAGDxPQA=.

The easiest way (for me, as a Linux techie) to backup the Minecraft worlds is to use adb to archive and pull everything onto a computer:

$ adb shell tar cvf /data/local/tmp/com.mojang.tar -C /storage/sdcard0/games com.mojang
$ adb pull /data/local/tmp/com.mojang.tar .
$ adb shell rm /data/local/tmp/com.mojang.tar

If you want, you can create a Git repo:

$ tar xf com.mojang.tar
$ cd com.mojang
$ git init
$ git add .
$ git commit -m "Initial commit"

Push to Git server (prepared earlier, Blue Peter style):

$ git remote add origin git@git:minecraft_pe_worlds
$ git push -u origin master

However, World data can grow and Git isn't the best choice for large data sets (GitHub has a 1GiB repository limit).

My first commit was 19MiB in size (du -sh .) and the second, one day later, increased that to 33MiB and on the third day, it grew to 51MiB. It looks like it might grow rather quickly, so it might be more prudent to seek an alternative backup strategy instead of using Git.

A nice adage would be a git client for Android that allowed something like adb shell git push. Something for another day perhaps...

Install a world

You can install a world backup onto another PE device. First copy the archive onto the device and the extract the worlds:

$ adb push com.mojang.tar /data/local/tmp
$ tar xvf /data/local/tmp/com.mojang.tar  com.mojang/minecraftWorlds -C /storage/sdcard0/games

Or, to extract a specific world:

$ tar xvf /data/local/tmp/com.mojang.tar  com.mojang/minecraftWorlds/G4UAAGDxPQA= -C /storage/sdcard0/games

If you are using Android user profiles then the filesystem path may be different, for example (and where 11 is a user id given by adb pm list users):

/mnt/shell/emulated/11/games/com.mojang

Playing together

It quickly became aparent that we should all play together in the same world. This requires a server and, for PE, that is PMMP (previously PocketMine) which requires PHP 7.

I don't have time to set up a server now. I'll update this if I ever get around to it.