NetCrack

September 19, 2011

So after nearly two whole decades of on-again/off-again blundering my way towards Yet Another Stupid Death, I finally capitulated and begun to read some NetHack spoilers.  The difference between “figuring things out on your own” and having a comprehensive guide to follow is phenomenal.  I can’t help but think about all of the cumulative hours I’ve spent (wasted?) trying to figure out a workable strategy for long-term survival in those cavernous depths; and can’t help but feel awe for those that have managed to ascend without the use of such inside information.  Several times I’ve considered reading the source-code (well, I did read a small piece of it after finding an easy-as-you-like stack based buffer overflow in the command line arguments about a year before someone else discovered and disclosed the same bug[1]), and I always knew I could be playing “smarter” by writing down the various hints and rumours that the game provides, but I guess I was always too lazy.  That laziness held me in a spiral of playing intently for a week or two, invariably dying repeatedly before ever really reaching the true ‘mid-game’, becoming disillusioned, and then casting the entire game aside only to pick it up again 6 months later.

For most people who end up reading this, the sad part will be that I have bothered playing this game so much, bothered writing this post, or pretty much bothered existing in the first place – but for the true NetHack gods, the sad part will be that I am so obviously crap at it.  Not only did I not manage to progress beyond the mid-game in almost 20 years of fumbling around in the darkness, but I didn’t even grasp some of the fundamental basics.  Unbelievably, I’d never even made use of Elbereth (although I do claim that until very recently no pre-compiled versions I had ever played with had the option included), and I never got my head around sourcing a unicorn horn well in advance of eating things willy-nilly.  One definition of insanity is “repeating the same behaviour and expecting a different result”, and in the context of my nearly 20 years of periodic NetHack’ing I can well and truly lay claim to a spot in the gamers loony-bin.

‘Frodo halted for a moment, looking back. Elrond was in his chair and the fire was on his face like summer-light upon the trees. Near him sat the Lady Arwen. […]  He stood still enchanted, while the sweet syllables of the elvish song fell like clear jewels of blended word and melody.  “It is a song to Elbereth,” said Bilbo. “They will sing that, and other songs of the Blessed Realm,  many times tonight.  Come on!”‘

But not anymore!  Now armed to the teeth by virtue of online playing guides, I have become…. no, not ascendent (not yet anyway)… but instead hopelessly, hopelessly addicted.  Hooked like I’ve taken one too many chuffs on the old crack pipe.  Wired like I’m main-lining, leaving me playing 8+ hours a day on the weekend, late through the evening on week nights, and jonesing through what has become mostly sleeplessness as I alchemise potions and attempt to complete Sokoban from my pillow.  The truth is, this game is the real pinnacle of computer gaming.  It is the funniest, most random, hardest and most satisfying game I have ever played.  It is the true epic, and yet it runs in all of only 256 colours and I can play it on my phone.  It has been compiled across pretty much every platform ever made (still waiting for a PS3 version though!), and it can be played through a number of different user interfaces (although not using a full keyboard with a dedicated keypad is mildly aggravating).

Any game where you can go from striding along confidently in your blessed +3 orcish ringmail to being polymorphed in an instant into a Brown Pudding incapable of wearing armour or holding anything at all just lends itself to hilarity, despair and general entertainment.  I still feel the pang of guilt when I let my kitten die after thrusting it between myself and the oncoming horde.  I still love the fact that once I have the permanent invisibility intrinsic (having eaten the corpse of an Invisible Stalker), that shopkeepers won’t let me into their stores (“Invisible guests are not welcome!”) until I don a mummy wrapping around myself.  I continue to be amazed by gems like the one I picked up today: find a scroll of destroy armour, curse it by dipping it into unholy water, read a cursed scroll of confuse monster to become confused, read the cursed scroll of destroy armour while confused and…. one of your pieces of armour is granted an inherent resistance bonus!

unNetHack

The observent amongst you will recognise that this is in fact a screenshot from unNetHack, not the original 'vanilla' NetHack.

I’m left feeling like a using drug addict who can reel off a list of one hundred ways in which his or her drug of choice has been proven to be beneficial in some way.  In that blind state of denial that can only be brought about by the obsequiousness of being wilfully chained to your master.  I’m still in the happy phase where the highs are high and the lows really aren’t that low.  I haven’t quit my job to play NetHack full-time, and I haven’t started sucking dick just to get that Amulet of Life Saving.  My biggest fear now is that the spoilers turn out to be just that – that things could become too easy – and that it would have been better to spend the next 20 years continuing to chip away at the survival skills that are so desperately essential to staying alive in that dungeon.  Thankfully this is not yet the case: tonight my Level 14 Woman-at-Arms only narrowly survived a skirmish with a Disenchanter, where she had to unequip all of her magic items and struggle through the furious resultant melee.  I’m 24,130 turns into the game and feeling like i want it to last another 24,000,000.

Latest messages
It hits!
It kicks!
It hits!
It kicks!
It hits!
It kicks!
It hits!
It kicks!
It hits!
It kicks!
It hits!
You die…

‘…. fonetikli was killed on level 9 by a b0f!’

[1] In a former life I was momentarily involved in a not-so-underground hacking community that boasted a remotely accessible “test lab” of several different platforms and operating systems.  The lab was to be used for the sole purpose of exploit research and development, and while not entirely useless, was less interesting for me due to the number of discrete UNIX platforms I already had access to play with at work.  At some point inbetween all of the posturing, penis-length comparison and for the most part shit-talking, someone noticed that not only was NetHack installed on the sparc Solaris 9 core Bastion – but that for some reason it was installed setuid root.  Anyone who managed to 0wn the box via the nethack binary was to become a god among men among small-time hackers in a small-time test network.  I set to work with an entirely unscientific hit-and-miss approach of perl driven CLI buffer overflow and format string attempts, and was genuinely surprised when the binary crashed.  Not wanting anyone else to see what I’d found, I retreated to another sparc platform I had access to at work, plaguerised and modified some handy sparc shell code, bashed my head against the keyboard for about a day and a half while i tried to stop making mistakes with endianness and byte-alignment (I was writing exploits in an x86 environment at the same time and not context-switching well), before finally coming out with something that worked.  Thinking myself much funnier than I actually am, AND of course being an avid fan of the game itself – as the stack overflow exploit ran it printed:  “…. fonetikli was killed on level 9 by a b0f!” before dropping the user out into a root shell.  Not one fucking person in that circle seemed impressed, and the only other people in my life I have ever tried to repeat this story to just look at me like I am the most pitiful creature to have ever dragged its carcass across the face of the planet.  *Sigh*

2 Responses to “NetCrack”

  1. Not sure if this is a good thing or not, but your post as inspired me to try out nethack again. I never got into it, I used to love playing ATC though. Those were the days.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: