Copenhagen

Flag of Denmark

Spent last weekend in lovely Copenhagen, courtesy of our native guide, Susan's friend Rasmus. The ever genial Witt Mathot, and his sidekick Mike, were also in town giving some GIS Server training course. Consequently I spent Monday sickasadog. Quite possibly I will never be the same again. Regardless, the city was terrific and its inhabitants warm, genuine and kind, even after an outrageous travesty inflicted by Sweden on the football pitch. Hurrah for bastions of civilisation, even though their politicians are, by all accounts, going down the pan just as fast as ours are. Through the whole weekend, I only said 'Dutch' when I meant 'Danish' once, which by my standards makes me a beacon of informed, considerate enlightenment. Defining memory: Pleasant post-party walks home through the city in the dawn sunlight, amongst streams of happy, chatting, cycling people all doing the same.

Game On: Origins

The lovely Susan and I managed to nip into the Game On exhibit at the Science Museum, back in February, just before it ended. I was so glad that we did - what a delight it was! I couldn't believe the assemblage of classic hardware they had packed into those rooms, all working and playable.

I wanted to write a lovingly detailed description of all the games we found therein, wallowing in nostalgia and techno-fetishism. But in the 3 months since I first wrote the above paragraph, I've never got around to completing it, so the following annotated list of my personal highlights from the first section will have to suffice for the moment, though it is naught but a gnarled stub of the monument I had envisaged.

Spacewar! (MIT, 1962)

Spacewar! on the PDP-1's oscilloscope-like display.Spacewar! on the PDP-1's oscilloscope-like display.

Not just the strongest entry for the hotly-contested title of 'first ever computer game', but actually by far and away the most fun of any of the contenders, featuring a depth of gameplay that wouldn't be matched until Defender, nearly 20 years later. A two player deep-space duel with Newtonian physics, which remains surprisingly playable even today. About 200 hours of work went into writing the initial version, which was then refined with touches such as a background starfield which maps every star from the real night sky of fifth magnitude or brighter, precessing slowly to display all the well-known constellations as the game progresses. The Game-On exhibit had the original hardware on show, a defunct PDP-1 the size of a Hummer, which ran at 0.2MHz. In an inadvertent demonstration of Moore's Law, a playable simulacrum of the game itself was provided on a six-inch Vectrex from the '80s.

Pong (Atari, 1972)

Pong (1972)

Nolan Bushnell founds Atari, and when the local bar reports his first machine to be 'broken', it turns out to be due to its innards overflowing with quarters. Before my time, this one, but a clear indicator of things to come. Interestingly, many of the subsequent incarnations of Pong, for home consoles and the like, didn't play as well as this original model, since it was constructed using dedicated analog electronics, which enabled a rapid framerate, and commensurate fluidity of gameplay, which could not be matched by software implementations for years to come.

Space Invaders (Taito, 1978)

Space Invaders

Triggered coin shortages in Japan, prompting the government to quadruple the supply of 1 Yen coins. To this day the cultural resonance lives on, as the French urban street artist 'Invader' is still placing his discreet mosaics in public places around the world, returning only when local authorities scrape them off, to put a small white number where the invader used to be. I was never quite as massively captivated by it as by other games, although no doubt my parents would protest that was only because 10p coins were in such short supply for my seven-year old self. I however, shall stick to my story, that perhaps the blatantly predictable gameplay proved fractionally less of a lure than other, subsequent titles that left a little more to the imagination.

Asteroids (Atari, 1979)

Asteroids

A clear descendant of the original Spacewar, featuring deep-space based Newtonian combat rendered with rotational vector graphics which afford an austere Kubrickian elegance to the presentation. In common with many games of this vintage, the terrific bass thumps and distinctive chirps and warbles of the sound effects were produced using custom analog electronics, specifically designed for the game. The combination is dynamite, and Asteroids went on to become Atari's greatest selling game of all time, tempting ten year olds such as myself into countless hours spent lurking around the screen edges, dreaming of a high-stakes lifestyle out beyond the Kuiper belt in a singleship, hunting down those high-scoring UFOs.

