NetHack [1987-2023]

NetHack [1987-2023] is a “Forever Game.” I use that phrase a lot in casual conversation, and now is the time to pin it down and define it for future reference, even though it will mean repeating myself a bit. Theoretically, one can play basically any game forever: people can and do play Super Mario Bros [1985] every single day indefinitely. But that game has a quite exhaustible amount of game. Rogue [1980] was built to solve that exact problem. Specifically, the developers had a bone to pick with Colossal Cave Adventure [1975/1977] being something that could be finished. Colossal Cave and the genre of the text adventure to follow is full of bespoke authored interactions with relatively little generalized logic of how the world works, as anyone who’s ever thought of something that one of these games simply doesn’t recognize as something you can do and is therefore met with boilerplate error messages knows very well. (NetHack’s documentation, as of 3.6.6, STILL begins to explain the principles of how to play by way of analogy to text adventures!)

One dream of tabletop RPGs is to contain and anticipate any possible action that a human being can imagine taking, and then integrate that input into its numerical system such that it can then be processed by its strange inhuman mechanisms to produce unpredictable output still obviously causally related to its arbitrary input, thereby delighting the players with surprises, or wielding uncertain randomness as an entropic obstacle to be negotiated and overcome, or even seeming to transcend the construct of mere arbitrary human authorship and its untrammeled imagination into something with the more authoritative and untouchable heft of a consistent neutral machinic arbitrator which can even be felt as “real.” In reality, actual human authorship and imagination is still completely necessary to process and respond to the myriad things another human might imagine doing; many later Forever Games are multiplayer. But that’s one of the fantasies, and its pursuit even in an entirely computerized context isn’t completely fruitless, but quite the opposite — throughout video game history, its pursuit is a perennial font of ambition and inspiration. One of the key things innovated to try to capture this possible scope in the RPG space, both on tabletop and computers, is having a large pile of tables and rules to handle ideally any situation or approach that might crop up, an enormity of partially-randomized implemented systems even to the point of superfluity. An aesthetic byproduct of this simulatory approach is what we can call “emergence,” the spectacle of watching these systems unpredictably spark up against not only your input but also against one another, ideally cascading into whole scenarios operating on their own logic. Rogue put all its chips down on this prospect, going so far as to randomly generate the scenarios within the system itself.

But Rogue itself isn’t quite a Forever Game, it’s a proto-Forever Game. For all its warding against finitude, Rogue is itself finished. It even got frozen, boxed up, and put on a shelf to be sold.

There’s other ways to make, distribute, and conceptualize of video games. There always has been. For as naturalized as the “fixed product” mode of being is as an implicit rhetorical default to be deviated from (even now when it’s less dominant than ever,) it came about in the medium’s history as a classic and half-conscious act of commercial enclosure: a way to fence off territory that was pre-existing, such that parceling out access to the property could be made profitable. Galaxy Game [1971], one of the first two arcade games ever, was literally Spacewar [1962] with a toll booth. Most computer games from the 60s and 70s were not just by programmers but for programmers, and these programmers (“hackers”) had the ability and inclination to remix and mutate and tweak whatever game came their way. This is why we have hundreds of varied instantiations of Colossal Cave Adventure. Games were a fluid, spreading more like traditional folk songs than as precise mechanical reproductions. There are even plenty of known oral-tradition cases where games were implemented across different devices by recoding it from scratch off of hazy memories or even hearsay, with no access to the original code.

This is exactly how the original Hack [1982] (now lost to history) came about. Hence the name. A high schooler named Jay Fenlason played Rogue for a total of about eight hours, and was intrigued by the technical challenges its development must have posed. Everyone was denied access to the source code: this was precisely the time period where the Rogue developers were working on putting Rogue up for sale as a finalized product. Well, no matter. Fenlason and friends simply coded their own clone from scratch, based on hazy memory. While they were at it, they threw in additions, like doubling the types of monster to slay. Goes to show that what we might call a “pre-commercial” gaming culture actually endured into the post-commercial era clean through to today, but now the games-as-fluid flow within and between the cracks in the new context. It is a shadowy dance partner to the mainstream, sometimes taking its cues from it, but sometimes leading. Rogue failed hard in the commercial arena. It would nevertheless endure as a legend through the hacker culture it once turned its back on — indeed, ironically in part because it turned its back on it, thereby creating a cottage genre instead of a series of ports.

The Hack of Jay Fenlason & Friends went out through tape-trading at a different, later UNIX meet-up. This version was then revised and expanded by Andries Brouwer, distributed over Usenet through 1984 and 1985, playing the Don Woods to their Will Crowther, culminating in the “canonical” Hack v1.03 [1985]. It could have stopped there, and we’d have the same basic beats as the development history of The Sumerian Game [1964-1967]/Hamurabi [1968/1973]. But it didn’t stop there. Hack isn’t a Forever Game.

NetHack is named for its own process of development. We’ve now covered the hacking, and only just briefly mentioned the Net — the once-young internet. NetHack is not only distributed over the internet like earlier Hacks, it is made on the internet. It’s not the first game like that (I’ve mentioned “Wolfpack” Empire [1973-2021] on this blog before,) but the development process of NetHack served as a first draft for the then-nascent open-source development regimen that emerged from that UNIX milieu, now familiar to anyone who uses GitHub. Open-source code is nothing new: In the 1970s, “type-in” games were distributed as bare code printed on the page for anyone to copy and modify as they pleased. But that’s a free-for-all. NetHack’s code is indeed open for anyone to see and copy, but there is a core team of developers who maintain and legitimate the official primary version. One might modify NetHack’s code, say if you notice a bug and fix it, but it’s up to the dev team to actually accept that code into the main body of NetHack. There are code variations that don’t get incorporated into NetHack but are still out there, and these are “fork” versions — not just a confusing mass of different divergent instantiations with some early edition getting prize of prime place like you wound up with for CCA, but organized into a schema of rhetorically subservient appendages, though these forks are more respected and cherished as legitimate than the “mod” of a commercial game is. Even contributions from within the dev team have been rejected for one reason or another.

