Trending
Opinion: How will Project 2025 impact game developers?
The Heritage Foundation's manifesto for the possible next administration could do great harm to many, including large portions of the game development community.
Featured Blog | This community-written post highlights the best of what the game industry has to offer. Read more like it on the Game Developer Blogs or learn how to Submit Your Own Blog Post
In Chapter 5 of "Dungeon Hacks: How NetHack, Angband, and Other Roguelikes Changed the Course of Video Games," author David L. Craddock explores the unique classroom culture that gave rise to Hack.
Author's Note: Dungeon Hacks is a standalone book authored by David L. Craddock and published by Press Start Press. The book chronicles the making of and culture surrounding seminal roguelike RPGs such as Rogue, Hack, and Moria. If you enjoy this excerpt, you can pick up the full edition of Dungeon Hacks in paperback, as an audiobook, or on popular e-reading platforms like Kindle and iBooks.
**
No Official Status
In 1965, computer labs were just a stone's throw away in any direction at Massachusetts Institute of Technology. Most labs were identical in appearance: minicomputers that flashed and hummed while students retrieved paper from teletypewriters. Time-sharing had only recently been invented, but many computers only accommodated one user at a time, while others were punch-card behemoths, far too old to incorporate time-sharing technology. Most of the computers were owned by a research group and dedicated to specific tasks, rendering them unusable to students. A select few dumb terminals featuring screens were available, but always in short supply. A single PDP-1 sat in a corner, but was arbitrarily declared off-limits to first-semester freshmen.
Consequently, administrators monitored student usage closely. Students were given the bare minimum of permissions after logging in to an account, just enough to write papers and conduct research. Brian Harvey, an undergrad pursuing his bachelor's in mathematics, found all the rules and regulations cloying. A single lab allowed students to work on unsanctioned projects, but first-semester freshmen were forbidden to cross its threshold; the Powers That Be worried that students would get caught up in hacking their own projects and let their grades slip.
None of that changed the fact that Harvey had a (semi-)legitimate reason for needing to use a computer. He was involved in WTBS, a student-run radio station, and had to maintain the mailing list. Another student understood his need and steered him in the direction of the Artificial Intelligence Lab, one of MIT's best-kept secrets.
For Harvey, working in the AI Lab was a breath of fresh air. "When I found a bug in TECO, the text editor we used there, and brought it to one of the 'real' system programmers, he told me he was busy and I should fix it myself. He showed me how to find the source [code] and how to run the assembler, then I was on my own to sink or swim. I couldn't believe they'd let a freshman work on the real system programs. Especially one who'd just walked in the door, with no official status. But that's how it was: there was no official status."1
Students had the run of the AI Lab. They came and went as they pleased, and wrote code for any program that came to mind. When an official program sputtered, they rolled up their sleeves and dug into the code. Harvey carried the AI Lab's egalitarian spirit with him as he began his career in education and software engineering. Graduating from MIT in 1969, he went on to earn a master's in computer science at Stanford in 1975, where unrestricted labs like his safe haven at MIT also existed.
In 1979, Harvey applied for a job at Lincoln-Sudbury Regional High School (LS), a four-year public school in Sudbury, Massachusetts.2 His official title was chair (and one and only member) of the computer department. Before his arrival, the computer lab had been a part of the mathematics department, but the installment of a separate computer department was proposed by the mathematics instructors. They worried that tethering computer classes to the math department would scare away students who might be interested in computers but intimidated by math.
All Hands on Deck
Before officially starting his tenure, Harvey talked to LS's principal, David Levington, about what he wanted to accomplish. "I didn't arrive with the complete vision of the structure we ended up with, but right away I talked the school into letting me not give grades, since I knew that would ruin the freewheeling atmosphere I wanted."
To Harvey's surprise, Levington was on board. Rather than hailing from education, Levington came from business, and putting a businessperson in charge of a school was usually a recipe for disaster: policy-oriented administrators often tried to micromanage even the most experienced teachers on their payroll, placing short-term goals ahead of long-term results. But Levington defied convention; he made a habit of hiring the best educators for the job and then stayed out of their way.
For his next trick, Harvey needed to pull funding out of a hat. The school's computer, a PDP-8 run by the math department, was old and in need of replacing. Within his first few days at the school, the 8 crashed. Harvey, more familiar with PDP-10 hardware from his days in the AI Lab, had no idea how to restart it, so he asked a tech-savvy student to lend a hand. The student followed Harvey to the inner room of the computer lab, but hesitated, opting to stand in the doorway and shout instructions while Harvey fiddled with switches.
Frustrated, Harvey asked the student why he did not enter. The student replied that no students were allowed in the room because of the list of administrative passwords pinned to a wall. "That's stupid," Harvey remembered saying. He took down the list and declared that anybody with a valid reason for using the computers would be allowed access to the inner room. For days afterwards, Harvey watched as students stepped into the room, looked around in wonder, then left without a word. "These tiny first steps already established my reputation as an educational radical—nothing about teaching or curriculum, just getting rid of stupid reminders to kids how little their wishes counted at school."
Harvey did not stop there. Writing a grant proposal to DEC, manufacturer of the popular PDP-11/70 minicomputer, he explained that he wanted to modernize his school's computer lab, but he needed DEC's help to do it. "What I really wanted was a PDP-10, the machine I'd used at MIT and at Stanford," Harvey explained. "But I knew they weren't going to give me a half-million-dollar machine, so I asked for a free PDP-11/70, the most powerful model of their minicomputer line. In the end, they told me that DEC doesn't like to give 100-percent grants because then people ask for more than they need, but I could have 75 percent off of whatever I wanted."
Harvey petitioned the school committee to cover the remaining 25 percent of the funding. Levington went to bat for him. Money in hand, Harvey installed terminals all across LS: six in the new computer center, a few in the library, and others in administrative offices where both teachers and students had access. Determined to give the kids hands-on experience, Harvey put them to work running RS-232 cables through the corridors, connecting each terminal to the PDP-11/70, which was stored in the lab's inner room.
Once the lab was up and running, Harvey invited his peers to drop by. Reactions ran the gamut. "You'd open the door of the room and hear kids yelling across the room to their friends and project partners, see some kids playing games, some just hanging out, and others hard at work with total concentration. Teachers who thought that, in a proper classroom, every kid is doing the same thing at the same time, quietly, hated it. But other, more progressive teachers loved it. I was amused that every teacher loved or hated it instantly, the moment they walked in, without asking questions."
On most days, the computer lab was a disaster zone. The furniture became worn from students treating it like a trampoline. Sofa pillows were brandished in spur-of-the-moment duels. Computer paper littered desks and the floor. Larry Davidson, one of the math instructors, pitched an idea to Harvey: give the students the keys to the lab, allowing them unfettered access after school hours, provided they ran the space responsibly: set and enforce rules about reserving equipment, and pick up after themselves.
Placing a great deal of trust in his kids, Harvey handed the keys over. To his surprise, the students devised a clean-up rotation where a different student was nominated to tidy up at the end of each school day.
Astonishingly, no damage ever befell any of the equipment. To the students, the terminals, printer, and PDP-11/70 were sacred.
The Computer Gang
Harvey continued running LS's computer center in an unorthodox way. Instead of cracking down, he offered his students more choice and responsibility. Early on, he charted a long series of courses that taught programming fundamentals and progressed to more complex lessons, culminating in an advanced programming course. He ended up trimming the curriculum to two courses: intro to computers, and advanced computer programming.
One aim of the intro course was to arm students with the knowledge they needed to use computers for other coursework, such as writing papers. Harvey's primary goal, however, was to teach students that they could make computers perform virtually any function imaginable by learning how to program. A filing cabinet in the computer center held worksheets that taught the basics of the Logo programming language and word-processing software. Early on, Harvey lectured one class per week and gave the students autonomy for the rest of the periods. Both Harvey and the kids ended up hating the lecture period, so he cut the lecture and simply made the rounds, answering questions and providing guidance when needed.
Harvey gave his students more time than there was work to be finished. Assignments had to be turned in by the end of the semester; if the kids chose to do work one day and spend the next day playing games, that was fine by him. The kids quickly discovered games like Empire, a multiplayer, turn-based strategy game. Most of the terminals were DEC VT100s, which presented output on a tiny black-and-white screen. The rest—claimed by students who had reserved them using a reservation system written by classmates—were DEC GIGIs, which displayed simple color graphics, perfect for computer games. "There weren't any commercial computer games back then. We had a copy of Adventure, and maybe a primitive Star Trek game, but all the rest were things we wrote ourselves. I remember one called Bombs, which involved being chased by monsters in a maze, and must've been one of the first real-time games ever written for UNIX," recalled Jay Fenlason, a former student of Harvey's.
Harvey capitalized on the industriousness of students who wrote their own games. "I made game authors put their names and the school's name on the splash [intro] screen, so players would think, This was written by a kid just like me, and be inspired to learn how."
Students in the advanced programming curriculum had carte blanche. They chose what they wanted to make, and Harvey guided them along the way. Michael Thome, a student of Harvey's, was awed by the freedom Harvey extended to his students. Anytime Thome or his friends expressed interest in learning about new concepts, Harvey was on hand to encourage and support their learning. There was never any busy work because the students studied subjects that interested them. "By the time I graduated, I had several years of experience as a system administrator, had done UNIX kernel programing, had worked with robots, learned the basics of 3D graphics, and had built my own language—and the community was full of other students doing as or more advanced work of their own," Thome recounted.
Thome was one in a gang of closely-knit hacker friends. Jonathan Payne was another. A bookish prankster who spent his first two years at LS loitering in the library, Payne peeled magnetic strips out of books, planted them in other kids' backpacks, and doubled over laughing when they tripped the alarm heading out of the library. During his sophomore year, Payne started spending more time playing computer games on the terminals Harvey had installed in the library. Before long, Payne wandered into the computer center and became a mainstay. Excited by the student-first environment, he broadened his interests and wrote a popular take on Emacs, a text editor, which he called JOVE, short for Jonathan's Own Version of Emacs. JOVE grew popular enough to be distributed with the Berkeley-developed BSD UNIX operating system.
Michael Thome was one of Harvey's quietest students, and a good role model, if unwittingly so. When the other kids grew too rambunctious, Thome picked out a book, crawled up on a ledge near the top of one of the walls, sat cross-legged, and read. "He was very much part of the social group," Harvey explained. "He was just more able to sit in one place and not be in the heat of every ephemeral activity. So he became sort of the stereotypical wise man of the group. Everyone looked up to him—me, too!—because he never yelled; he just always did the right thing calmly."
Jay Fenlason was one of Harvey's most ambitious students. Precocious and interested in nearly everything, Fenlason had a leg up on many of his peers, having discovered programming a couple of years earlier in junior high. "Programming was something I just fell in love with the first time I tried it. Here I had this powerful machine, and I could make it do anything that I could imagine. It was awesome."
Upon entering LS, Fenlason was one of many excited hackers who rushed through other work to maximize time spent in the computer center. "I don't really understand how any of the computer gang managed to pass their other classes," Harvey admitted wryly.
Fenlason divided his time between playing games and studying them. Of particular interest was Rogue. "The summer between my sophomore and junior years, Brian [Harvey] invited some of us students to come out to California to [work as teacher's assistants during] a summer class he was teaching at San Francisco State University. While we were out there, we took a trip to UC Berkeley, where I got to play Rogue for the first time."
Fenlason had never played a game as immersive and complex as Rogue. After leaving Berkeley, he became driven to distraction by thoughts of questing down in the dungeons. Later in the week, he split from the group and hopped a bus back to the campus, where he invested more hours in the game. "I think I got a little bit obsessed then, and like any obsessed person who'd been cut off, I decided to build my own."
Reinventing the Wheel
Drawing on the eight or so hours he had spent playing Rogue at UCB, Fenlason laid groundwork in San Francisco. His intention, more or less, was to recreate Rogue as he remembered it: the dungeon layouts, the monsters, and the items. Fenlason dubbed his clone Hack for two reasons: "One definition was 'a quick [computer] hack because I don't have access to Rogue'. The other was 'hack-n-slash', a reference to one of the styles of playing Dungeons and Dragons."
Thus the roguelike, a game clearly inspired by Rogue rather than coincidentally exhibiting similar game systems and features, was born.
Fenlason composed a wish list of features he felt Rogue lacked, as well as those which Rogue could have implemented better. Level design, for instance, had been too simplistic; it would be more fun if players could explore dungeons that spanned more than a single screen. Monsters posed another shortcoming. There were only twenty-six, one per capital letter—far fewer than the text symbols available. More egregious was that they all attacked in the same way, making a beeline for the player instead of, say, maneuvering around for a sneak attack or standing in place—perhaps blocking a doorway—and forcing the "@" avatar to venture closer.
"The most major philosophical difference I can think of is that I did not want to have limits imposed on what the character could do because of the interface," Fenlason explained. "So if your character is carrying 12 different kinds of potions and finds a new potion in the dungeon, they should be able to pick it up regardless of whether it is the same kind as the potions they are already carrying."
Other members of the computer gang—Thome, Payne, and another boy named Kenny Woodland—caught Fenlason's infectious enthusiasm. Like him, they simply wanted to reinvent the wheel and smooth out its rough spots. "Working on Hack was a matter of being able to add onto a growing game: adding features, fixing bugs, improving the performance—what every programmer enjoys," Thome explained. "I don't think the goal was ever really to clone Rogue as such, but to build a game that was satisfying in the same ways that Rogue was."
Playing the game was fun, but even more intriguing was its architecture. Curious as to how the game whipped up new levels every time he played, Fenlason hunted for source code so he could study algorithms that generated dungeons. It did not take long for him to get a prototype up and running. The earliest version of Hack was written in Logo for the Apple II, known as the Turtle Graphics language on that platform. Players could move their "@" around a screen devoid of floors, walls, and other dungeon decor. All monsters charged the player on sight.
Comfortable with the basics, Fenlason migrated to the C language, working on the terminals at LS connected to the PDP-11/70. As the game blossomed into a recognizable Rogue-like, he encouraged his friends to leave their fingerprints on his work. "Mike [Thome] came up with the idea of chameleons—monsters that could take on the appearance and abilities of other types of monsters," he recalled. "Kenny [Woodland] contributed the maze-generating code for the bottom level that he and some other friends had written for Bombs. And Jonathan [Payne] and I had a friendly rivalry going on as to whose program, JOVE or Hack, could update the screen the most efficiently."
Community
In January 1982, Fenlason, Thome, and other students of Harvey's made the forty-minute drive to Boston to attend the annual USENIX conference, a confluence of hackers and a show floor where software developers and hardware manufacturers unveiled new technologies. By pure coincidence, Michael Toy and Ken Arnold were there to give a talk on Rogue, which the computer gang absorbed intently.
According to Thome, some of the students approached Toy and Arnold and asked for a favor. "The group of students ended up cornering one of them—I don't recall which one—and asked for the source code so we could fix the bugs/incompatibilities, but they politely refused."
Fenlason has no recollection of the conference, nor any meeting with Toy or Arnold. While Ken Arnold could not recall meeting any of the LS computer gang, he did remember several requests for Rogue's source code. "People would ask us, and we would turn them down. We thought we could figure out some way to turn [Rogue] into some cash. Remember that this was before the BSD license, GNU [a free operating system made up of free software] was pretty new and odd, and none of us involved had thought much about licensing and intellectual property issues. In retrospect, it would have been better to share."
Ultimately, Fenlason did not need Rogue's source code. By the time he stepped away from Hack, he had managed to cross off nearly every item on his wish list. Only a few desirables had been left on the table. He could not figure out how to compose dungeons that took up more than one screen, nor could he figure out how to create pre-constructed levels that could be slipped into the stream of procedurally assembled dungeons. Innovations such as containers that could hold objects found during play, and light sources able to illuminate more than the floor tiles immediately adjacent to the player, also failed to make the cut.
Fenlason chalked up the omissions to finite hardware resources. "The limited address space on the PDP-11/70 severely constrained what I could do. I constantly had to trade off features I would like to see versus whether there was code space to actually implement them."
Hack was difficult to debug due to its inherent randomness. Many bugs occurred late in the game, but there was no guarantee that the algorithms would recreate the precise circumstances needed to pinpoint an error.
Before handing in his code, Fenlason made sure to give his friends, Thome, Payne, and Woodland, their due. "Really, Jay created Hack. Other kids contributed little bits. If you see names other than Jay's in the credits, it's because Jay really took in the lesson about not being possessive about one's creations," Harvey said.
Coincidentally, the completion of Hack aligned with Harvey's departure from LS. "When a kid wanted to write a login simulator, I smiled benignly, thinking that that would be a minor activity. I grew up at the MIT AI Lab, where, back then, there was no such thing as passwords. I was certainly a hacker, in the original sense: I wanted to know how everything worked. But I had no curiosity about other people's secrets. So I underestimated how much energy the LS kids would put into password hacking."
The student who wrote the login simulator ended up opening Pandora's Box. During a day off, Harvey got a call from a colleague who was frantic over the state of the computer center: on three different occasions carried out by three different students, all on that same day, students had attempted to hack into other kids' accounts. Bowing under the onslaught of hacking attempts, the terminals had been rendered inoperable. "That was, I think, in 1980 or '81. And that's when I decided I was leaving."
Resolving to stay on until the school found a suitable replacement, Harvey spent the next year in a funk. He left in 1982, believing he had failed the students, the school, and himself.
However, two rays of sunshine cut through the gloom of Harvey's departure. The first took the form of lifelong friendships. "I'm in touch with dozens of LS computer kids. This was probably the most intense time of my life. I felt part of a family in a way I've never felt before or since. My best friends in the world are mostly LS teachers and kids—former kids. I'm even friends with some of the kids' kids!"
The second bright spot was that Hack stood and continues to stand as a monument to lessons learned in the spirit in which they were intended. Knowing that he lacked the time to patch in more features, Jay Fenlason arranged for others to build on Hack's foundation. At USENIX conferences, hackers from all corners of the world submitted code on nine-track tapes, huge reels loaded into decks so their information could be fed into computers. Any interested members at USENIX could load a tape, comb through code, and make their own improvements. Fenlason thought Hack would make a fun diversion, so he copied it onto the LS tape—which also included Payne's JOVE program and dozens of other applications written by Harvey's students—and sent it in by mail.
At the top of Hack's source code, Fenlason copyrighted it 1982 and wrote a note granting permission for anyone to modify and distribute the code provided his copyright remained intact.5 His goal was to encourage others to learn from writing Hack, as he had, in order to preserve and spread knowledge.
Two years later, Hack's code ended up in the hands of a hacker who took Fenlason up on his offer.
**
Author's Note: Dungeon Hacks is a standalone book authored by David L. Craddock and published by Press Start Press. The book chronicles the making of and culture surrounding seminal roguelike RPGs such as Rogue, Hack, and Moria. If you enjoy this excerpt, you can pick up the full edition of Dungeon Hacks in paperback, as an audiobook, or on popular e-reading platforms like Kindle and iBooks.
Read more about:
Featured BlogsYou May Also Like