It’s easy… when you know how

It feels like I’ve spent the best part of four days learning Linux. Lets be specific (because I’ve discovered, you have to be specific), I’ve been learning the RedHat distro of Linux which does somethings differently to, for example, Ubunto. Oh, and I’ve been learning the Windows Command prompt syntax as well, all to get a Minecraft Portus up on to the University’s Minecraft server. As an arty-farty type who, after some BASIC in my schooldays, has been pretty exclusively a Mac user, my command line experience has seen me many times looking up into the afterlife whispering prayers of thanks to Saint Steve of Jobs. It was he who, in nicking the idea for a GUI (and drag-and-drop – oh all hail drag-and-drop!) from Xerox, saved most of us from the Hell of mis-typed commands and open source syntax (where for example, some commands use “-r” as an option to make the command recursive and other commands, quite arbitrarily it seems, scorn the lower case and only understand “-R” do do exactly the same thing).

The first day’s frustrations were all about getting the user permissions I needed to start tinkering. Some things worked, but other things were forbidden, and of course in my innocence I thought I was doing something wrong until I finally returned to the support line to find the administrator had mis-typed something in setting up my permissions.

Not that I blame him of course, I know how easy it is to mistype something. Readers of my blog have the evidence of that right in front of their eyes. But at least this blog uses actual words, not the contractions, acronyms and symbols so beloved of coders. Then there were three days of:

  • loading files up to the server, mostly using wget;
  • reading up of how to upload from Windows to the server, and deciding that acquiring and using the open source software, pscp, to do so sounded very, no, too complicated;
  • discovering that if they came from github where the most excellent Shawn Graham had published them, then what I was transfering wasn’t the file, but the web page that held it;
  • looking again at pscp, and again rejecting it;
  • toying with  the idea of getting to grips with Git, which seems like proper programmers, stuff, and instead deciding it would be easier to put the files on Dropbox and wget them from there;
  • learning how to unzip and archive in ssh, and puzzling over why there were two of everything (binary files I’m guessing);
  • trying to get one or other set of files (or a combination of both!) to work by changing the group and permissions to make them look like the ones in the default world (remember to use the recursive option when using chmod or chgrp on directories so that all the contained files also have their group and permissions changed);
  • trying to wget the directories and files direct and uncompressed from Dropbox, only to discover that process seems to change every file’s name slightly;
  • downloading pscp and discovering that wouldn’t open when double clicking on it (oh the innocence!), giving up;
  • trying to load Git on the server, discovering I didn’t have permission, and deciding the this was an arcane thing that no mortal man should know;
  • finally getting my head around opening pscp in Windows’ Command Prompt, setting a PATH for it so it would actually work (no I don’t know either, but it needs to be done, every time);
  • loving the way that paths are described with “\” on windows and “/” on Linux (and the web);
  • chmod and chgrping again (By this time I’m feeling quite the expert on these functions. Oh yes I can 775 with the best of them!);
  • all of the above with frequent restarts of minecraft_server.1.8.1.jar to see if what I had done worked (and discovering it didn’t);
  • accidentally deleting the actual minecraft_server.1.8.1.jar software (there’s no undo in a command line interface);
  • quickly restoring minecraft_server.1.8.1.jar using my new-found pscp skills;
  • restarting to find it still didn’t work
  • tweaking the name of the players directory (to playerstats as in the default world) and moving the region directory (which seemed to have some how escaped from the world directory, and restarting again; and,

Its works! Ha-lleh-bloomin’-lu-yah!

The Trajanic Basin from the roof of the Imperial Palace
The Trajanic Basin from the roof of the Imperial Palace
The lighthouse at night
The lighthouse at night
The hills behind Portus in the rain
The hills behind Portus in the rain

So what is it exactly? Well, its the work of a group of Shawn Graham’s students  “3rd year undergrad history class, but […] a mix of majors; none of them ancient historians” Shawn explained to me. According to their presentation, the intention was to recreate the life of a slave in Portus, by limiting the interactivity. I’m not sure whether that side of it is actually working in my version, as I seem to be be able to explore with complete freedom.

The model itself is based on these old archaeological (or maybe more appropriately, antiquarian) plans, most specifically  the ones by Canina. It looks pretty good even without the Romecraft texture pack, which the students used (and which I’ll install when my head stops hurting).

The server isn’t publicly available currently, but if you have a University of Southampton username, open a VPN with the university, fire up your copy of Minecraft, click on multiplayer, and seek out this world, which goes under the name of svr00978.soton.ac.uk.

It’s also worth checking out Shawn’s assignment to his students which, explains why they worked so hard to create this.

 

Minecrafting Italy

Last week I set up my first Minecraft server. I’d been discussing how we might build Portus on the University’s Minecraft server, but because we don’t yet have Admin access to that I thought I ought to set one up on one of my own machines to start understanding how it all works. I say “one of my own machines” because I had planned to run it from my University Windows laptop, but I could not get it to work. The idea is that you run it once and it creates a bunch of files, which you then fiddle with before running it properly. But those files didn’t appear on my PC. After some time trying to locate them, or run the .exe file again to create them anew, I gave up and decided to repeat the process on my Mac at home.

There it all seemed to work perfectly. The only challenge on the Mac is creating a script to actually start the server, and then turning it into an executable file. But there is a very simple guide on how to do this on the Minecraft Wiki.

So today I followed Shawn Graham’s advice to have a go at creating the topology of Portus. Well I say I followed it. Obviously I ignored the bit about ignoring a bit of a YouTube “Minecraft School” video about getting Shuttle Radar Topography Mission (SRTM) data via Google Earth. Let me just repeat that: “Shuttle Radar Topography Mission.” Data, from the Space Shuttle! Isn’t that amazing? No? Moving on…

That YouTube Video is a bit out of date you see. and you don’t need to find it from GoogleEarth (or download the SRTM plug-in, which it turns out doesn’t work anymore anyway), the data you need is available here: http://dwtkns.com/srtm/.

When we do this for real, we’ll have the Universiy’s LIDAR data to create the topology, but I wanted to have a go with something relevant. So I used QGIS, the free and open source GIS software, to edit the SRTM data down to an area around the sites of ancient Roman Portus and Ostia.

The area around Fiumicino in SRTM TIFF data, manipulated in QGIS
The area around Fiumicino in SRTM TIFF data, manipulated in QGIS. Is that the Trajanic Basin?

Then, exporting that image as a Bitmap (BMP) file, it was off to WorldPainter, to turn it into a Minecraft world. There’s a bit of trial and error required here, first of all finding an appropriate scale for the translation, both in x and y  axes, and of course in height. WorldPainter tends to want to make the range between see level and the highest point 255 blocks (which I guess is something to do with the shades of grey in the bitmap. Then there is the white space where the sea goes. White indicates the highest points of the the landscape, so the sea could turn into a massive … er… massif, 255 blocks high.

And of course there’s the curiosity of the Trajanic basin. Why is it a mid grey? Neither white like the sea, nor black like the lowest land? After a number of attempts I cheated – took the bitmap into Paint, and made the sea and basin black. After that, and some fiddling with scale, the WorldPainter map started to look something like an actual map:

The WorldPainter Map
The WorldPainter Map

Good enough, I though to try out on the server. I exported them to the desktop and put the files in the relevant folder on the server, then fired up Minecraft proper to take a look. Hmmm more work required I think…

... and I have NO idea where these huge anti gravity squid ponds came from!
I have NO idea where these huge anti gravity squid ponds came from!
The low resolution of the SRTM data does quite cut it at this scale
The low resolution of the SRTM data doesn’t quite cut it at this scale