Wednesday, 30 December 2009

Settling a game world

This essay is part of a series with 'Worlds andFlats' and 'The spread of knowledge in a large gameworld'; if you haven't read those you may want to read them before reading this. This essay describes how a large world can come into being and can evolve. I've written again on this subject since - see 'Populating a game world')

Microworld

Some twenty years ago I wrote a rather sophisticated cellular automaton which I called 'Microworld' which modelled the spread of human population over a landscape. It did this by first fractally folding a grid to assign elevations to cells. Then, cells below a critical elevation – the tree line – were assigned as forest. For each cycle – 'year' – a cell remained forest, its soil fertility would increase. Random events – 'lightning strikes' could change a cell from forest to clearing. Then the following transitions might take place, each with a probability, where each cell is considered to have eight neighbours:
  • A forest cell with a lightning strike as a neighbour may catch fire and burn
  • A forest cell with a fire as a neighbour may catch fire and burn
  • A burning cell become a clearing cell
  • A clearing cell with forest or scrub as a neighbour may become scrub
  • A scrub cell may become forest
This more or less completes the 'natural' cycle... then we get to settlement. Pastoral and agrarian 1 cells gradually degrade soil fertility (erosion, etc). Agrarian 2 cells do not degrade fertility.
  • A clearing cell (including cells above the treeline) may become a pastoral cell (pastoral 1, no settlement)
  • A pastoral 1 cell whose soil fertility falls below a threshhold becomes waste
  • A pastoral 1 cell with no pastoral neighbours may become waste
  • A waste cell below the treeline may become scrub
  • A waste cell may become clearing
  • A pastoral 1 cell with two or more pastoral neighbours may become a pastoral 2 cell (settlement)
  • A forest cell with two or more pastoral neighbours may become clearing
  • A pastoral 2 cell with two or more pastoral 2 neighbours may become agrarian 1
  • An agrarian 1 cell which falls below a critical fertility becomes pastoral 1
  • An agrarian 1 cell with three or more agrarian 1 neighbours becomes agrarian 2 (smith, mill)
  • A cell with three or more agrarian 2 neighbours becomes market
  • A market cell with no agrarian 2, market or urban neighbours becomes waste
  • A cell with two or more market neighbours becomes urban
That's simple, but it provides a remarkable good model of population spread. however, it is essentially a grid and so doesn't make for natural-seeming landscapes when considered as a three dimensional rendered world. How can we do better?

Microworld Two

The objective of this essay is to outline an angorithm for creating inhabited landscapes in which games can be set, which are satisfyingly believable when rendered in three dimensions. The objective of creating landscapes 'procedurally' – that is, with algorithms – is that they can be very much larger than designed landscapes for the same richness of local detail. This does not mean that every aspect of the final landscape must be 'procedural'. It would be possible to use the techniques outlined here to create landscapes which were different every time the game was played, but it would be equally possible to create a landscape which was frozen at a particular point and then hand edited to add features useful to the game's plot. And while I'm principally thinking in this about role playing games, this sort of landscape would be applicable to many other sorts of games – strategy games, god games, first person shooters...

The physical geography

Consider our landscape as, once again, a fractally folded sheet on which any given point has characteristics based on its elevation and orientation. There are two critical levels – water level and treeline. The water level is, overall, sea level, but in the case of a localised depression it is equal to the lowest land height between the depression and the sea (lakes form in depressions). Computing the fractal sheet forms stage one in computing the landscape. Next, we need functions which, for any given point on the landscape, compute two different dimensions of soil fertility: water and warmth. We'll assume a coriolis prevailing wind blowing from the west, bringing in damp air from an ocean in that direction. Western slopes are wetter than eastern slopes. In principle, also, there's likely to be a rain shadow to the east of high ground leading to considerable aridity, but that may be too expensive to compute. Rain runs swiftly off steeper slopes, more slowly on flatter ground, so flatter ground is wetter than steeper ground. Water flows down hill, so lower ground is on the whole wetter than higher ground. This isn't a precise model of soil hydrology, but I think it's good enough. From each lake a watercourse follows the lowest possible path to the sea. Watercourses modify the land overwhich they flow, carving out a route at least sufficient to carry the amount of water collected in the watershed above each point. Where watercourses flow down steeper gradients, they carve out gullies, possibly with waterfalls. Where they cross shallower gradients or level ground, they become broader. Computing the watercourses becomes the second stage of computing the lanscape.