Pac Man (Namco, 1979)

Pac-Man

"If computer games affected our behaviour, then by now there'd be a generation that had grown up running around in darkened rooms, munching magic pills and listening to repetitive electronic music - oh, hang on."

Missile Command (Atari, 1980)

Missile Command

The game's original design tasked the player with the defence of American west coast cities, from San Diego to San Francisco, while unending waves of nukes rained down like fireflies. Cold war tensions made that scenario a little too chilling for comfort, so the game was re-cast with a science-fiction setting. The result, with immaculate use of a then-novel trackball controller, and seismic sound effects, constituted a classic that remained a prominent and profitable entry in arcades for fifteen years after its release, and remains an inspiration for modern games such as Defcon (PC, 2006).

Battlezone (Atari, 1980)

Battlezone

A trailblazing first-person perspective 3D virtual reality, and famously adapted by the US Army to train gunnery crews of the Bradley Fighting Vehicle. Myths surrounding the game abounded, of increasingly esoteric enemies that could be encountered with prolonged play, of continued progress towards the distant mountains leading to the exploration of exotic terrain, and the discovery of factories which were producing the endless supply of enemy tanks rolling your way. In reality, the hardware was hard-pressed to perform the required 3D calculations for even the simple surroundings presented at the start of the game, and there was no more content than could be seen within five minutes of that. And yet, the stark scenarios it presented blossomed within the imagination of my young self, offering possibilities for the presentation of limitless worlds, to anyone who could bring with them but a modicum of willing-suspension.

Defender (Williams, 1980)

Get away from me!

While its contemporaries could often be mastered by careful, methodical play, memorising patterns, and the occasional bout of dexterity, Defender proved to be the ultimate test of reactions, spatial awareness and hand-eye skill. Once underway, the game becomes a non-stop roller-coaster of pant-wettingly tense action, as your gymnastically maneuverable craft, spitting pyrotechnic plutonium death, carefully rescues fragile humanoids from a sky full of of the most fiendish, purposeful, body-snatching, god-damned alien sons-of-bitches to ever be rendered in pixel. Clearly the hatred in me lives on.

End of the Early Arcade Scene

For me, Defender marks a watershed in the industry, prior to which games developers had to go through extraordinary contortions in order to coax the primitive hardware of the times into producing anything coherent on the screen at all. As a result, the games of the era were forced to model simple worlds, depicted using visuals that were highly stylised, to say the least. To this day I find a kind of beauty in the abstract minimalism that this required, a kind that, with occasional exceptions, is missing from games of later generations.

The game developers of the day were more inventors than engineers or authors. Their creativity was necessarily of a predominantly left-brained kind, but as is so often the case, in being channeled by the technical restrictions they faced, that creativity responded by seeking out nooks and crannies in which to flourish, and then leaping forth, blossoming in unexpected directions, producing games with rude, brash exteriors, but nonetheless exuding a rugged and determined charm, lurching with barely contained excitement from one harebrained idea to the next.

Defender in many ways marks the culmination of this era. Primary author Eugene Jarvis' legendary programming efforts wrung incredible results from the paltry hardware resources at his disposal, while introducing concepts such as the horizontally-scrolling wraparound landscape, the tactical awareness granted by the radar, the smart bomb - which perfectly offset the otherwise ruthlessly difficult play. All of these would remain staples in the industry for decades to come. Each one, arguably, an inevitable invention, an idea who's time had come, an mere incremental development of the exploration of virtual space that nascent gaming represented. But nonetheless, each one, inarguably, had never been done before. To bring them all together in a single sustained creative outburst represented a peak, a marriage of engineering, art, business and frivolity that had never previously been attempted.

By 1981, just one year after the release of Defender, the hardware quickly standardised and evolved such that it no longer created such intrusive restrictions on creativity. The business model had been well established, the market assuredly huge and growing every year. The risks and the difficulties overcome, a mass of new game companies moved in, flooding the market with uninspired, profit-driven efforts and mediocre imitations. Programmers were relegated to programming, artists and modellers took over the visuals, and what should have been the central role, that of game design, fell in the cracks, while the other former partner in the creative enterprise, the players who had previously supplied the imagination, were made redundant.

