Menu

Posted by admin on

Menu
Coffee is Hard October 16th, 2019 Take Better Screenshots September 6th, 2019 That Feeling When You Discover Someone You Know Is a Monster February 15th, 2019 A Brief Review of Reading The Wheel of Time at 38 January 29th, 2019 It Takes a Monk July 6th, 2018 What It's Like to Be a Fake Extrovert, Part 4 July 6th, 2018 What It's Like to Be a Fake Extrovert, Part 3 June 12th, 2018 What It's Like to Be a Fake Extrovert, Part 2 June 4th, 2018 What It's Like to Be a Fake Extrovert, Part 1 May 29th, 2018 This Is Not About Tinder December 15th, 2017 Assholes in Paradise October 14th, 2017 Startup Culture Has Jumped the Shark September 29th, 2017 Sick of Your Shit, Apple August 13th, 2017 How to Write a Novel June 2nd, 2017 Cat Drinking Water May 17th, 2017 An Unscientific Analysis of Jet Lag April 14th, 2017 What to Do in Case of Nukular Sharknado March 8th, 2017 Stop Telling Me to Feel Worse December 28th, 2016 Protect Patrick Stewart and Ian McKellen from 2016 December 11th, 2016 Things I Send to Recruiters December 2nd, 2016 That Fucking Empty Brain Article October 20th, 2016 Trigger Space September 17th, 2016 Not a Real Post July 30th, 2016 The Search for The Hitchhiker's Guide, as read by Stephen Moore July 17th, 2016 The Gauntlet July 6th, 2016 Seriously, Make a Better eCigarette May 28th, 2016 How to Worry Less About Being a Bad Programmer May 27th, 2016 Mister Munjoy and the Year of Moral Ambiguity April 18th, 2016 The Wintry Mix March 22nd, 2016 Make MongoBot Great Again! March 18th, 2016 5 Reasons Waiting Tables is a Horrific Job February 29th, 2016 Shut Up About the Universe February 15th, 2016 Quantum Lens is the Worst Book I've Ever Read February 3rd, 2016 Positions Available January 31st, 2016 Generation Byte January 20th, 2016 When Gods Die January 11th, 2016 Interviewing is Broken December 30th, 2015 The Mad Spitter of 23rd Street October 4th, 2015 God's Not Dead: A Film Student's Review April 11th, 2015 The Science of Giving April 6th, 2015 Proposal for New REST Methods March 21st, 2015 Game of Cards March 4th, 2015 35 Things that Surprised Me Before 35 February 28th, 2015 Trolling Marketers for Profit and Pleasure January 16th, 2015 The FizzBuzz from Outer Space Explained November 30th, 2014 The Quantum Hitler Scale October 27th, 2014 Pet Math August 25th, 2014 Publishing Sucks August 19th, 2014 Everyday Skepticism July 7th, 2014 24 Hours of Privilege July 1st, 2014 One Space, Two Space, Shut Up, #@$% You June 24th, 2014 The Big Truth June 17th, 2014 Waiting for Doctor Who June 12th, 2014 Nobody. Understands. Punctuation. June 7th, 2014 Adventures in Piracy May 22nd, 2014 Things that Don't Suck May 12th, 2014 Programming Sucks April 27th, 2014 A Letter from Fred Phelps March 22nd, 2014 The Writer’s Fallacy January 19th, 2014 Chipotle Bias November 24th, 2013 Me and the NSA September 2nd, 2013 Why Everyone in Greenwich Village is Lost July 17th, 2013 The Battle for Sweet Paradise March 14th, 2013 Men Going Their Own Way February 18th, 2013 How You Got Here January 24th, 2013 I'm Watching Twilight So You Don't Have To January 16th, 2013 3 Major Disappointments in Otherwise Great Video Games November 2nd, 2012 Eulogy September 22nd, 2012 Acceptable Losses March 26th, 2012 Spilchking March 20th, 2012 Grammar Maquis January 31st, 2012 Responses to People Telling Me to Get Over the Death Thing January 20th, 2012 Humble Sky December 30th, 2011 Spektroscopy December 27th, 2011 Humorless and Insane: The Crucifixion of Ed Rybicki November 22nd, 2011 Michio Kaku, 96% Awesome November 16th, 2011 Smackdown: Baby vs. Kitten November 5th, 2011 Justin Bieber's Relationship Advice October 30th, 2011 Etiquette Lost October 8th, 2011 Searle's Court October 2nd, 2011 For Fuck's Sake Irene September 6th, 2011 The Episode: Conclusions August 17th, 2011 The Episode: Aftermath August 12th, 2011 The Episode, Part 16: The End August 10th, 2011 The Episode, Part 15: The Light and The Void August 8th, 2011 The Episode, Part 14: Released Back Into the Wild August 6th, 2011 The Episode, Part 13: Crazy Love August 5th, 2011 The Episode, Part 12: Settling In August 2nd, 2011 The Episode, Part 11: Grand Theft Auto: Orono Dreams July 31st, 2011 The Episode, Part 10: The Milieu July 29th, 2011 The Episode, Part 9: Welcome to the Nuthouse July 27th, 2011 The Episode: Interlude July 26th, 2011 The Episode, Part 8: People Finally Start Catching On July 24th, 2011 The Episode, Part 7: The Naked Guy July 22nd, 2011 The Episode, Part 6: The Mission July 20th, 2011 The Episode, Part 5: Through the Looking Coke Mirror July 17th, 2011 The Episode, Part 4: I Party With a Bunch of Hippies and Do More Drugs July 14th, 2011 The Episode, Part 3: I Get the Fuck Out of Kansas July 12th, 2011 The Episode, Part 2: Everything Goes Straight to Hell July 10th, 2011 The Episode, Part 1: Prelude July 4th, 2011 Amsterdam Sucks July 3rd, 2011 Online Dating June 29th, 2011 Nobody's Bitch June 19th, 2011 Coming of Age, Italy, 1996 June 11th, 2011 24, 911, and Closure May 12th, 2011 iPhone App Reviews April 14th, 2011 Tactical Error April 1st, 2011 Job Advice February 23rd, 2011 Jose Armando Vasquez Lopez February 19th, 2011 CAW February 11th, 2011 Playa Gotta Play February 9th, 2011 Mouse Girl February 7th, 2011 Nothing is Free February 4th, 2011 Halloween February 1st, 2011 Dal January 31st, 2011 The Comedian January 30th, 2011 And She Stoned Me January 29th, 2011 Teenagers are Stupid January 28th, 2011 Bad Movie Choice January 27th, 2011 Animal Freak Makes Millions With This One Simple Rule January 23rd, 2011 A Letter to Nassim Nicholas Taleb January 15th, 2011 2011 January 2nd, 2011 The Idiot Coin December 30th, 2010 Being Thankful December 30th, 2010 Someone Bless Our Weird Fucking Country December 3rd, 2010 Functionalish October 22nd, 2010 The Mating Habits of the Knobelsdorf October 15th, 2010 How to Dress for Success October 8th, 2010 30 Things I thought I'd do by the time I was 30 October 1st, 2010 A Brief History of Manhood as Illustrated by Star Trek Captains September 24th, 2010 I Would Rather Burn in Hell July 25th, 2010 We are a Hipster of One July 18th, 2010 Atheist Translation Guide for Believers March 25th, 2010 Observations of a Straight White Male with No Interesting Fetishes January 17th, 2010 Pussiologiphobia December 27th, 2009 Prudent iSex December 23rd, 2009 I, Wetware November 28th, 2009 City Guide October 3rd, 2009 End Me a Story September 23rd, 2009 Kindling August 3rd, 2009 Kill Your Heroes February 1st, 2009 Man are Stupid, Women are Crazy January 25th, 2009 Camera Angst January 18th, 2009 Act Without Thinking January 12th, 2009 Get Me Back to Gomorrah January 4th, 2009 Inadequate Reminders December 28th, 2008 Odds are Bad August 17th, 2008 Mensa Can Suck My Salty Lobes June 11th, 2008 Banking Trust April 22nd, 2008 Stalkability (or, [email protected] ) April 22nd, 2008 Porn! April 21st, 2008 God, Again February 23rd, 2008 The Commuter Threat January 23rd, 2008 Research! January 17th, 2008 Excuse Me, Sorry, Thank You November 24th, 2007 Pez Dispenser Head Chinese Delivery Man On Moped November 24th, 2007 Water, Water, Everywhere October 15th, 2007 A Reason for Nothing September 7th, 2007 Think Before You Babble May 24th, 2007 The Bitter Pill (or "Swallow This") January 29th, 2007 Nipping Off The Christmas Spirit December 18th, 2006 Like Clockwork November 8th, 2006 Ex Goth Seeks Same For Weekend Regression October 24th, 2006 Stop Blaming Our Parents October 20th, 2006 Cross Eyed in the Search for Holographic Love October 11th, 2006 Dear MoveOn October 11th, 2006 Sudofubar October 11th, 2006 Stormy Weather April 25th, 2006 Ian M Tripp Is Building a Bomb April 21st, 2006 Love Thy Neighbor Like Thy Brother October 13th, 2005 A Leg to Stand On September 20th, 2005 Instantaneity - A Brief and Uninformed History September 6th, 2005 Stony Blue Vega September 3rd, 2005 Buddha Logic September 3rd, 2005 Digital Representation September 3rd, 2005 Know Their Obsessions Before You Try to Get Them Into Bed September 3rd, 2005 Drinking September 3rd, 2005 Hot or Not September 3rd, 2005 Denial September 3rd, 2005 Buffy, Love Me September 3rd, 2005 Posthumorously


