YouSaid · the spoken record

John Carmack

lines on the record
363
first
2022-08-04
most recent
2022-08-04
sittings or episodes
1
sources
podcast

Every line below is reproduced as it was said and linked to the record it came from. Nothing here is summarised or generated. Directory · Search · Corrections

  1. Very small amount of assembly code. So, in some ways, they should be a slower way of doing it, but by making it a smaller amount of work that I could more tightly optimize, it worked out. And Wolfenstein 3D was just absolutely rock solid. It was nothing glitched in there. The game just was pretty much flawless through all of that. And I was super proud of that. But eventually, like in the later games, I went back to the more span-based things where I could get more total efficiency once I really did figure out how to do it. So there were two sort of key technical things to Wolfenstein. One was this recasting approach, which you still to this day, you see people go and say, let's write a raycasting engine because it's an understandable way of doing things that lets you make games very much like that. So you see raycasters in JavaScript, raycasters in Python, people that are basically going and re-implementing that approach to.

    2022-08-04 · Lex Fridman Podcast · #309 – John Carmack: Doom, Quake, VR, AGI, Programming, Video Games, and Rockets · IDENTIFIED FROM THE TRANSCRIPT · source

  2. So in the walls were solid color, one of 16 colors in Hovertank. So that's easy. It's fast. You just draw the solid color for everything. Texture mapping is what we all see today where you have an image that is stretched and distorted onto the walls or the surfaces that you're working with. And it was a long time for me to just figure out how to do that without it distorting in the wrong ways. And I did not get it all exactly right in catacombs. And I had these flaws. So that was important enough to me that rather than continuing to bang my head on that when I wasn't positive I was going to get it, I went with a completely different approach for drawing for figuring out where the walls were, which was array casting approach, which I had done in catacombs 3D, I had a bunch of C code trying to make this work right and it wasn't working right. In Wolfenstein, I wound up going to a

    2022-08-04 · Lex Fridman Podcast · #309 – John Carmack: Doom, Quake, VR, AGI, Programming, Video Games, and Rockets · IDENTIFIED FROM THE TRANSCRIPT · source

  3. Hovertank had been a little bit before that, but that had the flat shaded walls. So the texture mapping on the walls was what was bringing in some of these challenges that was hard for me. And I couldn't solve it right at the time.

    2022-08-04 · Lex Fridman Podcast · #309 – John Carmack: Doom, Quake, VR, AGI, Programming, Video Games, and Rockets · IDENTIFIED FROM THE TRANSCRIPT · source

  4. So one of the things that I did very differently in Wolfenstein was I went, catacombs used Almost a conventional thing where you had segments that were one-dimensional polygons basically that were clipped and backfaced and done kind of like a very crude 3D engine from the professionals. But I wasn't getting it done right. I was not doing a good enough job. I didn't really have line of sight to fix it right. There's stuff that, of course, I look back. It's like, oh, it's obvious how to do this and do the math right, do your clipping right, check all of this, how you handle the precision. But I did not know how to do that at that time.

    2022-08-04 · Lex Fridman Podcast · #309 – John Carmack: Doom, Quake, VR, AGI, Programming, Video Games, and Rockets · IDENTIFIED FROM THE TRANSCRIPT · source

  5. So, one of the interesting things that come back to the theme of deadlines and resource constraints, the game catacombs 3D, we shipped, we were supposed to be shipping this for Gamer's Edge on a monthly cadence, and I had slipped. I was actually late. It slipped like six weeks because this was texture-mapped walls doing stuff that I hadn't done before. At the six-week point, it was still kind of glitchy and buggy. There were things that I knew that if you had a wall that was like almost edge on, you could slide over to it and you could see some things freak out or vanish or not work. And I hated that, but I was up against the wall. We had to ship the game. It was still a lot of fun to play. It was novel nobody had seen it. It gave you that startle reflex reaction. So it was worth shipping, but it had these things that I knew were kind of flaky and janky and not what I was really proud of.

    2022-08-04 · Lex Fridman Podcast · #309 – John Carmack: Doom, Quake, VR, AGI, Programming, Video Games, and Rockets · IDENTIFIED FROM THE TRANSCRIPT · source

  6. So much that that built into us that Wolfenstein still had lives and you had like one of the biggest power-ups in all these games like was an extra life because you started off with three lives and you lose your lives and then it's game over and there weren't save games in most of this stuff. It sounds almost crazy to say this, but it was an innovation in Doom to not have lives. You could just play Doom as long as you wanted. You just restart at the start of the level. And why not? This is like we aren't trying to take people's quarters. They've already paid for the entire game. We want them to have a good time. And you would have some old timer purists that might think that there's something to the epic journey of making it to the end, having to restart all the way from the beginning after a certain number of tries. But no, more fun is had when you just let people kind of keep trying when they're stuck rather than having to go all the way back and learn different things.

    2022-08-04 · Lex Fridman Podcast · #309 – John Carmack: Doom, Quake, VR, AGI, Programming, Video Games, and Rockets · IDENTIFIED FROM THE TRANSCRIPT · source

  7. Reality and they were taking their cues from the big systems, the Evans and Sutherlands and the silicon graphics that were doing things. But we were taking our cues from the console and arcade games. We wanted things that were sort of quarter eaters that were doing fast-paced things that you could smack you around rather than just smoothly gliding you from place to place. And you know, the funny thing is

    2022-08-04 · Lex Fridman Podcast · #309 – John Carmack: Doom, Quake, VR, AGI, Programming, Video Games, and Rockets · IDENTIFIED FROM THE TRANSCRIPT · source

  8. So not that exact thing. So again, we had cases like the arcade games, Battle Zone and Star Wars that you could kind of see a 3D world and things coming at you. And you get some sense of it, but nothing had done the kind of worlds that we were doing and the sort of action-based things. 3D at the time was really largely about the simulation thoughts. And this is something that really might have trended differently, if not for the id software approach in the games where there were flight simulators, there were driving simulators, you had like hard driving and Microsoft flight simulator. And these were doing 3D and general purpose 3D and ways that were more flexible than what we were doing with our games, but they were looked at as simulations. They weren't trying to necessarily be fast or responsive or letting you do kind of exciting maneuvers because they were trying to simulate.

    2022-08-04 · Lex Fridman Podcast · #309 – John Carmack: Doom, Quake, VR, AGI, Programming, Video Games, and Rockets · IDENTIFIED FROM THE TRANSCRIPT · source

  9. His chair was just like, ah, and games just didn't do that. You know, the games were the God's eye view. You were a little invested in your little guy. You can be like, you know, happy or sad when things happen, but you just did not get that kind of startle reaction. You weren't inside your face, something in the back of your brain, some reptile brain thing is just going, oh shit, something just happened. And that was one of those early points where it's like, yeah, this is going to make a difference. This is going to be powerful and it's going to matter.

    2022-08-04 · Lex Fridman Podcast · #309 – John Carmack: Doom, Quake, VR, AGI, Programming, Video Games, and Rockets · IDENTIFIED FROM THE TRANSCRIPT · source

  10. Where the rest of the game changed very little. It was our normal kind of change the colors on something and draw a different picture for it, but it's kind of the same thing. But the perspective changed in a really fundamental way. And it was dramatically different. I can remember the reactions where the artist, Adrian, that had been drawing the pictures for. We had a cool big troll thing in Catacombs 3D, and we had these walls that you could get a key and you could make the blocks disappear. Really simple stuff. Blocks could either be there or not there. So our idea of a door was being able to make a set of blocks just disappear. And I remember the reaction where he had drawn these characters and he was slowly moving around and like people had no experience with 3D navigation. It was all still keyboard. We didn't even have mice set up at that time. But slowly moving, going up, picked up a key, go to a wall. The wall disappears in a little animation and there's a monster like right there. And he practically fell out of it.

    2022-08-04 · Lex Fridman Podcast · #309 – John Carmack: Doom, Quake, VR, AGI, Programming, Video Games, and Rockets · IDENTIFIED FROM THE TRANSCRIPT · source

  11. So, from the game was a 2D map. Like all of our games use the same tool for creation. We use the same map editor for creating Keene as Wolfenstein and Hevertank and Catacombs and all this stuff. So the game was a 2D grid made out of blocks. And you could say, well, these are walls, these are where the enemies start. Then they start moving around. And these early games like Catacombs, you played it strictly in a 2D view. It was a scrolling 2D view, and that was kind of using an adaptive tile refresh at the time to be able to do something like that. And then the thought that these early games, all it did was take the same basic enemy logic, but instead of seeing it from the God's eye view on top, you were inside it and turning from side to side, yawing your view and moving forwards and backwards and side to side. And it's a striking thing where you always talk about wanting to isolate and factor changes in values. And this was one of those most pure cases there.

    2022-08-04 · Lex Fridman Podcast · #309 – John Carmack: Doom, Quake, VR, AGI, Programming, Video Games, and Rockets · IDENTIFIED FROM THE TRANSCRIPT · source

  12. Pick up items, basic game stuff. And the thought was that this exact same game experience just presented in a different perspective. It could be literally the same game just with a different view into it would have a dramatically different impact on the players.

    2022-08-04 · Lex Fridman Podcast · #309 – John Carmack: Doom, Quake, VR, AGI, Programming, Video Games, and Rockets · IDENTIFIED FROM THE TRANSCRIPT · source

  13. So I usually can introspectively pull back pretty detailed accounts of how technology solutions and design choices on my part came to be, where technically we had done two games, 3D games like that before, where Hover Tank was the first one which had flat shaded walls but did have the scaled enemies inside it. And then Catacombs 3D, which had textured walls, scaled enemies, and some more functionality like the disappearing walls and some other stuff. But what's really interesting from a game development standpoint is those games, Catacombs 3D, Hover Tank, and Wolfenstein, they literally used the same code for a lot of the character behavior that a 2D game that I had made earlier called Catacombs did, where it was an overhead view game kind of like Gauntlet. You're running around and you can open up doors.

    2022-08-04 · Lex Fridman Podcast · #309 – John Carmack: Doom, Quake, VR, AGI, Programming, Video Games, and Rockets · IDENTIFIED FROM THE TRANSCRIPT · source

  14. And I generally think that's true. And you've got, you know, like there's some things there is a graphics technique that got labeled Carmax reverse. I am, you know, literally named. And it turned out that I wasn't the first person to figure that out. Like most scientific things are mathematical things you wind up. It's like, oh, this other person had actually done that somewhat before. And then there's things that get attributed to me, like the inverse square root hack that I actually didn't do. I flat out that wasn't me. And it's like. It's weird how the memetic power of the internet I cannot convince people to that point of programming.

    2022-08-04 · Lex Fridman Podcast · #309 – John Carmack: Doom, Quake, VR, AGI, Programming, Video Games, and Rockets · IDENTIFIED FROM THE TRANSCRIPT · source

  15. Know, and I'm happy to say it's like, no, I mean, I saw Battle Zone in Star Wars in the arcades. I had seen 3D graphics. I had seen all these things. I'm standing on the shoulders of lots of other people. But sometimes these examples they pull out. It's like, no, I didn't know that existed. I mean, I had never heard of that before then. That didn't contribute to what I made, but there's plenty of stuff that did. I think there's good cases to be made that obviously doom and quake and Wolfenstein were formative examples for what everything that came after that, but I don't feel the need to go fight and say claim primacy or initial invention.

    2022-08-04 · Lex Fridman Podcast · #309 – John Carmack: Doom, Quake, VR, AGI, Programming, Video Games, and Rockets · IDENTIFIED FROM THE TRANSCRIPT · source

  16. And that's one of the things that I do bump into a lot because I try not to go. I mean, it's easy for me to say because so much credit is heaped on me for the id software side of things. But when people come up and they want to pick a fight and say, no, it's like that wasn't where first person gaming came from. And you can point to, you know, you can point to some of like things on obscure titles that I was never aware of or like the old Plato systems or each personal computer had something that was 3D-ish and moving around. And I'm.

    2022-08-04 · Lex Fridman Podcast · #309 – John Carmack: Doom, Quake, VR, AGI, Programming, Video Games, and Rockets · IDENTIFIED FROM THE TRANSCRIPT · source

  17. Where the artists understand something about credit and wanting it to be known as their work and a lot of the game programmers felt a little bit more like artists than like hacker programmers in that it was about building something that maybe felt more like art to them than the more tool-based and exploration-based kind of hacking culture side of things.

    2022-08-04 · Lex Fridman Podcast · #309 – John Carmack: Doom, Quake, VR, AGI, Programming, Video Games, and Rockets · IDENTIFIED FROM THE TRANSCRIPT · source

  18. But the really hard pitch was to actually release the full source code for the games. And it was a balancing act with the other people inside the company where it's interesting how the programmers generally did get, certainly the people that I worked closely with, they did kind of get that hacker ethic bit where you wanted to share your code. You were proud of it. You wanted other people to take it, do cool things with it. Interestingly, the broader game industry is a little more hesitant to embrace that than like the group of people that we happen to have at id Software where it was always a little interesting to me seeing how a lot of people in the game modding community were very possessive of their code. They did not want to share their code. They wanted it to be theirs. It was their claim to fame. And that was much more like what we tended to see with artists.

    2022-08-04 · Lex Fridman Podcast · #309 – John Carmack: Doom, Quake, VR, AGI, Programming, Video Games, and Rockets · IDENTIFIED FROM THE TRANSCRIPT · source

  19. internally that we should actually release our own tools for like what we did, what we used to create the games. And that was a little bit debatable about, well, will this let other, we'll give people a leg up. It's always like, what's that going to mean for the competition?

    2022-08-04 · Lex Fridman Podcast · #309 – John Carmack: Doom, Quake, VR, AGI, Programming, Video Games, and Rockets · IDENTIFIED FROM THE TRANSCRIPT · source

  20. Release the source code for most of our really seminal game titles. And that was a stepping stone process where we were kind of surprised early on where people were able to hack the existing games. And of course, I had experience with that. I remember hacking my copies of Ultima. So I give myself 999 gold and raise my levels and break out the sector editor. And so I was familiar with all of that. So it was just with a smile when I started to see people doing that to our games. I am making level editors for Commander Keen or hacking up Wolfenstein 3D. But I made the pitch.

    2022-08-04 · Lex Fridman Podcast · #309 – John Carmack: Doom, Quake, VR, AGI, Programming, Video Games, and Rockets · IDENTIFIED FROM THE TRANSCRIPT · source

  21. The early MIT hacker days talking a lot about this sense of the hacker ethic that there was this sense that it was about sharing information being good, not keeping it to yourself, and that it's not a zero-sum game, that you can share something with another programmer and it doesn't take it away from you. You then have somebody else doing something. And I also think that there's an aspect of it where it's this ability to take joy in other people's accomplishments, where it's not the cutthroat bit of like, I have to be first. I have to be recognized as the one that did this in some way. But being able to see somebody else do something and say, holy shit, that's amazing, you know, and just taking joy in the ability of something amazing that somebody else does. And the big thing that I was able to do through id software was this ability to eventually

    2022-08-04 · Lex Fridman Podcast · #309 – John Carmack: Doom, Quake, VR, AGI, Programming, Video Games, and Rockets · IDENTIFIED FROM THE TRANSCRIPT · source

  22. So, Stephen Levy's book Hackers was a really formative book for me as a teenager. I mean, I read it several times, and there was all of the great lore of the early MIT era of hackers and ending up at the end with, it kind of went through the early MIT hackers and then the Silicon Valley hardware hackers. And then the game hackers in part three. And at that time as a teenager, I really was kind of bitter in some ways like I thought I was born too late. I thought I missed the window there and I really thought I belonged in that third section of that book with the game hackers and they were talking about, you know, the Williams at Sierra and Origin Systems with Richard Garriott. And it's like, I really wanted to be there. And I knew that was now a few years in the past. It was not to be. But the early days, especially the

    2022-08-04 · Lex Fridman Podcast · #309 – John Carmack: Doom, Quake, VR, AGI, Programming, Video Games, and Rockets · IDENTIFIED FROM THE TRANSCRIPT · source

  23. And so we would default to, and I think that was one of those that changed over the kind of course of deployment where early on we would have a normal mode and then you would have you would enable the compatibility flag if your screen did this crazy flickery thing when you got to a certain point in the game. And then later, I think it probably got enabled by default as just more and more of the cards. It kind of did not do exactly the right thing. And that's the two-edged sword of doing unconventional things with technology where you can find something that nobody thought about doing that kind of scrolling trick when they set up those cards. But the fact that nobody thought that was the primary reason when I was relying on that, then I wound up being broken on some of the later cards.

    2022-08-04 · Lex Fridman Podcast · #309 – John Carmack: Doom, Quake, VR, AGI, Programming, Video Games, and Rockets · IDENTIFIED FROM THE TRANSCRIPT · source

  24. Exists there rather than wrapping back around at the top. And then I was in the tough position of do I have to track every single one of these? And it was a madhouse. Those cards. It was a compatibility mode. In the normal ones, when it all worked fine, everything was just beautifully smooth. But if you had one of those cards where it did not wrap the way I wanted it to, you'd be scrolling around, scrolling around, and then eventually you'd have a little hitch where 200 milliseconds or something that was not super smooth as it froze a little bit.

    2022-08-04 · Lex Fridman Podcast · #309 – John Carmack: Doom, Quake, VR, AGI, Programming, Video Games, and Rockets · IDENTIFIED FROM THE TRANSCRIPT · source

  25. And it turns out it doesn't matter. I would have two page flipped screens as long as they didn't overlap. They moved in series through this two-dimensional window of graphics. And that was one of those like, well, this is so simple. This just works. It's faster. There it seemed like there was no downside. Funny thing was it turned out after we shipped titles with this, there were what they called super VGA cards, the cards that would allow higher resolutions and different features that the standard ones didn't. And on some of those cards, this was a weird compatibility quirk, again, because nobody thought this was not what it was designed to do. And some of those cards had more memory. They had more than just 256K in four planes. They had 512K or a megabyte. And on some of those cards, I scroll my window down, and then it goes into uninitialized memory that actually

    2022-08-04 · Lex Fridman Podcast · #309 – John Carmack: Doom, Quake, VR, AGI, Programming, Video Games, and Rockets · IDENTIFIED FROM THE TRANSCRIPT · source

  26. You expose it might be unaligned off various parts of the screen memory, but it just works. That no longer had the problem of you had to have fields of the similar colors because it doesn't matter what you're doing. You could be having a completely unique world and you're just drawing the new strip as it comes on.

    2022-08-04 · Lex Fridman Podcast · #309 – John Carmack: Doom, Quake, VR, AGI, Programming, Video Games, and Rockets · IDENTIFIED FROM THE TRANSCRIPT · source

  27. They're not super dense, hard to understand technologies. And so the second scrolling trick was just a matter of like, okay, we know we've got this 64K window. And the question was always like, well, you could make a 2x2, but you can't go off the edge. But I finally asked, well, what actually happens if you just go off the edge, if you take your start and you say it's like, okay, I can move over, I'm scrolling, I can move over, I can move down, I'm scrolling, I get to what should be the bottom of the memory window. It's like, well, what if I just keep going and I say I'm going to start at what happens if I start at FFFE at the very end of the 64K block? And it turns out it just wraps back around to the top of the block. And I'm like, oh, well, this makes everything easy. You can just scroll the screen everywhere and all you have to draw is just one new line of tiles, which everything.

    2022-08-04 · Lex Fridman Podcast · #309 – John Carmack: Doom, Quake, VR, AGI, Programming, Video Games, and Rockets · IDENTIFIED FROM THE TRANSCRIPT · source

  28. Had consequences for us. But in three months, we got our first game out. And all of a sudden it was three times as successful as the most successful thing Apogee had had before. And we were making like $30,000 a month immediately from the Commander Keane stuff. And that was, again, a surprise to us. It was more than we thought that was going to make. And we said, well, we're going to certainly roll into another set of titles from this. And in that three months, I had come up with a much better way of doing the scrolling technology that was not the adaptive tile refresh, which in some ways was even simpler. And these things, so many of the great ideas of technology are things that are back of the envelope designs. I make this comment about modern machine learning, where all the things that are really important practically in the last decade are each of them fits on the back of an envelope. There are these simple little things.

    2022-08-04 · Lex Fridman Podcast · #309 – John Carmack: Doom, Quake, VR, AGI, Programming, Video Games, and Rockets · IDENTIFIED FROM THE TRANSCRIPT · source

  29. He came up with all the design and backstory for the different things of kind of a mad scientist little kid with building a rocket ship and a zap gun and visiting alien worlds and doing all of this that the background that we lay the game inside of. And there's not a whole lot to any of these things. A design for us was always just what we needed to do to make the game that was going to be so much fun to play. And we made our, we laid out our first trilogy of games, you know, the shareware formula. It's going to be three pieces. We make Manerkeen one, two, and three. And we just really started busting on all that work. And it went together really quickly. It was like three months or something that while we were still making games every month for Gamer's Edge, we were sharing technology between that. I'd write a bunch of code for this and we just kind of use it for both. Again, not a particularly good idea there.

    2022-08-04 · Lex Fridman Podcast · #309 – John Carmack: Doom, Quake, VR, AGI, Programming, Video Games, and Rockets · IDENTIFIED FROM THE TRANSCRIPT · source

  30. So, the design process, we would start from we had some idea of what we wanted to do. We wanted to do a Mario-like game. It was going to be a side scroller. It was going to use the technology. We had some sense of what it would have to look like because of the limitations of this adaptive tile refresh technology. It had to have fields of relatively constant tiles. You couldn't just paint up a background and then move that around. The early design or all the design for Commander Keane really came from Tom Hall where he was kind of the main creative mind for the early id software stuff where we had an interesting division of things where Tom was all creative in design. I was all programming. John Romero was an interesting bridge where he was both a very good programmer and also a very good designer and artist and kind of straddled between the areas. But Commander Keene was very much Tom Hall's baby.

    2022-08-04 · Lex Fridman Podcast · #309 – John Carmack: Doom, Quake, VR, AGI, Programming, Video Games, and Rockets · IDENTIFIED FROM THE TRANSCRIPT · source

  31. No, I definitely wasn't. None of us were. And in hindsight, yeah, it's like, how did we think we were going to get away with like even using our work computers to write software for our breakaway new company? It was not a good plan.

    2022-08-04 · Lex Fridman Podcast · #309 – John Carmack: Doom, Quake, VR, AGI, Programming, Video Games, and Rockets · IDENTIFIED FROM THE TRANSCRIPT · source

  32. So we were in this position where Scott Miller was just fronting us cash and saying, yeah, make a game. But we did not properly pull the trigger and say, all right, we're going to, we're quitting our jobs. We were like, we're going to do both. We're going to keep working at Softisk working on this. And then we're going to go ahead and make a new game for Apogee at the same time. And this eventually did lead to some legal problems. And we had trouble. It all got worked out in the end, but it was not a good call at the time there.

    2022-08-04 · Lex Fridman Podcast · #309 – John Carmack: Doom, Quake, VR, AGI, Programming, Video Games, and Rockets · IDENTIFIED FROM THE TRANSCRIPT · source

  33. And the 20x people that played it. Yeah, I felt very good about that. And I would run into people. It's like that would say, oh, I loved that game that you had early on, Commander Keene, whatever. And no, they meant just the first episode that they got to see everywhere. That's me.

    2022-08-04 · Lex Fridman Podcast · #309 – John Carmack: Doom, Quake, VR, AGI, Programming, Video Games, and Rockets · IDENTIFIED FROM THE TRANSCRIPT · source

  34. Things and people, it was good business. People enjoyed it and it wasn't like you were taking a crapshoot on what you were getting. You just played a third of the experience and you loved it enough to hand write out a check and put it in an envelope and address it and send it out to Apogee to get the rest of them. So it was a really pretty feel-good business prospect there because everybody was happy. They knew what they were getting when they sent it in and they would send in fan mail. If you're going to the trouble of addressing a letter and I am filling out an envelope, you write something in it. And there were just the literal bags of fanmail for the share where I am.

    2022-08-04 · Lex Fridman Podcast · #309 – John Carmack: Doom, Quake, VR, AGI, Programming, Video Games, and Rockets · IDENTIFIED FROM THE TRANSCRIPT · source

  35. Apogee innovation was to take something, call it shareware, split it into three pieces. You always made a trilogy and you would put the first piece out, but then you buy the whole trilogy for some shareware amount, which in reality it meant that the first part was a demo where you kind of like the demo went everywhere for free and you paid money to get the whole set. But it was still play to shareware and we were happy to have the first one go everywhere. And it wasn't a crippled demo where the first episode of all these trilogies, it was a real complete game and probably 20 times as many people played that part of it, thought they had a great game, had fond memories of it, but never paid us a dime. But enough people were happy with that where it was really quite successful. These early games that we didn't think very much of compared to commercial quality games, but they were doing really good business. Some fairly crude

    2022-08-04 · Lex Fridman Podcast · #309 – John Carmack: Doom, Quake, VR, AGI, Programming, Video Games, and Rockets · IDENTIFIED FROM THE TRANSCRIPT · source

  36. Wil Yeah. So at the same time that we were just doing our first scrolling demos, we reached out to Scott Miller at Apogee and said, it's like, hey, we do want to make some games. You know, these things that you think you want, those are nothing. What do you see? What we can actually do now? This is going to be amazing. And he just popped right up and sent a check to us where we, at that point, we still thought he might be a fraud that he was just lying about all of this, but he was totally correct on how much money he was making with his shareware titles. And this was his kind of real brainstorm about this, where shareware was this idea that software doesn't have a fixed price. If you use it, you send out of the goodness of your heart some money to the creator. And there were a couple utilities that did make some significant success like that. But for the most part, it didn't really work. There wasn't much software in a pure shareware model that was successful.

    2022-08-04 · Lex Fridman Podcast · #309 – John Carmack: Doom, Quake, VR, AGI, Programming, Video Games, and Rockets · IDENTIFIED FROM THE TRANSCRIPT · source

  37. Dead in Japan, and they just weren't interested in that. But that's another one of those life could have gone a very different way where we could have been like Nintendo's house PC team at that point.

    2022-08-04 · Lex Fridman Podcast · #309 – John Carmack: Doom, Quake, VR, AGI, Programming, Video Games, and Rockets · IDENTIFIED FROM THE TRANSCRIPT · source

  38. I am, you know, for them as it ran. And Tom and I just kind of blearily the next morning kind of left and we left a disc on the desk for John Romero and Jay Wilbur to see and just said run this. And we eventually made it back in later in the day. And it was like they grabbed us and pulled us into the room. And that was the point where they were like, we got to do something with this. We're going to make a company. We're going to go make our own games where this was something that we were able to just kind of hit them with a hammer of an experience like, wow, this is just like so much cooler than what we thought was possible there. And initially, we tried to get Nintendo to let us make Super Mario 3 on the PC. That's really what we wanted to do. We were like, hey, we can finish this. It's line of sight for this will be great. And we sent something to Nintendo and we heard that it did get looked.

    2022-08-04 · Lex Fridman Podcast · #309 – John Carmack: Doom, Quake, VR, AGI, Programming, Video Games, and Rockets · IDENTIFIED FROM THE TRANSCRIPT · source

  39. Yeah, and so it and we had our little character running and jumping in there. It was, you know, it wasn't, it was close to pixel accurate as far as all the backgrounds and everything, but the gaming was just stuff that we cobbled together from previous games that I had written. I just kind of like really kitbashed the whole thing together to make this demo. And that was one of the rare cases when I said I don't usually do these all night programming things. There's probably only two memorable ones that I can think about. You know, one was the all-nighter to go ahead and get our dangerous Dave and copyright infringement is how we titled it because we had a game called Dangerous Dave. We're running around with the shotgun shooting things. And we were just taking our most beloved game at the time there, the Super Mario 3, and sort of sticking Dave inside that with this new scrolling technology that was going perfectly smooth for.

    2022-08-04 · Lex Fridman Podcast · #309 – John Carmack: Doom, Quake, VR, AGI, Programming, Video Games, and Rockets · IDENTIFIED FROM THE TRANSCRIPT · source

  40. And the first thing that we wound up doing with that was I had just gotten this working and Tom Hall was sitting there with me and we were looking over at our Super Nintendo on the side there with Super Mario 3 running and we had the technology, we had the tools set up there and we stayed up all night and we basically cloned the first level of Super Mario Bros.

    2022-08-04 · Lex Fridman Podcast · #309 – John Carmack: Doom, Quake, VR, AGI, Programming, Video Games, and Rockets · IDENTIFIED FROM THE TRANSCRIPT · source

  41. For us to do a bunch of these games for Gamer's Edge. We had a lot of these scrolling games like Slordax and Shadow Knights and things like that that we were cranking out at this high rate that had this scrolling effect on it. And it worked well enough. There were design challenges there where if you made the worst case, if you made a checkerboard over the entire screen, you scroll over one and every single tile changes and your frame rate's now five frames per second because it had to redraw everything. So the designers had a little bit that they had to worry about. They had to make these relatively plain looking levels. But it was still pretty magical. It was something that we hadn't seen before.

    2022-08-04 · Lex Fridman Podcast · #309 – John Carmack: Doom, Quake, VR, AGI, Programming, Video Games, and Rockets · IDENTIFIED FROM THE TRANSCRIPT · source

  42. First way we did scrolling was what I called adaptive tile refresh, which was really just a matter of you get to the edge and then you go back to the original point and then only change the tiles that have actually that are different between where it was. In most of the games at the time, if you think about sort of your classic Super Mario Bros. game, you've got big fields of blue sky, long rows of the same brick texture. And there's a lot of commonality. It's kind of like a data compression thing. If you take the screen and you set it down on top of each other, in general, only about 10% of the tiles were actually different there. So this was a way to go ahead and say, well, I'm going to move it back and then I'm only going to change those 10, 20, whatever percent tiles there. And that meant that it was essentially five times faster than if you were redrawing all of the tiles. And that worked well enough.

    2022-08-04 · Lex Fridman Podcast · #309 – John Carmack: Doom, Quake, VR, AGI, Programming, Video Games, and Rockets · IDENTIFIED FROM THE TRANSCRIPT · source

  43. And things later. But so the scrolling, the first set of scrolling tricks that I got was there was, the hardware had this ability to, you could shift inside the window of memory. So the EGA cards at the time had 256 kilobytes of memory. And it was awkwardly set up in this planar format where instead of having 256 or 24 million colors, you had 16 colors, which is four bits. So you had four bit planes, 64K apiece, of course, 64Ks.

    2022-08-04 · Lex Fridman Podcast · #309 – John Carmack: Doom, Quake, VR, AGI, Programming, Video Games, and Rockets · IDENTIFIED FROM THE TRANSCRIPT · source

  44. And we knew what we wanted to do because we were playing all of these console games, playing all these Nintendo games and arcade games. Clearly, there was a whole world of awesome things there that we just couldn't do on the PC, at least initially, because every programmer can tell it's like, if you want to scroll, you can just redraw the whole screen. But then it turns out, well, you're going five frames per second. That's not an interactive, fun experience. You want to be going 30 or 60 frames per second or something. And it just didn't feel like that was possible. It felt like the PCs had to get five times faster for you to make a playable game there. And interestingly, I wound up with two completely different solutions for the scrolling problem. And this is a theme that runs through everything where all of these big technical advancements, it turns out there's always a couple different ways of doing them. And it's not like you found the one true way of doing it. And we'll see this as we go into 3D games.

    2022-08-04 · Lex Fridman Podcast · #309 – John Carmack: Doom, Quake, VR, AGI, Programming, Video Games, and Rockets · IDENTIFIED FROM THE TRANSCRIPT · source

  45. Yeah, it's scrolling into genius invention hydro vertical. And some of the consoles had different limitations about you could do one but not the other. And there were similar things going on as advancements even in the console space where you'd have like the original Mario game was like just horizontal scrolling and then later Mario games added vertical aspects to it and different things that you were doing to explore kind of expand the capabilities there. And so much of the early game design for decades was removing limitations, letting you do things that you envisioned as a designer you wanted the player to experience, but the hardware just couldn't really or you didn't know how to. Make it happen. It felt impossible

    2022-08-04 · Lex Fridman Podcast · #309 – John Carmack: Doom, Quake, VR, AGI, Programming, Video Games, and Rockets · IDENTIFIED FROM THE TRANSCRIPT · source

  46. And you interact like that. Maybe you go to additional screens as you move, but arcade games and consoles had this wonderful ability to just have a big world that you're slowly moving your window through. And that was for those types of games, the kind of action, exploration, adventure games, that was a super, super important thing. And PC games just didn't do that. And what I had come across was a couple different techniques for implementing that on the PC. And they're not hard complicated things. When I explain them now, they're pretty straightforward, but just nobody was doing.

    2022-08-04 · Lex Fridman Podcast · #309 – John Carmack: Doom, Quake, VR, AGI, Programming, Video Games, and Rockets · IDENTIFIED FROM THE TRANSCRIPT · source

  47. We were sitting in our darkened office playing all the different console video games and we were figuring out what do we want to kind of what games do we want to make for our gamers edge product there? And so we had one of the first super Nintendo's sitting there and we had an older Nintendo and we were looking at all those games. And the core thing that those consoles did that you just didn't get on the PC games was this ability to have a massive scrolling world where most of the games that you would make on the PC and early personal computers would be a static screen. You move little things around on it.

    2022-08-04 · Lex Fridman Podcast · #309 – John Carmack: Doom, Quake, VR, AGI, Programming, Video Games, and Rockets · IDENTIFIED FROM THE TRANSCRIPT · source

  48. No, it was not garbage collected. Same manual. So you could still have your use after freeze and all those other problems, but over just getting rid of array overruns, at least if you were compiled with that debugging option, certainly would have avoided a lot of problems and could have a lot of benefits. So anyways, that was the next thing. I had to learn C because C was where it seemed like most of the things were going. So I abandoned Pascal and I started working in C. I started hacking on these hardware things, dealing with the graphics controllers and the EGA systems. And what we most wanted to do, so at that time, we had.

    2022-08-04 · Lex Fridman Podcast · #309 – John Carmack: Doom, Quake, VR, AGI, Programming, Video Games, and Rockets · IDENTIFIED FROM THE TRANSCRIPT · source

  49. We were pretty contemporaneous, so Pascal's lineage went to modula 2 and eventually Oberon, which was another Nicholas word. Kind of experimental language, but they were all good enough at that level. Now, some of the classic academic oriented Pascals were just missing fundamental things like, oh, you can't access this core system thing because we're just using it to teach students. But Turbo Pascal showed that only modest changes to it really did make it a completely capable language. And it had some reasons why you could implement it as a single pass compiler. So it could be way, way faster, although less scope for optimizations if you do it that way. And it did have some range checking options. It had a little bit better typing capability. It had properly typed enums sorts of things and other stuff that C lacked. But C was also clearly good enough and it wound up with a huge inertia from the Unix ecosystem and everything came with that.

    2022-08-04 · Lex Fridman Podcast · #309 – John Carmack: Doom, Quake, VR, AGI, Programming, Video Games, and Rockets · IDENTIFIED FROM THE TRANSCRIPT · source

  50. Range checked arrays as an option there, which could avoid many of C's real hazards that happened in a security space. But C1, they were basically operating at about the same level of abstraction. It was a systems programming language.

    2022-08-04 · Lex Fridman Podcast · #309 – John Carmack: Doom, Quake, VR, AGI, Programming, Video Games, and Rockets · IDENTIFIED FROM THE TRANSCRIPT · source