Vegetation

Now sprinkle seeds randomly across the landscape at a density of roughly one every ten square metres. Seeds which fall in water, ignore (? or make into water plants?). The position of the plant is taken from the random sprinkling. The species and size of the plant that grows from the plant are a function of the water and warmth functions described above, with latitude and longitude as seeds for pseudo-random functions delivering aspects like branching and so on – enough to make individual plants distinct and not carbon copies even of other plants of the same species, but nevertheless recreatable from just the latitude and longitude. So for each plant only two integers need to be stored, yet every time a player passes he will see an identically recreated world. Of course there is a trade-off between storage space and rendering time, and it may be more efficient to build and cache a detailed model of each plant. Like a lot of other things it depends on the game being designed and the processing power of the platform on which that game is delivered. As to how the functions which select the vegetation type work, obviously trees grow better in wetter places, grassland plants in dryer places; within the wetter places, coniferous trees are more prevalent where it is cooler, broadleaves where it is warmer. In the very wettest places, willows, alders and marshland plants. These plants – the seeded plants – are the feature plants of the landscape. When rendering the landscape the renderer would first apply a suitable local surface texture, for example, in grassland areas, grass.

Settling the world

So now we need to make this an inhabited landscape. My proposal for this is to introduce proto-actors, which may be the same software agents as the non-player characters the user will interact with (see my essay on the spread of knowledge). At this stage in their lifecycle, the proto-actors are fairly simple state transition machines. Generally, their algorithm is as follows: Starting from one or two seed points, proto-agents will initially move across the landscape travelling at most 20Km in a day, preferring to stop at inns or else at existing settlements; and will maintain a history of the places they have been, never revisiting a place until they have settled. Whenever moving, whether before they have settled or after, proto-actors will plan their route across the landscape, avoiding trees, buildings, and steep gradients, and will prefer to cross rivers at a bridge (if available) or else a ferry (if available), or failing that at the narrowest convenient point. When proto-actors settle, they will claim an area of territory appropriate to their trade – more below; the system must build up a database of land holdings. In particular a land holding will never cross a watercourse, an existing road or overlap another land holding (although roads may develop across existing holdings). This is key because I don't want holdings normally to have regular shapes. A settled proto-agent will build a building to live in, and possibly an additional one for his trade. When building buildings, proto-actors will prefer to build at the edge of their land holding, as close as possible to existing buildings and ideally at the side of an existing road. The richer an existing building is, the more attractive it will be to new buildings. Buildings will be built with their long edge aligned with the edge of the owner's hoding.
  • A proto-actor is initially, as described above, an itinerant. Itinerants are introduced into the world at a small number of geographical locations, and gradually, not all at once. Itinerants travel as described above. As they move they will leave breadcrumb trails with a roughly ten metre resolution. If they cross an existing track which goes in roughly the right direction they will prefer to follow it. Once a track has been followed by a certain number of proto-actors, it becomes a road.
  • An itinerant who finds an area of unsettled grassland of ten hectares with low soil fertility and not more than one hundred trees settles and becomes a pastoralist. He builds a cottage.
  • An itinerant who finds an area of unsettled grassland of ten hectares with medium or high soil fertility becomes an agrarian. He builds a homestead. Depending on the fertility of his land he can support between zero and ten labourers, 10% of a smith, 10% of a miller and 10% of a bonnet laird.
  • An itinerant who finds an area of unsettled land of 100 square metres within five hundred metres of a homestead with unfulfilled labourer demand becomes a labourer. He builds a cottage.
  • An itinerant who finds an area of unsettled land of 100 square metres within five kilometres of ten farmers with unfilled smithing slots becomes a smith. He builds a cottage and a forge.
  • An itinerant who finds an area of unsettled land either at the side of a water course or at the top of a hill, and within 5 kilometers of ten farmers with unfilled milling slots becomes a miller. He builds a mill – water or wind, appropriate to location.
  • Any settler who plays host to more than a certain number of travellers becomes an innkeeper. He claims 400 square metres of unclaimed land as close as possible to his existing settlement and buids an inn and stableyard.
  • An itinerant who finds 400 square metres of unclaimed land within a certain distance of an inn and a smith will become a merchant, provided that there are three smiths within a 5Km radius who have unfilled market slots. The merchant builds a marketplace and a counting house.
  • An itinerant who finds 200 square metres of unclaimed land within a specified distance of a market with an unfilled chapel slot becomes a priest and builds a chapel and manse, and possibly a school.
  • An itinerant who finds 100 square metres of unclaimed land adjacent to where a road crosses a river becomes a ferryman.
  • A ferryman who carries more than a certain number of passengers in a given period becomes a tollkeeper and builds a bridge.
