In 1980, computers were instruments of science and mathematics, military secrets and academia. Stern administrators lorded over sterile university laboratories and stressed one point to the wide-eyed students privileged enough to set foot within them: Computers were not toys.
Defying authority, hackers seized control of monolithic mainframes to create a new breed of computer game: the roguelike, cryptic and tough-as-nails adventures drawn from text-based symbols instead of state-of-the-art 3D graphics.
Despite their visual simplicity, roguelike games captivate thousands of players around the world. From the author of the bestselling Stay Awhile and Listen series, Dungeon Hacks introduces you to the visionaries behind some of the most popular roguelikes of all time, and shows how their creations paved the way for the blockbuster video games of today—and beyond.
"The procedural randomness and replayability of Rogue and its dungeon-exploring ilk have infiltrated entire other genres - but how, why, and how did it start out? This exemplary history book charts the genre with smartness and exactitude." – Simon Carless
"Classic roguelike games may seem like yesterday's news, but they inspire game designers the world over to this day. Dungeon Hacks tells their story in compelling fashion and explains what they still have to teach us."– Warren Spector, director of Deus Ex and Disney's Epic Mickey
"Dungeon Hacks is great stuff, and we're lucky to have someone with such an eye for detail and the nuts and bolts of development to put it down on paper for us while there's still time."– Travis Baldree, co-designer of Torchlight 1-2 and Rebel Galaxy, lead designer of Fate
"The research that has been done on this book is top. I've since tried to find out even more information from many of the topics covered only to find that David Craddock's work stands alone, as most of it had not been documented until this point. I can only imagine the interviews conducted to write this book."– Amazon review (5 stars)
In 1965, computers 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.
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.
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."