ghostcar

30 July 2012

There’s a copy of me running around London. It runs at the right speed, but it’s unstuck in time: unstuck by 365 days, in fact.

Tom Armitage In The Past is a foursquare user. He checks in where I was a year ago. He says what I said a year ago. As long as the game systems haven’t changed, he gets the badges I got a year ago. (And, if the game rules do change, he’ll start to deviate from me).

He’s maintained by a piece of software I wrote called ghostcar.

In racing games like Ridge Racer, your previous time attack high score is often represented by a 3D outline of a car rendered into the same world as you – a “ghost car”. Matt Jones reminded me of this at the pub one night, as I explained my idea, and the project had a name.

It’s not a spambot. I’m its only friend; it’s invisible to people who aren’t its friend. It’s invisible to venue owners – ie, it’s not generating false marketing data. Honesty is Foursquare’s main currency: saying where you really are, being who you really say.

I’m not breaking the terms of service. When I wrote it, the Foursquare terms of service told me I couldn’t impersonate other people.

But I’m not impersonating other people. I’m impersonating myself. That’s got to be OK, right?

So: why did I do this?

There were two main inspirations. Firstly, James Wheare’s Twitshift (now sadly closed). Twitshift works because its output is in the same medium as the source data. I didn’t warm to Timehop because it was just an email. Email is good, and there’s value in juxtaposition – but anyone can send an email. Email dilutes the notion of “being”, however. Foursquare is not, precisely, about presence – it’s just about saying you were somewhere – but email about foursquare feels like another abstraction layer. I wanted to minimise abstraction. And so, to do that, I’d need to build a Foursquare timeshifted-echo service that itself output to Foursquare.

Secondly, I remember Kevin Slavin talking about Area/Code’s wide, GPS-enabled game Crossroads at dConstruct a few years back – and how, once, when testing, it the game’s entirely digital antagonist “Papa Bones” moved through their office, and every GPS-enabled phone they were testing the game on suddenly jumped. What made the virtual “ghost” interesting was when it manifested in the world. Even though it wasn’t real – and everybody knew it wasn’t real – it still made you jump when you were there; the juxtaposition of knowing something is right where you are, even if it isn’t a real thing, is highly striking. I wanted to explore that a little with my own data.

I don’t check up on Mr Armitage In The Past very much. The idea, rather, is that I might bump into him some time. How strange: to be in one of my usual haunts, and know that a ghost of me, a year in the past, is also there, watching a movie, having a drink. Sometimes, those memories are less cheery than others. Sometimes, they’re brilliant. It gives me a visceral memory: reminds my bones, my heart, what they felt. (That, for reference, is my defence against nostalgia. This isn’t just about nostalgia, because you might not like what it makes you feel. It’s just about remembering feelings; stopping to pause and remember the passage of time).

It’s also made me check in to Foursquare a bit more. The moment I fired ghostcar up, I realised I needed to start giving it better data so that it’d continue to have meaning a year in the future. So that’s a strange, interesting takeaway: changing my behaviour because I want the fossil record to be more accurate.

I was only going to find out what it felt like by making it, so I made it. It chugs away on my server in private. I run ghostcars for a few friends, too. It’s not particularly elegant, and I don’t think it’d scale to loads of users, so for now, it’s a private distraction. But I thought I should write it up. If you’d like to run your own install, the code is on Github. It’s a minimally documented Rails app, because it was made just for me, but you might enjoy it.

In the meantime: I go about my business, and an echo of me in the past will do one day, too.

  • "My next book is even stranger than my last. It's an entire book, 65,000+ words worth, about a single-line Commodore 64 BASIC program that is inscribed in the book's title, '10 PRINT CHR$(205.5+RND(1)); : GOTO 10'… Despite it's relatively simple form and structure, the program produces a surprisingly intricate maze pattern using the C64's unique PETSCII graphical characters. The book discusses many aspects of this feat from different perspectives, including the history of mazes, porting, randomness, the BASIC language, and the Commodore 64 platform. It's interspersed with short "remarks" (get it, BASIC dorks?), among them discussions of assembly, the demoscene, and a variety of ports, including one I somehow wrote to run on the Atari 2600." I would like to buy this book.

Spelunky is a little clockwork world in which items and enemies behave in defined ways, but when mixed together cause a delicious feedback loops that you can, with experience, predict. My boy loves systemic games like this, games that are built on coherent systems that you can play in an open-ended way. Toy boxes like Minecraft and Plants Vs Zombies, Animal Crossing and (we play this together) Civilization – where he can tinker and learn cause and effect.

He spends hours playing them, or would if we let him. And these are the kind of games that, though they were much cruder back then, I liked when I was a boy too, especially Elite. Where anything seemed possible.

But the big games today, in which play comes fixed to immutable stories, aren’t like that. So I asked him: “Do you like games that tell stories that you follow as you play them, or do you like games that let you do what you want?”

“The second one.” My heart burst with pride.

Last Day Of School, from lovely chum Alex Wiltshire.

The big computer games I grew up with – the ones that made an impression – were Rogue, Prince of Persia, and countless flight sims (beginning with MS Flight Simulator 3.0 then 4.0, and then getting steadily less realistic through the MicroProse back catalogue). And there, really, is a lot of the things I like: deep systems, short repeated play sessions, complex things to master, coupled t worlds to do whatever you want in. I got to about level 14 of the dungeons of Yendor; I landed a Cessna 182 on a Nimitz class carrier without an arrestor wire (only just) and took it around the Michigan bay; I explored the deep 60-minute run/jump mechanics of Mechner’s early triumph.

My tendency to simplification as I grew up has a lot to recommend it – in particular, desigining for sofas or tiny bursts – but my heart swells too when I see the conversations Alex and his son have. Not just because of what they like – but because of how they like it, and, most importantly, how they talk about it together.

  • "This simple gesture was as touching as if the art school had put up a banner saying 'Welcome Back Tom'. I was moved. The project's title has now been reinstated. In some special sense I had arrived" Lovely.
    (tags: tomphillips art )
  • "Not all shooter violence is violent per se. As the game critic Erik Kain notes, "killing people in video games is actually just solving moving puzzles." Which is a true, smart, and helpful way to think about video-game violence. However, most puzzles don't bleed or scream. Why do gamers want their puzzles to bleed and scream? And why on earth do they — do we — also want our bleeding, screaming puzzles to be embedded within a nuanced story?" This is subtle, nuanced writing about an oft-repeated topic; the subtlety is what makes this good. Also, his list of "shooters that handle violence well" is pretty much the same as mine – Metro 2033 was one of the most striking games I played this year.
  • "Basically Lion handles .local TLDs differently to Snow Leopard. Whenever I would try to access my phpMyAdmin installation at http://xampp.local/phpMyAdmin, Lion would take a ridiculously long time to resolve the host and it probably has something to do with the Multicast DNS feature of Bonjour." What the hell? That explains a lot.