Way back in the 80s, some people had a dream of combining the cutesy graphics of 80s visual games and the soul-crushing difficulty of 80s text adventures. And so Sierra On-Line created quest games.

Quest games started with a premise like “escape the wizard” or “escape the aliens” then forced you to do a series of banal and random tasks to avoid the many, many ways to die. Once you know the way, most of the games can be completed in under an hour. On the first go, it took my whole family weeks. Not the least of the horror was often having to do things several scenes before there’s any reason for having done them: in Space Quest I, the hero-janitor Roger has to refuse the first offer for his bike, so the guy will come back a little later and throw in a jetpack. Of course there’s no indication that he’ll come back with a jetpack, and no reason to think there’s a need for a jetpack until three days later when Roger exits his spaceship and floats into the void because he doesn’t have a jetpack. This leads to replaying most of the game a dozen times just looking for a jetpack, which is hidden not in a spaceship closet or a bar or a cavern, but behind a tough-but-not-too-tough bargaining strategy. It also took about ninety seconds to switch between screens, so exploration was grueling on a good day.

Most treasured memories are agonies that won’t get out of the mind and have to get turned into a character-building story to maintain sanity, so I searched hard for a modern port of these games and immediately inflicted them on my girlfriend. We got through the first two Space Quests in a few hours since I remembered about three quarters of the traps. We haven’t finished the third one. I think there’s a secret code in the credits of a game about chickens. Haven’t floated into the void yet; I assume we will.

