Wednesday, September 30, 2009

Charlie Brooker's Gameswipe

I don't watch much TV, and I never know what's on, but when a programme about Video Games came on tonight – and I realised I'd worked on a couple of these games – I decided to watch. Charlie Brooker's Gameswipe covered the history of video games, from Pong and Jet Set Willy to the latest 3D slaughterfests. I found myself watching footage of a US news anchorman lambasting GTA, because you could "pick up a prostitute, have sex with her, and then beat her to death with a baseball bat."

Here's the original video from youtube.


It was odd listening to that, because I remember the afternoon I added the "sex with a prostitute" element to GTA. (It first appeared in GTA 3, not GTA IV, which I had nothing to do with). I was coding the pedestrians: the bystanders, cops, gang members, hookers and so on. Our producer, Les, had asked me to increase the health of the player and deduct some cash when a hooker got into the car. I thought it would be funnier (and remember GTA was supposed to be funny) to add a bit more action, to imply that the player was actually getting something for his money.

The problem was, we didn't have any animations for that sort of thing. And because sex wasn't in the design document or schedule, I wasn't likely to get an artist to create the necessary animations for me. Instead, I went to our sound guy, Stuart, and asked him to make a squeaking sound, the sort of noise that would be made by a car's suspension bouncing up and down. I think it took him about 15 minutes. Armed with my squeaking sound, I wrote a piece of code that, under certain circumstances, applied a force repeatedly to one corner of the car. So whenever you had a hooker in a car, and the car had stopped, and the car wasn't on a road or pavement (meaning you had to be somewhere quiet, such as an alley or a park), and the car wasn't a convertible (there was no animation, and I didn't want the player to know that there was no animation), a sequence would begin whereupon the car would start to bounce up and down and create the illusion that the occupants were having a good time.

The code I wrote was undoubtedly silly, with variables such as HUMP_RATE and ORGASM_TIMER (I don't remember the exact terms, but you get the idea). But I thought the on-screen result was funny. Our producer thought it was funny, too, and so we kept it in the game.

The thing is... at no point did it occur to me that you could kill the prostitute afterwards and get your cash back. Of course you could kill anyone in GTA, and rob them. I knew that. But it certainly wasn't my plan to "pick up hooker, have sex with her, then beat her to death." Someone else managed to figure that one out (the US anchorman perhaps?) and then spin it in a way to make it sound like a deliberate design feature. It wasn't. The GTA series are "sandbox" style games where you can do whatever you like.

Charlie Brooker's TV programme showed the original GTA, too. There was footage of cars colliding with other cars. Bizarrely, I found this really stressful to watch. One of my tasks on the first GTA was to re-code the collision detection system, and it never really worked as well as I wanted it to. So even now, after all these years, I found myself tensing up when one vehicle hit another – just in case it broke the game.

What an odd thing to watch.