This set of rules – and possibly others like them (woodcutters, fishermen, hunters...) provide the first wave of settlement. Once the landscape is sufficiently settled by this first wave, there needs to be a period of establishing trading routes. First, every settler will visit his nearest market, leaving a permanent track if there is not already a road. Where several of these tracks overlay one another, once again a road is created. Each merchant then visits each of the ten markets nearest his own, following existing tracks and roads where available. Wherever the merchants do not find roads, new roads are created. This completes the roads network. Each market is now assigned a value which is a function of
  • the number of people for whom it is the nearest market
  • the sum of the wealth (soil fertility) of the homesteads for which it is the nearest market
  • the wealth of other markets within a day's travel
Depending on its wealth a market may support up to twenty stallholders, including bakers, butchers, tanners, weavers, cobblers, chandlers and so on. So a second wave of itinerants sets off. These follow the original rules for itinerants, but if they find an unsettled 100 square metres within five hundred metres of a market, will set up as a stallholder, building a town house and appropriate trade building on their own settlement, and a stall in the market. An itinerant finding a hundred square metres within five hundred metres of a market which has all its stallholder slots filled may become a slum landlord, and build a tenement for day-labourers. Finally, aristocracy. In the second wave an itinerant who finds either a hilltop, an island in a lake or river, or a significant river crossing, with one hectare of unclaimed land and within 5Km of ten farms with unfilled bonnet laird slots becomes a bonnet laird (or 'squire', if you prefer) and builds a fortified house. At the end of the second wave of settlement the ten percent of bonnet lairds with the richest fiefs (using much the same metric as for the wealth of markets) become barons and build castles.

Rendering the buildings

This seems to me to provide an algorithmic means of settling a landscape which will generate organic and satisfying patterns of settlement. But it all fails if the buildings are chosen from a limited palette of models. As with the trees I think we need algorithmic mechanisms of building similar-but-different buildings which can be repeatably rendered from relatively small data sets. As an example of what I mean, in damper landscapes where wood is likely to be available, there might be a higher probability of stave buildings, or weatherboarding, with mainly shingle roofs. In slightly less damp areas where timber is still available, cruck frames and half timbered buildings will prevail, with mostly thatched roofs. In the dryest areas, cob and brick buildings will be common, often with tile roofs. On steeper hillsides, stone buildings will be common, perhaps with slate roofs. Within each of these types there are essential cells from which a building is created. These cells can be longer or shorter, taller or lower, wider or narrower. A building may comprise a single cell, or more. If more than three cells they may be arranged in a row or round a courtyard. And they may have one story or two. Which they have can be based – like the details of the plants – on functions which take latitude and longitude as arguments and which, internally use pseudo-randoms seeded from those latitude and longitude values.

How vast a world?

OK, so, with this general approach, how big can we go? The answer seems to me to be 'big enough'. A 32 bit integer gives somewhat over four billion values, so can resolve down to one millimetre precision in a world 4000 kilometres by 4000 kilometres. But we don't actually need millimetre resolution; centimetre would be quite small enough. And that gives us potential for a world 40000Km square, or 1.6 billion square kilometres, which is three times the surface area of planet Earth.

In practice we can't go that big for all sorts of space and time reasons. Recording land heights is inevitably an issue. I don't know of a pseudo random function which will generate satisfying land heights. Anything based on Julia sets, for example, ends up with landforms symmetrical around a central point. Furthermore, the shapes of fractals which can be constructed from simple functions tend to have a noticable and unnatural degree of self-similarity across scales. I'd dearly like to be wrong on this, but I think we need to store at minimum elevation values at ten metre intervals. If we can accept 100mm resolution for elevations, storing 16 bit values gives a range of 6,500 metres - 21,000 feet - from the deepest seabed to the peaks of the highest mountains.

This means that landform information alone requires 20Kbytes per square kilometre - unindexed, but seeing it's a rigid ten metre grid that isn't a problem. Which, in turn, means that you can store landform information for a planet the size of Earth in one terrabyte. But we don't need a planet the size of earth. Scotland is 80,000 square kilometers of land area; allowing for a bit of sea around to the horizon around it, say 100,000 square kilometers. That seems to me more than big enough to be a game space. It amounts to 160Mb of landform data, which is completely manageable.

