I was out of a job, away from my family, and also out of an apartment, so I moved into Lane’s place. We were good friends, and I didn’t have any hard feelings over him leaving Inside Out Software. After all, we didn’t know he and John would clash. I worked on the graphics for Dark Castle, taking the black-and-white art and converting it to sixteen-color SuperRes to help him finish the porting job. We named our impromptu company Ideas from the Deep. Our lives revolved around game development and metal, and so, from morning to night, we made games while listening to Skid Row, Dokken, and Mötley Crüe. In the meantime, I was searching for my next gig.
As it turned out, Jay Wilbur had left UpTime and told me he was interviewing for a gig at a software subscription company in Shreveport, Louisiana, called Softdisk that shipped monthly disks full of software to subscribers. I had seen them at AppleFest in 1987. It sounded interesting, and I needed a job. At the time, I was naive enough to think anyone could just call up a company and ask to speak to its top brass about a job. So that’s exactly what I did: called Softdisk and asked to speak to the president of the company. Unbelievably, I got through.
“This is Al Vekovius.”
“Hi, my name is John Romero.”
“Oh yeah, I’ve heard about you.”
Wow, I thought. That’s good news. Turns out Al had hired UpTime’s editor in chief, Mike Amarello. He had sung the praises of Jay and his old crew. Jay mentioned me to Al, because I was his primary game provider at UpTime, sending him stuff every month.
I plowed ahead. “I’m calling because I’m interested in working at Softdisk. I really want to learn the PC and write games for it.”
“Our PC disk is our biggest moneymaker.”
“If you need someone to program, especially games, I think I’d be a good fit. I used to work for Origin, and I sold a lot of games to UpTime and inCider and other magazines.”
“Oh, Origin? Wow. Great. That’s impressive. How about I send you a plane ticket for this weekend? You can see the company, check out Shreveport, and we can meet.”
“That would be awesome. By the way, I don’t know if you need anyone else, but I’m living with a great programmer. His name’s Lane Roathe, and he used to work at UpTime, too.”
“Okay, I’ll send two tickets.”
Lane called Jay to tell him that we were heading down to Shreveport, the same weekend Jay was heading there for his interview. While some deep grooves of talent and companies existed in the tech hubs around Boston and San Francisco, in the early days of the game industry there were smaller tech companies scattered everywhere, so finding one in Louisiana didn’t seem odd to me. I was excited to meet the Softdisk team and to sell them on what we could do.
Lane and I flew down to Shreveport and met with Al. Or “Big Al,” as the six-foot-plus boss was often affectionately called. A mathematician who was the former head of the computing department at LSU’s medical school in Shreveport, Big Al was an impressive character with an open, warm demeanor. He still taught at the school as an adjunct while he ran Softdisk.
Big Al and his cofounders hit on a compelling model to distribute computer disks with preinstalled software tailored to specific computer systems via subscription. Previously, computer magazines like Nibble contained code for random programs in each issue. Subscribers got an issue and typed in the code for each program they were interested in. Now, they popped in a Softdisk floppy, started browsing, and used the content immediately. Like those early programming mags, there was little rhyme or reason to the content in any given Softdisk release—a mortgage calculator, a biorhythm calculator, clip art, a puzzle, a daily planner. Games were a rarity, as they had been for the early magazines. If I had any say in the matter, I would make sure Softdisk had games in as many issues as possible.
The company’s biggest title was Big Blue Disk—a pointed reference to IBM’s nickname, Big Blue, that telegraphed the content: all the programs were for PCs. With 50,000 subscribers, each putting down $87 a year, Softdisk’s model was good from my perspective. I can’t imagine it cost more than $2 to manufacture and mail each disk. Most of the software on the disks was submissions from external “authors,” the title Softdisk used to refer to software developers. The internal authors took the external submissions, made them professional, fixed bugs, and got them fit for public release. Softdisk didn’t want to talk to me about that, though. They brought me down to Louisiana to lead a newly created Special Projects Division with the sole purpose of making games, and not just small games for their monthly disks, either. The Special Projects Division was all about big games like the ones that Origin made.
Al understood the appeal of gaming. He made clear he was interested in adding that to Softdisk’s arsenal of releases during our talk. I explained that I needed to get up to speed on PCs to develop games, and he was okay with that. He took us on a tour of Shreveport, too. I think he worried that we wouldn’t like it, but after two winters in New Hampshire, I loved the town’s steamy climate and Cross Lake on the west side of town. Al also threw a big party at his house during our visit, and we got to meet a lot of the staff. Everyone was friendly and welcoming. Afterward, Jay and Lane remarked how cool everyone seemed. Months later, we learned it was all an act; the programmers were terrified that these three East Coast gunslingers were going to come in and take everyone’s job, but the fact was, nobody’s job was at risk at the time. Al offered each of us $27,000; we accepted; nobody got fired.
Jay, Lane, and I flew back East. We had two weeks before we were due in Shreveport, so we decided to take advantage of that time. Lane and I got to work on ZAPPA ROIDZ, an Asteroids-like game. I made the Apple II version while Lane got busy with the Apple IIgs. We finished within the week, and promptly sold them to Softdisk under our company name, Ideas from the Deep.
With a job secured, I was excited to get my family under one roof, and it was not a minute too soon—Kelly was going into labor. I hopped a flight to California and welcomed my second son, Steven Patrick. Like Michael, he was a beautiful baby, and I felt an incredible mix of pride and pressure to make sure that my family was secure and cared for. While there, I shared the exciting news about Softdisk and tried to sell Kelly on moving to Shreveport. She agreed to give it a try. It was a different world then without text or video calls or email. Home computers were a relative rarity still and long-distance calls were expensive and reserved for important things like “I’m going into labor.” Prior to my visit home, we exchanged only letters. There was so much to tell her, and it was a lot for Kelly to take in. I spent some wonderful time with Kelly, Steven, and Michael before heading back to New Hampshire to pack up my stuff at Lane’s while Kelly recuperated from the delivery.
There wasn’t much to pack in New Hampshire: a bed, a stereo, and a TV, as well as my computer, its manuals, and some clothing. I also had amassed a few boxes of personal papers that contained everything from source code to drawings to acceptance or rejection letters for every game I had created to date. Movers came to collect our stuff, and Lane, Jay, and I hit the road. I faced an enormous learning curve when I arrived in Shreveport. I was determined to learn every byte of the PC, just like I did with the Apple II, in a matter of months. I’d been programming for about ten years at this point, which gave me confidence, but the architecture of the PC was completely different than the Apple II. The biggest challenges were grasping the ins and outs of the 8086 16-bit processor. The PC had more sophisticated hardware than the Apple II and could address 640K of RAM, which meant I could write bigger games. While it used Assembly language, it was a different Assembly language written specifically to the computer’s processor. Conceptually, there were similarities, but the instruction sets, or the words used to tell the CPU what to do, were completely different. It was like learning a new coding language, though easier for me since I already knew several.
I dug in to face the challenge of learning a brand-new computer with its new hardware and instruction set, and I was excited to do it. A pattern became apparent to me then, a pattern that continues to this day: Technology reinvents itself. As critical as it was to get ahead, the best one could ever do was to get there first and excel at the new technology.
That first month in Shreveport, Jay took over as editor of Softdisk Apple II and Softdisk G-S while Lane and I got to work as the sole members of the new Special Projects Division. Lane got to work on a new, small game for Softdisk G-S while I started a deep dive into PC programming that rivaled my days of manic focus converting my main programming language from BASIC into Assembly as a fifteen-year-old. The PC market was growing, and I needed to be part of it to succeed. When it came to programming, I was competitive. The drive to be an exceptional programmer was still all-consuming for me, but at this stage, my thirst was, in part, fueled by a combination of my unflagging passion for games and the pressure I felt to develop a career so I could support my growing family.
I spent every minute poring over magazines, books, and manuals to embed PC programming knowledge in my brain. You can only learn so much from books, though. As I picked up the fundamentals, I realized learning is always better when it’s project based. My hands wanted to code, not turn pages. So I took an Apple II game the company had published already and ported it to the PC using Pascal, which I had learned at Sierra College. Pascal was not the optimal language for games, but it worked and was quick and easy. In porting the game, I didn’t want to be creative and consider its design. I wanted to devote all of my brain to learning the tech as fast as I could. Sometimes, the different sides of my brain work independently like that. When I showed it to Bob Napp, the Big Blue Disk editor, he said, “Oh my god, a game! Our users love games.” So I ported games during my learning process and gave them to Big Blue Disk.
I kept at it. The next month, I dug up Twilight Treasures, the game I’d sold to Nibble magazine in 1986, and used Assembly language and Pascal to convert it to PC. I wrote all the game logic in Pascal and the graphics drawing code in 8086 assembly language to speed up the game’s graphics drawing. That went into the next Big Blue Disk release. In addition to games, I was also writing tools for Big Blue Disk, again to increase my knowledge. The more I programmed, the faster I learned. My goal was to write a game fully in Assembly. I’d be as close to the machine as possible then, and ready to code a big game for the Special Projects Division. Of course, the Big Blue Disk editor loved all the content. Surprisingly, another editor suggested I curtail my submissions a bit, saying, “I know you’re eager, but they’re going to continue to expect this.” I blasted heavy metal and spent some of my time writing stuff other than games, like game reviews and articles that were also included on each disk.
One of the key players on the Big Blue Disk production team was a forty-five-year-old programmer named George Leritte, who had mastered 8086 Assembly language. After a month there, I had learned Assembly, too, but obviously I still had gaps in my knowledge of PC hardware. One day, I hit a wall on a tool program; it lacked a critical piece of technical information about the PC, and I couldn’t figure out how to solve the issue. Naturally, I asked George.
“I don’t know.”
“Come on, George. This seems like something you would know.”
“Yeah, no. Sorry.”
“Where can I find the information? I’m trying to get this program done to get published on your disk. It’s going to be great.”
“I don’t know what to tell you.”
I thought he was lying. I couldn’t understand why he clammed up at first. Then I realized I was less than half his age, and I was infringing on his territory. Maybe he felt threatened, which is ironic because I had zero interest in coding for Big Blue Disk. All my interest in programming was so I could make games. Maybe he was just pulling my leg.
Two days later, George came by my desk and said, “I found this program that does what I think you need.”
“Great,” I said. “Where’s the source code for it?”
“I don’t know.”
“I need to know exactly what it’s doing.”
“I just found it.”
Of course, I found out later he’d written the program. He knew exactly what I needed to know, but he wasn’t going to tell me. I finally dug up the solution myself, locating the technical information in a PC magazine, and finished the program. Then I stomped over to Bob Napp and told him what had happened.
“This is ridiculous,” I said. “I’m doing this stuff for you.”
Instead of advocating for me, Napp came back and said: “New rule: Don’t ask George any questions.”
“What?”
“You are not allowed to ask George any questions.”
I was dumbfounded.
But I wasn’t deterred. In fact, I was ready. The previous month while quarreling with George, I had finished Pyramids of Egypt for Big Blue Disk. It was written fully in Assembly language, and I felt that I had an expert-level understanding of the PC and its architecture.
Lane and I got together to kick off the Special Projects Division’s first big game: Eskimo Jo, a Bomberman-type game, but on ice. After two weeks of work, however, we got a message: The Special Projects Division was killed. I was needed full time on Big Blue Disk to fill the lull in content that I had inadvertently created. Lane, meanwhile, went back to the Softdisk G-S division. We were crushed.
At the end of my first year, I was finished learning the PC, and I was finished trying to help a department that had a grumpy lead programmer who wouldn’t allow me to ask him questions to help the product he was supporting. It was precisely the opposite of the excitement I felt when I considered the opportunities before us. I was also not making the kind of games I wanted to make—bigger games than my old Apple II games, games that took a year to make and would be displayed on store shelves. Although I’d mastered the PC, I wasn’t doing what I wanted to do or what Al originally hired me to do: Make big games.
“Al,” I said, “thanks for having me here. It’s been amazing. I’ve been here for a year, learned the PC and cranked tons of stuff out, but I need to leave. I want to make games.”
“Wait wait wait, John. Hold on!” Al stammered. “We can solve this. I don’t think you have to go anywhere.”
“I’d love to stay. I really appreciate you hiring me, but if I’m not making games here, I’m going to LucasArts.” I hadn’t contacted anyone at George Lucas’s gaming division, but it was the first choice on my list of plan Bs.
“Let me see what I can do. I’ll get back to you within the week.”
A few days later, Al came back to talk.
“How about we start a subscription disk where you’re making a game every month?”
“One game a month is impossible. Unless you want really shitty games,” I said.
“All the other titles are monthly. I guess we could try every other month.”
“Two months would be amazing, and if I could actually have a team—an artist and another programmer—that would be perfect.” It was a big ask to go from one to four (including a managing editor, Softdisk’s title for a producer), but I knew that I could make much better games if I had help.
It took Al a few months to make it happen, but he did it. He walked by, and with a big smile on his face said, “Get ready to hire your team for PCRcade!”*
He believed in me and had the vision to see how important games were. I was completely stoked. I asked Lane if he’d be interested in being the editor/manager, and he thought that would be cool (he still wasn’t interested in learning the PC). Then I asked Jay if he had any suggestions for a game programmer, and he told me about a kickass whiz kid who provided Apple II games and had even begun porting them to PC. There was only one problem: Softdisk had already tried to recruit him twice, and he had turned down those offers. The elusive programmer was named John Carmack.
I’d played Carmack’s game Tennis, which I liked, and I also knew he’d made an RPG called Dark Designs. The perspective view of the gameplay in Tennis was of particular interest to me, as it offered a tilted side view, showing that he had physics working on an Apple II, which was a rare thing in games at that time. Further, it featured fluid animation. I knew that this was the work of a great programmer.
“Jay, can you call him again?”
“He’s not interested,” he told me. “Like I said, we’ve tried.”
If he was a game programmer like me—and everything pointed in that direction—I could see why he might not be interested. After all, I had just threatened to leave.
“I think he would be interested in working with another game programmer,” I said, remembering about how I felt working with the Origin coders for the first time.
“We’ll try it, but he said he wasn’t interested, and was happy to keep doing what he was doing.”
“Tell him that he’ll be coming here to make games and to join another experienced game programmer. I think that will make a difference.” I hoped so, anyway.
It turns out that I was right. At the time, meeting another game programmer was like finding a needle in a haystack. I couldn’t imagine why he wouldn’t want to do it, because I had been in his shoes. And, as luck would have it, Carmack was looking for something more stable than the sporadic pay his freelance game developer lifestyle gave him.
We invited him down to Shreveport for an interview. Carmack liked to drive and had spent money fixing up his clunky MGB, so a road trip from his home in Kansas City to Shreveport didn’t seem like a bad idea. He told me later that he fully expected to turn Softdisk down again, that this “other experienced game programmer” would turn out to be a myth, but it couldn’t hurt to listen.
Big Al took us all out to dinner at the Italian Garden—Jay, Lane, Carmack, and me. When Carmack and I met, it was an absolute meeting of like minds. He was a fresh-faced nineteen-year-old who looked like he had yet to shave. I was all of twenty-two. I eventually discovered that we came from different sides of the tracks—his family was far more affluent than mine—but as we talked that evening, it was almost as if we had inhabited parallel lives when it came to games and programming, having both spent thousands of hours mastering our three obsessions: games, computers, programming. When I say “thousands of hours,” I mean that literally.
Over the course of my life, I have bonded with programmers, including some of the most legendary figures in games and computer design, from Steve Wozniak to Bill Budge to Nasir Gebelli and others. However, on that first meeting, Carmack and I instantly connected on multiple levels because we shared a deep knowledge base and passion that creates instant bonds; we understood each other and the significance of our respective work, and we admired each other’s abilities. We spoke a language that, while rooted in normal, everyday English, was unique. We saw a world of possibility in games, and we knew we had the knowledge and drive to master it. We saw that in each other. It’s hard to describe how it felt. Imagine caring deeply about something, so deeply that you feel compelled to master it. Imagine no one around you gets it—not your family, not your partner, not your friends. Not really. Imagine meeting someone else just like you for the first time. That’s what it felt like when we met each other.
Jay and Al spent the whole night listening to a nonstop stream of programmer-speak that was all game programming techniques at a totally granular level. Which assembler did you use on the Apple II? Did you use the TASM assembler for the 8086 on the PC? Do you know C? Have you written double hi-res code on the Apple II? How much do you know about DOS 3.3 or ProDOS? Have you memorized the memory map of the Apple II? Have you done any BIOS programming on the PC? Have you written any TSRs? And on and on. Carmack, Lane, and I were kings of the Apple II, but from today’s perspective, we were kings of the computer stone age. Our machines were unbelievably primitive compared to the modern computer—they had minimal memory and limited processing power, so everything, as a rule, ran slow. A good game requires speed, and that meant we had to optimize the hell out of our games. Today, you can run code on a modern computer that is capable of running at a speed of 5 billion cycles per second. You can make a lightning-fast game without knowing a line of assembly code. In 1988, programmers were working with 32-bit microprocessors that ran 33 million cycles per second, not multiple billions, and we still had to write code that put each and every pixel on the screen as fast as possible. To get that speed required Assembly language. That block of code did all the graphics work, and when we constructed it, we needed to use maximum efficiency and logic, every coding trick, to build the fastest, most reactive games. The CPU executed the code, the graphics card on your machine displayed it, and let the gameplay start. Today, the majority of graphics processing is handled by a graphics card, not by game programmers trying to directly put dots on the screen.
We were members of an unofficial secret society that studied the same sacred texts, knew the best hacks, and enjoyed the same rituals. Our chatter started with a discussion of Apple IIs and moved on to processors and PCs, which Lane couldn’t contribute to, because he stopped learning with the Apple IIgs. We riffed on video games that had impressed and inspired us, detoured to Dungeons & Dragons, and shared our mutual love of tricks to speed up our code.
Eventually, other parallels between us surfaced. Like me, Carmack was a huge comics fan as a kid. He went to college for a year and hated it. He had parents who derided his passion for games. I had more experience on PCs than Carmack, but he told me something that impressed the hell out of me during our first chat. He realized that if he took an Apple II game that he’d sold to Softdisk and converted it to PC, he’d more than double his money since Big Blue Disk paid more for PC games than Softdisk did for Apple II games. One month, he was low on cash, having moved out on his own, so he rented a PC for a week, learned how to program it, converted his game, and then returned the rental.
“Dude, that is genius!” I said. That innovation totally appealed to my roots as a freelance game developer, and the fact that he had learned the PC in one week was seriously impressive.
I spun my idea for Gamer’s Edge, which was the name that had replaced PCRcade.* I wanted to crank out top-shelf computer games that were better than anything on the market. I’d spent a year broadening my PC knowledge base, and now, with another top coder, I could finally start to fulfill my life’s mission: making the most fun and engaging, best-looking games possible.
Games I wanted to play.
Although Jay had warned us that Carmack was a lone wolf, I didn’t get that feeling at all. It felt like two of us—Carmack and me—were in total alignment. He was an animated, extremely knowledgeable programmer who would be an asset on any team. He later told people that my thorough understanding of the PC and graphic design and art skills were what swayed him to join us. I knew things he didn’t. Given his all-consuming mania for game programming, that was the deciding factor.
He took the job, and I was beyond excited. I was even more excited when I saw Carmack in action. He could and would sit for hours and hours studying and coding. Like me, he didn’t smoke, drink, or do drugs. Unlike me, he didn’t have a family or even a girlfriend. He lived alone, which meant he could spend every minute of every day poring over the PC. And that’s what he did. The only time he wasn’t programming was when he slept or walked to our office refrigerator to get another Coke. He was in boot camp, working 24/7, trying to learn as much as possible about PCs.
It was incredible to watch someone else besides me run a programming ultra-marathon. The three of us set up our office for serious work: In addition to Intel 386 PCs provided by Big Al, we invested in a fridge, a microwave, and a Nintendo Entertainment System (NES). We liked metal, so we cranked our favorite tunes. Our eyes were locked on code, on books, on magazines, downloading it all into our heads. Carmack and I shared information with each other, teaching techniques picked up along our solo paths. We didn’t do this because we had to. We did this because we wanted to. If you’ve ever stayed up far too late because you were playing a game, bingeing a series, or reading a book, code had the exact same effect on us. Learning more was its own reward.
If I was fast, together we were super-fast. Carmack’s ability to understand and retain knowledge of systems, programming patterns, algorithms, and computer languages equaled mine. I had never worked with anyone like me before, and he had never worked with anyone like him. It was amazing. Educators have called me a child prodigy with code—and I suppose I was. It also helped that I had hyperthymesia. Carmack was unquestionably gifted, too, but in a different, deeply analytical way, synthesizing information and using it to innovate technically. His solution to problem-solving was lodged in his unique ability to upload programming systems knowledge into his brain and allow it to gestate and cross-pollinate at high speed. Like me, he was also competitive with code. He wanted to be the best. Whatever I knew, he was going to learn it, and learn even more. I also thought critically about design; what gameplay patterns, not just technical algorithms, could we make with code? I was fascinated and sometimes awestruck by evolutions in game design, always thinking what a new play pattern or technology might be capable of, not just when it first appeared, but for the future. What could we do with it? We had zero regard for its known horizons. Our strengths were perfectly paired. We were eager to make games do things they had never done before.
Looking back, I believe these traits were the essential keys to our future collaborations: his desire to push game tech and my desire to push game design through tech. But the magic, I think, was rooted in our joint understanding of code and trust of each other. Because I was a coder, I knew what was theoretically possible with code and was therefore able to push the horizons of game design. I trusted Carmack implicitly; if he said it was possible, it happened. Carmack trusted my design vision. If I said it would be fun, he trusted that, and knew I would make it happen. Great tech without great design is just an interesting exercise. Great design without great tech (or at least the right tech) fails. I’m getting ahead of myself here, but the point I want to make now was that Carmack’s growth as a game programmer was breathtaking.
It was a lucky thing to have Carmack around in July 1990, because Big Al came in one day and announced that we would need to launch two games on the Gamer’s Edge sampler disk, insisting it would lure subscribers. “And I need them in one month,” he added.
The sampler disk would be sent to all 50,000 of Big Blue Disk’s subscribers. We planned to develop two games in two months for the sampler as soon as we got the green light to start work. The office had yet to be set up for our team, and we didn’t even have the computers we needed to create the games.
“A month? I thought we had two months once you guys were ready?”
“It took them longer to get the publishing works set up, but we’d like to keep that launch date since we have already advertised it to our customers,” he said.
We absorbed the impact of what this announcement meant. This was not ideal. As far as I was concerned, the company’s future was also my only future, at least in the short term. Kelly and I were getting divorced. I knew she was getting increasingly homesick. Shreveport was not for her, and she wanted the support system of her family in California. I could have moved back to California, but even that wouldn’t have saved the marriage. During our early separation, we had grown apart. She had become accustomed to a life without me. I had become accustomed to pouring myself into my games and focusing on my career. It was a difficult time for us, but I was determined to care and to provide for them.
Fortunately, I knew how to harness my abilities to do that, and kept my mind busy trying to accommodate Big Al’s request. The plan—I dubbed it “the death schedule”—was to work from 10 a.m. to 2 a.m. We realized the quickest solution was for us to repurpose previous work. In 1988, I’d made an Apple II game that UpTime had published called Dangerous Dave in the Deserted Pirate’s Hideout! And I decided to rewrite it for the PC. Meanwhile, Carmack decided to rewrite his Apple II game Catacomb. As for Lane, he was going to interface with the production team and work on specific assignments that needed to be executed in parallel.
There was a kind of competitive aspect to tackling an impossible task, one that, in a sense, defined my work with Carmack. Amped on cans of Coke and fueled by pizza, we did the impossible. We launched ourselves into the unknown, driven by the knowledge that no one had done what we were about to do, confident we would come out successful on the other side. With Big Al, we were also driven by inhumanly tight deadlines. In hindsight, we certainly could have said, “No way, Al,” but we never considered it. Our competitive natures caused us to think of it as work-intensive adventure, akin to the greatest adventures in our future D&D campaigns, which required endurance, risk, and suffering, but ultimately ended in triumph. The death schedule had all that and more. Carmack and I didn’t look at this as an unreasonable imposition by Big Al. We looked at it as a challenge.
With those early grinds, living on the death schedule, we learned a lot about each other. Where we had come from and things we’d endured. About how games and coding fit into our lives. Our successes and the interesting places our respective obsessions had taken us as well, like accepting every job that came my way in high school and then working in a sweatshop so I could buy my own Apple IIe after graduation.
Carmack had taken his obsession with tech a few steps further than I had—and synthesized information he might have been better off ignoring. When he was fourteen, he learned that thermite paste could burn through glass. Using this information, he hatched a plan for an Apple II heist. He applied the paste to a window at his high school, removed part of a pane, and crawled into the room. His larger accomplice, however, was unable to fit through the burned-out hole. He snaked his arm through the gap to unlock and open the window, setting off a silent alarm. They were caught red-handed, and Carmack was sentenced to reformatory school.
I had done exceedingly risky, dangerous stuff as a kid, too, including shooting out windows of neighboring homes. “What the hell was I thinking,” I told him, “shooting out the windows of our neighbors’ trailers?” As far as I could tell, Carmack was reliable. He took on assignments and delivered. We were both proud of each other’s work. I had zero reservations about my new friend. In fact, we had nothing but high hopes for what we could do together.
I did, however, have questions about my pal Lane. It seemed to me that his head was not in the game. A lot of the disconnect probably had to do with his loathing of the PC, but he was also working as a roadie for a local metal band. Whatever the reason, he just couldn’t muster the drive and do what needed to be done. At the start of this project, I assigned Lane a task to write a program to compress some of our files. It wasn’t a huge job, but it was a necessary one. I checked in with him on day ten, and he said he hadn’t done it. I checked five days later and got the same answer. Finally, Carmack and I had both finished our games and Lane still hadn’t written the code.
I was steamed.
“I’ll just do it now,” Carmack said.
Thirty minutes later, Carmack was finished.
I wanted to get Lane off the Gamer’s Edge team and replace him with Tom Hall, who worked on the Apple II team. I hadn’t really worked closely with Tom before, but I had seen him around the office and took an instant liking to him. He was just an incredibly funny, friendly guy, offering up hilarious turns of phrase and game titles. It was also apparent that he was smart. He understood every game reference, was happy to have in-depth discussions on game mechanics, and knew how to code in Assembly. As I got to know him, I realized he was probably the most creative person I had ever met. He was a gamer who had finished college and put his programming degree to use by writing tons of games. He understood game design and the elements of games—from character names to sound effects to narrative flow—and had an overactive imagination. My first attempt to draft Tom was nixed by Big Al, but Tom became a regular presence in the Gamer’s Edge office anyway.
After Carmack and I finished the death schedule—with a day or two to spare—we had two months to design the next game. We also had a new member, a guy with an easy-to-remember last name: Adrian Carmack. Adrian and John were not related. Adrian, a Shreveport native, was interning in the Softdisk art department and earning about $5 an hour. All I knew about him at first was that he had really long hair and seemed about our age. One day, I approached him.
“Hey, you listen to metal, right?”
“Oh, yeah. Metal.” He was soft spoken and seemed reserved.
“Metallica?”
“Yeah, Metallica, Pantera, Slayer.”
“Cool. Do you want to do some art for computer games?”
“Huh? Sure. If my boss says it’s okay, then sure.”
I went to Adrian’s boss and told him that Al said I could pick someone from the art department for Gamer’s Edge, and Adrian would be joining my department in a month. As it turned out, that turned into a surprising accusation about poaching staff, which I thought was ridiculous because he was an intern, not a full-time staffer. Giving people opportunities to grow is the whole point of an intern program. Thankfully, it got worked out, and I’m glad it did. Adrian had excellent fine arts skills, an affection for horror and gore that outstripped my own, and a work ethic that matched ours. He worked his ass off to learn how to create graphics for computers.
On the weekends or when we needed a break, we bonded over Dungeons & Dragons. When Carmack moved from Kansas City, he brought his most prized possession: a huge wooden table. It sat ten people, and its exclusive purpose was for programming and playing D&D. Right after finishing the sampler disk, Carmack introduced us to his campaign, which he had been running for several years. Carmack was the dungeon master, and Tom, Jay, and I rolled new level-one characters.
Carmack led us through his eerie, dark fantasy world full of demons, mysterious places, ultrapowered beings, political intrigue, and much more. He was an excellent dungeon master and loved crafting campaigns. I admired his abilities to design gameplay for us within the D&D system, which was, at the time, a shadow of what it would eventually become. This was the beginning of a pattern for us that would continue in the future as we grew closer and more united: Make games during the week and play games on the weekend.
The new game we decided to build was called Slordax, a fun space-shooter game in the spirit of Xevious. Before we got started, Carmack and I discussed how we could divide up the work. Time was always an issue, and we wanted to work as efficiently as possible. At that point, I was the more experienced game programmer, and Gamer’s Edge was my operation. So, knowing projects always go better when people are working on what’s most interesting to them, I asked him what he was most interested in working on. Carmack said he was really into the architecture of the code and wanted to handle that. He also said he was interested in graphics and wanted to learn more about that.
“Fine,” I said. “You do that stuff, and I’ll handle everything else.”
“Everything else,” as it turned out, was a lot more work. It’s designing the game, which means envisioning the overview of the game. What’s the object? What happens? What are the rules? What do players see? What do they do? It’s the art direction, planning the levels, writing the tools to make levels, then making the levels. It’s producing the game itself: taking all the pieces of the game—text files, image files, sound files, data files, and more—so they can be put on a disk that players can pop into their computer. I was too excited about Slordax to care about the uneven workload. I wanted Carmack to write kickass code that pulled all the elements together to make Slordax the fastest, best game around.
We wanted players to have a feeling of traveling through space. To do that, we needed the backgrounds to move, smoothly scrolling down the screen as our spaceship flew ahead to give the illusion of flying forward. Creating this effect meant the background images on the screen all had to update and refresh continually, basically sixty times a second. We had to find a way of doing this smoothly the way the NES did it. Considering our options, Carmack and I discussed methods of scrolling vertical backgrounds. One of the most important things I did after that discussion was give Carmack a book I’d bought. It was called Power Graphics Programming, written by Michael Abrash and published that year. I’d only browsed through half of it, but I thought it might be fuel for his knowledge quest.
I didn’t realize I was putting him directly on the path to game development heaven, but I’d done exactly that. Power Graphics Programming provided the keys to the computer graphics kingdom. Abrash was the first author to unlock the mysteries of something called Cathode Ray Tube Control (CRTC) registration. His book described how programmers altered the location in graphics memory where the CRT started displaying graphics.* Changing that value allowed us to simulate scrolling. Beyond the information in Abrash’s book, Carmack added his own techniques to make the scrolling even smoother by reducing the amount of drawing he needed to do. He did this by remembering only the areas that needed to be updated, and drawing only in those areas instead of the entire screen.
Building Slordax and nearing the final stages, Carmack showed me his CRTC experiments. They were extraordinary. I had never seen a computer game with smoother vertical scrolling. This wasn’t just moving one line of graphics down the screen to the next line—it was smoothly scrolling at a hardware level like NES. Gamer’s Edge was going to shock the industry with this. I told John this was terrific, but I knew the real win wasn’t a smooth vertical scroll but instead a smooth, limitless horizontal scroll.
The world loved Super Mario Bros. I loved Super Mario Bros. Action games depended on smooth movement, and gaming systems like the one Nintendo created to run Super Mario Bros. had the computing power to shed the static screen. New backgrounds unspooled seamlessly behind a character as they moved, or in Mario’s case, bounced, to the left or the right. I believed that horizontal scrolling was a key to visual storytelling, expanding the player’s world around them. I knew matching the smooth scrolling of dedicated gaming systems would revolutionize PC games. I didn’t explain my thinking to Carmack then. I just tossed off the comment. As he worked on vertical scrolling, I just wanted him to keep horizontal scrolling in mind. Both of us liked to work toward challenges.
Slordax was a total team effort. Tom Hall came up with the name, wrote the story, created half the levels, and had suggestions for what some of the enemies might look like. Adrian did a great job creating all the art for the game, except for the title screen (which, as you will soon see, was a big oversight). I designed the game, programmed and designed the level editor, created the other half of the levels, created the audio for the game, handled the production of everything that shipped with the game, and made sure it was going to fit on a 1.44 MB disk. It was our first game as a team, and everyone felt we worked well together.
At the last stage of development, Carmack contacted the art department, which always created the title screen that appeared at the beginning of every Softdisk game—in this case a purple planet and futuristic green lettering announcing:
SLORDAX: The Unknown Enemy
By John Carmack
©1991
Softdisk Inc.
When the disk arrived in November 1990, we were all shocked to see Carmack with the solo credit. Since Carmack had made the request, the art department designers just assumed he was the only author. We were all so busy getting it ready to go out the door that none of us noticed. I created the final master disk, which was locked and loaded in 1990, not 1991, contrary to the date on the title screen. That’s when it got into subscribers’ hands, but it was finished the previous year.
Shipping Slordax, our first game as a team, was a monumental occasion, but it was not the most monumental thing to happen during this time, not by a long shot. During the development of Slordax, John Carmack took my challenge to heart. He dove deeper into Power Graphics Programming and his own genius.
Then we made gaming history.
* PCRcade was the working title for what would become Gamer’s Edge.
* A trademark search revealed that PCRcade was already in use.
* A deeper explanation is beyond the scope of this book. However, Abrash’s book goes into extensive detail, for those interested.