It wasn't all doom and gloom, however (no pun intended.) In the midst of the impending '80s game boom, there were plenty of gems, once one filtered through all the dross. I've found this write-up most enjoyable, so maybe I'll write some more about that next week...

Countries and US States visited

The old tartley.com used to have one of these, so here's a quickie replacement. It tends to overstate the case somewhat, a single foray across a border floods entire countries. I'd imagine good old Google's freebie geospatial tools could be put to use to create a better one, but for the time being, here's an amusing approximation. I'd be amused to see Skankmeister's version. Layovers don't count - bone fide visits only.


28 countries (12.4%)


24 states (48%)

Create your own visited maps... Or else go check out Uncle Nixta's version, from whence I got the inspiration.

La Science des Rêves

Giant hands

aka: The Science of Sleep. Director: Michel Gondry. Writer: Michel Gondry. Starring: Gael García Bernal, Charlotte Gainsbourg.

Internet Movie Database

Close your eyes. Open your heart.

I desperately wanted to like this, but simply couldn't. Told from the perspective of Stéphane, including his dreams and imagination. The consequent home-made surrealism was amusing for the first half hour, but felt overused and pointless by the end. As the movie went on, Stéphane's actions could only really be explained by filling them under the general heading of 'having trouble interfacing with reality' - any more granular or subtle motives were unclear to me. I feel mean saying this, because there were endearingly whimsical touches throughout, but if there was a point, I missed it.

Rating: 4/10. Barmy.

Music 101

Treble clef

I've been riding high on the sheer joy that is Guitar Hero II (PS2) recently. Now that Psychobilly Freakout is the only remaining song for which a five-star review performance is still eluding me, before unleashing the masochistically feverish hard difficulty setting at least, it's time for me to get my ass into gear and learn to play a real musical instrument.

Dithering between piano / keyboard and acoustic / electric guitar, I've decided to take a few week's lessons in each, to see which initially suits me best. Accordingly (Speaking of which, I also find the accordion strangely compelling), I had my first ever piano lesson this weekend.

Mr Marios Takoushis

My tutor, Marios, an amiable Greek professional musician with appropriately mad hair, seems like a brilliant choice thus far: I'm sure we'll get along famously, with only the minimum amount of absolutely necessary knuckle-rapping.

Update 14:35: Just remembered: One of the first puzzling things I discovered is that notes on the bass clef stave are offset from the notes on the treble clef stave by a non-integer number of octaves. Hence, a note which would represent 'C' on a treble clef stave is actually an 'E' when drawn on a bass clef stave. Presumably there's a reason for this, but I've yet to hear an explanation that sounds like anything other than a wart on the notation. Can any of my multitudinous readers enlighten me?

Sunshine

Director: Danny Boyle. Writer: Alex Garland. Starring: Cillian Murphy, Rose Byrne, Cliff Curtis, Chris Evans, Michelle Yeoh. 2007.

Internet Movie Database Dark days are coming.

I saw this weeks ago but never got around to a write-up, from which you might guess it was a little disappointing. Which is a tragedy, because the reason it was disappointing is that it has so much potential. It strives to do the right thing, exploring the psychological extremes felt by a crew of eight on a year-long mission to the Sun, the fate of the world on their shoulders. Aspiring to emulate Kubrick, both thematically and visually, it alludes to humankind's search for God, the character of Searle being driven over weeks to increase his exposure to the unfiltered ravages of the sun, until, when other characters are fried to a crisp outside the ship, he grabs the comm, frantically asking "Kaneda, what do you see? What do you see?"

But the allusions are too tenuous, too infrequent, and never followed up on. The inspirations drawn from 2001 and from 2002's Solaris shine brightly, but Sunshine doesn't come close to emerging from their shadow.

