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. Not a super practical system. While Turbopascal was, it was called Turbo because it was blazingly fast to compile. I mean, really ridiculously 10 to 20 times faster than most other compilers at the time. But it also had very pragmatic access to, look, you can just poke at the hardware in these different ways. And we have libraries that let you do things. And it was a pretty good, it was a perfectly good way to write games. And this is one of those things where people have talked about different paths that computer development could have taken where C took over the world for reasons that came out of Unix and eventually Linux. And that was not a foregone conclusion at all. And people can make real, reasoned, rational arguments that the world might have been better if it had gone a Pascal route. I'm somewhat agnostic on that where I do know from experience it was perfectly good enough to do that. And it had some fundamental improvements. Like it had.

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

  2. It was a product of Borland, which before Microsoft kind of killed them, they were the hot stuff developer tools company. You had Borland Turbo Pascal and Turbo C and Turbo Prologue. I mean, all the different things. But what they did was they took a supremely pragmatic approach of making something useful. It was one of these great examples where Pascal was an academic language and you had things like the UCSDP system that Wizardry was actually written in that they did manage to make a game with that, but it was

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

  3. On it. So, what I wound up doing is I rented a PC for a week and bought a copy of Turbo Pascal. And so I had a hard one week and this was cutting into what minimal. And that was kind of what the first thing that I had done on the IBM PC and what led me to taking the job at Softisk.

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

  4. See what he said? It was an outlier to use Pascal a little bit where there was one famous program called Wizardry. It was like one of the great early role-playing games that was written in Pascal, but it was almost nothing used Pascal there. But I did learn Pascal and I remember doing all of my, like to this day I sketch in data structures when I'm thinking about something, I'll open up a file and I'll start writing struct definitions for how data is going to be laid out. And Pascal was kind of formative to that because I remember designing my RPGs in Pascal record structures and things like that. And so I had gotten a Pascal compiler for the Apple IIGS that I could work on in the first IBM game that I developed I did in Pascal. And that's actually kind of an interesting story again talking about the constraints and resources where I had an Apple IIGS. I didn't have an IBM PC. I wanted to port my applications to IBM because I thought I could make more money.

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

  5. Yeah, complete games in assembly language. And it's thousands and thousands of lines of three-letter acronyms for the instructions.

    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 when basic assembly language and some of my intermediate stuff was, well, you had two for performance. Basic was just too slow. So most of the work that I was doing as a contract programmer in my teenage years was assembly language.

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

  7. Very little. If you open up command.ex or comm on Windows, you see some of the remnants of all of that, but it was a different world. It was the 640K is enough world and nothing was protected. It crashed all the time. You had TSRs or Terminate and Stay Resident hacks on top of things that would cause configuration problems. All the hardware was manually configured in your auto exec. So it was a very different world.

    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, this was Dawson x86. So 16 bit 8086. The 286s were there and 386s existed. They were rare. We had a couple for our development systems, but we were still targeting the more broad, it was all DOS 16-bit. None of this was kind of DOS extenders and things

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

  9. Had a set of books and a set of magazines. They had a couple years of magazines, the old Dr. Dobbs Journal and all of these magazines that had information about things. And so I was just in total immersion mode. It was eat, breathe, sleep, computer programming, particularly the IBM for everything that I was doing. And I was digging into a lot of these low-level hardware details that people weren't usually paying attention to the way the IBM EGA cards worked. which was fun for me. I hadn't had experience with things at that level. And back then, you could get hardware documentation just down at the register levels. This is where the CRTC register is. This is how the color registers work and how the different things are applied. And they were designed for a certain reason. They were designed for an application. They had an intended use in mind. But I was starting to look at other ways that they could perhaps be exploited.

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

  10. Would you say, I wouldn't make judgments like that about it, but it was positioned in such a way, especially in the school systems, that it impacted a whole lot of American programmers at least, where there was programs that the Apple II's got into the schools and they had enough capability that lots of interesting things happened with them. You know, in Europe, it was different. You had your Amigas and Ataris. And, you know, acorns in the UK and things that had different things. But in the United States, it was probably the Apple II made the most impact for a lot of programmers of my generation. But so I was really digging into the IBM. And this was even more so with the total focus because I had moved to another city where I didn't know anybody that I wasn't working with. I had a little apartment. And then at Softdisk, again, the things that drew me to it. I had a couple programmers that knew more than I did. And they had a library.

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

  11. Before him. Yeah. What happened after I kind of coincident with that was I was working on a lot of the new technologies where I was now full on the IBM PC for the first time where I was really a long holdout on Apple II forever and I loved my Apple II. It was the computer I always wished I had when I was growing up. And when I finally did have one, I was kind of clinging on to that well past its sort of good use by the computer.

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

  12. Think he could contact John directly that he would get intercepted, so he was trying to get him to contact him through back channel fan mail because he basically was saying, hey, I'm making all this money on shareware games. I want you to make shareware games because he had seen some of the games that Romero had done. And, you know, we looked at Scott Miller's games and we didn't think they were very good. We're like, that can't be making the kind of money that he's saying he's making 10 grand or something. I am off of this game. We really thought that he was full of shit, that it was a lie trying to get to get him into this. But so that was kind of going on at one level. And it was funny the moment when Romero realized that he had some of these letters pinned up on his wall of like all of his fans. And then we noticed that they all had the same return address with different names on them, which was a little bit of a two-edged sword there.

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

  13. Nowadays, again, people talk about compulsion loops and things where it's that sense of exactly what you're doing, what your fingers are doing on the keyboard, what your eyes are seeing. And there are going to be the sequences of things. Grab the loot, shoot the monster, jump over the obstacle, get to the end of the level. These are eternal aspects of game design in a lot of ways, but there are better and worse ways to do all of them. And we did so many of these games that it was, we got a lot of practice with it. One of the kind of weird things that was happening at this time is John Romero was getting some strange fan mail. And back in the days, this is before email. So we literally got letters sometimes and telling him it's like, oh, I want to talk to you about your games. I want to reach out different things. And eventually it turned out that these were all coming from Scott Miller at Apogee Software. And he was reaching out through.

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

  14. Some of them are still fun to go back and play where you get the, they were all about kind of the more modern term is game feel, about how just the exact feel that things, it's not the grand strategy of the design, but how

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

  15. It again comes down to that point where pressure and limitation of resources is surprisingly important. And it's counterintuitive in a lot of ways where you just think that if you've got all the time in the world and you've got all the resources in the world, of course you're going to get something better. But sometimes it really does work out that innovations, mother necessity, where you can or resource constraints and you have to do things when you don't have a choice. It's surprising what you can do.

    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 you've got deadlines. And that kind of rapid iteration pressure cooker environment was super important for all of us developing the skills that brought us to where we eventually went to. I mean, people would say, like in the history of the Beatles, like it wasn't them being the Beatles, it was them playing all of these other early works that that opportunity to craft all of their skills before they were famous that was very critical to their later successes. And I think there's a lot of that here where we did these games that nobody remembers lots of little things that contributed to building up the skill set for the things that eventually did make us famous.

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

  17. Yeah. And this, in retrospect, looking back at it, that sense that I had done all this contract programming and John Romero had done like far more of this where he had done one of his teaching himself efforts was he made a game for every letter of the alphabet. It's that sense of like, I'm just going to go make 26 different games, give him a different theme. And you learn so much when you go through and you crank these things out like on a bi-weekly, monthly basis, something like that. Start to finish.

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

  18. I disc with one or two games just every month, and no choice in what you get, but we think it'll be fun. And that was the model they were comfortable with and said, all right, we're going to start this gamer's edge department. And all of us that were interested in that, like me, Romero, Tom Hall was kind of helping us from his side of things. Jay would peek in and we had a few other programmers working with us at the time. And we were going to just start making games, just the same model. And we dived in and it was fantastic.

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

  19. Learn from these few books at the library. It was not much at all. And there were some aspects of programming that were kind of black magic to me. Like it's like, oh, he knows how to format a track on a low-level drive programming interface. And this was, I was still not at all sure I was going to take the job, but I met these awesome programmers that were doing cool stuff. And Romero had worked at Origin Systems and he had done like, you know, so many different games ahead of time that I did kind of quickly decide like, yeah, I'll go take the job down there. And I settled down there, moved in, and started working on more little projects. And the first kind of big change that happened down there was the company wanted to make a gaming focused, a PC gaming focused subscription, just like all their other, it was the same formula that they used for everything, pay a monthly fee and you'll get

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

  20. An actual job rather than contracting these kind of one at a time things. And Jay Wilbur was great. He was like FedExing me the checks when I would need them to kind of get over whatever hump I was at. So I took the, I finally took him up on their offer to come down to Shreveport, Louisiana. I was in Kansas City at the time, drove down through the Ozarks and everything down to Louisiana and saw the Softisk offices, went through, talked to a bunch of people, met the people I had been working with remotely at that time. But the most important thing for me was I met two programmers there, John Romero and Lane Roth, that for the first time ever, I had met programmers that knew more cool stuff than I did, where the world was just different back then. I was in Kansas City. It was one of those smartest kid in the school, does all the computer stuff. The teachers don't have anything to teach him. But all I had to learn.

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

  21. And one of the things that I was doing, again, to keep my head above water here was I decided that I could make one program and I could port it to multiple systems. So I would write a game like Dark Designs or Catacombs and I would develop it on the Apple II, the 2GS, and the IBM PC, which apparently was the thing that really kind of piqued the attention of the people working down there. Like Jay Wilbur was my primary editor and Tom Hall was a secondary editor. And they kept asking me, it's like, hey, you should come down and work for us here. And I pushed it off a couple times because I was really enjoying my freedom of kind of being off on my own, even if I was barely getting by. I loved it. I was doing nothing but programming all day. But I did have enough close scrapes with like, damn, I'm just really out of money that maybe I should get.

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

  22. After I was an adult and kind of taking a few college classes, deciding to drop out, I was doing, I was hard scrabble contract programming work, really struggling to kind of keep groceries and pay my rent and things. And the company that I was doing the most work for was a company called Soft Disk Publishing, which had the sounds bizarre now business model of monthly subscription software. Before there was an internet that people could connect to and get software, you would pay a certain amount and every month they would send you a disk that had some random software on it and people that were into computers thought this was kind of cool and they had different ones for the Apple II, the 2GS, the PC, the Mac, the Amiga, lots of different things here. So quirky little business, but I was doing a lot of contract programming for them where I'd write tiny little games and sell them for 300, 500.

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

  23. So I'll caveat up front that I usually don't consider myself the historian of the software side of things. I usually do kind of point people at John Romero for stories about the early days where I've never been like I've commented that I'm a remarkably unsentimental person in some ways where I don't really spend a lot of time unless I'm explicitly prodded to go back and think about the early days of things. And I didn't. I didn't necessarily make the effort to archive everything exactly in my brain. And the more that I work on machine learning and AI and the aspects of memory and how when you go back and polish certain things, it's not necessarily exactly the way it happened. But having said all of that, from my view, the way everything happened that led up to that was

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

  24. But it was still a wonderful good thing that we had an open standard that could show up on Linux and Android and iOS. Eventually WebGL still to this day. So that was on my greatest hits list of things that I kind of pushed.

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

  25. ES was the thing that drove all of the acceleration of the mobile industry. And it's really only in the last few years as Apple's moved to metal and some of the other companies have moved to Vulcan that that's moved away. Really stepping back and looking at it, it's like, yeah, I sold tens of millions of games for different things. billions and billions of devices wound up with an appropriate, capable graphics API due in no small part to me thinking that that was really important, that we not just give up and use Microsoft's at that time really terrible API. The thing about Microsoft is the APIs don't stay terrible. They were terrible at the start, but a few versions on, they were actually quite good. And there was a completely fair argument to be made that by the time DX9 was out, it was probably a better programming environment than OpenGL.

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

  26. And you can say, no, that's actually a great value creation engine to do that if you're in a position where you can. Don't be forced into reinventing everything just because you think that you need to. Lots of things about business and team stuff that could be done better. But the technical work, the kind of technical visionary type stuff that I laid out, I still feel pretty good about. There are some classic old ones about my defending of OpenGL versus D3D, which turned out to be one of the more probably important momentous things there where it never, it was always a rearguard action on Windows where Microsoft was just not going to let that win. But when I look back on it now, that fight to keep OpenGL relevant for a number of years there meant that OpenGL was there when mobile started happening and OpenGL

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

  27. In the larger scheme of things, how sometimes relatively unimportant some of those things are, where it is this user value generation that's the overarching importance for all of that. And I didn't necessarily have my eye on that ball correctly through a lot of my earlier years. And there's things that I could have gotten more out of people handling things in different ways. I could have made in some ways more successful products by following things in different ways. There's mistakes that we made that we couldn't really have known how things would have worked out, but it was interesting to see in later years companies like Activision showing that, hey, you really can just do the same game, make it better every year, and you can look at that from a negative standpoint and say it's like, oh, that's just being derivative and all that. But if you step back again and say it's like, no, are the people buying it still enjoying it? Are they enjoying it more than what they might have bought otherwise?

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

  28. There's things that I was understanding about development and the industry and so on that were in a more primitive stage where I definitely learned a lot more in the later years about business and organization and team structure there were I mean there were definitely things that I was not the best person or even a very good person about managing like how a team should operate internally, how people should work together I was just get out of my way and let me work on the code and do this and more and more I've learned how

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

  29. It's like looking back. Yeah, I do. I mean, sometimes I'll get the, you know, I'll look at it and say, yeah, I had a pretty clear view of I was doing good work there. And I haven't really hit the point where there was another programmer, Graham Devine, who was he had worked at ID and seventh guest. And he had made some comment one time where he said he looked back at some of his old notes and he was like, wow, I was really smart back then. And I don't hit that so much where, I mean, I look at it and I always know that, yeah, there's all the, you know, with aging, you get certain changes in how you're able to work problems, but all of the problems that I've worked, I'm. I'm sure that I could do a better job on all of them.

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

  30. Yeah, there's some good stuff on both where a lot of it was low level nitpicky details about Game Dev. And, you know, I've learned enough things where there's no project that I worked on that I couldn't go back and do a better job on now. I mean, you just, you learn things. Hopefully, if you're doing it right, you learn things as you get older and you should be able to do a better job at all of the early things. And there's stuff in Wolfenstein Doomquake that's like, oh, clearly I could go back and do a better job at this, whether it's something in the rendering engine side or how I implemented the monster behaviors or managed resources. Do you see the flaws in your thing?

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

  31. And it was kind of a premonition of sort of the way things would go. And there was, it's all been collected. It's available online in different places. And it's kind of fun to go back and look through what I was thinking, what I was doing in the different areas.

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

  32. Starting to write much more in depth things, I would have little notes of thoughts and insights, and then I would eventually start having little essays I would sometimes dump into the dot plan files interspersed with the work logs of things that I was doing. So in some ways it was like a super early proto-blog where I was just kind of dumping out what I was working on, but it was interesting enough that there were a lot of people that were interested in this. So most of the people didn't have Unix workstations, so there were the websites back in the day that would follow the Doom and Quake development that would basically make a little service that would go grab all the changes and then people could just get it with a web browser. And there was a period where all of the little kind of Dallas gaming diaspora of people that were at all in that orbit, there were a couple dozen plan files going on, which was, and this was some years before blogging really became kind of a thing.

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

  33. Dump that file over to the terminal of whoever issued the finger command. And at one point, I started just keeping a list of what I was doing in there, which would be what I was working on in the day. And I would have this little syntax I kind of got to myself about. Here's something that I'm working on. I put a star when I finish it. I can have a few other little bits of punctuation. And at the time, it started off as being just like my to-do list. And it would be these trivial.

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

  34. You've still got if you're programming on Apple stuff now, there's still all these NS somethings, which was originally next step objects of different kinds of things. But one of the aspects of those Unix systems was they had this notion of a dot plan file where a dot file is an invisible file, like usually in your home directory or something, and there was a trivial server running on most Unix systems at the time that when somebody ran a trivial little command called finger, you could do finger and then somebody's address, it could be anywhere on the internet if you were connected correctly, then all that server would do was read the dot plan file in that user's home directory and then just spit it out to you. And originally the idea was that could be whether you're on vacation, what your current project was, it's supposed to be like the plan of what you're doing. And people would use it for, you know, various purposes. But all it did.

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

  35. Dead in for things like that. Became Mac. I mean, the kind of reverse acquisition of Apple by Next, where that took over and became what the modern Mac system is.

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

  36. And we were still back in those days working on DOS, everything blew up. You had reset buttons because your computer would just freeze if you're doing development work literally dozens of times a day. Your computer was just rebooting constantly. And so this idea of, yes, any of the Unix workstations would have given a stable development platform where you don't crash and reboot all the time. But Next also had this really amazing graphical interface and it was great for building tools and it used Objective-C as the kind of an interesting

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

  37. Back in the early, early days of id software, one of our big things that was unique with what we did is I had adopted NextStations or kind of next step systems from Steve Jobs' out in the woods away from Apple company. They were basically, it was kind of interesting because I did not really have a background with the Unix system. So many of the people, they get immersed in that in college. And that's sets a lot of cultural expectations for them. And I didn't have any of that, but I knew that my background was I was a huge Apple II fanboy. I was always a little suspicious of the Mac. I was not really what kind of I wanted to go with. But when Steve Jobs left Apple and started next, this computer did just seem like one of those amazing things from the future where it had all of this cool stuff in it.

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

  38. $10,000 or 100,000 times slower, so just everything happens immediately. And all the modern systems just feel, no, they feel so crufty when it's like, oh, why is this refreshing the screen and moving around and updating over here and something blinks down there and you should update this? There are things that we've lost with that incredible flexibility, but lots of people get tons of value from it. And I am super happy that that seems to be winning over even a lot of the old Vim and Emacs people that they're kind of like, hey, Visual Studio Code's maybe, you know, not so bad. That may be the final peacekeeping solution where everybody is reasonably happy with something like that.

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

  39. And it does seem like the world is a large chunk of the world is moving towards Visual Studio Code, which is kind of interesting to me against the JavaScript ecosystem on the one hand. And IDs are one of those things that you want to be infinitely fast. You want them to just kind of immediately respond. And like, I mean, heck, I've got, there's someone I know. an old school game dev guy that still uses visual studio 6 and on a modern computer everything is just absolutely instant on something like that because it was made to work on a computer that's

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

  40. They're screaming. Again, the out is that this was not modern Vim, but still, yes, I was very happy to get back to my visual studio at the end.

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

  41. Yeah. So I did spend, you know, I spent one of my week-long retreats where I'm like, okay, I'm going to make myself use, it was actually classic VI, which I know people will say you should never have done that. You should have just used Vim directly. But I gave it the good try. It's like, okay, I'm being in kind of classic Unix developer mode here. And I worked for a week on it. I used Anki to like teach myself the different little key combinations for things like that. And in the end, it was just like, all right, this was kind of like my Civil War reenactment phase. You know, it's like I'm going out there doing it like they used to in the old days. And it was kind of funny.

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

  42. I'm fairly pedestrian on a lot of that where I did move to triple monitors like in the last several years ago. I had been dual monitor for a very long time and it was one of those things where probably years later than I should have, I'm just like, well, the video cards now generally have three output ports. I should just put the third monitor up there. That's been a pure win. I've been very happy with that. But no, I don't have fancy keyboard or mouse or anything really. The key things is...

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

  43. Cases where that's the right thing to do, but it also, the other aspect of the world changing around you is it's good to be informed when the world has changed more than you thought it would. And if you've got a continuously growing collection, you're never going to find out. You might have this quadratic slowdown on something where you thought, oh, I'm only ever going to have a handful of these, but something changes and there's a new Picking a number, some nice round power of two number, and setting it up in there and having an assert saying it's like, hey, you hit this limit. You should probably think are the choices that you've made around all of this still relevant if somebody's using 10 times more than you thought they would.

    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 their active comments. It's one of those things that in theory they don't make any difference to the program. And if it was all operating the way you expected it would be, then they will never fire. But even if you have it right and you wrote the code right initially, then circumstances change. The world outside your program changes. And in fact, that's one of the things where I'm kind of fond in a lot of cases of static array size declarations where I went through this period where it's like, okay, now we have general collection classes. We should just make everything variable. Because I had this history of in the early days, you get Doom which had some fixed limits on it. Then everybody started making crazier and crazier things and they kept bumping up the different limits this many lines, this many sectors. And it seemed like a good idea. Well, we should just make this completely generic. It can go kind of go up to whatever.

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

  45. Of people, then you want to use all of these tools. You want to be told it's like, no, you screwed up here, here, and here. And that does require kind of an ego check about things where you have to be open to the fact that everything that you're doing is just littered with flaws. It's not that, oh, you occasionally have a bad day. It's just whatever stream of code you output, there's going to be a statistical regularity of things that you just make mistakes on. And I do think there's the whole argument about test-driven design and unit testing versus kind of analysis and different things. I am more in favor of the analysis and the stuff that just like you can't run your program until you fix this rather than you can run it in hopefully a unit test will catch it in some way.

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

  46. It was humbling. And I reached the conclusion that anything that can be syntactically allowed in your language, if it's going to show up eventually in a large enough code base, you're not going to get good intentions aren't going to keep it from happening. You need automated tools and guardrails for things. And those start with things like static types or even type hints in the more dynamic languages. The people that rebel against that that basically say that slows me down doing that, there's something to that. I get that. I've written, you know, I've cobbled things together in a notebook. I'm like, wow, this is great that it just happened. But yeah, that's kind of sketchy, but it's working fine. I don't care. It does come back to that value analysis where sometimes it's right to not care. But when you do care, if it's going to be something that's going to live for years and is going to have other people working on it and it's going to be deployed to millions.

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

  47. That was the wrong data type that could cause crashes there. And you really want the warnings for things like that. Then the next most common was missing a check for null that could actually happen that could blow things up. And those are obviously like top C++ things. Everybody has those problems. But the long tail of all of the different little things that could go wrong there. And we had good programmers. And my own code stuff that I'd be looking at, it's like, oh, I wrote that code. That's definitely wrong. We've been using this for a year. And this mine sitting there waiting for us to step on.

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

  48. And at one point, I had used a few of the different analysis tools, but I made a point to really go through and scrub the code base using every tool that I could find. And it was eye-opening where we had a reputation for having some of the most robust, strongest code, where there were some great things that I remember hearing from Microsoft telling us about crashes on Xbox. And we had this tiny number that they said were probably literally hardware errors. And then you have other significant titles that just have millions of faults that are getting recorded all the time. So I was proud of our code on a lot of levels, but when I took this code analysis squeegee through everything, it was shocking how many errors there were in there, things that you can say, okay, this was a copy-paste not changing something right here, lots of things that were the most common problem was something in a printf format.

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

  49. There's a whole spectrum there from static code analyzers and various kind of dynamic tools there up to AI that can conceivably grok these programs that literally no human can understand. They're too big, too intertwined and too interconnected, but it's not beyond the possibility of understanding. It's just beyond what we can hold in our heads as kind of mutable state while we're working on things. And I'm a big proponent, again, of things like static analyzers and some of that stuff where you'll find some people that don't like being scolded by a program for how they've written something where it's like, oh, I know better. And sometimes you do, but that was something that was very, very valuable for me, and not too many people get an opportunity like this to have. This is almost one of those spiritual experiences as a programmer and awakening to the end software code bases where a couple million lines of code.

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

  50. When I'm working on my CC code, I'm always running it from the debugger. I type in the code. I run it many times the first thing I do after writing code is set a breakpoint and step through the function. Now, other people say it's like, oh, I do that in my head. Well, your head is a faulty interpreter of all those things there. And I've written brand new code. I want to step in there and I'm going to single step through that, examine lots of things, and see if it's actually doing what I expected it to.

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