This hierarchy and constant collective effort not only keeps NetHack alive, but it also keeps NetHack NetHack. The stewardship of the dev team maintains the philosophically-coherent bodily integrity and continuity of NetHack, where we can speak of it and observe it to be the same game as it was in 1987, really since 1982, even despite the changing composition of the dev team itself over time and a 12 year gap with no updates at all after 2003. When 3.7.something launches, it will be the new version, replacing 3.6.6, not just another different version. A famous phrase for NetHack is that “the dev team thinks of everything,” but really, far more people have contributed to the collective project of NetHack than just the “dev team” proper. It takes a lot of work from a lot of authors in order to indefinitely perpetuate NetHack for decades on end.

This is how NetHack gets to be a Forever Game. This is how it scrapes the walls of infinity. It’s not the random generation of endless dreamlike dungeons to plunder that it inherits from Rogue, but rather it’s the neverending stream of updates that supplement the game’s existing pool of content, to fulfill and vary the desire for more and more and more to plunder and discover and conquer, a yearning which is not-so-paradoxically both fed and induced by that original game structure.

Frankly, I got exhausted with Rogue itself pretty quickly. I have spent about 8 months now on-again-off-again poking at NetHack, and may well persist even after posting this. It’s just got so much variety atop the Rogue-derived baseline, such that I’m always encountering novel static elements and emergent interactions. NetHack is astonishingly deeply implemented, to a level paralleled only by a small handful of other games. There is some iteration of the spirit of Tower Of Druaga [1984] in NetHack. It has esoteric depths, dug by its many hands, which I daresay cannot be plumbed by any one player. However, unlike Druaga, NetHack’s mechanics are all “fair play”: founded on a spirit of consistent, legible principles, therefore pliable to something more like scientific rigor than magic ritual.

Despite this, I often get the unnerving sense that nothing in the worlds NetHack generates are the way that they are for any logical reason. “Why” questions (like “why is this here”) are of no value in NetHack. The rooms, caverns, and tunnels of the dungeons you crawl through never serve any discernible function other than for your crawling through. Items useful and useless alike litter the area, with no implied origin for how they got there on the floor. Doors are locked and passages are hidden at random, not in order to stop a hypothetical actor from getting to the place they block. Things clearly exist only as artifacts of an algorithm and demand to be understood at that remove, rather than through the gamesmanship of supposing a design implies a theory of mind, of an intelligent author who arranges things the way they are for some kind of utility. This has actual gameplay implications, because so much of NetHack’s loot is shrouded in mysteries to be systematically uncovered: You can not even provisionally suppose that an item or path is good just because someone took the trouble to lock it up and hide it — it might just be some random cursed trash. The game’s preferred mode of inquiry is instead the careful, prodding, controlled experiment that takes no hypothesis as a given until it is observed and cataloged presently if not directly. Even other games working with the same kind of ideas for procedural generation and even aesthetics as NetHack make serious overtures towards procedurally generating fiction. The closest I’ve seen out of NetHack are little setpieces where you see a corpse surrounded by rocks or arrows sitting on a trapped pressure pad that will launch rocks or arrows at the player if they step on it. You can not actually “role play” in this role-playing game, because the fictional world it presents you with is transparent and vacuous, fundamentally nonsensical and ahistorical. The stories people tell about NetHack aren’t stories from within NetHack, they are stories about playing NetHack, about the raw interactions of its emergent systems.

NetHack practically demands this external discussion, people sharing data on how to play and win on Usenet or IRC or wikis. From this social context emerges notions of not just fair play but correct play: play that fits in with the way other people play, such that despite all the random variation they can be measured against one another on leaderboards and tournaments and conversations. These ideas then fold into the game’s code itself, like the prohibitive difficulty of the loathed “save scumming” that other games openly rely on, or the suite of optional challenges ginned up by the community that the game itself now handily keeps track of for you. It’s not only made collaboratively over the internet, it’s made for the internet to collaborate on, although there is no direct online multiplayer, unlike many of its distant descendants.

NetHack went on to be the most famous of Roguelikes, the archetypical case not only for its genre but also for a whole philosophy of developing and releasing games and software. It remained prominent and influential through the 2000s, inspiring titles like Diablo [1997], Dwarf Fortress [2006-2023], and Spelunky [2008], and became therefore one of THE critical vital historical links from the hacker games and ethos of yesteryear to the indie games of the crucial 2000s boom. From that staging ground came Minecraft [2009-2023], which blew up and took the world by storm — and subsequently, the NetHack model of a constantly-replenished river of content, be it randomly-generated or community-driven or not, became more and more dominant throughout the 2010s in a recuperated rent-gathering form of monetization now known as “games as a service,” which infamously tend to have nowhere near the permanence of NetHack nor Minecraft. “Pre-commercial” and “non-commercial” should not be mistaken for “anti-commercial.”


One thought on “NetHack [1987-2023]

Leave a Reply

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

You are commenting using your 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

This site uses Akismet to reduce spam. Learn how your comment data is processed.