When things are brought to a head in the final third of the movie, it all descends into plain old slasher flick territory, utterly wasting the careful set-up of the earlier scenes. There's an interesting use of cinematographic blur and flicker, which retain the tension by never clearly showing what the remaining crew are up against, and also to my reading, serving as a palpable visible expression of the furious, searing madness that exudes from an individual who has spent far too much time in the sun.

Once all that is done, the final, final scene contains some redemption. But it's too little too late. I don't remember the last time I saw so many beautiful scenes, so terribly wasted.

Rating 5/10.

Update: I wish I could have put it as eloquently as this guy did.

Children of Men

Children of Men]

Director: Alfonso Cuarón. Writer: Alfonso Cuarón, et al. Starring: Clive Owen, Michael Caine, Julianne Moore. 2006. Based on a novel by P.D. James.

Internet Movie Database No children. No future. No hope.

]

A dystopian near-future Britain depicted with a realism that is both heartbreaking and horrifying, and directed with a relentless yet unobtrusive kinematic intensity. The human race has been infertile for the last eighteen years. Society has lost all hope for the future, and is tearing itself apart. The island of Great Britain presents a last, desperate bastion of civilisation, turning fascist in a failing effort to retain control. Militarised police line London's grimy streets, while animated Orwellian public information displays warn that it is a criminal offence to aid the flood of illegal refugees arriving from mainland Europe.

]

The cast are incredible all round, particularly Clive Owen's tired and reluctant hero, a powerfully understated performance that captivates for every second of the movie. Michael Caine's aging hippy, which he based on John Lennon, is an absolute scene-stealing delight.

But it's the cinematography that is the real star, gripping and compelling throughout, every scene lent a terrible beauty. Several minutes-long handheld camera shots demonstrate fearsome logistical preparations behind the camera, providing some battle scenes that are as intense, immersive and terrifying as those from Saving Private Ryan, without needing the gore.

Rating: 9/10. A stunning film, compelling and emotionally harrowing, only falling short of a magic '10' by virtue of lacking a real life-changing message.

Mocks Aren't (Just) Stubs

My exposure to test-driven software development at Resolver Systems has resulted in a tremendous enthusiasm for the idea. Doubtless a significant proportion of my zeal stems from my own over-compensation for arriving late to this particular party, but nevertheless, I truly believe that it's the most significant evolution the craft of software engineering has had in decades. For thirty years we've had good reason to believe Brooks' assertion that there will be no silver bullet, and now I can't shake the feeling that this is the closest thing to it that we'll ever have any right to expect.

After hearing suggestions from Andrzej on improving our use of mock objects in our unit tests, I did a little reading around the ideas he mentioned. One of the best essays I found was Martin Fowler's piece, entitled mock objects aren't stubs.

Mock classes used in unit tests as stubs.Class UnderTest, shown on the left in use by release software, and on the right in a test environment, using stubbed out mock helper classes.

Clearly, the idea of a generic mock object class isn't a brand-new one, and Martin's essay describes several such utilities that have been around for various lengths of time, but it is something I hadn't really thought about until this week. We do use mock objects in our tests at Resolver, in the sense of stub classes. When our class-under-test calls methods on other 'adjacent' classes, then the test will first substitute some mock object, often defined on the spot, to replace the adjacent class. This decoupling of the class-under-test from other adjacent classes keeps the tests simple and orthogonal.

If these mock objects had no methods on them, then the class under test would barf when it tried to call methods on the mock. So we add empty stub methods on the mock, to mimic the method names present on the adjacent class it replaces.

This conventional kind of test works well. State changes within the object-under-test can easily be asserted. Also, state changes to other, mocked objects cannot be directly tested, since the simple stub mocks described above maintain no internal state. In a way, this is fortunate, since such state changes to adjacent objects should not be tested, or at least not by the test under discussion. Those state changes should be implemented by method calls on the adjacent objects, and tested in the adjacent object's own unit test instead.

However, this only emphasises how important it is that, as well as our own state changes, we should also be testing the behaviour of our object-under-test by asserting that it makes the correct method calls to adjacent objects. Not all method calls should be tested though - they can be split into two categories:

  1. Method calls made to calculate state changes in the current object-under-test.
  2. Method calls made to inform other objects that they need to update their own internal state.