After playing the first two, I realized I’d been programming for 17 years and could probably make my own, especially when all the art is 320 pixels wide and that’s about how many pixels I can work with before people give me a sideways look and ask if I really have a liberal arts degree. I decided to base the story loosely on my novel, for two reasons: first, if the game happens to get the kind of notoriety my novel has not, I might be able to boost sales by claiming the novel can serve as a hint book. Second, I spent nineteen years writing that stupid book, and this seemed like a good a way to manage the withdrawal symptoms. Three weeks later I’d built a rendering engine I’m quite proud of, a simple command and scene logic processor, and accidentally reinvented GIF compression.

The was only one thing left to do: come up with ways to die.

The first was an attempt to marry the arbitrary cruelty of the original quest games to the self-destructive lifestyle of the disaffected and depressed characters in my book. Jacob wakes up on the floor. If he tries to stand up immediately, he stumbles and breaks his head open on a desk.




Dead.

He needs more sleep, but if he tries to go back to sleep, he can’t because he’s having a nicotine craving. If he searches, he can find matches to light his last cigarette. Then he can go to sleep, but if he doesn’t put out the cigarette first, the apartment burns down.



Dead again.

If he smokes, puts the cigarette out, and sleeps, he can successfully stand up. As long as he doesn’t try to turn on the computer, he can even make it out of the bedroom.

