Recent discussion about the perils of doors in gamedev reminded me of a bug caused by a door in a game you may have heard of called “Half Life 2”. Are you sitting comfortably? Then
I shall begin.
…
What is meant to happen is a guard (spoiler alert – it’s actually Barney in disguise) bangs on a door, the door opens, he says “get in”, and then the game waits for you to enter
the room before the script proceeds.
But in this case the door sort of rattled, but didn’t open, and then locked shut again. So you can’t get in the room, and the gate closed behind you, so you can’t go do anything
else. The guard waits forever, pointing at the locked door, and you’re stuck.
…
If you watch the video, when the door unlocks and then opens, there’s a second guard standing inside the room to the left of the opening door. That guard is actually standing very
slightly too close – the very corner of his bounding box intersects the door’s path as it opens. So what’s happening is the door starts to open, slightly nudges into the guard’s
toe, bounces back, closes, and then automatically locks. And because there’s no script to deal with this and re-open the door, you’re stuck.
…
So this kicked off an even longer bug-hunt. The answer was (as with so many of my stories) good old floating point. Half Life 2 was originally shipped in 2004, and although the SSE
instruction set existed, it wasn’t yet ubiquitous, so most of HL2 was compiled to use the older 8087 or x87 maths instruction set. That has a wacky grab-bag of precisions – some
things are 32-bit, some are 64-bit, some are 80-bit, and exactly which precision you get in which bits of code is somewhat arcane.
…
Amazing thread from Tom Forsyth, reflecting on his time working at Valve. The tl;dr is that after their compiler was upgraded (to support the SSE instruction sets that had now become
common in processors), subsequent builds of Half-Life 2 became unwinnable. The reason was knock-on effects from a series of precision roundings, which meant that a Combine
security guard’s toe was in a slightly wrong place and the physics engine would bounce a door off him.
A proper 500-mile-email grade story, in terms of unusual bugs.
The hallway whiteboard welcomes the guests. Why doesn't everybody have a hallway whiteboard in their house?
Again, the idea of the night is loosely based on Burns Night: we eat a meal of haggis, neeps, and tatties, accompanied by a dram of whisky (or Irn-Bru – Scotland’s other national
drink – in the case of Paul, who doesn’t like whisky). But instead of making readings of classic folks literature and
poetry, we put a twist on it by performing readings of really badfan fiction.
At the appointed hour - five minutes to five - the whiskies are opened and drinking commences.
We got off to a late start because Liz and Simon got caught up in the heavy snowfall that poured down across this end of the country. But that wasn’t a problem, because the rest of us –
Ruth, JTA, Paul, Matt P and I – just had longer to drink and catch up with one another’s lives while we waited.
As the snow began to fall, Ruth and I went out to make snow angels. So excited by the snow, Ruth didn't even bother to put her shoes on first.
To start the evening, Ruth – as last year’s winner – performed a reading of Garfield: King of Liberty, another Garfield-themed fanfic from “ShakespeareHemmingway“, the author of her winning piece from last year. I’m still not convinced that he’s not a troll,
but he is pretty damn funny.
Highlight:With these words Garfield and his Liberty Ladies made love of passion that sparked skies like fireworks as they rubbed their bodies liked sand on water.
Garfield delivered pleasure into their bodies like manly post office man delivering package of love explosion. Their love exploded like cannonball shots into night and went on for hours
and days.
This year's prize - a can of premixed Famous Grouse whisky and caffeine-free cola.
First among this year’s competitors was Matt, reading Misadventures Of The ‘Tragedy’
Dorm, a 20%-homoerotic, 80%-creepy attempt to bring a variety of Shakespeare’s characters into the modern age.
Highlight:Romeo having a rant about what coloured board shorts to wear. “Which colour should I weeeeaaar!” Yep. All the usual stuff.
JTA performs his reading.
Second was Simon, reading The Death Of Vince Noir, a Mighty Boosh fic, apparently (hampered by
the fact that many of his audience have little to no experience of The Mighty Boosh). I hate to spoil it for you, but the twist is that it’s all a dream.
Highlight:When Mick Jagger stepped into the strange Daulston second-hand shop he was greeted by an odd sight. Instead of the screaming trendy fan who he had
expected to meet, he was greeted by a giant ape comforting a man in the corner. Specifically, a bald man wearing last month’s leopard skin catsuit, wailing mournfully into handfuls of
raven-black hair in a puddle of his own tears. The whole thing looked freakily fucked up.
Liz tries to explain why her story makes sense, and fails. Miserably.
Third up was Liz – strange that the random order put the three “new” players first – reading the first of two chapters of PokeAccident, a first-person perspective on a long bus trip with a pokémon with a full bladder. It reads like it’s been
written by an austistic young teen with a urination fetish. And no grasp of geography.
Highlight:Charizard looked bored, and we were past Londen and into Edinbrugh, where it was raining. Now Charizard is used to rain, but he was now horrified to
see it raining, it increased his need heavily by 15%, 38% of his meter were full , Charizard really didn’t see this coming at all, he tried to ignore it, but the rain was loud, making
it hard to do so.
Ruth & JTA brace themselves for another piece of fiction.
Paul provided us with Halflife: Fulllife Consequences: the story of John, the brother of
Half-Life‘s Gordon Freeman. It’s
littered with awful spelling and abysmal grammar, all wrapped around a plot that makes no sense whatsoever.
Highlight:John Freeman had to go faster like the speed of sound and got there fast because Gordon needed him where he was. John Freeman looked at road signs and
saw “Ravenholm” with someons writing under it saying “u shudnt come here” so John Freeman almost turned around but heard screaming like Gordon so he went faster again.
Matt, Paul, and Ruth listen as I read my story.
Ruth had settled on Frosty The Snowman!, an unusual take on the classic story, featuring lots of swearing
and an Iron Man crossover, all in just over 200 words.
Highlight:With the power of magic, the snowman came to life and started to dance a bit, scaring the crap out of the children. “Hi there children! I’m Frosty the
Fuckin’ Snowman! Follow me!” He said happily as he marched down the road.
Simon & Liz listen to JTA's story. For some reason, they're not crying.
When it came to his turn, JTA has selected Legolas, now best known as “Legolas by Laura” after its author (who just
coincidentally shares her name with the main character of the story – always a good starting point for a piece of really bad fanfic). With incredible run-on sentences and a complete
disregard for any semblance of continuity, this is truly a work of epic failness.
Highlight:Mean while Legolas got to the cell where Laura is.Legolas said”Laura are you in there”and then Laura said”Oh Legolas you finally came”and then Legolas
said”are you alright”and then Laura said”no I am not alright”and then Legolas said”they bet you up and raped you also the Dark lord gave you the posion”and then Laura said”how did you
know that”.Then Legolas said”when I was your age they did the samething to me”.
An unfilled ordering/voting slip from Argh! It Burns! Night 2012.
I came last. This year, I’d chosen what is probably the only piece of fanfiction ever to be set in the universe of one of the worst video games ever made, Desert Bus. The story is Desert Bus Ride #1 – A Romance Story and for Ladies, and it makes about as much sense
as actually playing Desert Bus in the first place.
Highlight:When they arrive, boyfriend was got shot. “He am hit by bullets!” Margaret thought very loudly. “This is all because terrorists!” Mr. Oakland
punched fist into air with angry. He was angry.
Liz is awarded with her "prize".
After what turned out to be a remarkably close competition, Liz just barely beat JTA and won herself the “prize”. In accordance with the traditions of Argh! It Burns! Night, we passed
the drink around and all suffered in it together: a metaphor for the experience of the evening.
Having performed a reading of "Legolas" earlier, the winner's drink is the second-most disgusting thing JTA's had in his throat all evening.
For some reason, Simon actually enjoyed the drink, and finished the can on Liz’s behalf. Maybe he enjoyed the fanfiction, too. Maybe he’s a replicant. It’s just impossible to tell what
we know for sure about him, after a revelation like that.
Simon "enjoys" the "beverage".
All things considered, a spectacular second Argh! It Burns! Night. If you’d like to come next year, let me know and we’ll try to arrange for it. Just remember: if you don’t suffer, you
haven’t had enough fun yet.
Oh; and the following day was Matt's birthday, so we forced him to celebrate a little before he got back on the road.
On this day in 2004, I’d just finished my first marathon session of playing Half-Life 2, a
spectacular new video game that quickly became one of the best-selling computer games ever. Despite New Year celebrations and other
distractions, I managed to sit and play the game for a couple of days and finished
it very soon after.
The launch of the game was delayed – I’d
pre-ordered it 17 months before it eventually got released – after being plagued with development difficulties. One of the many delays to it’s launch was blamed on the theft of part
of the source code: I remember joking, after the thief had been caught, that now that they’d got the code back they’d be able to release the game,
right?
Meanwhile, Paul swore that he
would have nothing to do with the digital distribution platform – Steam – that remains the only way to get a legitimate copy of
Half-Life 2. On his blog – then on LiveJournal – he listed all of the many problems that he saw with Steam, and I countered a few of them in an argument in the comments. For years to
come, he’d go on to refuse to play some of the most fantastic computer games to be released on principle.
Looking Forward
Things change. I can’t remember the last time I saw Paul playing a video game that he didn’t buy on Steam, for one (except for a handful that he bought from Good Old Games – which is well worth visiting, if you haven’t already).
Some things stay the same: Half-Life 2 remains one of the best first-person shooters ever made, and has been followed by two spectacular sequels (Episode 1 and Episode 2) and a number
of spin-offs (including the mind-blowingly awesome Portal, which stole my life for
a while, although not for long enough to make my 2007 list of
life-stealing games). We’re still all waiting on the much-delayed Episode 3, though…
This blog post is part of the On This Day series, in which Dan periodically looks back on years gone
by.