Method calls belonging to the second category need to be explicitly tested for. At Resolver we often implement such tests using a 'Listener' test pattern, which can be used to assert that a given method on an adjacent object was called with the correct arguments. Martin's essay describes a generic mock object class that can be instructed to assert that particular methods on it were called with particular parameters, and this seems like a convenient pattern, particularly the methods which create appropriately named stub methods on the mock object based upon a given class. We could, I think, use this idea at Resolver in places, if only to cut down on the manual creation of stubbed-out mock classes throughout our test code.

However, the method of testing-by-behaviour that Martin describes does not seem to always be applicable. The first of the two categories of method calls above can and should be tested for by looking soley at the resultant state changes in the object-under-test. It is these state changes which are important, not the methods used to effect them. Asserting that various helper classes were used to make an internal state change only makes the test needlessly brittle to alternative implementations that achieve the same result.

Minerva: Metastasis

PC, Mod of Half-Life 2. By Adam Foster, 2006.

Title screen]

So the digital ink is barely dry on my assertions that videogames have problems telling a story, when what should fall into my lap but one of those rare and immaculate counter-examples to shut me right up. Minerva: Metastatis is a bedroom-coded Half-Life 2 (HL2) mod that develops a storyline set within the HL2 universe, a new thread in the tale of the alien Combine's invasion of Earth. It has been three years in the making, and it's bloody brilliant.

The baseline HL2 gameplay is not changed one iota. Metastasis eschews the normal stock-in-trade of the mod scene, introducing no new enemies, no new weapons, no new assets such as bitmaps or sound effects. Instead, it envelops the player in an enthralling atmospheric experience, with a compelling back-story and superb player motivation, using a sublime combination of architecture, geometric composition, intensely creative injected textual fragments and well-considered use of music. This is backed up by the superbly crafted accompanying website, that does its best to misinform and manipulate, drawing upon the best of various alternate reality game influences.

Shoreline

spoilers

The game opens with your character dumped unceremoniously out of a helicopter by forces unknown, onto a beach under hostile fire. Running for cover is the only option. Once out of immediate danger, your plight is revealed in stages by a series of messages squirted onto your protective suit's HUD by some agency identifying themselves as Minerva, as in the Roman Goddess of crafts and wisdom, a.k.a, as Stephenson would have it, the Goddess of technology. Minerva's communications are enigmatic and aloof. You are being used as her sentient reconnaissance tool, your experiences relayed back to her remote location, that she might investigate a small island, and its role in the Combine's occupation.

Down the rabbit hole

The island plays host to the usual menagerie of HL2 critters, and visible at its centre is a mysterious plasma discharge, which Minerva prompts you to investigate. Clambering down, underground, you discover the crumbling remains of old WWII fortifications, now housing the twisted, unearthly technology of the Combine's invading forces. From there on, things only get stranger and larger by degrees, until the moment when even Minerva's cool begins to break, and you are left feeling very much like an ant in a nuclear power station, with little option but to continue exploring until the exterminators show up.

It's short and sweet - I played through the first and second parts in a single night. But it's managed with such finesse, extending the back-story of HL2 in bold new directions, building upon what was indubitably the greatest PC game of 2005, possibly of all time, with such verve and imagination that I have to agree with a Metastasis forum posting: It might just be (whisper it) better than the source.

Rating: 10/10. Bring on the third and final instalment, due later this month...

Onegin vs New Super Mario Bros

The match:

Onegin New Super Mario Brothers
Company: The Royal Ballet Developer: Nintendo
Music: Pyotr Il'yich Tchaikovsky Format: Nintendo DS
Choreography & libretto: John Cranko Released: 2006


Introduction

Last week was full of great artistic experiences, but none so sublime as these two masterpieces, which I was lucky enough to witness and complete, respectively, in the last few days. For reasons that I'm sure need no explanation, I've opted to review them side-by-side in a single post.

History


Pushkin's original novel, seen here in the English translation.

