{"id":1178451,"date":"2023-09-03T10:30:05","date_gmt":"2023-09-03T14:30:05","guid":{"rendered":"https:\/\/www.prime-wow.com\/?p=1178451"},"modified":"2023-09-03T10:30:05","modified_gmt":"2023-09-03T14:30:05","slug":"hitting-the-books-the-programming-trick-that-gave-us-doom-multiplayer","status":"publish","type":"post","link":"https:\/\/www.prime-wow.com\/?p=1178451","title":{"rendered":"Hitting the Books: The programming trick that gave us DOOM multiplayer"},"content":{"rendered":"<p>Since its release in 1993, id Software&#8217;s DOOM franchise has become one of modern gaming&#8217;s most easily recognizable IPs. The series has sold more than 10 million copies to date and spawned myriad RPG spinoffs, film adaptations and even a couple tabletop board games. But the first game&#8217;s debut turned out to be a close thing, id Software cofounder John Romero describes in an excerpt from his new book <a data-i13n=\"elm:affiliate_link;sellerN:Amazon;elmt:;cpos:1;pos:1\" href=\"https:\/\/shopping.yahoo.com\/rdlw?merchantId=66ea567a-c987-4c2e-a2ff-02904efde6ea&amp;siteId=us-engadget&amp;pageId=1p-autolink&amp;featureId=text-link&amp;merchantName=Amazon&amp;custData=eyJzb3VyY2VOYW1lIjoiV2ViLURlc2t0b3AtVmVyaXpvbiIsInN0b3JlSWQiOiI2NmVhNTY3YS1jOTg3LTRjMmUtYTJmZi0wMjkwNGVmZGU2ZWEiLCJsYW5kaW5nVXJsIjoiaHR0cHM6Ly93d3cuYW1hem9uLmNvbS9Eb29tLUd1eS1MaWZlLUZpcnN0LVBlcnNvbi9kcC8xNDE5NzU4MTFYP3RhZz1nZGd0MGMtcC1vLTRrYi0yMCIsImNvbnRlbnRVdWlkIjoiNjAxMzE2YjEtZGFmZC00ZjQyLTg1ZWEtYTIxYWQ0OTJlOGE2In0&amp;signature=AQAAAd7l-5Q7oANANRW4jwlpM3hu9lZQYUCAvjyd-Hcd_usa&amp;gcReferrer=https%3A%2F%2Fwww.amazon.com%2FDoom-Guy-Life-First-Person%2Fdp%2F141975811X\" class=\"rapid-with-clickid\"><em>DOOM GUY: Life in First Person<\/em><\/a>. With a mere month before DOOM was scheduled for release in December 1993, the iD team found itself still polishing and tweaking lead programmer John Carmack&#8217;s novel peer-to-peer multiplayer architecture, ironing out level designs \u2014 at a time when the studio&#8217;s programmers were also its QA team \u2014 and introducing everybody&#8217;s favorite killer synonym to the gamer lexicon.\u00a0<\/p>\n<figure><img decoding=\"async\" src=\"\" style=\"height:600px;width:800px\" alt=\"Its the title and author name in Doom font\" data-uuid=\"572b4fc5-1b53-330f-ac24-d88666512023\" \/><figcaption \/>\n<div class=\"photo-credit\">Abrams Press<\/div>\n<\/figure>\n<p>Excerpted from <a data-i13n=\"elm:affiliate_link;sellerN:Amazon;elmt:;cpos:2;pos:1\" href=\"https:\/\/shopping.yahoo.com\/rdlw?merchantId=66ea567a-c987-4c2e-a2ff-02904efde6ea&amp;siteId=us-engadget&amp;pageId=1p-autolink&amp;featureId=text-link&amp;merchantName=Amazon&amp;custData=eyJzb3VyY2VOYW1lIjoiV2ViLURlc2t0b3AtVmVyaXpvbiIsInN0b3JlSWQiOiI2NmVhNTY3YS1jOTg3LTRjMmUtYTJmZi0wMjkwNGVmZGU2ZWEiLCJsYW5kaW5nVXJsIjoiaHR0cHM6Ly93d3cuYW1hem9uLmNvbS9Eb29tLUd1eS1MaWZlLUZpcnN0LVBlcnNvbi9kcC8xNDE5NzU4MTFYP3RhZz1nZGd0MGMtcC1vLTRrYi0yMCIsImNvbnRlbnRVdWlkIjoiNjAxMzE2YjEtZGFmZC00ZjQyLTg1ZWEtYTIxYWQ0OTJlOGE2In0&amp;signature=AQAAAd7l-5Q7oANANRW4jwlpM3hu9lZQYUCAvjyd-Hcd_usa&amp;gcReferrer=https%3A%2F%2Fwww.amazon.com%2FDoom-Guy-Life-First-Person%2Fdp%2F141975811X\" class=\"rapid-with-clickid\"><em>DOOM GUY: Life in First Person<\/em><\/a> by John Romero. Copyright \u00a9 2023 by John Romero. Published and reprinted by permission of Abrams Press, an imprint of ABRAMS. All rights reserved.<\/p>\n<p><span id=\"end-legacy-contents\" \/><\/p>\n<hr \/>\n<p>In early October, we were getting close to wrapping up the game, so progress quickened. On October 4, 1993, we issued the <em>DOOM <\/em>beta press release version, a build of the game we distributed externally to journalists and video game reviewers to allow them to try the game before its release. Concerned about security and leaks, we coded the beta to stop running on DOS systems after October 31, 1993. We still had useless pickups in the game, like the demonic daggers, demon chests, and other unholy items. I decided to get rid of those things because they made no sense to the core of the game and they rewarded the player with a score, which was a holdover from <em>Wolfenstein 3-D<\/em>. I removed the concept of having lives for the same reason. It was enough to have to start the level over after dying.<\/p>\n<p>There was still one missing piece from the game, and it was a substantial one. We hadn\u2019t done anything about the multiplayer aspect. In modern game development, multiplayer would be a feature factored in from day one, and architected accordingly, in an integrated fashion. Not with <em>DOOM<\/em>. It was November, and we were releasing in a month.<\/p>\n<p>I brought it up to Carmack. \u201cSo when are we going to make multiplayer mode?\u201d<\/p>\n<p>The short answer was that Carmack was ready to take it on. Looking from the outside in, I suspect some might wonder if I wasn\u2019t just more than a bit concerned since we were hoping to ship in 1993. After all, John had never programmed a multiplayer game before. The truth is that I never had a doubt, not for a second. Back in March, Carmack had already done some innovative network programming in DoomEd. He wanted to play around with the distributed objects system in NeXT-STEP, so he added the ability to allow multiple people who were running DoomEd to edit the same level. I could see him drawing lines and placing objects on my screen from his computer. Then, I\u2019d add to his room by making a hallway, and so on.<\/p>\n<p>For multiplayer, Carmack\u2019s plan was to explore peer-to-peer networking. It was the \u201cquick and dirty\u201d solution instead of a client-server model. Instead of one central computer controlling and monitoring all the action between two to four players, each computer would run the game and sync up with the others. Basically, the computers send each other updates at high speed over the local network. The speed of Carmack\u2019s network programming progress was remarkable. He had some excellent books on networking, and fortunately, those books were clearly written and explained the process of using IPX* well. In a few hours, he was communicating between two computers, getting the IPX protocol running so he could send information packets to each computer. I\u2019d worked with him for three years and was used to seeing incredible things on his screen, but this was awe inspiring, even for him. In a matter of hours, he got two PCs talking to each other through a command-line-based tool, which proved he could send information across the network. It was the foundation needed to make the game network-capable. It was great for two players, and good for four, so we capped it at that. We were still on track to deliver on our promise of the most revolutionary game in history before the end of the year.<\/p>\n<p>Carmack called me into his office to tell me he had it working. Both PCs in his office had the game open, and they were syncing up with two characters facing one another. On one PC, Carmack veered his character to the right. On the other monitor, that same character, appearing in third person, moved to the left. It was working!<\/p>\n<p>\u201cOh my God!\u201d I yelled, throwing in some other choice words to convey my amazement. \u201cThat is fucking incredible.\u201d<\/p>\n<p>When I\u2019d first truly visualized the multiplayer experience, I was building E1M7. I was playing the game and imagined seeing two other players firing rockets at each other. At the time, I thought, \u201cThis is going to be astonishing. There is nothing like this. This is going to be the most amazing game planet Earth has ever seen.\u201d Now, the moment had finally arrived.<\/p>\n<p>I rushed to my computer and opened the game, connecting to Carmack\u2019s computer.<\/p>\n<p>When his character appeared on screen, I blasted him out of existence, screaming with delight as I knocked \u201cJohn\u201d out of the game with a loud, booming, bloody rocket blast. It was beyond anything I had ever experienced before and even better than I imagined it could be.<\/p>\n<p>It was the future, and it was on my screen.<\/p>\n<p>\u201cThis is fucking awesome!\u201d I yelled. \u201cThis is the greatest thing ever!\u201d<\/p>\n<p>I wasn\u2019t kidding. This was the realization of everything we put into the design months earlier. I knew <em>DOOM <\/em>would be the most revolutionary game in history, but now, it was also <em>the most fun, all-consuming game in history<\/em>. Now that all the key elements of our original design were in place, it was obvious. <em>DOOM <\/em>blew away every other game I\u2019d ever played. From that moment on, if I wasn\u2019t playing <em>DOOM <\/em>or working on <em>DOOM<\/em>, I was thinking about <em>DOOM<\/em>.<\/p>\n<p>Kevin, Adrian, and Jay began running the game in multiplayer mode, too, competing to blow away monsters and each other. They were yelling just as much as I did, cheering every execution, groaning when they were killed and had to respawn. I watched them play. I saw the tension in their bodies as they navigated the dark, detailed world we\u2019d created. They were hunters and targets, engaged in a kill-or-be-killed battle, not just with monsters, but with other, real people. Players were competing in real time with other people in a battle to survive. I thought of boxing or an extreme wrestling match, where you go in a cage to fight. This was much more violent, more deadly. It was all simulated, of course, but in the moment, it felt immediate. It was a new gaming experience, and I searched for a way to describe it.<\/p>\n<p>\u201cThis is deathmatch,\u201d I said. The team latched onto the name. It instantly articulated the sinister, survival vibe at the heart of <em>DOOM<\/em>.<\/p>\n<p>In mid-November, we buckled down, getting in the \u201cclosing zone,\u201d where you begin finalizing all areas of the game one by one. Now that Carmack had multiplayer networking figured out, we needed to fine-tune the gameplay and functionality, delivering two multiplayer modes\u2014one in which players work together to kill monsters and demons, and the other where players try to kill each other (usually without monsters around). The first mode was called co-op, short for cooperative. The second, of course, was deathmatch.<\/p>\n<p>Another important word needed to be coined. Deathmatch was all about getting the highest kill count in a game to be judged the winner. What would we call each kill? Well, we could call it a kill, but that felt like a less creative solution to me. Why don\u2019t we have our own word? I went to the art room to discuss this with Kevin and Adrian.<\/p>\n<p>\u201cHey guys, for each kill in a deathmatch we need a word for it that is not \u2018kill,\u2019\u201d I said.<\/p>\n<p>Kevin said, \u201cWell, maybe we could use the word \u2018frag.\u2019&#8221;<\/p>\n<p>\u201cThat sounds like a cool word, but what does it mean?\u201d I asked.<\/p>\n<p>\u201cIn the Vietnam War,\u201d Kevin explained, \u201cif a sergeant told his fire team to do something horrifically dangerous, instead of agreeing to it, they would throw a fragmentation grenade at the sergeant and call it friendly fire. The explanation was \u2018Someone fragged the sarge!\u2019\u201d<\/p>\n<p>\u201cSo, in a deathmatch we\u2019re all fragging each other!\u201d I said.<\/p>\n<p>\u201cExactly.&#8221;<\/p>\n<p>And that is how \u201cfrag\u201d entered the <em>DOOM <\/em>lexicon.\u00a0<\/p>\n<p>The introduction of deathmatch and co-op play profoundly affected the possibility space of gameplay in the levels. Crafting an enjoyable level for single-player mode with lots of tricks and traps was complex enough, but with the addition of multiplayer we had to be aware of other players in the level at the same time, and we had to make sure the single-player-designed level was fun to play in these new modes. Our levels were doing triple duty, and we had little time to test every possible situation, so we needed some simple rules to ensure quality. Since multiplayer gameplay was coming in quickly near the end of development, I had to define all the gameplay rules for co-op and deathmatch. We then had to modify every game map so that all modes worked in all difficulty levels. These are the rules I came up with quickly to help guide level quality:<\/p>\n<ul>\n<li>\n<p>Multiplayer Rule 1: A player should not be able to get stuck in an area without the possibility of respawning.<\/p>\n<\/li>\n<li>\n<p>Multiplayer Rule 2: Multiple players (deathmatch or co-op mode) require more items; place extra health, ammo, and powerups.<\/p>\n<\/li>\n<li>\n<p>Multiplayer Rule 3: Try to evenly balance weapon locations in deathmatch.<\/p>\n<\/li>\n<li>\n<p>Multiplayer Rule 4: In deathmatch mode, try to place all the weapons in the level regardless of which level you\u2019re in.<\/p>\n<\/li>\n<\/ul>\n<p>Additionally, we had to make all the final elements for the game: the intermissions and various menus had to be designed, drawn, and coded; the installation files needed to be created, along with the text instruction files, too. We also had to write code to allow gamers to play these multiplayer modes over their modems, since that was the hardware many people had in 1993. Compared to our previous games, the development pace on <em>DOOM <\/em>had been relatively relaxed, but in November our to-do list was crowded. Fortunately, everything fell into place. The last job for everyone was to stress-test <em>DOOM<\/em>.<\/p>\n<p>Preparing for release, we knew we needed someone to handle our customer support, so earlier in the year, we\u2019d hired Shawn Green, who quit his job at Apogee to join us. Throughout development, at every new twist and turn, we kept Shawn up to date. He had to know the game inside out to assist gamers should any issues arise. Shawn also helped us by testing the game as it went through production.<\/p>\n<p>I noted earlier that id Software never had a Quality Assurance team to test our releases. For three years, John, Tom, and I doubled as the id QA team. We played our games on our PCs, pounding multiple keys, literally banging on keyboards to see if our assaults could affect the game. On the verge of release, and with more people than ever before in the office, we spent thirty hours playing <em>DOOM <\/em>in every way we could think of\u2014switching modes, hitting commands\u2014running the game on every level in every game mode we had, using every option we added to the game to see if there were any glitches.<\/p>\n<p>Things were looking good. We decided to run one last \u201cburn-in\u201d test, a classic test for games where the developers turn the game on and let it run overnight. We ran <em>DOOM <\/em>on every machine in the office. The plan was to let it run for hours to see if anything bad happened. After about two hours of being idle, the game froze on a couple screens. The computers seemed to be okay\u2014if you hit \u201cescape\u201d the menu came up\u2014but the game stopped running.<\/p>\n<p>We hadn\u2019t seen a bug like this during development, but Carmack was on the case. He was thinking and not saying a word, evidently poring over the invisible engine map in his head. Ten minutes passed before he figured it out. He concluded that we were using the timing chip in the PC to track the refresh of the screen and process sound, but we weren\u2019t clearing the timing chip counter when the game started, which was causing the glitch. Ironically, this logic had been part of the engine from day one, so it was surprising we hadn\u2019t noticed it before.<\/p>\n<p>He sat down at his computer, fixed the bug, and made a new build of the game. We put the update on all the machines and held our breath for the next two hours.<\/p>\n<p>Problem solved.<\/p>\n<p>That was the last hurdle. We were ready to launch. That day, December 10, would be DOOM Day.<\/p>\n<p>***<\/p>\n<p><strong>* <\/strong>IPX is an acronym for Internetwork Packet Exchange. In sum, it is a way in which computers can talk to one another.<\/p>\n<p>This article originally appeared on Engadget at https:\/\/www.engadget.com\/hitting-the-books-doom-guy-john-romero-abrams-press-143005383.html?src=rss&#013;<br \/>\n&#013;<br \/>\nSource: Engadget &#8211; <a href=\"https:\/\/www.engadget.com\/hitting-the-books-doom-guy-john-romero-abrams-press-143005383.html?src=rss\" target=\"_blank\" rel=\"noopener\">Hitting the Books: The programming trick that gave us DOOM multiplayer<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Since its release in 1993, id Software&#8217;s DOOM franchise has become one of modern gaming&#8217;s most easily recognizable IPs. The series has sold more than 10 million copies to date and spawned myriad RPG spinoffs, film adaptations and even a &hellip; <a href=\"https:\/\/www.prime-wow.com\/?p=1178451\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"ngg_post_thumbnail":0,"footnotes":""},"categories":[99,110],"tags":[98],"class_list":["post-1178451","post","type-post","status-publish","format-standard","hentry","category-engadget","category-unfiltered-rss","tag-engadget"],"_links":{"self":[{"href":"https:\/\/www.prime-wow.com\/index.php?rest_route=\/wp\/v2\/posts\/1178451","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.prime-wow.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.prime-wow.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.prime-wow.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.prime-wow.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1178451"}],"version-history":[{"count":0,"href":"https:\/\/www.prime-wow.com\/index.php?rest_route=\/wp\/v2\/posts\/1178451\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.prime-wow.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1178451"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.prime-wow.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1178451"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.prime-wow.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1178451"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}