My kids love to play games! Tablets, phones, PCs, you name it. However, I don’t like for them to connect to remote online servers, chat with strangers, or possibly encounter any kind of advertising. I’ve also been reluctant to pay for games when there are free alternatives available. So, I decided to see if I could make the kids happy with a Minecraft-like game while also leveraging a pi board running Linux.
I quickly discovered Minetest, which is free and open source software that is inspired by Minecraft. There are free apps for your desktop and for Android. You can participate in multiplayer games by connecting to a gaming server hosted online or your own computer. There may “worlds” available to download and explore, as well as several game mods to tweak the experience. It may not be quite as polished in some ways as Minecraft, but it is plenty good enough in my opinion and just plain good fun. I decided to give Minetest a try with my Orange Pi as the gaming server to support multiplayer games for my kids. And who knows, maybe the kids would think that their dad is kind of cool for setting up their own private gaming server!
Well, let me tell you that it was not so quick and easy for me to get Minetest installed and working exactly the way I wanted. I learned a good deal from online resources like the Minetest forum, but also from some experimentation. The version of Minetest available in the Debian and Ubuntu package repositories are not the latest stable version, and based on my observations may be a bit buggy. I ended up installing the software from source and modifying the configuration to my liking. The guidance below may help you out if you want to have your own free, private Minecraft-like home gaming experience for your family that is under your control.
I downloaded and installed the Android app on several devices in the house, and it was here that Minetest sometimes let me down. On some Android devices, it ran flawlessly. On others, the app would crash when attempting to connect to the Minetest server. The only way to find out if the app will work with a server is to test a connection to one. You may want to test the app on your Android device connecting to one of the public servers before you commit to installing the Minetest server. In my case, enough devices that the kids use worked out, so I went ahead.
The below guidance assumes that you are running Armbian, but it may also work on Raspbian/Raspberry Pi. With some minor difference, this should also work for Ubuntu/Linux Mint.
First, install some dependencies. In a terminal window, run:
sudo apt-get install -y git build-essential libirrlicht-dev libgettextpo0 libfreetype6-dev cmake libbz2-dev libpng12-dev libjpeg62-turbo-dev libxxf86vm-dev libgl1-mesa-dev libsqlite3-dev libogg-dev libvorbis-dev libopenal-dev libcurl4-openssl-dev libluajit-5.1-dev liblua5.1-0-dev libleveldb-dev
Next, navigate to a directory where you want minetest to be installed and download the source code for minetest and minetest_game:
cd <your preferred directory>
git clone https://github.com/minetest/minetest.git
git clone https://github.com/minetest/minetest_game.git
You should now be in the minetest directory. Run the following to build minetest:
cmake . -DRUN_IN_PLACE=1 -DENABLE_GETTEXT=1 -DENABLE_FREETYPE=1 -DENABLE_LEVELDB=1
This will take a long time…so go get a coffee or something and relax. When completed, the process will inform you that minetest has been installed in the bin directory inside your minetest directory.
Next, build minetestserver:
cmake . -DBUILD_SERVER=TRUE -DRUN_IN_PLACE=1 -DENABLE_GETTEXT=1 -DENABLE_FREETYPE=1 -DENABLE_LEVELDB=1
This will take some time again but not quite as long…so, maybe a second cup of coffee? Once completed, you will also have minetestserver in the bin directory.
If you want to adjust the settings for your minetest gaming server, there is a sample config file in your minetest directory called “minetest.conf.example” to use as a starting point. I made my minetest.conf and adjusted it to allow for user privileges such as “fast” and “fly” because who doesn’t dream of flying! I simply put the config file in the bin directory along side minetest and minetestserver for convenience. If you want to have such a config file, edit it, and use it for multiplayer gaming, then do something like this:
cd <directory where you want the config file> (e.g. cd bin)
cp ../minetest.conf.example .
mv minetest.conf.example minetest.conf
nano minetest.conf (make your edits and save)
I chose to not announce my minetest server to the public server list (I’m keeping it private). Some examples from my config include, especially the privileges that let the kids fly through the worlds they explore:
fast_move = true
default_privs = interact, shout, fast, fly, kick
enable_fog = true
See also the Minetest wiki page for minetest.conf.
In order to run your minetest game server, do as follows from the bin directory (for world, I used OrangePI):
./minetestserver --config minetest.conf --gameid minetest --world <your world name>
You should see output on the terminal telling you that Minetest is running, including a little Minetest logo.
Installing and Connecting Clients
Minetest can be installed and run as a client on Windows, Linux, and Mac desktops. See the Minetest download page for general guidance.
There is an Android app available in the Google Play store. Download and install on your Android device.
I installed Minetest on a couple of Macs in the house running MacOS Sierra using the latest version homebrew like this:
brew install homebrew/games/minetest
Please note that xquartz is required on the Mac, and so you may need to install that first.
On Linux Mint 18.1.1, I followed the same install instructions as for Arbian, except that I had to substitute the package libjpeg8-dev with package libjpeg62-turbo-dev. (I also did not install minetestserver).
On each device, I set Minetest to point to the server “orangepipc” with the default port of 30000. I provided a login (and no password).
The game performance for the kids (and for me) has been good. I haven’t seen any hiccups and the Orange Pi PC board is handling the little bit of extra load without issue. My little one especially thought that this was awesome and is having a blast. I hope you enjoy your gaming experience on your pi board!