The story of Onegin derives from a Russian novel-in-verse, Eugene Onegin written by Aleksandr Pushkin over the period from 1823 to 1837. It was considered a classic of Russian literature, well-loved enough to be quoted from memory by most Russians. Forty years later, Tchaikovsky and Konstantin Shilovsky created the music and libretto respectively for an operatic version of the same tale. This opera was then choreographed as a ballet by Cranko in 1965, and it is Stolze's 2007 arrangement of this that is now playing at the Royal Opera House in London's Covent Garden.


Super Mario Bros. on the NES

New Super Mario Bros, similarly, represents the culmination of a venerated franchise. The character of Mario first appeared as a nameless 16x16 pixel carpenter in the vintage arcade hit Donkey Kong (1981), and was then retooled as a plumber and christened for Mario Bros. (1983). The core gameplay mechanics of the Mushroom Kingdom were not formulated until Super Mario Bros. (1985), but have formed backbone to the series ever since. Mario has adapted nimbly to several new generations of home consoles and handhelds, but the most significant technical evolution came with Super Mario 64 (1996), which made a superlative triumph out of the difficult transition to 3D, one that continues to stymie many of his contemporaries even to this day. Meanwhile, Mario continues to form the iconic mainstay character in what is generally recognised as the most successful, and certainly the most influential, videogame series of all time.

Form


Flawlessly timed triple jumps result in extra height.

Like so many other DS outings, New Super Mario Bros. is very much a return to form for the champion platformer. It makes solid, competent use of the DS's dual screens and touch-sensitive technology, and brings together the highlights of its distinguished lineage: peerless standards of level design; an endearing levity; crisp, unambiguous graphics; a roster of nostalgically well-known characters with their various abilities and affiliations, and of course the pixel-perfect precision of control that is the very embodiment of Mario. On top of the traditional 2D Mario mechanics, Nintendo have applied their usual expertise, seamlessly incorporating moves from Super Mario 64 et al, enriching and polishing the control scheme, while never complicating it. Wall-jumps, a ground-pound, and a triple-jump, complete with a couple of cheerily superficial somersaults. Never has a controller been so unintimidatingly overloaded with kinetic potential - latent at at first, but blossoming by the third act, when Tatiana, now grown into a charming and sophisticated woman, introduces her husband, Prince Gremin.

Narrative

Both works have in common the attempt to convey a narrative without the aid of verbiage, with significant difficulties encountered in each case.


Dumb, as in mime.

Ballet suffers from an inexpressiveness in this regard, insomuch as the tools at the dancer's disposal are not capable of depicting much in the way of nuanced or fine-grained detail outside of particular, well-trodden areas. Characters may meet, part, or die, and express all manner of elation or sorrow as they go about it, but there are only a limited number of stories that can be told from such components. It is difficult to imagine, say, a political thriller, or even something as familiar and staid as a murder mystery being told without resorting to Spandau ballet. Because of this, the medium as a whole seems to have become something of a creative cul-de-sac, preoccupied with retelling the same formulaic stories over and over again - and even these are considered to be in need of supplementing with a written synopsis in the program.


Disrupting the narrative direction.

Similarly, videogames revolve around the participation of the player, who thus has the means to disrupt any narrative direction or pacing anticipated by the game designer. Whatever story can be told, must perforce be introduced either by the forced insertion of jarringly ungamelike exposition, during which the player is frustratingly robbed of any real input, or else must be told using the limited demonstrative repertoire of in-game action. New Super Mario Bros. sidesteps these difficulties by eschewing all but the most perfunctory storyline, aside from a grown-up nod to the sordid realities behind Bowser's recurrent princess kidnapping, hinted at by Bowser Jr. labouring under the impression than Princess Peach may be his mother.

Overall Impressions

Despite their weaknesses, each of these works represents a good, solid entry in representing the best that the mainstream of their respective fields have to offer. Two marvellous, vigorous and thoroughly enjoyable outings.

Onegin Rating 8/10. An education.

New Super Mario Bros. Rating: 9/10. A triumph.