Category: Uncategorized

South Pacific

Well, we made it to Australia at last. Most of our updates are available on Anna’s site and there is a Flickr page too. I didn’t have a lot of time when we were travelling across the US to write any code (except working the odd plugin into our blog), but now that I have installed lighttpd, PHP and MySQL on my little laptop I am perfectly able to work on blog stuff offline.

I have discovered two important things while coding on the high seas, which pre-internet coders will already understand well, that I think I will keep up after I return: one, there are few distractions and it’s very easy to stay focused on the task at hand if you leave the browser alone and/or have no internet access; two, it’s a royal pain if you’ve decided to work on some new functionality for your project but forgot to download all the manuals before you leave! Also, seasickness can be a problem in certain weather conditions…

It turns out I had forgotten more of the OpenGL detail than I realised and without any recourse to the usual repository of internet knowledge, the latest version of my octopus game now has input, and simple AI and the rough beginnings of a game mechanic now working, but it can’t even render the floor properly in 3d space (I think the issue is with the camera init code). Previously I was going to write my own isometric 2d renderer as a thought experiment, but I quickly realised that OpenGL would be well up to the task and would serve well if I ever want to scale up to full 3d when I am in once again equipped with a fast PC. Reinventing the wheel has never been my strong point. While we were at sea, I converted the entire project to Java (as demonstrated by Markus Persson of Minecraft fame, applets are an extremely good tool for packaging your game!) and am now using LWJGL after a brief look and rejection of JOGL, which is less rounded a package for this project.

My other project is updating Anna’s site with some custom trickery – we are looking at improving the site load times (cue Firebug and some javascript hacks) as well as a nice way to present our America articles that fits in with our existing WordPress infrastructure. I have started building a HTML5 Canvas-based map showing our route and linking it to the existing articles – I will make another update with pictures once it gets a bit further on!

Another unexpected development is my rediscovery of some old games that I never completed when I was younger. I have found the joy of ZDoom, ScummVM and DXX-Rebirth, all of which still run well on modern underpowered hardware (let’s not forget for a moment that most of these games originally ran comfortably on 100Mhz of horsepower, way below the output of our ‘little laptop’, so these source ports are relatively inefficient!). I think at some point in the future I will write a couple of reviews for these old games – they hold up surprisingly well against more recent games in the genre (which shows you how little we have progressed in 15 years)! Internet cafes are plentiful here but it’s quite hard to make it all the way to one to play something modern, given all the other stuff that needs doing round here…


Welcome to America

We arrived in New York this morning – after a very early start to see the Verrazamo bridge we saw Manhattan drift past and the sunrise over Brooklyn. It made me think back to all the travellers who have made a similar journey in the last three hundred years and how the sight must have appeared to them – after days and days of just open sea the land looked magical and the buildings very exciting and alien. America feels like a land of freedom and opportunity from this perspective (relative to the confines of a boat).

En route we saw some dolphins and whales and had a better time than I expected. There was plenty of time for contemplation and reflection, and I was able to make a decent start on my next game project. Anna is covering more on this in her blog, Without Wings.

It doesn’t look like much at the moment (thanks to my “programmer art” skills) but my aim is to create a simple game where you play a Victorian in a mechanical octopus suit who is trying to mine gold/save the princess/whatever (as always in this kind of game, the backstory evolves organically once you’ve worked out the all-important gameplay). So far I have a grid with various terrain types, destructible tiles, actors that can move/fly around and follow simple lists of waypoints, and select/control functions now working. The game is going to mirror some of Dungeon Keeper’s gameplay with some new game elements and win conditions. The game would probably work quite well in multiplayer, but I need to get the engine basics up and running first before I split out any functions to client/server. The final version will be isometric 3d, but for the purposes of getting the engine up and running I’m currently using a 2d renderer with an isometric view built into the sprites (my little laptop is not very fast at all). The advantage to this approach is that it should be relatively easy to port this game to mobile platforms, should the need become apparent – when I get access to a machine with some larger horsepower I can write a 3d renderer, physics code etc. relatively easily without having to change the game code too much. At the moment I am using C# and the Tao framework to bind to SDL, but I have been running into performance issues already (more optimisation to be done, of course). I think it should be easy to port the infant game over into a java environment with some simple find/replace operations if the need arises.

First Post

Well, I suppose I’d better write something about why I’ve started this blog… In just over 8 days, I will be setting off on a very interesting journey – to try and travel around the world without catching a single flight. I am doing this both to raise awareness about low-carbon, sustainable travel and to prove to myself that it can be done. My girlfriend is going to be running a blog which is going to cover the ethical and philosophical dimensions of the trip – this one is more for the practical side of things though there will certainly be some crossover between the two!

On top of the obvious challenges along the way, I am also going to be writing a number of software projects – the big hurdle being that for most of the time I expect to have infrequent internet access. For the modern software developer this is quite unusual (this rules out most of the google APIs and web services, for example!) so I am going to try and write about some of the tricks I discover along the way.

While travelling I am going to be bringing my tiny laptop (an eeePC 901, running Ubuntu Natty for ease of use), a single rucksack which has a small satellite backpack attached (great for long train journeys, our primary mode of transport) as well as a bag full of extras dubbed "The Mule".