If we stored plant data for every distinctive plant in Scotland - even at one per ten square metres - that does become an impractically large data set, because quite apart from anything else, the plant locations do have to be indexed. But actually, given that the actual plants that grow are a function of the location at which they grow, no player is going to notice if the pattern of the locations of plants is the same for each square kilometre. So we can manage plant data for a land area the size of Scotland in 400,000 bytes - we could do it in less (if the locations were generated using a pseudo-random function, much less).

Building data is different. We need to store the latitude, longitude and type of every building explicitly, and again they need to be indexed in order that we can recover the buildings in a given area efficiently. We need about 16 bytes per building (four bytes latitude, four longitude, two type; then for each tile a null-terminated vector of pointers to building records). If we assume that our feudal land of 80,000 square kilometers has a population of a million, and that there are on average five occupants of every building, that's two hundred thousand buildings, implying 3.2Mb of data.

Of course, that's just the backing store size. As tiles are loaded into active memory - see the essay 'Tiles and Flats' this raw backing data has to be inflated procedurally into actual models that can be rendered; models which may have thousands of vertices and hundreds of kilobytes of textures. The functions which do that inflating have some finite size, and, significantly, they'll need to work on prototype models which will in turn take storage space. Finally there are hand-edited models potentially used at particular plot locations; those need to be stored more or less in full. But all this has not become an unmanageable amount of data. It seems to me plausible that you could store a fully populated 100,000 square kilometer game world on one uncompressed 700Mb CD. On a 4Gb DVD, you could do it very easily.

Thursday, 12 November 2009

When in Germany

I've spent the week in Germany, where I've been performing a safety audit on a device made by a German subsidiary of a Swiss company on behalf of an English subsidiary of a French company. I write this sitting in France, fifty metres from Switzerland, while waiting for a plane to fly me to the Netherlands and thence home to Scotland. It's all remarkably painless.

But let's talk about Germany. Lots of the things you thought you knew (or I thought I knew) about Germany turn out to be true - or at least, turn out to be true of small towns on the fringes of the Schwartzwald. My view might be slightly influenced by the company I was auditing, by the fact that that Swiss-owned engineering company was absolutely obsessive about quality in everything they did (including hospitality). It was engineering of the kind I associate with Germany: always up to a quality, never down to a price. Over-engineered rather than under-engineered; good and thoughtful design, but emphasising sturdiness and durability over style.

The taxis were spotlessly clean, their drivers unfailingly courteous. The factory was clean and efficient and all the staff positive, relaxed, confident and happy to explain their work. The hotel was extremely well fitted and comfortable (and clean), the rooms generous and luxurious, the staff helpful, friendly and welcoming. They were mostly middle aged, not young; I think almost entirely local; and the ratio of staff to guests higher than you'd find in anything but the most upmarket British hotel. Yet the cost of a room was exactly the same as in a grubby corporate flea-pit in East Kilbride - where you would not have got the delicious and varied breakfast.

Which brings me to food. The company we were auditing treated us as guests; not only did they provide us with restaurant-quality lunch each day in their staff canteen, they took us out to dine every night, at a total of three different restaurants; twice the one belonging to our hotel, once a modern restaurant in the local administrative centre, and once... I'll come to that.

So what is German food like? Sausages and sourkraut? Chips and cream-cakes? Errr... no. We did eat a little sourkraut - several varieties of it, all good. We ate noodles, of kinds I'd never heard of before, let alone seen - nothing like Italian noodles. We ate dumplings. We once ate chips - once. We ate a simply extraordinary quantity of meat. We ate home made icecream. I didn't eat sausage at all (although a number of varieties were available at breakfast). Slightly to my disappointment I didn't eat a proper Schwartzwald Kirsche Torte - I could have, but I simply didn't have room (my abstemiousness at breakfast was for the same reason). I have eaten more this week than I eat in an average fortnight.

So, what is the food like? In one word, delicious. Extraordinarily good. Exceptional. Second, in my experience, only to Malaysia. Everything was of superb quality, freshly prepared, not over fancy. The effete over-complicated confections of British television cooking were nowhere to be seen; nor was fast food, or junk food. In the urban centres we did see a few Indian, Chinese and Vietnamese restaurants, and we did see sausageinnabun shops. But the places we went to served food which was proudly local, unashamedly German, unquestionably fresh-cooked and utterly excellent.

