Following yesterday's bumpy start, I was determined to make some progress with Minecraft today. I had hunted round our storage and gathered the following:
- A Dell Vostro 200 desktop with 1GB RAM which my wife used before she got her laptop. We stopped using this because its hard drive broke and it refused to boot from CD
- A grubby but workable 1024x768 VGA monitor
- A USB keyboard and mouse
- A 1GB USB stick
- A SATA disk drive which I had been using to store some old backups
- various power and network cables etc.
The first step was to connect the keyboard and mouse to the Raspberry Pi. I'd not done this before so I was a bit wary about power consumption, given all the warnings about powered USB hubs, but there was no problem at all. I connected the Pi to my Mum's old HDMI TV, and started up Minecraft Pi Edition (mcpi). It didn't use all the screen, but I'm guessing it has a fixed size "baked in". It seemed to work as I clicked randomly with the mouse and spun round chopping and creating blocks.
Having verified that the mcpi installation was working, the next step in my plan was to build the other bits of my junk pile into a minecraft server. I needed the keyboard, so I shut down the Pi for now.
I needed to reformat both the USB stick and the hard drive, but both had stuff on already, so I had to back them up first. This actually turned out to be the longest part of the process. The USB stock was fairly quick, but the hard drive had getting on for 20GB of old stuff which ended up taking a couple of hours to copy to another machine over USB2. Of course, Windows gave me a series of wildly differing estimates during the process, ranging from 20 minutes to several hundred. Once that was done, though, the real fun could begin.
I had spent the waiting time looking around the internet and found MineOS CRUX which looked ideal for this job. A minimal yet standard Linux tuned for running a minecraft server with a minimum footprint. I had grabbed an ISO image from the list on the site. At this point I had to go a bit "off piste". The instructions assume you are installing from a CD or DVD, but the CD drive in the re-purposed computer does not seem to work properly.
First I formatted the USB drive as FAT32. Although not the best format for continual use, it at least has the advantage of wide support, and most things which will boot from a USB device will read this format. To get the ISO onto the USB drive in a bootable format I downloaded unetbootin which seemed to get generally favourable comments around the web. It did the job very well. I now had a bootable USB drive containing the installation for MineOS-CRUX. After fitting the backed-up hard drive and connecting the monitor, ethernet, keyboard and mouse, I plugged in the USB stick and started the PC. The initial run did not boot, but I did notice a hint on the screen to press F12 for a boot menu. Once I had done this and selected USB it booted into the MineOS-CRUX installation and I simply followed the on screen instructions.
MineOS-CRUX provides a web admin panel, so I then moved to remote configuration for the next bit. This also meant laying the old monitor down on its face on my desk, so I could see past it to the display from my main PC! I pointed my browser to http://<ip-address-of-server>/admin and entered the login details created during the installation and up popped a fairly clean dashboard. It showed that there was no minecraft server installed, but offered a simple "download" button to do that. Then it was just a matter of creating a "world" using a form to set its name, difficulty level and so on. My willing volunteer started the Minecraft client on a laptop, connected it to the new server and was up and about immediately, declaring it as a "cool seed".
Usually Minecraft is administered from a local command prompt, but one of the nice things provided by the MineOX-CRUX admin panel is a pseudo-console allowing an administrator to enter Minecraft commands to, for example, give operator privileges to a user, or change a user's game mode and difficulty level.
Eventually I did have to dip down to Linux for one thing. The intention was to make this a shared server, usable by a group of friends over the internet. This means poking a whole in my firewall with a port-forward, but that works best with a fixed IP address. Essentially, I followed the instructions here and then added a port-forward in my broadband router.
A few calls to friends and the new server was thoroughly "tested". Now, flushed with success, on to the final step, connecting My Raspberry Pi Minecraft client to the shared server, so I can see what all the fuss is about...
But, as it turns out, I can't.
I've not seen this emphasized in any of the "gosh wow" publicity surrounding the launch of Minecraft for the Raspberry Pi, but the two versions are not compatible. They may look similar in screenshots, but the Raspberry Pi version can not interact with the "full" version at all. Apparently it is based on a separate application "Minecraft Pocket Edition" aimed at Android and iOS devices. It's possible that the Pi version might be able to interact with those, but I can't see how at the moment.
One the one hand I'm excited. I have Minecraft (of sorts) on my Raspberry Pi, and I can just about move around and create/destroy blocks, even though I have yet to find any hints on what all the keys do. I'm looking forward to writing programs to create and manipulate things in the Minecraft environment.
On the other hand, though, I'm really disappointed that my main aim of being able to interact with my kids in an environment they understand, and to help them see the usefulness of learning how to program, has been (so to speak) blocked.