Feeling confident, I decided to force the player to make a cup of coffee.

I have big plans for death in this game. I’m importing some void and sorcerer deaths directly from the old quests. In the middle of plot, Jacob’s consciousness is transplanted into a ham sandwich, and you have to eat this ham sandwich in the first scene so Jacob’s future sandwich-self reintegrates with his past-self and the game can continue. Otherwise ham-Jacob just rots away in a dark refrigerator. If you don’t put on a raincoat in the beginning, Jacob gets pneumonia and develops an increasingly irritating cough until he drops dead at the beginning of the last scene.

As cruel and obnoxious as this is, it’s simple to program. The hardest part of writing “if rain and not raincoat: jacob.pneumonia = true” is spelling pneumonia. I only have to draw the coughing animation once, and collapsing dead to the ground from pneumonia is just a minor variation on all the other collapses dead I’ve already drawn.

I’m not even going to directly kill Jacob for not having a cup of coffee. I won’t let him put on the raincoat before making it because I didn’t want to do raincoat variations of all the coffee-making mini animations. I had to rewrite parts of the rendering engine to make coffee. There are thirteen lines of code that do nothing but determine what to say when you look at the coffee maker.
'LOOK AT COFFEE MAKER': () => { if( State.scene.state.coffeedrunk ) { return "The coffee maker has done its job and mercifully drained the last life out of the old and savaged grounds." } else if( State.scene.state.brewed ) { return "The coffee maker has a fresh pot of what is likely coffee in it." } else if( State.scene.state.brewing ) { return "The coffee maker is brewing." } else if( State.scene.state.waterinmaker ) { return "The coffee maker has fresh water in it, and is ready to brew a terrible cup of coffee." } else { return "Makes coffee. Whodathunk? There's no water in it, and you don't have any fresh coffee, but the grounds already in there have only been used twice and can't be THAT moldy." } }
Does the coffee maker have water in it? Does the pot have water in it? Does Jacob have the pot? Is Jacob close enough to the coffee maker to take the pot? Is the water on? Is he close enough to sink to turn water on? Has he poured the water into the coffee maker? Is it finished brewing? These are all conditions that have to be checked and met. I’ve written more code to make coffee than I generally do to write a login form. Coding coffee is hard.

Since turning twenty-three, I’ve had a coffee-making subroutine in my brain. Writing code to get a forty-pixel character to make it made me think about the ways that subroutine has failed me. Sometimes I don’t pour the water into the coffee maker and end up with a pot of warm water. Sometimes I don’t put grounds into the maker, which also results in a pot of warm water and is indistinguishable from not pouring the water into the maker. Sometimes I forget to close the lid and the coffee maker pours water back into the well until it all evaporates. I have to trust this subroutine because I haven’t had coffee yet, but it only takes one of many potential neurological hiccups to get an error with no log report. It’s not computer code’s fault that making coffee with it is a pain; it’s inherently a pain to make a cup of coffee. I didn’t even get to the cup: I made Jacob drink it right out of the pot to save myself a few steps, and it’s still two hundred lines of code.

After coding death and coffee, this seems right. Avoiding premature death is a process of not occupying the same space as fast-moving metal or motivated microbes. Living is mostly a series of repetitive and unrelated tasks. It makes sense that the most tedious things to code are the tedious things that just have to be done. There are no life lessons or gymnastic skills involved in doing dishes, there’s no underlying theory of housework that will reveal itself after a thousand vacuum cleanings. Making coffee is a boring sequence of steps people feel stupid for getting wrong, even though they’re statistically doomed to screw it up now and then. The hard parts of of life are driving to work, eating properly, flossing, and medicating my disease-ridden yet fucking immortal cat.

I haven’t fought any aliens or terrorists, but I can relate to putting on the right outfit to survive another day in a way I can’t relate to being a bullet-resistant sniper. Sierra’s quest games traced the shape of mundane death, at once leaving out the tedious bits, and elevating simple tasks by giving them purpose in an eventually comprehensible chain of cause and effect. They even offered some decent life strategies: look at everything, pick up anything you can, avoid wizards, and always haggle for jetpacks.
You can't see it because of the contrast, but there's a pin through it's abdomen.

[ comments ]