Lex Fridman PodcastJohn Carmack: Doom, Quake, VR, AGI, Programming, Video Games, and Rockets | Lex Fridman Podcast #309
At a glance
WHAT IT’S REALLY ABOUT
John Carmack on coding, games, VR, AGI, and working obsessively hard
- John Carmack traces his journey from a self-taught kid obsessed with early computers to co-founding id Software and pioneering 3D game engines for Wolfenstein 3D, Doom, and Quake. He explains the concrete technical hacks and constraints that shaped these breakthroughs, from tile-based scrolling to ray casting and BSP trees, and how game feel and user value mattered more than technical purity.
- He contrasts old-school, low-level optimization with today’s abundance of computing power, arguing that deep systems understanding still matters when you’re pushing true frontiers such as VR, rockets, and AGI. Carmack also discusses work habits, the value of long hours, debugging discipline, and the importance of focusing relentlessly on user value rather than cleverness for its own sake.
- In VR and the metaverse, he’s pragmatic: it will likely evolve gradually from specific, compelling applications—like Beat Saber or high‑quality remote meetings—rather than from top‑down, abstract platforms. Looking forward, he has now committed seriously to artificial general intelligence, betting that a relatively small amount of code and a handful of key ideas, built on today’s ML literature, could yield human‑level learning systems within about a decade.
IDEAS WORTH REMEMBERING
5 ideasTechnical breakthroughs often come from exploiting hardware constraints, not ignoring them.
Carmack’s scrolling tricks for Commander Keen, ray casting in Wolfenstein 3D, and BSP trees in Doom/Quake all arose from carefully studying limited 80s/90s hardware and finding non‑obvious angles (like reusing text‑scroll hardware or wrapping video memory) to get 5–10x speedups.
Deep understanding across the whole stack unlocks outsized leverage.
He argues that real frontier work—VR on mobile, rockets, AGI—requires knowing hardware, compilers, low‑level code, and high‑level design so you can reframe the problem, not just micro‑optimize within existing abstractions.
User value should trump elegance, cleverness, and purity in engineering decisions.
From game design to VR products, he pushes engineers to measure success by whether users get more value than the effort and cost put in, not by how sophisticated architectures or abstractions look internally.
Hard, sustained work really does compound skill and output—if you can tolerate it.
Carmack describes decades of 60‑hour weeks, emphasizes sleep but rejects the idea that 40 hours is always optimal, and views intense effort as both how mastery is built and how big, improbable goals are actually achieved.
Tooling and discipline—debuggers, static analyzers, asserts—are non‑optional for serious systems.
He’s adamant that relying on “read the code and think about it” is delusional at scale; systematic use of debuggers and analysis tools revealed many serious bugs even in id’s famously robust engines.
WORDS WORTH SAVING
5 quotesYou weren’t inside the game… 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 gonna make a difference.’
— John Carmack
Being a servant to the user is your job when you’re a developer. You want to be producing something that other people are gonna find valuable.
— John Carmack
Working longer gets more done. If you want to accomplish something, working longer and harder is the path to getting it accomplished.
— John Carmack
The best programming language is the one that works, generally the one you’re currently using.
— John Carmack
I am seriously going for the AGI side of things… This is potentially one of the most important things humans ever do.
— John Carmack
High quality AI-generated summary created from speaker-labeled transcript.
Get more out of YouTube videos.
High quality summaries for YouTube videos. Accurate transcripts to search & find moments. Powered by ChatGPT & Claude AI.
Add to Chrome