Until the very last night - last night - which was completely different. We drove up into the forest, up steeply climbing twisting roads which would be a joy to cycle in summer, to an ancient farm-house turned gasthof. The whole place was wooden, over four hundred years old. We went into a simple, homely dining room which would hold twenty people at the most, but which was empty but for a man sitting alone and the four of us. A pretty young waitress who spoke no English brought us simple paper menus, and came back after a few minutes to take our order. I chose a venison ragout with noodles, which sounded good.

So much, so normal. And then it all changed.

Mien host came in, a tall and powerful old man called Sago, wearing casual countryman's clothes. He spoke a little English but was much more comfortable in German. He sat down with us for a few minutes, talking, and then said he'd shot a wild pig, and would we like some? After not a lot of discussion, we agreed we would. Was it spit-roasted, someone asked? No, it had been baked in the oven, after the bread he'd be serving with it. Sago also said he had some mead, would we like to taste?

He disappeared into the back, and shortly reappeared bearing an enormous ox horn in a wrought iron stand. I joked that it must be an aurochs horn, but in truth I don't know where he got one so big; it wasn't old, and was by far bigger the horn of any domestic breed I know of except perhaps a Texas long-horn. He offered this to us and I realised it was full of mead. How much mead fills a horn like that? I haven't a clue, but it must have been at least two litres. I was certain that between four of us - and one a driver - we'd never empty it. So we chatted round the table with Sago, and drank his (wonderful) mead, passing this epic horn from hand to hand, until the chef appeared.

The chef was a man as big as Sago, and with the sort of belly on him a good chef should have. He greeted us, spoke to Sago, and they both disappeared into the back. After a few moments they reappeared, bearing a trencher. A trencher? it was at least four feet by two, of sturdy oak. It filled the table, clearly leaving no room for such effete nonsense as individual plates. On it. besides two baked quarters of a substantial pig and a large loaf of rough bread cut into thick slices, were two large crocks of gravy, baked apples, baked potatoes, sweet corn, and a mountain of roughly chopped mushrooms (which, it transpired, were the only ingredient which had been bought in). Oh - and four very sharp knives. No forks.

Four people - four people could not possibly eat all this.

Four people very nearly did. There were some potatoes left at the end, and an apple, and perhaps a kilo of pork on the shoulder. We gorged ourselves. We all gorged ourselves, despite having already overeaten for three days, because it was so extraordinarily delicious, so utterly delectable.

And when, finally, we thought we had eaten all we possibly could and the trencher had been removed, the pretty waitress (who, it transpired, was not German but from Drakula's home village in Transylvania) persuaded us all to have some home-made ice-cream with advocaat; and Sago reappeared and persuaded us to have a schnapps. The waitress and the other guest (an engineer from Bratislava in Slovakia) joined us, and together we conversed in a happy mixture of German, English, French, a bit of Italian, a bit of Dutch, and some Slovak, while the mead horn continued to circulate.

We could have had that meal - in that place, in that environment - any time in the past four hundred years; there was an electric light but it was no brighter or more intrusive than a candle lamp. Apart from the potatoes and sweet corn, we could have had it any time in the past millenium.

At the end of it all we went back to the hotel very late. I was drunker than I've been in twenty years - and probably happier. The mead horn? It was empty.

Monday, 2 November 2009

The polemic, as detective story

If I'd met Steig Larsson, I'm pretty sure I'd have liked him. I like his values. And I absolutely agree with the thesis which I think caused him to write this book, which is that one of the most effective ways in which you can change the values of a society are through popular culture. Not through high culture, but through films people choose to watch, television programmes they stay home to follow, books they actually read.

This is a book to be read. It is, first of all, a ripping yarn. Its two protagonists are both well realised and interesting - Blomkvist, Larsson's own alter ego, is a warm, gentle, intelligent person of strong convictions and integrity. Salander - the girl with the dragon tattoo - is darker; profoundly damaged, severely autistic, desperately vulnerable, with ethics and values which don't mesh well with the society around her but which have an integrity of their own. Around them is a wider cast of characters, many of them interesting, most of them well drawn and realised.

It's a rattling good yarn. It's extremely well told - there are a series of clever misdirections early in the narrative which make you (made me) think you've seen a major clue to the mystery; in my case I was (mostly) wrong. The denoument, when it comes, is absolutely consequent on the evidence that has been presented - this is a whodunnit in that classic sense - but also profoundly surprising and shocking.

At the same time it is not great writing. The prose does not sing, it clunks. At first I thought this might be an artefact of poor translation, but Larsson himself acknowledges it, when he has Blomqvist comment on the slapdash prose of the book that, in the book, Blomqvist writes. The writing is functional; it is good enough. Fit for purpose. This is a journalist's narrative, an activist's, a polemicist's. It is not a poet's story.

Larsson's own thesis - the one he is seeking to persuade us of - is reflected in the title he chose, 'Män som hatar kvinnor' ("Men who hate women"). The book exists to persuade us that fascism and misogyny are intimately linked. It's a good argument, well made. But underneath that are other things: profound distrust of big money; anger at hypocrisy; an acute awareness of the dark things that hide behind respectable facades. The whole book is, in fact, a political tract - but you won't notice that at first read through. The story will grab you by the throat, and hurry you through the landscape Larsson paints so quickly that these details will pass unnoticed by the conscious mind, but will seep into your unconscious subliminally.

Let them seep. The world would be a better place if more people shared Larsson's values.

Thursday, 20 August 2009

Days when I'm proud to be Scots

So, we released Abdelbaset Ali al-Megrahi yesterday. For the purposes of this note, let's simply assume that Megrahi was guilty as charged. Let's ignore the fact that the evidence in the case was clearly murky, and appears to have been manipulated by intelligence agencies, and by bribing witnesses. Let's ignore that al Megrahi consistently denied guilt.

A man has killed - in an appalling masacre - two hundred and seventy innocent people. Now he is in prison, in a land far from his home and family, and he is dying. Does he deserve to be released? No. Should he be released on compassionate grounds? That depends on whether those holding him have compassion.

Compassion is not deserved. Compassion is an act of grace, of mercy. An eye for an eye - justice, revenge, the law of vengeance, the obsessive levelling of scores - not only leaves everyone blind. It leaves everyone impoverished. It leaves a world devoid of moral values to look up to.

But Scotland isn't like that. Scotland has mercy, and compassion. Our government has grace. And so, we let him go: to go home to die, amongst his kin. Were he ten times as guilty, this would still have been the right thing to do.

On days like this I am proud to be Scots.

Friday, 20 March 2009

Not quite a chip off the old block

In 1936, Pierre-Jules Boulanger asked his engineers to design him a 'toute petite voiture', and they responded in style. They were French, and it showed. They designed a car with flair, with elan, with chic, and with a certain joi de vivre. They designed so well that their little car was still in production fifty-four years later, and won the hearts of millions of people across Europe and Africa. The Deux Chevaux was not only an enormously practical, reliable, adaptable and economical vehicle, it was also the world's most underrated sportscar - more fun to drive than anything else I have driven with the sole exception of a Lotus Elise. I loved mine. It was my favourite car ever.

Which is why the petite voiture which sits outside my house now is another Citroen: a C3 Pluriel, a car whose design pays conscious homage to the Tin Snail. Less characterful, perhaps, blander, the curves rounded off into something closer to a child's toy aesthetic, but echoing the high-arched roofline and the bulbous curving bonnet. And echoing the original in other ways, too - in it's folding canvas roof, in its claimed versatility.

I've lived with mine for nine months now, for ten thousand miles. I like it very much. But it has to be said that as a replacement for the Deux Chevaux, it fails.

Why?

Let's start with the roof, since it's such a significant part of what makes both cars outstanding. In the 2CV, there are four positions for the roof. The first is, obviously, closed. Release two latches - which can be done from the driver's seat, but ideally not when the car is in motion - and the front half of the roof folds back. With it back the aerodynamics are reasonable - there's no significant buffeting. To get to the next position, one must stop, get out, unclip the roof from the front frame, and roll it up manually. It then clips in a neat bundle above the rear window, leaving the car essentially roofless. Again, the aerodynamics are OK - there aren't any real problems with harmonics. To get the roof right back, one needs tools: four bolts, and the whole roof and boot lid can be removed. It doesn't normally leak, there's virtually nothing to break, and one can still buy a complete roof assembly for £150. In the words of another French engineer of the interwar years, 'c'est brutal, mais ca marche'.

Contrast the Pluriel. Superficially it's better. The roof has six positions, and all the first five can be selected electrically with the car in motion. The last involves stopping the car, opening the boot, and swinging the neatly folded roof and rear window assembly down under the boot floor. This is easy enough - it's nicely counterweighted and needs no strength. Furthermore, with the roof folded away, the side arches can be removed resulting in a completely open car - something I very much appreciate and which wasn't possible with the 2CV. Removing the side arches is a matter of undoing four latches and lifting them away from the car. With the arches removed, the car is remarkably neat. No tools are needed.

But. But.

With the roof opened to the second position there's quite intense buffeting above about 50 mph, and in the fourth position there's a harmonic that's so intense above that speed that I worry about the structural integrity of the roof. With the roof in the fifth position - neatly folded on the rear window - there's buffeting, but it isn't extreme and the car can be comfortably driven in that state. And with the roof in its sixth position, below the boot floor, there's no more buffeting than you'd expect in any open car. But rather than six usable roof positions you really have only four, the same number as the Deux Chevaux.

Of course, you can still select between three of these when on the move. But the electric mechanisms which make that possible, and which control the latching and unlatching of the rear window, are clear weak points. If the electrics fail, you cannot close the roof, whatever the weather. There is no manual override. What in the 2CV was a simple sheet of waterproofed canvas has grown in the Pluriel into a minor miracle of engineering; and with that complexity has come cost. Where a new roof for a 2CV costs £150, a new roof for a Pluriel costs £2400.

And, it leaks. I'm not really complaining, I'd read the reviews and knew leaks were a feature of the design before I bought it. Mine leaks into the boot - things left there over a rainy night come out extremely damp. It's not a big problem, and I think the virtues of the design outweigh it; but I can't help thinking that the pivoting rear window contributes to this. Furthermore, the mechanism for swinging the rear window down takes up quite a lot of room in what is already a small car.

Which brings us to the next point. The Tin Snail was a genuine four seater car (it even had four doors). It could seat four adults without their being unduly cramped. Boulanger was a very tall man, and insisted on being able to sit comfortably in the car. The Pluriel claims to be a four seater, but in truth it's a four seater only if the driver is a midget, or if the rear seat passengers have had both legs amputated above the knee. With me in the driving, there is 40mm between the back of the driving seat and the front of the back seat; and I'm a lot shorter than Boulanger.

There's another issue with those rear seats. They have reinforced, non-adjustable head restraints, which form part of the car's roll over protection. Both the 2CV and the Pluriel present themselves as adaptable, utility cars. In the 2CV, the rear seat unclipped and could be removed easily leaving a large load floor. This would easily take a pair of race bikes with only the front wheels removed. The rear seats of the Pluriel don't remove; instead, they're meant to fold. But they're too big. When folded, the reinforced head restraint prevents the drivers seat being moved into a position that is comfortable for me to drive in. This means that only the passenger side rear seat can be folded flat if I'm to drive. It is still possible to fit one race bike in with both wheels off, but it's a squeeze.

Of course, like the 2CV before it, the Pluriel is designed with mountings for a roof rack - it's the only convertible currently for sale in Britain with mountings for a roof rack. So in theory one ought to be able to put the bikes on the roof... Except that my local Citroen dealer tells me the roofrack has been discontinued, and I haven't been able to locate one.

And then, of course, the Pluriel is much heavier, and consequently much less economical, than its ancestor. The 2CV weighed 560Kg, just over half a ton; with the benefits of modern advances in materials science, the Pluriel weighs 1158Kg. Of course, Citroen are not the only marque to fall into this trap; Issigonis' Mini weighed 617Kg against its modern successor's 1132Kg. A little of that extra weight is going into 'safety'; a little, more questionably, into 'comfort' and 'refinement'. But none of these cars major in refinement or comfort. The Citroens major in fun and adaptability, and the 2CV could legitimately add to that, 'economy'. The extra weight, sadly, means that the Pluriel cannot.

So what's my conclusion, after living with the Pluriel for nine months and ten thousand miles? Well, I like it very much; I find it hard to imagine another modern car that would suit me nearly as well. But if I could have brought a brand new 2CV instead, there would have been no competition. I do appreciate the removable side arches; they're (for me) a real improvement. The Pluriel is slightly more refined. The build quality does seem to be a bit better. But for the rest, it's much less engaging to drive, much less economical, and much, much less practical.

Monday, 16 February 2009

John Knox stirs in his grave

It would become illegal to view this picture in Scotland. 
OK, let's start at the beginning. My party - the Scottish National Party - has introduced legislation making it an actual crime for girls under sixteen to have sex, and is now proposing to make it a crime to have images of 'rape'. These two matters are not distinct, they're linked. And to talk about why they're linked I want to start by agreeing that, yes, there are public policy issues here.

Young people are vulnerable to older people. When very young, they're very vulnerable; we teach young people to view adults as authority figures. Most of the time this is a good thing. But it means that young people are vulnerable to sexual advances from older people, sexual advances which they might have rejected from someone who did not have perceived authority. And, young people inevitably have less experience of sexuality than their elders; they don't have an appropriate repertoire with which to respond, and this too makes them vulnerable. So young people do have to be protected, and it's right that, as a society, we have rules which prevent adults predating sexually on children.

Similarly, rape is a serious matter. Rape, even if not violent, can have a devastating psychological effect on the victim. Again, issues of authority and of power are involved in rape. It's obviously right that, as a society, we should have rules which protect people (mostly women) from being forced into unwanted sex by others (mostly men).

So I'm not arguing for rape or for paedophilia. I'm arguing for open debate, clear thinking, honest statement of problems and issues. I'm arguing for free speech, and for freedom of artistic expression. Because it is at least partly through artistic expression that society develops its norms, and passes them on to rising generations. When Charles Dickens was concerned about the condition of children in Victorian London, he wrote novels about it. When Robert Burns wanted to express his opposition to slavery, he wrote poems about it. The novels and poems reached a far wider audience and ultimately affected political change far more effectively than dry factual accounts.

I'm not arguing that paedophilia is acceptable, but why is there considered to be a crime committed when two fifteen-year olds make love? Are they each supposed to be predating on one another? Are they each supposed to be predating on themselves? And does anyone - does anyone - believe that to have the police intervene in a relationship between two fifteen year olds is not going to be far more harmful to them than under-age sex ever is?

Yes, the state must provide young people with appropriate education, appropriate access to contraception and health-care and counselling. Yes, the state must protect young people from predatory adults. But criminalising the first tender development of sexuality? That is - literally - obscene.

And so we move onto the second issue. The government - my government - my party - proposes to make it illegal to possess images of
'Rape and other non-consensual penetrative sexual activity, whether violent or otherwise...'
Part of the legal fiction which gives rise to this sort of legislation is that somehow consent is simple, and that it's possible to tell from an image whether consent was given or not. But in practice, consent is not that simple. A person may consent to an act with a given partner, and not consent to the same act with the same partner a few days or hours or minutes later. The act is not different. One could not necessarily tell, looking at a photograph afterwards, which act was mutually consented to and which was not.

The need for sexuality, and the nexus between sexuality and aggression, is very deep in the human psyche, very close to the centre of who, and what, we are as people. We all have it, and it troubles many of us in one way or another. As playful creatures, many of us choose to explore these issues through play. Play in which there may be many layers of the granting or withholding of consent; games in which people may choose to consent to engage in forceful sex against their active protest.

And many people - perhaps, we don't know, very many people - find some degree of pain or fear enhances sexual pleasure. Consensual sexual activity can be extremely vigorous, can be extremely uncomfortable, and can involve implements designed and intended to cause pain. How many decent middle class homes in Scotland have a pair of handcuffs or a whip or flogger hidden at the back of a bedroom drawer? We don't know. I don't know and you don't know - because we're a sexually repressed nation. But the people who sell these things do a good trade, here in Scotland; I'd hazard a guess it's more than any of us would think.

This isn't to defend rape. It isn't to excuse rape. But rape is something that happens inside the head of the victim - consent is either given or withheld. Consent is not something a picture can show. Coercion does not need to involve violence; no matter how tender an image of sexuality, we cannot know by looking at it that one or both of the participants was not blackmailed into taking part. No matter how apparently violent an image of sexuality, we cannot know by looking at it that it has not been positively chosen and is not being actively enjoyed by all concerned.

There is a yet more serious issue beyond this. The present legislation is aimed at images; but will have a chilling effect on all art forms. If we cannot explore issues of sexuality, coercion, violence in narrative, in stories, in film, in other art, how are we to give our rising generations language in which to explore and understand what is appropriate and what is inappropriate? Repression does not stop things happening. People will continue to have sex. Some of that sex will continue be rough. But if we have outlawed discussion about what is, and what isn't, acceptable to us as a society, how are victims to know when it is appropriate to protest?