John Carmack: Doom, Quake, VR, AGI, Programming, Video Games, and Rockets
技术与编程音乐与艺术AI 与机器学习生物与进化政治与社会
🤖
AI 智能总结
卡马克谈Doom、VR、AGI与编程哲学
这是 Lex Fridman 与传奇程序员 John Carmack 的超长对话,Carmack 是 Doom 和 Quake 的创造者,后来成为 Oculus VR 的 CTO,现在专注于 AGI 研究。对话涵盖了他的编程哲学、游戏开发史、VR 技术的现状与未来,以及他对 AGI 的独特工程师视角。
游戏开发编程VRAGIDoom工程哲学
John Carmack 是传奇游戏程序员,id Software 联合创始人,Doom 和 Quake 的技术架构师,后担任 Oculus VR CTO,现专注于 AGI 研究。被认为是有史以来最伟大的程序员之一。
📌 核心观点
- Carmack 回忆了 Doom 诞生的历史性时刻:当第一个 3D 第一人称视角演示出现时,玩家几乎从椅子上摔下来——这种沉浸感是前所未有的,彻底改变了游戏行业。
- 他对编程有极度务实的哲学:代码的价值在于它能做什么,而不是它有多优雅。他以「火箭科学」类比——最终目标是让火箭飞起来,而不是写出漂亮的代码。
- 关于 VR,Carmack 认为当前最大的挑战不是技术,而是「杀手级应用」的缺失——VR 需要一个像 Doom 之于 PC 游戏那样的定义性体验,才能真正普及。
- 他对 AGI 持工程师视角:不相信神秘的「涌现」,而是认为 AGI 是可以通过系统性工程方法实现的目标,当前的 LLM 已经展示了令人惊讶的能力,但还缺少关键的推理和规划能力。
- Carmack 分享了他的工作方式:极度专注、长时间深度工作、避免会议和干扰,他认为真正的生产力来自于不被打断的深度思考时间。
✨ 金句摘录
Carmack:艺术中没有正确答案,我们都在做实验寻找出路。
Carmack:代码的价值在于它能做什么,而不是它有多优雅——最终目标是让火箭飞起来。
Carmack:当那个 3D 演示出现时,他几乎从椅子上摔下来——游戏就是不会给你那种震撼感,但那次不同。
📋 章节目录
暂无章节信息
🔑 关键词
goingdoinggamedongamesgotcodestuffworkinginterestingprogrammingdidnablebettermadedonewaysvaluelanguagedoom
💬 精彩语录
暂无语录
🎙️ 完整对话(7028 条)
Lex Fridman (00:00.000)
I remember the reaction where he had drawn these characters
我记得他画这些人物时的反应
Lex Fridman (00:02.560)
and he was slowly moving around
他慢慢地走来走去
Lex Fridman (00:04.200)
and like people had no experience with 3D navigation.
就像人们没有 3D 导航经验一样。
Lex Fridman (00:06.960)
It was all still keyboard.
一切仍然是键盘。
Lex Fridman (00:07.920)
We didn't even have mice set up at that time,
我们当时连老鼠都没有设置,
Lex Fridman (00:10.960)
but slowly moving, going up, picked up a key, go to a wall.
但慢慢地移动,向上走,拿起一把钥匙,走到墙边。
Lex Fridman (00:14.740)
The wall disappears in a little animation
墙在一个小动画中消失
Lex Fridman (00:16.800)
and there's a monster like right there.
那里有一个像这样的怪物。
Lex Fridman (00:18.760)
And he practically fell out of his chair.
他几乎从椅子上摔下来。
John Carmack (00:20.440)
It was just like, ah, and games just didn't do that.
就像,啊,游戏并没有做到这一点。
Lex Fridman (00:24.680)
You know, the games were the God's eye view.
你知道,比赛是上帝视角。
John Carmack (00:26.800)
You were a little invested in your little guy.
你对你的小家伙有点投入。
Lex Fridman (00:28.760)
You can be like, you know, happy or sad when things happen,
你知道,当事情发生时你可以感到高兴或悲伤,
Lex Fridman (00:32.200)
but you just did not get that kind of startled reaction.
但你只是没有得到那种震惊的反应。
Lex Fridman (00:34.880)
You weren't inside the game.
你不在游戏内。
John Carmack (00:36.360)
Something in the back of your brain,
你大脑后部的一些东西
Lex Fridman (00:38.000)
some reptile brain thing is just going,
一些爬行动物的大脑正在发生,
John Carmack (00:40.200)
oh shit, something just happened.
哦该死,刚刚发生了一些事情。
Lex Fridman (00:42.400)
And that was one of those early points where it's like,
这是早期的事情之一,
John Carmack (00:44.960)
yeah, this is going to make a difference.
是的,这将会有所作为。
Lex Fridman (00:47.240)
This is going to be powerful and it's going to matter.
John Carmack (00:52.300)
The following is a conversation with John Carmack,
Lex Fridman (00:55.140)
widely considered to be one of the greatest programmers
John Carmack (00:58.520)
ever.
Lex Fridman (00:59.520)
He was the cofounder of id Software
Lex Fridman (01:01.960)
and the lead programmer on several games
Lex Fridman (01:03.880)
that revolutionized the technology, the experience,
Lex Fridman (01:07.360)
and the role of gaming in our society,
Lex Fridman (01:09.800)
including Commander Keen, Wolfenstein 3D, Doom, and Quake.
John Carmack (01:15.800)
He spent many years as the CTO of Oculus VR,
Lex Fridman (01:19.960)
helping to create portals into virtual worlds
Lex Fridman (01:23.080)
and to define the technological path
Lex Fridman (01:25.480)
to the metaverse and meta.
Lex Fridman (01:28.120)
And now he has been shifting some of his attention
Lex Fridman (01:30.960)
to the problem of artificial general intelligence.
John Carmack (01:34.840)
This was the longest conversation on this podcast
Lex Fridman (01:38.400)
at over five hours.
Lex Fridman (01:40.080)
And still, I could talk to John many, many more times,
Lex Fridman (01:43.720)
and we hope to do just that.
John Carmack (01:46.440)
This is the Lux Readman podcast.
Lex Fridman (01:48.680)
To support it, please check out our sponsors
John Carmack (01:50.840)
in the description.
Lex Fridman (01:52.160)
And now, dear friends, here's John Carmack.
Lex Fridman (01:56.360)
What was the first program you've ever written?
Lex Fridman (02:00.040)
Do you remember?
John Carmack (02:01.200)
Yeah, I do.
Lex Fridman (02:02.040)
So I remember being in a radio shack
John Carmack (02:04.400)
going up to the TRS 80 computers
Lex Fridman (02:06.800)
and learning just enough to be able to do
John Carmack (02:09.840)
10 print John Carmack.
Lex Fridman (02:12.760)
And it's kind of interesting how, of course,
John Carmack (02:15.960)
Carnegie and Ritchie kind of standardized Hello World
Lex Fridman (02:19.040)
as the first thing that you do
John Carmack (02:20.040)
in every computer programming language in every computer,
Lex Fridman (02:22.720)
but not having any interaction
John Carmack (02:24.800)
with the cultures of Unix or any other standardized things.
Lex Fridman (02:28.200)
It was just like, well, what am I gonna say?
John Carmack (02:29.840)
I'm gonna say my name.
Lex Fridman (02:30.960)
And then you learn how to do go to 10
Lex Fridman (02:33.160)
and have it scroll all off the screen.
Lex Fridman (02:34.920)
And that was definitely the first thing
John Carmack (02:37.280)
that I wound up doing on a computer.
Lex Fridman (02:39.520)
Can I ask you a programming advice?
John Carmack (02:41.280)
I was always told in the beginning
Lex Fridman (02:42.680)
that you're not allowed to use go to statements.
John Carmack (02:44.360)
That's really bad programming.
Lex Fridman (02:45.520)
Is this correct or not?
John Carmack (02:46.920)
Jumping around code, can we look at the philosophy
Lex Fridman (02:50.280)
and the technical aspects of the go to statement
John Carmack (02:53.680)
that seems so convenient,
Lex Fridman (02:55.120)
but it's supposed to be bad programming?
John Carmack (02:55.960)
Well, so certainly back in the day
Lex Fridman (02:57.280)
in basic programming languages,
John Carmack (02:58.920)
you didn't have proper loops.
Lex Fridman (03:00.760)
You didn't have four whiles and repeats.
John Carmack (03:02.720)
That was the land of Pascal for people
Lex Fridman (03:04.840)
that kind of generally had access to it back then.
Lex Fridman (03:07.360)
So you had no choice but to use go tos.
Lex Fridman (03:10.360)
And as you made what were big programs back then,
John Carmack (03:13.440)
which were a thousand line basic program
Lex Fridman (03:15.560)
is a really big program.
John Carmack (03:16.720)
They did tend to sort of degenerate into madness.
Lex Fridman (03:19.960)
You didn't have good editors or code exploration tools.
Lex Fridman (03:23.360)
So you would wind up fixing things in one place,
Lex Fridman (03:26.160)
add a little patch.
Lex Fridman (03:27.120)
And there's reasons why structured programming
Lex Fridman (03:29.680)
generally helps understanding,
Lex Fridman (03:31.720)
but go tos aren't poisonous.
Lex Fridman (03:33.800)
Sometimes they're the right thing to do.
John Carmack (03:35.920)
Usually it's because there's a language feature missing
Lex Fridman (03:38.840)
like nested breaks or something
John Carmack (03:40.520)
where it can sometimes be better to do a go to cleanup
Lex Fridman (03:44.560)
or go to error rather than having multiple flags,
John Carmack (03:48.040)
multiple if statements littered throughout things.
Lex Fridman (03:50.440)
But it is rare.
John Carmack (03:51.800)
I mean, if you gripped through all of my code right now,
Lex Fridman (03:55.120)
I don't think any of my current code bases
John Carmack (03:57.520)
would actually have a go to,
Lex Fridman (03:58.960)
but deep within sort of the technical underpinnings
John Carmack (04:02.640)
of a major game engine,
Lex Fridman (04:03.720)
you're gonna have some go tos in a couple of places probably.
John Carmack (04:07.200)
Yeah, the infrastructure on top of,
Lex Fridman (04:09.160)
like the closer you get to machine code,
John Carmack (04:11.240)
the more go tos you're gonna see,
Lex Fridman (04:12.680)
the more of these like hacks you're going to see
John Carmack (04:15.640)
because the set of features available to you
Lex Fridman (04:18.240)
in low level programming languages is not, is limited.
Lex Fridman (04:22.360)
So print John Carmack,
Lex Fridman (04:25.920)
when is the first time,
John Carmack (04:28.360)
if we could talk about love,
Lex Fridman (04:30.000)
that you fell in love with programming?
John Carmack (04:31.680)
You said like, this is really something special.
Lex Fridman (04:34.640)
It really was something
John Carmack (04:36.040)
that was one of those love at first sight things
Lex Fridman (04:38.120)
where just really from the time
John Carmack (04:39.920)
that I understood what a computer was even,
Lex Fridman (04:42.720)
I mean, I remember looking through old encyclopedias
John Carmack (04:45.440)
of the black and white photos of the IBM mainframes
Lex Fridman (04:48.560)
at the reel to reel tape decks.
Lex Fridman (04:50.240)
And for people nowadays,
Lex Fridman (04:52.320)
it can be a little hard to understand
Lex Fridman (04:53.800)
what the world was like then from information gathering
Lex Fridman (04:56.280)
where I would go to the libraries
Lex Fridman (04:58.720)
and there would be a couple books on the shelf
Lex Fridman (05:01.080)
about computers and they would be very out of date
John Carmack (05:03.880)
even at that point, just not a lot of information,
Lex Fridman (05:06.640)
but I would grab everything that I could find
Lex Fridman (05:09.160)
and devour everything.
Lex Fridman (05:10.560)
Whenever Time or Newsweek had some article about computers,
John Carmack (05:14.200)
I would like cut it out with scissors and put it somewhere.
Lex Fridman (05:16.960)
It just, it felt like this magical thing to me,
John Carmack (05:19.960)
this idea that the computer would just do exactly
Lex Fridman (05:23.480)
what you told it to.
John Carmack (05:24.480)
I mean, and there's a little bit of the genie monkey's paw
Lex Fridman (05:26.640)
sort of issues there where you'd better be really,
John Carmack (05:28.960)
really careful with what you're telling it to do,
Lex Fridman (05:31.080)
but it wasn't gonna back talk you.
John Carmack (05:33.120)
It wasn't gonna have a different point of view.
Lex Fridman (05:34.720)
It was gonna carry out what you told it to do.
Lex Fridman (05:37.400)
And if you had the right commands,
Lex Fridman (05:39.840)
you could make it do these pretty magical things.
Lex Fridman (05:43.560)
And so what kind of programs did you write at first?
Lex Fridman (05:46.000)
So beyond the print, John Carmack.
Lex Fridman (05:48.280)
So I can remember as going through the learning process
Lex Fridman (05:51.800)
where you find at the start,
John Carmack (05:53.720)
you're just learning how to do
Lex Fridman (05:54.600)
the most basic possible things.
Lex Fridman (05:56.400)
And I can remember stuff like a Superman comic
Lex Fridman (05:59.840)
that RadioShack commissioned to have,
John Carmack (06:02.640)
it's like Superman had lost some of his super brain
Lex Fridman (06:04.840)
and kids had to use RadioShack TRS 80 computers
John Carmack (06:07.520)
to do calculations for it to help him
Lex Fridman (06:09.920)
kind of complete his heroics.
Lex Fridman (06:11.960)
And I'd find little things like that
Lex Fridman (06:15.240)
and then get a few basic books
John Carmack (06:17.320)
to be able to kind of work my way up.
Lex Fridman (06:20.120)
And again, it was so precious back then.
John Carmack (06:22.440)
I had a couple of books
Lex Fridman (06:23.640)
that would teach me important things about it.
John Carmack (06:25.920)
I had one book that I could start to learn
Lex Fridman (06:28.640)
a little bit of assembly language from,
Lex Fridman (06:30.320)
and I'd have a few books on basic
Lex Fridman (06:32.000)
and some things that I could get from the libraries.
Lex Fridman (06:34.560)
But my goals in the early days
Lex Fridman (06:37.160)
was almost always making games of various kinds.
John Carmack (06:40.000)
I loved the arcade games and the early Atari 2600 games.
Lex Fridman (06:44.880)
And being able to do some of those things myself
John Carmack (06:47.720)
on the computers was very much what I aspired to.
Lex Fridman (06:51.360)
And it was a whole journey where
John Carmack (06:53.000)
if you learn normal basic,
Lex Fridman (06:54.360)
you can't do any kind of an action game.
John Carmack (06:56.080)
You can write an adventure game.
Lex Fridman (06:57.400)
You can write things where you say, what do you do here?
John Carmack (07:00.360)
I get sword attack troll, that type of thing.
Lex Fridman (07:03.600)
And that can be done in the context of basic.
Lex Fridman (07:07.040)
But to do things that had moving graphics,
Lex Fridman (07:09.520)
there were only the most limited things
John Carmack (07:11.280)
you could possibly do.
Lex Fridman (07:12.240)
You could maybe do breakout or pong
John Carmack (07:14.040)
or that sort of thing in low resolution graphics.
Lex Fridman (07:16.920)
And in fact, one of my first sort of major technical hacks
John Carmack (07:20.720)
that I was kind of fond of was on the Apple II computers,
Lex Fridman (07:25.400)
they had a mode called low resolution graphics
John Carmack (07:28.800)
where of course all graphics were low resolution back then,
Lex Fridman (07:31.400)
but regular low resolution graphics,
John Carmack (07:34.080)
it was a grid of 40 by 40 pixels normally,
Lex Fridman (07:37.160)
but they could have 16 different colors.
Lex Fridman (07:39.480)
And I wanted to make a game kind of like
Lex Fridman (07:42.080)
the arcade game Vanguard, just a scrolling game.
Lex Fridman (07:44.920)
And I wanted to just kind of have it scroll vertically up.
Lex Fridman (07:47.400)
And I could move a little ship around.
John Carmack (07:49.240)
You could manage to do that in basic,
Lex Fridman (07:50.760)
but there's no way you could redraw the whole screen.
Lex Fridman (07:53.520)
And I remember at the time just coming up
Lex Fridman (07:56.000)
with what felt like a brainstorm to me
John Carmack (07:58.160)
where I knew enough about the way the hardware was controlled
Lex Fridman (08:02.000)
where the text screen and the low resolution graphics screen
John Carmack (08:05.120)
were basically the same thing.
Lex Fridman (08:06.880)
And all those computers could scroll their text screen
John Carmack (08:09.640)
reasonably.
Lex Fridman (08:10.240)
You could do a listing and it would scroll things up.
Lex Fridman (08:12.680)
And I figured out that I could kind of tweak just a couple
Lex Fridman (08:16.480)
things that I barely understood to put it into a graphics mode
Lex Fridman (08:19.640)
and I could draw graphics and then I could just
Lex Fridman (08:21.600)
do a line feed at the very bottom of the screen.
Lex Fridman (08:24.360)
And then the system would scroll it all up
Lex Fridman (08:26.320)
using an assembly language routine
John Carmack (08:28.080)
that I didn't know how to write back then.
Lex Fridman (08:30.200)
So that was like this first great hack
John Carmack (08:33.360)
that sort of had analogs later on in my career
Lex Fridman (08:36.040)
for a lot of different things.
Lex Fridman (08:37.240)
So I found out that I could draw a screen.
Lex Fridman (08:39.400)
I could do a line feed at the bottom.
John Carmack (08:40.920)
It would scroll it up once.
Lex Fridman (08:42.160)
I could draw a couple more lines of stuff at the bottom.
Lex Fridman (08:44.720)
And that was my first way to kind of scroll
Lex Fridman (08:47.240)
the screen, which was interesting in that that played
John Carmack (08:50.680)
a big part later on in the id Software days as well.
Lex Fridman (08:53.280)
So do efficient drawing where you
John Carmack (08:57.480)
don't have to draw the whole screen,
Lex Fridman (08:59.200)
but you draw from the bottom using
John Carmack (09:01.120)
the thing that was designed in the hardware for text output.
Lex Fridman (09:04.520)
Yeah.
John Carmack (09:05.160)
Where so much of, until recently,
Lex Fridman (09:08.960)
game design was limited by what you could actually
John Carmack (09:12.120)
get the computer to do.
Lex Fridman (09:13.200)
Where it's easy to say, OK, I want to scroll the screen.
John Carmack (09:16.000)
You just redraw the entire screen at a slight offset.
Lex Fridman (09:19.400)
And nowadays, that works just fine.
John Carmack (09:21.560)
Computers are ludicrously fast.
Lex Fridman (09:24.680)
But up until a decade ago or so, there
John Carmack (09:28.040)
were all these things everybody wanted to do.
Lex Fridman (09:30.120)
But if they knew enough programming
John Carmack (09:31.880)
to be able to make it happen, it would happen too slow
Lex Fridman (09:34.960)
to be a good experience.
John Carmack (09:36.440)
Either just ridiculously slow or just slow enough
Lex Fridman (09:39.320)
that it wasn't fun to experience it like that.
Lex Fridman (09:42.040)
So much of the first couple of decades of the programming work
Lex Fridman (09:45.600)
that I did was largely figuring out
Lex Fridman (09:47.760)
how to do something that everybody
Lex Fridman (09:49.200)
knows how they want it to happen.
John Carmack (09:51.520)
It just has to happen 2 to 10 times faster
Lex Fridman (09:54.240)
than the straightforward way of doing things
John Carmack (09:57.360)
would make it happen.
Lex Fridman (09:58.680)
And it's different now because at this point, lots of things
John Carmack (10:02.560)
you can just do in the most naive possible way,
Lex Fridman (10:05.000)
and it still works out.
John Carmack (10:06.520)
You don't have nearly the creative limitations
Lex Fridman (10:09.520)
or the incentives for optimizing on that level.
Lex Fridman (10:12.680)
And there's a lot of pros and cons to that.
Lex Fridman (10:14.520)
But I do generally, I'm not going
John Carmack (10:16.520)
to do the angry old man shaking my fist at the clouds bit
Lex Fridman (10:20.000)
where back in my day, programmers
John Carmack (10:21.560)
had to do real programming.
Lex Fridman (10:23.200)
It's amazing that you can just pick an idea
Lex Fridman (10:26.640)
and go do it right now.
Lex Fridman (10:27.840)
And you don't have to be some assembly language wizard
John Carmack (10:30.520)
or deep GPU arcanist to be able to figure out
Lex Fridman (10:33.840)
how to make your wishes happen.
John Carmack (10:35.160)
Well, there's still, see, that's true.
Lex Fridman (10:38.400)
But let me put on my old man with a fist hat
Lex Fridman (10:41.320)
and say that probably the thing that will define the future
Lex Fridman (10:45.200)
still requires you to operate at the limits
John Carmack (10:48.720)
of the current system.
Lex Fridman (10:49.720)
So we'll probably talk about this.
Lex Fridman (10:51.880)
But if you talk about building the metaverse
Lex Fridman (10:54.440)
and building a VR experience that's compelling,
John Carmack (10:57.120)
it probably requires you to not, to go to assembly
Lex Fridman (11:01.280)
or maybe not literally, but sort of spiritually
John Carmack (11:05.840)
to go to the limits of what the system is capable of.
Lex Fridman (11:08.360)
And that really was why virtual reality
John Carmack (11:10.840)
was specifically interesting to me
Lex Fridman (11:13.640)
where it had all the ties to,
John Carmack (11:15.000)
you could say that even back in the early days,
Lex Fridman (11:17.080)
I have some old magazine articles
John Carmack (11:19.160)
that's talking about Doom as a virtual reality experience
Lex Fridman (11:22.160)
back when just seeing anything in 3D.
Lex Fridman (11:25.200)
So you could say that we've been trying to build
Lex Fridman (11:27.320)
those virtual experiences from the very beginning.
Lex Fridman (11:29.640)
And in the modern era of virtual reality,
Lex Fridman (11:32.840)
especially on the mobile side of things,
John Carmack (11:34.800)
when it's standalone and you're basically using
Lex Fridman (11:36.680)
a cell phone chip to be able to produce
John Carmack (11:39.000)
these very immersive experiences,
Lex Fridman (11:41.800)
it does require work.
John Carmack (11:43.640)
It's not at the level of what an old school
Lex Fridman (11:45.720)
console game programmer would have operated at
John Carmack (11:48.480)
where you're looking at hardware registers
Lex Fridman (11:50.320)
and you're scheduling all the DMA accesses,
Lex Fridman (11:53.520)
but it is still definitely a different level
Lex Fridman (11:55.520)
than what a web developer or even a PC Steam game developer
John Carmack (12:00.160)
usually has to work at.
Lex Fridman (12:01.760)
And again, it's great.
John Carmack (12:02.840)
There's opportunities for people that wanna operate
Lex Fridman (12:04.920)
at either end of that spectrum there
Lex Fridman (12:06.400)
and still provide a lot of value to the world.
Lex Fridman (12:09.560)
Let me ask you sort of a big question about preference.
Lex Fridman (12:15.560)
What would you say is the best programming language?
Lex Fridman (12:19.920)
Your favorite, but also the best.
John Carmack (12:22.560)
You've seen throughout your career,
Lex Fridman (12:25.160)
you're considered by many to be
John Carmack (12:26.960)
the greatest programmer ever.
Lex Fridman (12:29.440)
I mean, it's so difficult to place that label on anyone,
Lex Fridman (12:32.320)
but if you put it on anyone, it's you.
Lex Fridman (12:34.000)
So let me ask you these kind of ridiculous questions
John Carmack (12:36.380)
of what's the best band of all time,
Lex Fridman (12:38.760)
but in your case, what's the best programming language?
John Carmack (12:41.520)
Everything has all the caveats about it.
Lex Fridman (12:43.520)
But so what I use, so nowadays I do program
John Carmack (12:47.480)
a reasonable amount of Python for AI, ML sorts of work.
Lex Fridman (12:52.800)
I'm not a native Python programmer.
John Carmack (12:54.440)
It's something I came to very late in my career.
Lex Fridman (12:57.000)
I understand what it's good for.
Lex Fridman (12:58.800)
But you don't dream in Python.
Lex Fridman (13:00.080)
I do not.
Lex Fridman (13:00.920)
And it has some of those things
Lex Fridman (13:02.380)
where there's some amazing stats when you say,
John Carmack (13:04.800)
if you just start, if you make a loop,
Lex Fridman (13:07.160)
a triply nested loop and start doing operations in Python,
John Carmack (13:10.980)
you can be thousands to potentially a million times slower
Lex Fridman (13:14.840)
than a proper GPU tensor operation.
Lex Fridman (13:17.600)
And these are staggering numbers.
Lex Fridman (13:19.800)
You can be as much slower as we've almost gotten faster
John Carmack (13:22.800)
in our pace of progress and all this other miraculous stuff.
Lex Fridman (13:26.920)
So your intuitions about inefficiencies
John Carmack (13:28.840)
within the Python sort of...
Lex Fridman (13:30.200)
It keeps hitting me upside the face
John Carmack (13:32.080)
where it's gotten to the point now I understand.
Lex Fridman (13:34.160)
It's like, okay, you just can't do a loop
John Carmack (13:35.840)
if you care about performance in Python.
Lex Fridman (13:38.480)
You have to figure out how you can reformat this
John Carmack (13:41.380)
into some big vector operation
Lex Fridman (13:43.100)
or something that's going to be done completely
John Carmack (13:44.920)
within a C++ library.
Lex Fridman (13:47.080)
But the other hand is it's amazingly convenient
Lex Fridman (13:49.920)
and you just see stuff that people are able
Lex Fridman (13:52.320)
to cobble together by you just import
John Carmack (13:54.560)
a few different things and you can do stuff
Lex Fridman (13:56.460)
that nobody on earth could do 10 years ago.
Lex Fridman (13:58.880)
And you can do it in a little cookbook thing
Lex Fridman (14:00.520)
that you copy paste it out of a website.
Lex Fridman (14:02.840)
So that is really great.
Lex Fridman (14:04.820)
When I'm sitting down to do what I consider
John Carmack (14:06.960)
kind of serious programming, it's still in C++.
Lex Fridman (14:10.440)
And it's really kind of a C flavored C++ at that
John Carmack (14:13.960)
where I'm not big into the modern template
Lex Fridman (14:17.160)
metaprogramming sorts of things.
John Carmack (14:18.780)
I see a lot of train wrecks coming from
Lex Fridman (14:21.280)
some of that over abstraction.
John Carmack (14:23.500)
I spent a few years really going kind of deep
Lex Fridman (14:26.800)
into the kind of the historical Lisp work
Lex Fridman (14:30.120)
and Haskell and some of the functional programming
Lex Fridman (14:32.320)
sides of things.
Lex Fridman (14:33.360)
And there is a lot of value there
Lex Fridman (14:37.040)
in the way you think about things.
Lex Fridman (14:38.700)
And I changed a lot of the way I write my C and C++ code
Lex Fridman (14:42.160)
based on what I learned about the value
John Carmack (14:44.960)
that comes out of not having this random mutable state
Lex Fridman (14:48.080)
that you kind of lose track of.
John Carmack (14:50.240)
Because something that many people don't really appreciate
Lex Fridman (14:53.640)
till they've been at it for a long time
John Carmack (14:55.500)
is that it's not the writing of the program initially,
Lex Fridman (14:58.240)
it's the whole lifespan of the program.
Lex Fridman (15:00.440)
And that's when it's not necessarily just
Lex Fridman (15:02.680)
how fast you wrote it or how fast it operates,
Lex Fridman (15:05.500)
but it's how can it bend and adapt
Lex Fridman (15:07.720)
as situations change.
Lex Fridman (15:09.240)
And then the thing that I've really been learning
Lex Fridman (15:11.160)
in my time at Meta with the Oculus and VR work
John Carmack (15:14.720)
is it's also how well it hands off
Lex Fridman (15:16.960)
between the continuous kind of revolving door of programmers
John Carmack (15:19.960)
taking over maintenance and different things
Lex Fridman (15:21.960)
and how you get people up to speed in different areas.
Lex Fridman (15:24.600)
And there's all these other different aspects of it.
Lex Fridman (15:27.140)
So C++ is a good language for handover between engineers.
John Carmack (15:32.520)
Probably not the best.
Lex Fridman (15:34.800)
And there's some really interesting aspects to this
John Carmack (15:36.900)
where in some cases languages
Lex Fridman (15:39.360)
that are not generally thought well of for many reasons,
John Carmack (15:43.460)
like C is derided pretty broadly that yes,
Lex Fridman (15:46.400)
obviously all of these security flaws
John Carmack (15:48.160)
that happen with the memory and unsafeness
Lex Fridman (15:50.400)
and buffer overruns and the things that you've got there,
Lex Fridman (15:53.920)
but there is this underappreciated aspect
Lex Fridman (15:56.680)
to the language is so simple, anyone can go.
Lex Fridman (15:59.560)
And if you know C, you can generally jump in someplace
Lex Fridman (16:03.080)
and not have to learn what paradigms they're using
John Carmack (16:06.140)
because there just aren't that many available.
Lex Fridman (16:08.320)
I think there's some really, really well written C code.
John Carmack (16:12.480)
Like I find it great that if I'm messing around
Lex Fridman (16:15.520)
with something in open BSD say,
John Carmack (16:17.120)
I mean, I can be walking around in the kernel
Lex Fridman (16:19.320)
and I'm like, I understand everything that's going on here.
John Carmack (16:22.160)
It's not hard for me to figure out what I need to do
Lex Fridman (16:25.960)
to make whatever change that I need to
John Carmack (16:29.760)
while you can have more significant languages.
Lex Fridman (16:32.820)
Like it's a downside of Lisp
John Carmack (16:34.800)
where I don't regret the time that I spent with Lisp.
Lex Fridman (16:37.320)
I think that it did help my thinking
John Carmack (16:40.880)
about programming in some ways,
Lex Fridman (16:42.780)
but the people that are the biggest defenders of Lisp
John Carmack (16:45.400)
are saying how malleable of a language it is
Lex Fridman (16:47.840)
that if you write a huge Lisp program,
John Carmack (16:50.080)
you've basically invented your own kind of language
Lex Fridman (16:53.120)
and structure because it's not the primitives
John Carmack (16:55.440)
of the language you're using very much.
Lex Fridman (16:57.000)
It's all of the things you've built on top of that.
Lex Fridman (16:59.480)
And then a language like Racket,
Lex Fridman (17:01.040)
kind of one of the more modern Lisp versions,
John Carmack (17:03.360)
it's essentially touted as a language
Lex Fridman (17:05.320)
for building other languages.
Lex Fridman (17:07.020)
And I understand the value of that
Lex Fridman (17:10.080)
for a tiny little project,
Lex Fridman (17:12.440)
but the idea of that for one of these longterm
Lex Fridman (17:14.800)
supported by lots of people kind of horrifies me
John Carmack (17:18.000)
where all of those abstractions that you're like,
Lex Fridman (17:20.480)
okay, you can't touch this code till you educate yourself
John Carmack (17:23.920)
on all of these things that we've built on top of that.
Lex Fridman (17:26.760)
And it was interesting to see how when Google made Go,
John Carmack (17:30.420)
a lot of the criticisms of that are it's like,
Lex Fridman (17:33.160)
wow, this is not a state of the art language.
John Carmack (17:35.040)
This language is just so simple and almost crude.
Lex Fridman (17:38.080)
And you could see the programming language people
John Carmack (17:40.480)
just looking down at it.
Lex Fridman (17:41.920)
But it does seem to be quite popular as basically saying,
John Carmack (17:45.360)
this is the good things about C,
Lex Fridman (17:47.240)
everybody can just jump right in and use it.
John Carmack (17:49.360)
You don't need to restructure your brain
Lex Fridman (17:52.060)
to write good code in it.
Lex Fridman (17:53.880)
So I wish that I had more opportunity
Lex Fridman (17:56.300)
for doing some work in Go.
John Carmack (17:59.000)
Rust is the other modern language that everybody talks about
Lex Fridman (18:02.160)
that I'm not fit to pass judgment on.
John Carmack (18:04.200)
I've done a little bit beyond Hello World.
Lex Fridman (18:06.620)
I wrote some like video decompression work in Rust
John Carmack (18:09.940)
just as an exercise, but that was a few years ago
Lex Fridman (18:12.720)
and I haven't really used it since.
John Carmack (18:15.040)
The best programming language is the one that works generally
Lex Fridman (18:17.640)
that you're currently using.
John Carmack (18:19.160)
Because that's another trap is in almost every case
Lex Fridman (18:22.280)
I've seen when people mixed languages on a project,
John Carmack (18:25.000)
that's a mistake.
Lex Fridman (18:26.060)
I would rather stay just in one language
Lex Fridman (18:29.000)
so that everybody can work across the entire thing.
Lex Fridman (18:31.680)
And we have, I get meta, we have a lot of projects
John Carmack (18:34.380)
that use kind of React frameworks.
Lex Fridman (18:36.400)
So you've got JavaScript here
Lex Fridman (18:37.900)
and then you have C++ for real work.
Lex Fridman (18:40.960)
And then you may have Java interfacing
John Carmack (18:42.720)
with some other part of the Android system.
Lex Fridman (18:44.680)
And those are all kind of horrible things.
Lex Fridman (18:47.000)
And that was one thing that I remember talking
Lex Fridman (18:51.320)
with Boz at Facebook about it where like,
John Carmack (18:54.640)
man, I wish we could have just said,
Lex Fridman (18:56.020)
we're only hiring C++ programmers.
Lex Fridman (18:59.000)
And he just thought from the Facebook meta perspective,
Lex Fridman (19:02.700)
well, we just wouldn't be able to find enough.
John Carmack (19:05.400)
With the thousands of programmers they've got there,
Lex Fridman (19:08.040)
it is not necessarily a dying breed,
Lex Fridman (19:10.780)
but you can sure find a lot more Java
Lex Fridman (19:12.880)
or JavaScript programmers.
Lex Fridman (19:14.960)
And I kind of mentioned that to Elon one time
Lex Fridman (19:17.860)
and he was kind of flabbergasted about that.
John Carmack (19:21.120)
It's like, well, you just,
Lex Fridman (19:22.160)
you go out and you find those programmers
Lex Fridman (19:23.960)
and you don't hire the other programmers
Lex Fridman (19:25.520)
that don't do the languages that you wanna use.
Lex Fridman (19:28.400)
But right now, I guess, yeah,
Lex Fridman (19:29.340)
they're using JavaScript on a bunch of the SpaceX work
John Carmack (19:32.360)
for the UI side of things.
Lex Fridman (19:33.760)
When you go find UI programmers,
John Carmack (19:35.420)
they're JavaScript programmers.
Lex Fridman (19:36.920)
I wonder if that's because there's a lot
John Carmack (19:38.380)
of JavaScript programmers.
Lex Fridman (19:39.720)
Because I do think that great programmers are rare.
John Carmack (19:44.720)
That it's not, you know, if you just look at statistics
Lex Fridman (19:48.360)
of how many people are using different programming languages,
John Carmack (19:51.220)
that doesn't tell you the story
Lex Fridman (19:53.280)
of what the great programmers are using.
Lex Fridman (19:55.760)
And so you have to really look at what you were speaking to,
Lex Fridman (19:59.160)
which is the fundamentals of a language.
John Carmack (1:00:03.060)
primarily for C++.
Lex Fridman (1:00:05.260)
They handle most of the languages,
Lex Fridman (1:00:06.660)
but it's based on C as the original kind of Unix heritage.
Lex Fridman (1:00:10.420)
And it's kind of like command line.
John Carmack (1:00:11.740)
It's not user friendly.
Lex Fridman (1:00:13.340)
It doesn't allow for clean visualizations
Lex Fridman (1:00:15.500)
and you're exactly right.
Lex Fridman (1:00:17.180)
So that you're using this kind of debugger
John Carmack (1:00:18.980)
usually when you're at what's end
Lex Fridman (1:00:21.020)
and there's a problem that you can't figure out why
John Carmack (1:00:23.380)
by just looking at the codes, you have to find it.
Lex Fridman (1:00:25.980)
That's how I guess normal programmers use it.
Lex Fridman (1:00:28.580)
But you're saying there should be tools
Lex Fridman (1:00:30.060)
that kind of visualize and help you
John Carmack (1:00:32.620)
as part of the programming process,
Lex Fridman (1:00:35.300)
just the normal programming process
John Carmack (1:00:37.460)
to understand the code deeper.
Lex Fridman (1:00:39.940)
Yeah, when I'm working on like my C, C++ code,
John Carmack (1:00:42.900)
I'm always running it from the debugger.
Lex Fridman (1:00:45.540)
Just I type in the code, I run it many times.
John Carmack (1:00:48.420)
The first thing I do after writing code
Lex Fridman (1:00:50.220)
is set a break point and step through the function.
John Carmack (1:00:53.020)
Now other people will say, it's like,
Lex Fridman (1:00:54.100)
oh, I do that in my head.
John Carmack (1:00:55.500)
Well, your head is a faulty interpreter
Lex Fridman (1:00:57.780)
of all those things there.
Lex Fridman (1:00:59.060)
And I've written brand new code.
Lex Fridman (1:01:01.020)
I wanna step in there
Lex Fridman (1:01:01.980)
and I'm gonna single step through that,
Lex Fridman (1:01:03.460)
examine lots of things
Lex Fridman (1:01:04.700)
and see if it's actually doing what I expected it to.
Lex Fridman (1:01:08.500)
It is a kind of companion, the debugger.
John Carmack (1:01:12.180)
Like you're now coding in an interactive way
Lex Fridman (1:01:14.860)
with another being.
John Carmack (1:01:17.700)
The debugger is a kind of dumb being,
Lex Fridman (1:01:19.420)
but it's a reliable being.
John Carmack (1:01:21.340)
That is an interesting question
Lex Fridman (1:01:22.500)
of what role does AI play in that kind of,
John Carmack (1:01:25.940)
with codecs and these kind of ability to generate code,
Lex Fridman (1:01:29.500)
that might be, you might start having tools
John Carmack (1:01:32.060)
that understand the code in interesting deep ways
Lex Fridman (1:01:35.900)
that can work with you.
John Carmack (1:01:37.780)
There's a whole spectrum there
Lex Fridman (1:01:39.020)
from static code analyzers and various kind of dynamic tools
John Carmack (1:01:43.100)
there up to AI that can conceivably grok these programs
Lex Fridman (1:01:46.660)
that literally no human can understand.
John Carmack (1:01:49.060)
They're too big, too intertwined and too interconnected,
Lex Fridman (1:01:51.940)
but it's not beyond the possibility of understanding.
John Carmack (1:01:54.940)
It's just beyond what we can hold in our heads
Lex Fridman (1:01:57.820)
as kind of mutable state while we're working on things.
Lex Fridman (1:02:00.860)
And I'm a big proponent, again,
Lex Fridman (1:02:03.260)
of things like static analyzers and some of that stuff
John Carmack (1:02:06.140)
where you'll find some people that don't like being scolded
Lex Fridman (1:02:10.420)
by a program for how they've written something
John Carmack (1:02:12.660)
where it's like, oh, I know better.
Lex Fridman (1:02:14.100)
And sometimes you do, but that was something
John Carmack (1:02:16.460)
that it was very, very valuable for me
Lex Fridman (1:02:20.580)
when, and not too many people get an opportunity
John Carmack (1:02:23.220)
like this to have.
Lex Fridman (1:02:24.060)
This is almost one of those spiritual experiences
John Carmack (1:02:26.060)
as a programmer, an awakening to,
Lex Fridman (1:02:28.900)
the id software code bases
John Carmack (1:02:30.300)
were a couple of million lines of code.
Lex Fridman (1:02:32.220)
And at one point I had used a few
John Carmack (1:02:34.660)
of the different analysis tools,
Lex Fridman (1:02:36.300)
but I made a point to really go through
Lex Fridman (1:02:39.580)
and scrub the code base using every tool that I could find.
Lex Fridman (1:02:43.260)
And it was eyeopening where we had a reputation
John Carmack (1:02:45.620)
for having some of the most robust, strongest code,
Lex Fridman (1:02:48.740)
where there were some great things
John Carmack (1:02:50.700)
that I remember hearing from Microsoft
Lex Fridman (1:02:52.940)
telling us about crashes on Xbox.
Lex Fridman (1:02:54.980)
And we had this tiny number that they said
Lex Fridman (1:02:56.780)
were probably literally hardware errors.
Lex Fridman (1:02:59.380)
And then you have other significant titles
Lex Fridman (1:03:01.380)
that just have millions of faults
John Carmack (1:03:03.380)
that are getting recorded all the time.
Lex Fridman (1:03:04.900)
So I was proud of our code on a lot of levels,
Lex Fridman (1:03:07.620)
but when I took this code analysis squeegee
Lex Fridman (1:03:10.700)
through everything, it was shocking
Lex Fridman (1:03:14.420)
how many errors there were in there.
Lex Fridman (1:03:16.740)
Things that you can say, okay, this was a copy paste,
John Carmack (1:03:19.780)
not changing something right here.
Lex Fridman (1:03:21.700)
Lots of things that were, the most common problem
John Carmack (1:03:25.220)
was something in a printf format string
Lex Fridman (1:03:27.780)
that was the wrong data type that could cause crashes there.
Lex Fridman (1:03:30.460)
And you really want the warnings for things like that.
Lex Fridman (1:03:33.340)
Then the next most common was missing a check for null
John Carmack (1:03:36.140)
that could actually happen, that could blow things up.
Lex Fridman (1:03:38.420)
And those are obviously like top C, C++ things.
John Carmack (1:03:41.580)
Everybody has those problems.
Lex Fridman (1:03:43.340)
But the long tail of all of the different little things
John Carmack (1:03:46.180)
that could go wrong there, and we had good programmers
Lex Fridman (1:03:49.100)
and my own code, stuff that I'd be looking at,
John Carmack (1:03:51.020)
it's like, oh, I wrote that code, that's definitely wrong.
Lex Fridman (1:03:53.700)
We've been using this for a year
Lex Fridman (1:03:56.100)
and it's this submarine, this mine sitting there
Lex Fridman (1:03:59.660)
waiting for us to step on.
Lex Fridman (1:04:01.660)
And it was humbling.
Lex Fridman (1:04:03.700)
It was, and I reached the conclusion
John Carmack (1:04:05.980)
that anything that can be syntactically allowed
Lex Fridman (1:04:09.380)
in your language, if it's gonna show up eventually
John Carmack (1:04:13.380)
in a large enough code base,
Lex Fridman (1:04:15.420)
you're not gonna, good intentions
John Carmack (1:04:16.900)
aren't going to keep it from happening.
Lex Fridman (1:04:18.740)
You need automated tools and guardrails for things.
Lex Fridman (1:04:21.820)
And those start with things like static types
Lex Fridman (1:04:24.060)
and or even type hints in the more dynamic languages.
Lex Fridman (1:04:26.980)
But the people that rebel against that,
Lex Fridman (1:04:30.180)
that basically say that slows me down doing that.
John Carmack (1:04:33.660)
There's something to that, I get that.
Lex Fridman (1:04:35.260)
I've written, I've cobbled things together in a notebook.
John Carmack (1:04:38.860)
I'm like, wow, this is great that it just happened,
Lex Fridman (1:04:41.020)
but yeah, that's kind of sketchy,
Lex Fridman (1:04:42.500)
but it's working fine, I don't care.
Lex Fridman (1:04:44.020)
It does come back to that value analysis
John Carmack (1:04:47.140)
where sometimes it's right to not care.
Lex Fridman (1:04:49.740)
But when you do care, if it's going to be something
John Carmack (1:04:52.460)
that's going to live for years
Lex Fridman (1:04:53.900)
and it's gonna have other people working on it,
Lex Fridman (1:04:56.300)
and it's gonna be deployed to millions of people,
Lex Fridman (1:04:59.060)
then you wanna use all of these tools.
John Carmack (1:05:01.180)
You wanna be told it's like, no,
Lex Fridman (1:05:02.780)
you've screwed up here, here and here.
Lex Fridman (1:05:04.340)
And that does require kind of an ego check about things
Lex Fridman (1:05:08.020)
where you have to be open to the fact
John Carmack (1:05:11.180)
that everything that you're doing
Lex Fridman (1:05:12.260)
is just littered with flaws.
John Carmack (1:05:14.020)
It's not that, oh, you occasionally have a bad day.
Lex Fridman (1:05:16.380)
It's just whatever stream of code you output,
John Carmack (1:05:19.180)
there is going to be a statistical regularity of things
Lex Fridman (1:05:21.780)
that you just make mistakes on.
Lex Fridman (1:05:24.140)
And I do think there's the whole argument
Lex Fridman (1:05:27.420)
about test driven design and unit testing
John Carmack (1:05:29.980)
versus kind of analysis and different things.
Lex Fridman (1:05:33.020)
I am more in favor of the analysis and the stuff
John Carmack (1:05:36.020)
that just like you can't run your program
Lex Fridman (1:05:37.660)
until you fix this rather than you can run it
Lex Fridman (1:05:40.220)
and hopefully a unit test will catch it in some way.
Lex Fridman (1:05:42.980)
Yeah, in my private code, I have asserts everywhere.
John Carmack (1:05:46.660)
Yeah.
Lex Fridman (1:05:48.420)
There's something pleasant to me, pleasurable to me
John Carmack (1:05:52.340)
about sort of the dictatorial rule of like,
Lex Fridman (1:05:55.300)
this should be true at this point.
Lex Fridman (1:05:58.340)
And too many times I've made mistakes
Lex Fridman (1:06:03.420)
that shouldn't have been made.
Lex Fridman (1:06:05.820)
And I would assume I wouldn't be the kind of person
Lex Fridman (1:06:08.500)
that would make that mistake,
Lex Fridman (1:06:09.340)
but I keep making that mistake.
Lex Fridman (1:06:10.580)
Therefore, an assert really catches me,
John Carmack (1:06:13.940)
really helps all the time.
Lex Fridman (1:06:15.340)
So my code, I would say like 10 to 20% of my private code
John Carmack (1:06:19.020)
just for personal use is probably asserts.
Lex Fridman (1:06:21.420)
And they're active comments.
John Carmack (1:06:22.540)
That's one of those things that in theory,
Lex Fridman (1:06:24.900)
they don't make any difference to the program.
Lex Fridman (1:06:27.220)
And if it was all operating the way you expected
Lex Fridman (1:06:29.540)
it would be, then they will never fire.
Lex Fridman (1:06:32.740)
But even if you have it right
Lex Fridman (1:06:34.660)
and you wrote the code right initially,
John Carmack (1:06:36.820)
then circumstances change.
Lex Fridman (1:06:38.380)
The world outside your program changes.
Lex Fridman (1:06:40.860)
And in fact, that's one of the things
Lex Fridman (1:06:42.900)
where I'm kind of fond in a lot of cases
John Carmack (1:06:45.460)
of static array size declarations,
Lex Fridman (1:06:47.580)
where I went through this period where it's like,
John Carmack (1:06:49.860)
okay, now we have general collection classes.
Lex Fridman (1:06:51.980)
We should just make everything variable
John Carmack (1:06:54.460)
because I had this history of in the early days,
Lex Fridman (1:06:57.540)
you get doom, which had some fixed limits on it.
John Carmack (1:07:00.020)
Then everybody started making crazier and crazier things.
Lex Fridman (1:07:02.580)
And they kept bumping up the different limits,
John Carmack (1:07:04.180)
this many lines, this many sectors.
Lex Fridman (1:07:06.820)
And it seemed like a good idea,
John Carmack (1:07:09.020)
well, we should just make this completely generic.
Lex Fridman (1:07:10.900)
It can go kind of go up to whatever.
Lex Fridman (1:07:13.780)
And there's cases where that's the right thing to do,
Lex Fridman (1:07:17.340)
but it also, the other aspect of the world
John Carmack (1:07:19.820)
changing around you is it's good to be informed
Lex Fridman (1:07:23.060)
when the world has changed more than you thought it would.
Lex Fridman (1:07:25.700)
And if you've got a continuously growing collection,
Lex Fridman (1:07:28.420)
you're never gonna find out.
John Carmack (1:07:29.580)
You might have this quadratic slow down on something
Lex Fridman (1:07:32.220)
where you thought, oh, I'm only ever gonna have
John Carmack (1:07:34.460)
a handful of these, but something changes
Lex Fridman (1:07:36.900)
and there's a new design style.
Lex Fridman (1:07:38.220)
And all of a sudden you've got 10,000 of them.
Lex Fridman (1:07:40.780)
So I kind of like in many cases, picking a number,
John Carmack (1:07:44.900)
some nice brown power of two number
Lex Fridman (1:07:47.580)
and setting it up in there and having an assert saying,
John Carmack (1:07:49.900)
it's like, hey, you hit this limit.
Lex Fridman (1:07:52.180)
You should probably think are the choices
John Carmack (1:07:54.340)
that you've made around all of this still relevant
Lex Fridman (1:07:56.940)
if somebody's using 10 times more
John Carmack (1:07:59.260)
than you thought they would.
Lex Fridman (1:08:00.340)
Yeah, this code was originally written
John Carmack (1:08:02.620)
with this kind of worldview,
Lex Fridman (1:08:04.420)
with this kind of set of constraints.
John Carmack (1:08:06.700)
You were thinking of the world in this way.
Lex Fridman (1:08:09.380)
If something breaks, that means you gotta rethink
John Carmack (1:08:11.740)
the initial stuff.
Lex Fridman (1:08:13.100)
And it's nice for it to do that.
Lex Fridman (1:08:16.500)
Is there any stuff like a keyboard or monitors?
Lex Fridman (1:08:21.500)
I'm a fairly pedestrian on a lot of that
John Carmack (1:08:23.780)
where I did move to triple monitors
Lex Fridman (1:08:26.140)
like in the last several years ago.
John Carmack (1:08:27.660)
I had been dual monitor for a very long time.
Lex Fridman (1:08:30.180)
And it was one of those things where probably years later
John Carmack (1:08:34.820)
than I should have, I'm just like, well,
Lex Fridman (1:08:36.140)
the video cards now generally have three output ports.
John Carmack (1:08:38.660)
I should just put the third monitor up there.
Lex Fridman (1:08:40.420)
That's been a pure win.
John Carmack (1:08:41.900)
I've been very happy with that.
Lex Fridman (1:08:44.380)
But no, I don't have fancy keyboard or mouse
John Carmack (1:08:47.140)
or anything really going on.
Lex Fridman (1:08:48.540)
The key things is an IDE that has helpful debuggers,
John Carmack (1:08:52.540)
has helpful tools.
Lex Fridman (1:08:54.100)
So it's not the Emacs Vim route and then Dicode.
John Carmack (1:08:56.980)
Yeah, so I did spend,
Lex Fridman (1:08:58.780)
I spent one of my week long retreats where I'm like,
John Carmack (1:09:01.940)
okay, I'm gonna make myself use,
Lex Fridman (1:09:04.260)
it was actually classic VI,
John Carmack (1:09:05.540)
which I know people will say you should never have done that.
Lex Fridman (1:09:07.380)
You should have just used Vim directly.
Lex Fridman (1:09:09.340)
But I gave it the good try.
Lex Fridman (1:09:11.340)
It's like, okay, I'm being in kind of classic
John Carmack (1:09:13.980)
Unix developer mode here.
Lex Fridman (1:09:15.740)
And I worked for a week on it.
John Carmack (1:09:18.580)
I used Anki to like teach myself
Lex Fridman (1:09:20.580)
the different little key combinations
John Carmack (1:09:22.860)
for things like that.
Lex Fridman (1:09:23.980)
And in the end, it was just like, all right,
John Carmack (1:09:26.020)
this was kind of like my civil war reenactment phase.
Lex Fridman (1:09:28.940)
It's like, I'm going out there doing it
John Carmack (1:09:30.380)
like they used to in the old days.
Lex Fridman (1:09:31.980)
And it was kind of fun in that regard.
Lex Fridman (1:09:34.060)
So many people right now.
Lex Fridman (1:09:35.300)
They're screaming as they're listening to this.
Lex Fridman (1:09:38.660)
So again, the out is that this was not modern Vim,
Lex Fridman (1:09:41.180)
but still, yes, I was very happy to get back
John Carmack (1:09:44.620)
to my visual studio at the end.
Lex Fridman (1:09:46.820)
Yeah, I'm actually, I struggle with this a lot
John Carmack (1:09:49.540)
because I use a Kinesis keyboard
Lex Fridman (1:09:52.100)
and I use Emacs primarily.
Lex Fridman (1:09:56.020)
And I feel like I can, exactly as you said,
Lex Fridman (1:09:59.140)
I can understand the code.
John Carmack (1:10:00.220)
I can navigate the code.
Lex Fridman (1:10:01.300)
There's a lot of stuff you could build with an Emacs
John Carmack (1:10:03.700)
with using Lisp.
Lex Fridman (1:10:04.820)
You can customize a lot of things for yourself
John Carmack (1:10:07.300)
to help you introspect the code,
Lex Fridman (1:10:09.900)
like to help you understand the code
Lex Fridman (1:10:11.620)
and visualize different aspects of the code.
Lex Fridman (1:10:13.060)
You can even run debuggers,
Lex Fridman (1:10:14.500)
but it's work and the world moves past you
Lex Fridman (1:10:18.940)
and the better and better ideas are constantly being built.
Lex Fridman (1:10:21.900)
And that puts a kind of,
Lex Fridman (1:10:25.420)
I need to take the same kind of retreat
John Carmack (1:10:27.220)
as you're talking about,
Lex Fridman (1:10:28.300)
but now I'm still fighting the civil war.
John Carmack (1:10:30.860)
I need to kind of move into the 21st century.
Lex Fridman (1:10:33.220)
And it does seem like the world is,
John Carmack (1:10:34.980)
or a large chunk of the world is moving
Lex Fridman (1:10:37.060)
towards visual studio code,
John Carmack (1:10:38.660)
which is kind of interesting to me.
Lex Fridman (1:10:40.420)
Again, it's the JavaScript ecosystem on the one hand
Lex Fridman (1:10:43.260)
and IDs are one of those things
Lex Fridman (1:10:45.380)
that you want to be infinitely fast.
John Carmack (1:10:47.860)
You want them to just kind of immediately respond.
Lex Fridman (1:10:50.940)
And like, I mean, heck, I've got,
John Carmack (1:10:52.500)
there's someone I know,
Lex Fridman (1:10:53.340)
I'm an old school game dev guy
John Carmack (1:10:55.100)
that still uses visual studio six.
Lex Fridman (1:10:57.420)
And on a modern computer,
John Carmack (1:10:59.460)
everything is just absolutely instant
Lex Fridman (1:11:01.940)
on something like that,
John Carmack (1:11:02.940)
because it was made to work on a computer
Lex Fridman (1:11:04.620)
that's 10,000 or a hundred thousand times slower.
Lex Fridman (1:11:07.820)
So just everything happens immediately.
Lex Fridman (1:11:10.540)
And all the modern systems just feel,
John Carmack (1:11:13.500)
they feel so crufty when it's like,
Lex Fridman (1:11:15.300)
oh, why is this refreshing the screen
Lex Fridman (1:11:17.260)
and moving around and updating over here?
Lex Fridman (1:11:19.220)
And something blinks down there
Lex Fridman (1:11:20.660)
and you should update this.
Lex Fridman (1:11:21.820)
And there are things that we've lost
John Carmack (1:11:25.660)
with that incredible flexibility,
Lex Fridman (1:11:27.380)
but lots of people get tons of value from it.
Lex Fridman (1:11:31.060)
And I am super happy that that seems to be winning
Lex Fridman (1:11:33.540)
over even a lot of the old Vim and Emacs people
John Carmack (1:11:36.140)
that they're kind of like,
Lex Fridman (1:11:37.140)
hey, visual studio codes, maybe not so bad.
John Carmack (1:11:40.060)
I am, that may be the final peacekeeping solution
Lex Fridman (1:11:43.260)
where everybody is reasonably happy
John Carmack (1:11:45.620)
with something like that.
Lex Fridman (1:11:47.900)
So can you explain what a dot plan file is
Lex Fridman (1:11:50.540)
and what role that played in your life?
Lex Fridman (1:11:53.420)
Does it still continue to play a role?
John Carmack (1:11:55.540)
Back in the early, early days of id Software,
Lex Fridman (1:11:58.660)
one of our big things that was unique with what we did
John Carmack (1:12:01.180)
is I had adopted next stations
Lex Fridman (1:12:04.020)
or kind of next step systems
John Carmack (1:12:05.660)
from Steve Jobs's out in the woods away from Apple company.
Lex Fridman (1:12:11.660)
And they were basically, it was kind of interesting
John Carmack (1:12:15.180)
because I did not really have a background
Lex Fridman (1:12:17.140)
with the Unix system.
Lex Fridman (1:12:18.020)
So many of the people they get immersed in that in college
Lex Fridman (1:12:21.820)
and that sets a lot of cultural expectations for them.
Lex Fridman (1:12:27.500)
And I didn't have any of that,
Lex Fridman (1:12:29.300)
but I knew that my background was,
John Carmack (1:12:31.940)
I was a huge Apple II fan boy.
Lex Fridman (1:12:34.420)
I was always a little suspicious of the Mac.
John Carmack (1:12:36.420)
I was not really what kind of I wanted to go with.
Lex Fridman (1:12:41.380)
But when Steve Jobs left Apple and started Next,
John Carmack (1:12:44.540)
this computer did just seem like one of those amazing things
Lex Fridman (1:12:46.940)
from the future where it had all of this cool stuff in it.
Lex Fridman (1:12:50.460)
And we were still back in those days working on DOS,
Lex Fridman (1:12:53.340)
everything blew up.
John Carmack (1:12:54.220)
You had reset buttons
Lex Fridman (1:12:55.540)
because your computer would just freeze.
John Carmack (1:12:56.980)
If you're doing development work,
Lex Fridman (1:12:58.420)
literally dozens of times a day,
John Carmack (1:12:59.940)
your computer was just rebooting constantly.
Lex Fridman (1:13:02.420)
And so this idea of, yes, any of the Unix workstations
John Carmack (1:13:06.420)
would have given a stable development platform
Lex Fridman (1:13:08.620)
where you don't crash and reboot all the time.
Lex Fridman (1:13:11.420)
But Next also had this really amazing graphical interface
Lex Fridman (1:13:15.540)
and it was great for building tools.
Lex Fridman (1:13:17.420)
And it used Objective C as kind of an interesting dead end
Lex Fridman (1:13:22.500)
for things like that.
Lex Fridman (1:13:23.340)
So Next was Unix based, it said Objective C.
Lex Fridman (1:13:26.140)
So it has a lot of the elements.
John Carmack (1:13:27.780)
That became Mac.
Lex Fridman (1:13:28.700)
I mean, the kind of reverse acquisition of Apple by Next
John Carmack (1:13:31.420)
where that took over
Lex Fridman (1:13:32.780)
and became what the modern Mac system is.
Lex Fridman (1:13:35.300)
And to find some of the developer,
Lex Fridman (1:13:38.300)
like the tools and the whole community.
John Carmack (1:13:41.540)
Yeah, you've still got,
Lex Fridman (1:13:42.380)
if you're programming on Apple stuff now,
John Carmack (1:13:43.820)
there's still all these NS somethings,
Lex Fridman (1:13:45.620)
which was originally Next step objects
John Carmack (1:13:47.660)
of different kinds of things.
Lex Fridman (1:13:49.420)
But one of the aspects of those Unix systems
John Carmack (1:13:52.900)
was they had this notion of a.plan file
Lex Fridman (1:13:56.220)
where a.file is an invisible file.
John Carmack (1:14:00.220)
Usually in your home directory or something.
Lex Fridman (1:14:02.060)
And there was a trivial server running
John Carmack (1:14:03.700)
on most Unix systems at the time
Lex Fridman (1:14:05.900)
that when somebody ran a trivial little command
John Carmack (1:14:09.620)
called finger, you could do finger
Lex Fridman (1:14:11.980)
and then somebody's address,
John Carmack (1:14:13.500)
it could be anywhere on the internet
Lex Fridman (1:14:15.140)
if you were connected correctly.
John Carmack (1:14:16.780)
Then all that server would do was read the.plan file
Lex Fridman (1:14:20.740)
in that user's home directory
Lex Fridman (1:14:22.460)
and then just spit it out to you.
Lex Fridman (1:14:24.460)
And originally the idea was that could be
John Carmack (1:14:27.140)
whether you're on vacation, what your current project was.
Lex Fridman (1:14:30.060)
It's supposed to be like the plan of what you're doing.
Lex Fridman (1:14:32.420)
And people would use it for various purposes,
Lex Fridman (1:14:35.700)
but all it did was dump that file over
John Carmack (1:14:39.220)
to the terminal of whoever issued the finger command.
Lex Fridman (1:14:42.660)
And at one point I started just keeping a list
John Carmack (1:14:46.820)
of what I was doing in there,
Lex Fridman (1:14:48.860)
which would be what I was working on in the day.
Lex Fridman (1:14:51.060)
And I would have this little syntax.
Lex Fridman (1:14:53.620)
I kind of got to myself about,
John Carmack (1:14:55.740)
here's something that I'm working on.
Lex Fridman (1:14:57.140)
I put a star when I finish it.
John Carmack (1:14:58.700)
I could have a few other little bits of punctuation.
Lex Fridman (1:15:01.380)
And at the time it was,
John Carmack (1:15:02.900)
it started off as being just like my to do list.
Lex Fridman (1:15:05.540)
And it would be these trivial, obscure little things
John Carmack (1:15:08.620)
like I fixed something with collision detection code,
Lex Fridman (1:15:12.740)
made Fireball do something different
Lex Fridman (1:15:14.900)
and just little one liners that people
Lex Fridman (1:15:16.700)
that were following the games could kind of decipher.
Lex Fridman (1:15:20.060)
But I did wind up starting to write much more in depth things.
Lex Fridman (1:15:24.220)
I would have little notes of thoughts and insights
Lex Fridman (1:15:28.460)
and then I would eventually start having little essays.
Lex Fridman (1:15:30.420)
I would sometimes dump into the dot plan files
John Carmack (1:15:33.020)
interspersed with the work logs of things that I was doing.
Lex Fridman (1:15:36.180)
So in some ways it was like a super early proto blog
John Carmack (1:15:39.620)
where I was just kind of dumping out what I was working on.
Lex Fridman (1:15:42.620)
But it was interesting enough that there were a lot
John Carmack (1:15:45.460)
of people that were interested in this.
Lex Fridman (1:15:48.740)
So most of the people didn't have Unix workstation.
Lex Fridman (1:15:51.220)
So there were the websites back in the day
Lex Fridman (1:15:53.300)
that would follow the Doom and Quake development
John Carmack (1:15:55.500)
that would basically make a little service
Lex Fridman (1:15:58.380)
that would go grab all the changes
Lex Fridman (1:15:59.780)
and then people could just get it with a web browser.
Lex Fridman (1:16:02.180)
And there was a period where like all of the little
John Carmack (1:16:04.940)
kind of Dallas gaming diaspora of people
Lex Fridman (1:16:07.580)
that were at all in that orbit,
John Carmack (1:16:09.340)
there were a couple dozen plan files going on,
Lex Fridman (1:16:12.220)
which was, and this was some years before blogging
John Carmack (1:16:15.460)
really became kind of a thing.
Lex Fridman (1:16:17.180)
And it was kind of a premonition
John Carmack (1:16:20.420)
of sort of the way things would go.
Lex Fridman (1:16:22.220)
And there was, it's all been collected.
John Carmack (1:16:25.020)
It's available online in different places.
Lex Fridman (1:16:27.060)
And it's kind of fun to go back and look through
Lex Fridman (1:16:29.340)
what I was thinking, what I was doing in the different areas.
Lex Fridman (1:16:32.420)
Have you had a chance to look back?
John Carmack (1:16:33.780)
Is there some interesting, very low level specific
Lex Fridman (1:16:37.340)
to do items, maybe things you've never completed,
John Carmack (1:16:40.380)
all that kind of stuff and high level philosophical essay
Lex Fridman (1:16:44.180)
type of stuff that stands out?
John Carmack (1:16:46.300)
Yeah, there's some good stuff on both
Lex Fridman (1:16:48.340)
where a lot of it was low level nitpicky details
John Carmack (1:16:51.940)
about game dev and I've learned enough things
Lex Fridman (1:16:55.820)
where there's no project that I worked on
John Carmack (1:16:58.300)
that I couldn't go back and do a better job on now.
Lex Fridman (1:17:00.620)
I mean, you just, you learn things,
John Carmack (1:17:02.380)
hopefully if you're doing it right,
Lex Fridman (1:17:03.820)
you learn things as you get older
Lex Fridman (1:17:05.340)
and you should be able to do a better job
Lex Fridman (1:17:07.300)
at all of the early things.
Lex Fridman (1:17:08.700)
And there's stuff in Wolfenstein Doomquake that's like,
Lex Fridman (1:17:12.220)
oh, clearly I could go back and do a better job at this,
John Carmack (1:17:15.780)
whether it's something in the rendering engine side
Lex Fridman (1:17:17.860)
or how I implemented the monster behaviors
John Carmack (1:17:20.940)
or managed resources or anything like that.
Lex Fridman (1:17:22.780)
Do you see the flaws in your thinking now?
Lex Fridman (1:17:24.980)
Like looking back?
Lex Fridman (1:17:26.220)
Yeah, I do.
John Carmack (1:17:27.060)
I mean, sometimes I'll get the,
Lex Fridman (1:17:29.060)
I'll look at it and say, yeah, I had a pretty clear view
John Carmack (1:17:31.500)
of I was doing good work there.
Lex Fridman (1:17:33.940)
And I haven't really hit the point
John Carmack (1:17:35.940)
where there was another programmer, Graham Devine,
Lex Fridman (1:17:38.740)
who was, he had worked at ID and Seventh Guest
Lex Fridman (1:17:41.740)
and he made some comment one time
Lex Fridman (1:17:43.700)
where he said he looked back at some of his old notes
Lex Fridman (1:17:45.660)
and he was like, wow, I was really smart back then.
Lex Fridman (1:17:48.740)
And I don't hit that so much where,
John Carmack (1:17:52.140)
I mean, I look at it and I always know that,
Lex Fridman (1:17:54.300)
yeah, there's all the, you know, with aging,
John Carmack (1:17:56.500)
you get certain changes in how you're able to work problems,
Lex Fridman (1:18:00.060)
but all of the problems that I've worked,
John Carmack (1:18:02.260)
I'm sure that I could do a better job on all of them.
Lex Fridman (1:18:06.260)
Oh, wow.
Lex Fridman (1:18:07.100)
So you can still step right in.
Lex Fridman (1:18:08.380)
If you could travel back in time and talk to that guy,
John Carmack (1:18:10.900)
you would teach him a few things.
Lex Fridman (1:18:12.060)
Yeah, absolutely.
John Carmack (1:18:14.260)
That's awesome.
Lex Fridman (1:18:15.860)
What about the high level philosophical stuff?
Lex Fridman (1:18:18.020)
Is there some insights that stand out that you remember?
Lex Fridman (1:18:20.620)
There's things that I was understanding about development
John Carmack (1:18:25.340)
and, you know, in the industry and so on
Lex Fridman (1:18:28.140)
that were in a more primitive stage
John Carmack (1:18:31.300)
where I definitely learned a lot more in the later years
Lex Fridman (1:18:36.620)
about business and organization and team structure.
John Carmack (1:18:41.300)
There were, I mean, there were definitely things
Lex Fridman (1:18:44.580)
that I was not the best person
John Carmack (1:18:46.820)
or even a very good person about managing,
Lex Fridman (1:18:48.900)
like how a team should operate internally,
Lex Fridman (1:18:51.580)
how people should work together.
Lex Fridman (1:18:53.420)
I was just, you know, just get out of my way
Lex Fridman (1:18:57.420)
and let me work on the code and do this.
Lex Fridman (1:18:59.500)
And more and more, I've learned how,
John Carmack (1:19:03.420)
in the larger scheme of things,
Lex Fridman (1:19:04.980)
how sometimes relatively unimportant
John Carmack (1:19:07.220)
some of those things are,
Lex Fridman (1:19:08.340)
where it is this user value generation
John Carmack (1:19:11.020)
that's the overarching importance for all of that.
Lex Fridman (1:19:14.060)
And I didn't necessarily have my eye on that ball correctly
John Carmack (1:19:17.940)
through a lot of my, you know, my earlier years.
Lex Fridman (1:19:21.180)
And there's things that, you know,
John Carmack (1:19:23.380)
I could have gotten more out of people
Lex Fridman (1:19:25.580)
handling things in different ways.
John Carmack (1:19:27.460)
I am, you know, I could have made, you know,
Lex Fridman (1:19:29.780)
in some ways more successful products
John Carmack (1:19:32.020)
by following things in different ways.
Lex Fridman (1:19:33.820)
There's mistakes that we made
John Carmack (1:19:35.340)
that we couldn't really have known
Lex Fridman (1:19:37.180)
how things would have worked out,
Lex Fridman (1:19:38.500)
but it was interesting to see in later years companies
Lex Fridman (1:19:41.220)
like Activision showing that,
John Carmack (1:19:42.380)
hey, you really can just do the same game,
Lex Fridman (1:19:44.980)
make it better every year.
Lex Fridman (1:19:46.580)
And you can look at that from a negative standpoint
Lex Fridman (1:19:48.540)
and say, it's like, oh, that's just being derivative
Lex Fridman (1:19:50.500)
and all that.
Lex Fridman (1:19:51.460)
But if you step back again and say, it's like, no,
Lex Fridman (1:19:53.580)
are the people buying it still enjoying it?
Lex Fridman (1:19:55.460)
Are they enjoying it more
Lex Fridman (1:19:56.500)
than what they might have bought otherwise?
Lex Fridman (1:19:59.060)
And you can say, no, that's actually
John Carmack (1:20:00.900)
a great value creation engine to do that
Lex Fridman (1:20:03.660)
if you're in a position where you can.
John Carmack (1:20:05.980)
I, you know, don't be forced into reinventing everything
Lex Fridman (1:20:09.260)
just because you think that you need to.
John Carmack (1:20:12.740)
You know, lots of things about business and team stuff
Lex Fridman (1:20:15.860)
that could be done better, but the technical work,
John Carmack (1:20:18.460)
the kind of technical visionary type stuff
Lex Fridman (1:20:20.740)
that I laid out, I still feel pretty good about.
John Carmack (1:20:23.860)
There are some classic old ones about my defending
Lex Fridman (1:20:26.540)
of OpenGL versus D3D,
John Carmack (1:20:29.220)
which turned out to be one of the more
Lex Fridman (1:20:32.180)
probably important momentous things there
John Carmack (1:20:34.420)
where it never, it was always a rear guard action on Windows
Lex Fridman (1:20:38.820)
where Microsoft was just not gonna let that win.
Lex Fridman (1:20:42.260)
But when I look back on it now,
Lex Fridman (1:20:44.300)
that fight to keep OpenGL relevant
John Carmack (1:20:46.660)
for a number of years there
Lex Fridman (1:20:48.740)
meant that OpenGL was there when mobile started happening
Lex Fridman (1:20:52.580)
and OpenGL ES was the thing that drove
Lex Fridman (1:20:55.580)
all of the acceleration of the mobile industry.
Lex Fridman (1:20:58.540)
And it's really only in the last few years
Lex Fridman (1:21:00.860)
as Apple's moved to Metal
Lex Fridman (1:21:02.460)
and some of the other companies have moved to Vulkan
Lex Fridman (1:21:04.980)
that that's moved away.
Lex Fridman (1:21:06.700)
But really stepping back and looking at it,
Lex Fridman (1:21:09.420)
it's like, yeah, I sold tens of millions of games
John Carmack (1:21:11.900)
for different things.
Lex Fridman (1:21:13.580)
But billions and billions of devices wound up
John Carmack (1:21:17.380)
with an appropriate capable graphics API
Lex Fridman (1:21:21.220)
due in no small part to me thinking
John Carmack (1:21:23.740)
that that was really important
Lex Fridman (1:21:25.180)
that we not just give up and use Microsoft's
John Carmack (1:21:30.540)
at that time really terrible API.
Lex Fridman (1:21:32.900)
The thing about Microsoft is the APIs don't stay terrible.
John Carmack (1:21:35.820)
They were terrible at the start, but a few versions on,
Lex Fridman (1:21:38.940)
they were actually quite good.
Lex Fridman (1:21:40.060)
And there was a completely fair argument to be made
Lex Fridman (1:21:42.460)
that by the time DX9 was out,
John Carmack (1:21:45.020)
it was probably a better programming environment
Lex Fridman (1:21:47.220)
than OpenGL, but it was still a wonderful good thing
John Carmack (1:21:51.100)
that we had an open standard
Lex Fridman (1:21:52.540)
that could show up on Linux and Android and iOS
Lex Fridman (1:21:55.740)
and eventually WebGL still to this day.
Lex Fridman (1:21:58.620)
So that was one, that would be on my greatest hits list
John Carmack (1:22:02.620)
of things that I kind of pushed with.
Lex Fridman (1:22:04.460)
The impact it had on billions of devices, yes.
Lex Fridman (1:22:07.700)
So let's talk about it.
Lex Fridman (1:22:08.940)
Can you tell the origin story of id Software?
John Carmack (1:22:12.380)
Again, one of the greatest game developer companies ever.
Lex Fridman (1:22:16.340)
It created Wolfenstein 3D games
John Carmack (1:22:18.900)
that defined my life also in many ways
Lex Fridman (1:22:22.580)
as a thing that made me realize
Lex Fridman (1:22:24.280)
what computers are capable of in terms of graphics,
Lex Fridman (1:22:26.700)
in terms of performance, it just unlocked something deep
John Carmack (1:22:31.620)
in me and understanding what these machines are all about
Lex Fridman (1:22:34.220)
as games can do that.
Lex Fridman (1:22:35.140)
So Wolfenstein 3D, Doom, Quake,
Lex Fridman (1:22:37.420)
and just all the incredible engineering innovation
John Carmack (1:22:40.700)
that went into that.
Lex Fridman (1:22:41.780)
So how did it all start?
Lex Fridman (1:22:44.300)
So I'll caveat upfront
Lex Fridman (1:22:45.940)
that I usually don't consider myself the historian
John Carmack (1:22:49.460)
of the software side of things.
Lex Fridman (1:22:51.480)
I usually do kind of point people at John Romero
John Carmack (1:22:55.020)
for stories about the early days where I've never been,
Lex Fridman (1:23:00.140)
like I've commented that I'm a remarkably
John Carmack (1:23:01.780)
unsentimental person in some ways
Lex Fridman (1:23:03.980)
where I don't really spend a lot of time
John Carmack (1:23:05.780)
unless I'm explicitly prodded to go back
Lex Fridman (1:23:07.980)
and think about the early days of things.
Lex Fridman (1:23:10.300)
And I didn't necessarily make the effort
Lex Fridman (1:23:14.660)
to archive everything exactly in my brain.
Lex Fridman (1:23:17.100)
And the more that I work on machine learning and AI
Lex Fridman (1:23:19.460)
and the aspects of memory
Lex Fridman (1:23:20.880)
and how when you go back and polish certain things,
Lex Fridman (1:23:23.360)
it's not necessarily exactly the way it happened.
Lex Fridman (1:23:25.920)
But having said all of that, from my view,
Lex Fridman (1:23:29.580)
the way everything happened that led up to that was
John Carmack (1:23:34.220)
after I was an adult
Lex Fridman (1:23:36.140)
and kind of taking a few college classes
Lex Fridman (1:23:38.140)
and deciding to drop out, I was doing,
Lex Fridman (1:23:40.860)
I was hardscrabble contract programming work,
John Carmack (1:23:43.620)
really struggling to kind of keep groceries
Lex Fridman (1:23:46.220)
and pay my rent and things.
Lex Fridman (1:23:48.140)
And the company that I was doing the most work for
Lex Fridman (1:23:50.560)
was a company called Softdisk Publishing,
John Carmack (1:23:53.180)
which had the sounds bizarre now business model
Lex Fridman (1:23:57.100)
of monthly subscription software.
John Carmack (1:23:59.780)
Before there was an internet that people could connect to
Lex Fridman (1:24:02.300)
and get software, you would pay a certain amount
Lex Fridman (1:24:05.780)
and every month they would send you a disc
Lex Fridman (1:24:07.540)
that had some random software on it.
Lex Fridman (1:24:09.780)
And people that were into computers
Lex Fridman (1:24:11.460)
thought this was kind of cool.
Lex Fridman (1:24:12.740)
And they had different ones for the Apple II,
Lex Fridman (1:24:14.980)
the 2GS, the PC, the Mac, the Amiga,
John Carmack (1:24:18.900)
lots of different things here.
Lex Fridman (1:24:20.060)
So quirky little business,
Lex Fridman (1:24:21.440)
but I was doing a lot of contract programming for them
Lex Fridman (1:24:24.580)
where I'd write tiny little games
Lex Fridman (1:24:26.460)
and sell them for 300, $500.
Lex Fridman (1:24:29.980)
And one of the things that I was doing again
John Carmack (1:24:32.920)
to keep my head above water here was
Lex Fridman (1:24:35.080)
I decided that I could make one program
Lex Fridman (1:24:38.020)
and I could port it to multiple systems.
Lex Fridman (1:24:41.060)
So I would write a game like Dark Designs or Catacombs
Lex Fridman (1:24:44.900)
and I would develop it on the Apple II, the 2GS
Lex Fridman (1:24:47.940)
and the IBM PC, which apparently was the thing
John Carmack (1:24:51.780)
that really kind of piqued the attention
Lex Fridman (1:24:54.300)
of the people working down there.
John Carmack (1:24:56.420)
Like Jay Wilbur was my primary editor
Lex Fridman (1:24:58.500)
and Tom Hall was a secondary editor.
Lex Fridman (1:25:01.220)
And they kept asking me, it's like,
Lex Fridman (1:25:02.700)
hey, you should come down and work for us here.
Lex Fridman (1:25:06.060)
And I pushed it off a couple of times
Lex Fridman (1:25:08.300)
because I was really enjoying my freedom
John Carmack (1:25:10.300)
of kind of being off on my own.
Lex Fridman (1:25:11.840)
Even if I was barely getting by, I loved it.
John Carmack (1:25:14.700)
I was doing nothing but programming all day,
Lex Fridman (1:25:17.760)
but I did have enough close scrapes with like,
John Carmack (1:25:20.500)
damn, I'm just really out of money
Lex Fridman (1:25:21.980)
that maybe I should get an actual job
John Carmack (1:25:25.020)
rather than contracting these kind of one at a time things.
Lex Fridman (1:25:27.940)
And Jay Wilbur was great.
John Carmack (1:25:29.400)
He was like FedExing me the checks when I would need them.
Lex Fridman (1:25:32.020)
I had to kind of get over whatever hump I was at.
Lex Fridman (1:25:35.700)
So I took the, I finally took them up on their offer
Lex Fridman (1:25:38.720)
to come down to Shreveport, Louisiana.
John Carmack (1:25:41.260)
I was in Kansas city at the time,
Lex Fridman (1:25:43.820)
drove down to through the Ozarks and everything
John Carmack (1:25:47.320)
down to Louisiana and saw the soft disk offices,
Lex Fridman (1:25:51.820)
went through, talked to a bunch of people,
John Carmack (1:25:53.740)
met the people I had been working with remotely
Lex Fridman (1:25:56.520)
at that time.
Lex Fridman (1:25:57.800)
But the most important thing for me
Lex Fridman (1:25:59.180)
was I met two programmers there,
John Carmack (1:26:01.740)
John Romero and Lane Roth that for the first time ever,
Lex Fridman (1:26:04.780)
I had met programmers that knew more cool stuff than I did
John Carmack (1:26:08.500)
where the world was just different back then.
Lex Fridman (1:26:11.020)
I was in Kansas city.
John Carmack (1:26:12.420)
It was one of those smartest kid in the school
Lex Fridman (1:26:14.620)
does all the computer stuff.
John Carmack (1:26:15.980)
The teachers don't have anything to teach him.
Lex Fridman (1:26:18.140)
But all I had to learn from was these few books
John Carmack (1:26:20.320)
at the library.
Lex Fridman (1:26:21.260)
It was not much at all.
Lex Fridman (1:26:23.100)
And there were some aspects of programming
Lex Fridman (1:26:25.220)
that were kind of black magic to me.
John Carmack (1:26:27.220)
Like, it's like, oh, he knows how to format a track on,
Lex Fridman (1:26:30.180)
I am on a low level drive programming interface.
Lex Fridman (1:26:34.300)
And this was, I was still not at all sure
Lex Fridman (1:26:37.380)
I was gonna take the job,
Lex Fridman (1:26:38.560)
but I met these awesome programmers
Lex Fridman (1:26:40.820)
that were doing cool stuff.
Lex Fridman (1:26:42.300)
And Romero had worked at Origin Systems
Lex Fridman (1:26:44.380)
and he had done like, so many different games ahead of time
John Carmack (1:26:49.020)
that I did kind of quickly decide,
Lex Fridman (1:26:50.740)
it's like, yeah, I'll go take the job down there.
Lex Fridman (1:26:53.220)
And I settled down there, moved in
Lex Fridman (1:26:57.100)
and started working on more little projects.
Lex Fridman (1:26:59.780)
And the first kind of big change that happened down there
Lex Fridman (1:27:03.060)
was the company wanted to make a gaming focused,
John Carmack (1:27:05.620)
a PC gaming focused subscription.
Lex Fridman (1:27:08.260)
Just like all their other,
John Carmack (1:27:09.180)
it was the same formula that they used for everything.
Lex Fridman (1:27:11.880)
Pay a monthly fee and you'll get a disc
John Carmack (1:27:14.760)
with one or two games just every month
Lex Fridman (1:27:16.940)
and no choice in what you get, but we think it'll be fun.
Lex Fridman (1:27:19.860)
And that was the model they were comfortable with
Lex Fridman (1:27:21.980)
and they said, all right,
John Carmack (1:27:22.820)
we're gonna start this gamers edge department.
Lex Fridman (1:27:25.140)
And all of us that were interested in that,
John Carmack (1:27:27.860)
like me, Romero, Tom Hall was kind of helping us
Lex Fridman (1:27:31.420)
from his side of things, Jay would peek in
Lex Fridman (1:27:34.100)
and we had a few other programmers working with us
Lex Fridman (1:27:37.160)
at the time.
Lex Fridman (1:27:38.220)
And we were going to just start making games,
Lex Fridman (1:27:41.260)
just the same model.
Lex Fridman (1:27:43.400)
And we dived in and it was fantastic.
Lex Fridman (1:27:45.860)
Do you have to make new games?
John Carmack (1:27:47.560)
Every month.
Lex Fridman (1:27:48.400)
Every month.
John Carmack (1:27:49.220)
Yeah.
Lex Fridman (1:27:50.060)
And this, in retrospect, looking back at it,
John Carmack (1:27:52.740)
that sense that I had done all this contract programming
Lex Fridman (1:27:55.380)
and John Romero had done like far more of this
John Carmack (1:27:58.060)
where he had done one of his teaching himself efforts
Lex Fridman (1:28:00.900)
was he made a game for every letter of the alphabet.
John Carmack (1:28:03.420)
It's that sense of like,
Lex Fridman (1:28:04.260)
I'm just gonna go make 26 different games,
John Carmack (1:28:06.260)
give them a different theme.
Lex Fridman (1:28:07.700)
And you learn so much when you go through
Lex Fridman (1:28:10.300)
and you crank these things out
Lex Fridman (1:28:12.180)
like on a biweekly, monthly basis,
John Carmack (1:28:14.580)
something like that. From start to finish.
Lex Fridman (1:28:16.060)
It's not like just an idea.
John Carmack (1:28:17.860)
It's not just from the very beginning to the very end.
Lex Fridman (1:28:21.760)
It's done.
John Carmack (1:28:22.860)
It has to be done.
Lex Fridman (1:28:24.300)
There's no delaying.
John Carmack (1:28:25.300)
It's done.
Lex Fridman (1:28:26.140)
And you've got deadlines.
Lex Fridman (1:28:26.980)
And that kind of rapid iteration pressure cooker environment
Lex Fridman (1:28:32.100)
was super important for all of us developing the skills
John Carmack (1:28:35.300)
that brought us to where we eventually went to.
Lex Fridman (1:28:38.500)
I mean, people would say like,
John Carmack (1:28:39.980)
like in the history of the Beatles,
Lex Fridman (1:28:41.180)
like it wasn't them being the Beatles.
John Carmack (1:28:43.100)
It was them playing all of these other early works
Lex Fridman (1:28:46.060)
that that opportunity to craft all of their skills
John Carmack (1:28:48.340)
before they were famous,
Lex Fridman (1:28:49.820)
that was very critical to their later successes.
Lex Fridman (1:28:53.000)
And I think there's a lot of that here
Lex Fridman (1:28:54.940)
where we did these games that nobody remembers,
John Carmack (1:28:58.740)
lots of little things that contributed
Lex Fridman (1:29:00.940)
to building up the skillset for the things
John Carmack (1:29:02.900)
that eventually did make us famous.
Lex Fridman (1:29:05.340)
Yeah, Dostoevsky wrote The Gambler.
John Carmack (1:29:08.340)
I had to write it in a month, just to make money.
Lex Fridman (1:29:12.420)
And nobody remembers that probably
John Carmack (1:29:14.620)
because he had to figure out,
Lex Fridman (1:29:15.820)
because it's literally,
John Carmack (1:29:17.980)
he didn't have enough time to write it fast enough.
Lex Fridman (1:29:21.140)
So he had to come up with hacks.
John Carmack (1:29:23.060)
Literally,
Lex Fridman (1:29:23.900)
it again comes down to that point
John Carmack (1:29:25.220)
where pressure and limitation of resources
Lex Fridman (1:29:28.260)
is surprisingly important.
Lex Fridman (1:29:30.340)
And it's counterintuitive in a lot of ways
Lex Fridman (1:29:32.580)
where you just think that if you've got all the time
John Carmack (1:29:34.340)
in the world and you've got all the resources in the world,
Lex Fridman (1:29:36.580)
of course, you're gonna get something better.
Lex Fridman (1:29:38.420)
But sometimes it really does work out
Lex Fridman (1:29:40.380)
that the innovations, mother necessity,
John Carmack (1:29:44.420)
where you can, or resource constraints,
Lex Fridman (1:29:46.440)
and you have to do things when you don't have a choice.
John Carmack (1:29:49.300)
It's surprising what you can do.
Lex Fridman (1:29:50.740)
Is there any good games written in that time?
Lex Fridman (1:29:52.740)
Would you say?
Lex Fridman (1:29:53.580)
Some of them are still fun to go back and play
John Carmack (1:29:55.700)
where you get the,
Lex Fridman (1:29:58.220)
they were all about kind of,
John Carmack (1:29:59.900)
the more modern term is game feel,
Lex Fridman (1:30:01.820)
about how just the exact feel that things,
John Carmack (1:30:04.140)
it's not the grand strategy of the design,
Lex Fridman (1:30:06.260)
but how running and jumping and shooting
Lex Fridman (1:30:08.860)
and those things I feel in the moment.
Lex Fridman (1:30:11.780)
And some of those are still,
John Carmack (1:30:13.420)
if you sat down on them, you kind of go,
Lex Fridman (1:30:15.180)
it's a little bit different.
John Carmack (1:30:16.060)
It doesn't have the same movement feel,
Lex Fridman (1:30:17.780)
but you move over and you're like, bang, jump, bang.
John Carmack (1:30:20.780)
It's like, hey, that's kind of cool still.
Lex Fridman (1:30:23.180)
So you can get lost in the rhythm of the game.
Lex Fridman (1:30:25.980)
Is that what you mean by feel?
Lex Fridman (1:30:27.820)
Just like there's something about it that pulls you in?
John Carmack (1:30:31.380)
Nowadays, again, people talk about compulsion loops
Lex Fridman (1:30:33.820)
and things where it's that sense of exactly
Lex Fridman (1:30:37.220)
what you're doing, what your fingers are doing
Lex Fridman (1:30:38.900)
on the keyboard, what your eyes are seeing,
Lex Fridman (1:30:41.140)
and there are gonna be these sequences of things.
Lex Fridman (1:30:43.300)
Grab the loot, shoot the monster,
John Carmack (1:30:44.860)
jump over the obstacle, get to the end of the level.
Lex Fridman (1:30:47.020)
These are eternal aspects of game design in a lot of ways,
Lex Fridman (1:30:50.620)
but there are better and worse ways to do all of them.
Lex Fridman (1:30:53.300)
And we did so many of these games
John Carmack (1:30:55.380)
that we got a lot of practice with it.
Lex Fridman (1:30:58.820)
So one of the kind of weird things
John Carmack (1:31:01.060)
that was happening at this time
Lex Fridman (1:31:02.460)
is John Romero was getting some strange fan mail.
Lex Fridman (1:31:06.740)
And back in the days, this was before email.
Lex Fridman (1:31:09.140)
So we literally got letters sometimes and telling him,
John Carmack (1:31:12.420)
it's like, oh, I wanna talk to you about your games.
Lex Fridman (1:31:14.340)
I wanna reach out, different things.
Lex Fridman (1:31:17.100)
And eventually it turned out
Lex Fridman (1:31:19.660)
that these were all coming from Scott Miller
John Carmack (1:31:21.980)
at Apogee Software.
Lex Fridman (1:31:23.980)
And he was reaching out through,
John Carmack (1:31:26.300)
he didn't think he could contact John directly,
Lex Fridman (1:31:28.300)
that he would get intercepted.
Lex Fridman (1:31:29.540)
So he was trying to get him to contact him
Lex Fridman (1:31:31.700)
through like back channel fan mail,
John Carmack (1:31:34.260)
because he basically was saying,
Lex Fridman (1:31:35.460)
hey, I'm making all this money on shareware games.
John Carmack (1:31:38.540)
I want you to make shareware games,
Lex Fridman (1:31:40.860)
because he had seen some of the games
John Carmack (1:31:42.580)
that Romero had done.
Lex Fridman (1:31:44.500)
And we looked at Scott Miller's games
Lex Fridman (1:31:47.780)
and we didn't think they were very good.
Lex Fridman (1:31:50.500)
We're like, that can't be making the kind of money
John Carmack (1:31:53.100)
that he's saying he's making 10 grand or something
Lex Fridman (1:31:56.220)
off of this game.
Lex Fridman (1:31:57.140)
And we really thought that he was full of shit,
Lex Fridman (1:31:59.380)
that it was a lie trying to get him into this.
Lex Fridman (1:32:03.140)
But so that was kind of going on at one level.
Lex Fridman (1:32:07.980)
And it was funny the moment when Romero realized
John Carmack (1:32:10.180)
that he had some of these letters pinned up on his wall,
Lex Fridman (1:32:12.500)
like all of his fans.
Lex Fridman (1:32:13.540)
And then we noticed that they all had the same return
Lex Fridman (1:32:15.380)
address with different names on them,
John Carmack (1:32:17.340)
which was a little bit of a two edged sword there.
Lex Fridman (1:32:19.860)
Trying to figure out the puzzle laid out before him.
John Carmack (1:32:23.420)
Yeah, what happened after I kind of coincident with that
Lex Fridman (1:32:26.660)
was I was working on a lot of the new technologies
John Carmack (1:32:29.860)
where I was now full on the IBM PC for the first time,
Lex Fridman (1:32:33.860)
where I was really a long hold out on Apple II forever.
Lex Fridman (1:32:37.220)
And I loved my Apple II.
Lex Fridman (1:32:38.980)
It was the computer I always wished I had
John Carmack (1:32:40.660)
when I was growing up.
Lex Fridman (1:32:41.700)
And when I finally did have one,
John Carmack (1:32:43.140)
I was kind of clinging on to that well past it
Lex Fridman (1:32:46.180)
sort of good use by day.
Lex Fridman (1:32:47.540)
Is it the best computer ever made you would you say?
Lex Fridman (1:32:50.740)
I wouldn't make judgments like that about it,
Lex Fridman (1:32:53.180)
but it was positioned in such a way,
Lex Fridman (1:32:54.740)
especially in the school systems that it impacted
John Carmack (1:32:57.660)
a whole lot of American programmers at least,
Lex Fridman (1:33:00.420)
where there was programs that the Apple IIs
John Carmack (1:33:02.940)
got into the schools and they had enough capability
Lex Fridman (1:33:05.980)
that lots of interesting things happened with them.
John Carmack (1:33:08.780)
In Europe, it was different.
Lex Fridman (1:33:09.820)
You had your Amigas and Ataris and Acorns in the UK
Lex Fridman (1:33:13.980)
and things that had different things.
Lex Fridman (1:33:16.100)
But in the United States,
John Carmack (1:33:17.060)
it was probably the Apple II made the most impact
Lex Fridman (1:33:19.740)
for a lot of programmers of my generation.
Lex Fridman (1:33:23.300)
But so I was really digging into the IBM
Lex Fridman (1:33:26.100)
and this was even more so with the total focus
John Carmack (1:33:29.340)
because I had moved to another city
Lex Fridman (1:33:30.780)
where I didn't know anybody that I wasn't working with.
John Carmack (1:33:33.860)
I had a little apartment and then at Softdisk,
Lex Fridman (1:33:36.380)
again, the things that drew me to it,
John Carmack (1:33:38.780)
I had a couple of programmers that knew more than I did
Lex Fridman (1:33:42.260)
and they had a library.
John Carmack (1:33:43.580)
They had a set of books and a set of magazines.
Lex Fridman (1:33:46.060)
They had a couple of years of magazines,
John Carmack (1:33:47.700)
the old Dr. Dobbs journal and all of these magazines
Lex Fridman (1:33:50.700)
that had information about things.
Lex Fridman (1:33:53.140)
And so I was just in total immersion mode.
Lex Fridman (1:33:56.500)
It was eat, breathe, sleep, computer programming,
John Carmack (1:33:59.460)
particularly the IBM for everything that I was doing.
Lex Fridman (1:34:03.300)
And I was digging into a lot of these
John Carmack (1:34:05.060)
low level hardware details
Lex Fridman (1:34:06.580)
that people weren't usually paying attention to,
John Carmack (1:34:08.900)
the way the IBM EGA cards worked, which was fun for me.
Lex Fridman (1:34:13.900)
I hadn't had experience with things at that level.
Lex Fridman (1:34:16.460)
And back then you could get hardware documentation
Lex Fridman (1:34:19.580)
just down at the register levels.
John Carmack (1:34:21.020)
This is where the CRTC register is.
Lex Fridman (1:34:23.460)
This is how the color registers work
Lex Fridman (1:34:25.620)
and how the different things are applied.
Lex Fridman (1:34:27.420)
And they were designed for a certain reason.
John Carmack (1:34:29.820)
They were designed for an application.
Lex Fridman (1:34:31.420)
They had an intended use in mind,
Lex Fridman (1:34:33.780)
but I was starting to look at other ways
Lex Fridman (1:34:36.820)
that they could perhaps be exploited
John Carmack (1:34:38.260)
that they weren't initially intended for.
Lex Fridman (1:34:40.260)
Could you comment on like, first of all, what operating system was there?
Lex Fridman (1:34:44.020)
What instruction set was it?
Lex Fridman (1:34:45.820)
Like, what are we talking about?
Lex Fridman (1:34:48.580)
So this was DOS and x86.
Lex Fridman (1:34:50.500)
So 16 bit, 8086.
John Carmack (1:34:52.740)
The 286s were there and 386s existed.
Lex Fridman (1:34:55.460)
They were rare.
John Carmack (1:34:56.860)
We had a couple for our development systems,
Lex Fridman (1:34:59.380)
but we were still targeting the more broad.
John Carmack (1:35:02.740)
It was all DOS 16 bit.
Lex Fridman (1:35:04.940)
None of this was kind of DOS extenders and things.
Lex Fridman (1:35:07.540)
How different is it from the systems of today?
Lex Fridman (1:35:09.420)
Is it kind of a precursor that's similar?
John Carmack (1:35:12.340)
Very little.
Lex Fridman (1:35:13.020)
If you open up command.exe or com on Windows,
John Carmack (1:35:17.700)
you see some of the remnants of all of that,
Lex Fridman (1:35:19.700)
but it was a different world.
John Carmack (1:35:21.060)
It was the 640K is enough world, and nothing was protected.
Lex Fridman (1:35:25.620)
It crashed all the time.
John Carmack (1:35:26.740)
You had TSRs or terminate and stay resident hacks
Lex Fridman (1:35:29.940)
on top of things that would cause configuration problems.
John Carmack (1:35:33.180)
All the hardware was manually configured in your auto exec.
Lex Fridman (1:35:37.500)
So it was a very different world.
Lex Fridman (1:35:39.260)
But the code is still the same, similar.
Lex Fridman (1:35:41.300)
You could still write it.
John Carmack (1:35:42.540)
My earliest code there was written in Pascal.
Lex Fridman (1:35:44.660)
That was what I had learned at an earlier point.
Lex Fridman (1:35:47.700)
So between BASIC and C++, there was Pascal.
Lex Fridman (1:35:51.180)
So when BASIC assembly language, some of my intermediate stuff
John Carmack (1:35:55.460)
was, well, you had to for performance.
Lex Fridman (1:35:57.020)
BASIC was just too slow.
Lex Fridman (1:35:58.380)
So most of the work that I was doing
Lex Fridman (1:36:00.460)
as a contract programmer in my teenage years
John Carmack (1:36:02.820)
was assembly language.
Lex Fridman (1:36:05.100)
Wait, you wrote games in assembly?
John Carmack (1:36:07.180)
Yeah, complete games in assembly language.
Lex Fridman (1:36:10.660)
And it's thousands and thousands of lines
John Carmack (1:36:12.700)
of three letter acronyms for the instructions.
Lex Fridman (1:36:16.580)
You don't earn the once again greatest programmer ever label
John Carmack (1:36:21.060)
without being able to write a game in assembly.
Lex Fridman (1:36:23.140)
OK.
John Carmack (1:36:23.620)
That's good.
Lex Fridman (1:36:24.980)
Everybody serious wrote their games in assembly language.
John Carmack (1:36:27.380)
It was kind of a.
Lex Fridman (1:36:28.140)
Everybody serious.
Lex Fridman (1:36:28.900)
See what he said?
Lex Fridman (1:36:29.700)
Everybody serious.
John Carmack (1:36:31.180)
It was an outlier to use Pascal a little bit,
Lex Fridman (1:36:33.940)
where there was one famous program called wizardry.
John Carmack (1:36:36.420)
It was one of the great early role playing games
Lex Fridman (1:36:39.460)
that was written in Pascal.
Lex Fridman (1:36:40.900)
But it was almost nothing used Pascal there.
Lex Fridman (1:36:43.540)
But I did learn Pascal.
Lex Fridman (1:36:45.140)
And I remember doing all of my.
Lex Fridman (1:36:47.220)
To this day, I sketch in data structures.
John Carmack (1:36:49.260)
When I'm thinking about something, I'll open up a file
Lex Fridman (1:36:52.660)
and I'll start writing struct definitions for how
John Carmack (1:36:55.340)
data is going to be laid out.
Lex Fridman (1:36:56.900)
And Pascal was kind of formative to that
John Carmack (1:36:58.940)
because I remember designing my RPGs in Pascal record
Lex Fridman (1:37:02.260)
structures and things like that.
Lex Fridman (1:37:04.100)
And so I had gotten the Pascal compiler for the Apple 2GS
Lex Fridman (1:37:07.940)
that I could work on.
Lex Fridman (1:37:08.740)
And the first IBM game that I developed, I did in Pascal.
Lex Fridman (1:37:12.420)
And that's actually kind of an interesting story,
John Carmack (1:37:14.860)
again, talking about the constraints and resources
Lex Fridman (1:37:17.900)
where I had an Apple 2GS.
John Carmack (1:37:19.980)
I didn't have an IBM PC.
Lex Fridman (1:37:21.500)
I wanted to port my applications to IBM
John Carmack (1:37:24.540)
because I thought I could make more money on it.
Lex Fridman (1:37:27.060)
So what I wound up doing is I rented a PC for a week
Lex Fridman (1:37:31.540)
and bought a copy of Turbo Pascal.
Lex Fridman (1:37:33.940)
And so I had a hard one week and this was cutting into
Lex Fridman (1:37:36.820)
what minimal profit margin I had there.
Lex Fridman (1:37:38.900)
But I had this computer for a week.
John Carmack (1:37:40.340)
I had to get my program ported before I had to return
Lex Fridman (1:37:43.300)
the PC and that was kind of what the first thing
John Carmack (1:37:46.780)
that I had done on the IBM PC and what led me
Lex Fridman (1:37:49.220)
to taking the job at Softdisk.
Lex Fridman (1:37:51.620)
And Turbo Pascal, how's that different from regular Pascal?
Lex Fridman (1:37:55.260)
Is it a different compiler or something like that?
John Carmack (1:37:57.380)
It was a product of Borland, which before Microsoft
Lex Fridman (1:38:00.060)
kind of killed them, they were the hot stuff
John Carmack (1:38:02.980)
developer tools company.
Lex Fridman (1:38:04.180)
You had Borland, Turbo Pascal and Turbo C
Lex Fridman (1:38:06.540)
and Prologue, I mean, all the different things.
Lex Fridman (1:38:09.540)
But what they did was they took a supremely pragmatic
John Carmack (1:38:12.780)
approach of making something useful.
Lex Fridman (1:38:14.500)
It was one of these great examples where Pascal
John Carmack (1:38:17.220)
was an academic language and you had things like
Lex Fridman (1:38:20.340)
the UCSDP system that Wizardry was actually written in
John Carmack (1:38:23.780)
that they did manage to make a game with that,
Lex Fridman (1:38:27.020)
but it was not a super practical system.
John Carmack (1:38:30.860)
While Turbo Pascal was, it was called Turbo
Lex Fridman (1:38:33.540)
because it was blazingly fast to compile.
John Carmack (1:38:35.540)
I mean, really ridiculously 10 to 20 times faster
Lex Fridman (1:38:39.460)
than most other compilers at the time.
Lex Fridman (1:38:41.620)
But it also had very pragmatic access to look,
Lex Fridman (1:38:44.360)
you can just poke at the hardware in these different ways
Lex Fridman (1:38:46.820)
and we have libraries that let you do things.
Lex Fridman (1:38:49.260)
And it was a pretty good, it was a perfectly good way
John Carmack (1:38:51.660)
to write games and this is one of those things
Lex Fridman (1:38:53.700)
where people have talked about different paths
John Carmack (1:38:56.500)
that computer development could have taken
Lex Fridman (1:38:58.660)
where C took over the world for reasons
John Carmack (1:39:01.940)
that came out of Unix and eventually Linux.
Lex Fridman (1:39:05.100)
And that was not a foregone conclusion at all.
Lex Fridman (1:39:07.260)
And people can make real reasoned rational arguments
Lex Fridman (1:39:10.860)
that the world might've been better
John Carmack (1:39:12.440)
if it had gone a Pascal route.
Lex Fridman (1:39:14.420)
I'm somewhat agnostic on that where I do know
John Carmack (1:39:17.660)
from experience, it was perfectly good enough to do that.
Lex Fridman (1:39:21.260)
And it had some fundamental improvements
John Carmack (1:39:23.180)
like it had range checked arrays as an option there,
Lex Fridman (1:39:26.100)
which could avoid many of C's real hazards
John Carmack (1:39:29.620)
that happened in a security space.
Lex Fridman (1:39:31.560)
But C1, they were basically offering it
John Carmack (1:39:33.740)
about the same level of abstraction.
Lex Fridman (1:39:35.580)
It was a systems programming language, but.
Lex Fridman (1:39:38.660)
But you said Pascal had a more emphasis on data structures.
Lex Fridman (1:39:41.380)
I actually, in the tree of languages,
Lex Fridman (1:39:44.980)
did Pascal come before C?
Lex Fridman (1:39:48.100)
They were pretty contemporaneous.
Lex Fridman (1:39:49.660)
So Pascal's lineage went to Modula 2 and eventually Oberon,
Lex Fridman (1:39:53.380)
which was another Nicholas word, kind of experimental language.
Lex Fridman (1:39:58.740)
But they were all good enough at that level.
Lex Fridman (1:40:01.420)
Now, some of the classic academic oriented Pascals
John Carmack (1:40:04.340)
were just missing fundamental things like, oh, you can't
Lex Fridman (1:40:06.380)
access this core system thing because we're just
John Carmack (1:40:08.620)
using it to teach students.
Lex Fridman (1:40:10.340)
But Turbo Pascal showed that only modest changes to it
John Carmack (1:40:14.060)
really did make it a completely capable language.
Lex Fridman (1:40:17.140)
And it had some reasons why you could implement it
John Carmack (1:40:19.620)
as a single pass compiler so it could be way, way faster,
Lex Fridman (1:40:22.580)
although less scope for optimizations
John Carmack (1:40:24.460)
if you do it that way.
Lex Fridman (1:40:26.260)
And it did have some range checking options.
John Carmack (1:40:28.300)
It had a little bit better typing capability.
Lex Fridman (1:40:30.740)
You'd have properly typed enums, sorts of things,
Lex Fridman (1:40:33.140)
and other stuff that C lacked.
Lex Fridman (1:40:35.220)
But C was also clearly good enough.
Lex Fridman (1:40:37.900)
And it wound up with a huge inertia
Lex Fridman (1:40:39.660)
from the Unix ecosystem and everything that came with that.
Lex Fridman (1:40:42.740)
Garbage collection?
Lex Fridman (1:40:43.980)
No, it was not garbage collected.
John Carmack (1:40:45.380)
It's just the same kind of thing as C.
Lex Fridman (1:40:46.500)
Same manual.
Lex Fridman (1:40:47.100)
So you could still have your use after freeze
Lex Fridman (1:40:49.100)
and all those other problems.
Lex Fridman (1:40:50.320)
But just getting rid of array overruns,
Lex Fridman (1:40:53.740)
at least if you were compiled with that debugging option,
John Carmack (1:40:56.080)
certainly would have avoided a lot of problems
Lex Fridman (1:40:58.260)
and could have a lot of benefits.
Lex Fridman (1:40:59.740)
But so anyways, that was the next thing.
Lex Fridman (1:41:01.400)
I had to learn C because C was where it seemed like most
John Carmack (1:41:04.780)
of the things were going.
Lex Fridman (1:41:07.020)
So I abandoned Pascal and I started working in C.
John Carmack (1:41:09.580)
I started hacking on these hardware things dealing
Lex Fridman (1:41:11.980)
with the graphics controllers and the EGA systems.
Lex Fridman (1:41:16.000)
And what we most wanted to do, so at that time
Lex Fridman (1:41:19.060)
we were sitting in our darkened office
John Carmack (1:41:22.260)
playing all the different console video games.
Lex Fridman (1:41:24.740)
And we were figuring out what games
John Carmack (1:41:27.620)
do we want to make for our Gamer's Edge product there.
Lex Fridman (1:41:30.500)
And so we had one of the first Super Nintendos sitting there.
Lex Fridman (1:41:34.180)
And we had an older Nintendo looking at all those games.
Lex Fridman (1:41:37.500)
And the core thing that those consoles did that you just
John Carmack (1:41:40.020)
didn't get on the PC games was this ability
Lex Fridman (1:41:42.700)
to have a massive scrolling world where
John Carmack (1:41:45.180)
most of the games that you would make on the PC
Lex Fridman (1:41:47.980)
and earlier personal computers would be a static screen.
John Carmack (1:41:51.500)
You move little things around on it and you interact like that.
Lex Fridman (1:41:55.020)
Maybe you go to additional screens as you move.
Lex Fridman (1:41:58.260)
But arcade games and consoles had this wonderful ability
Lex Fridman (1:42:01.900)
to just have a big world that you're slowly
John Carmack (1:42:04.420)
moving your window through.
Lex Fridman (1:42:06.100)
And that was for those types of games,
John Carmack (1:42:08.460)
that kind of action exploration adventure games,
Lex Fridman (1:42:10.820)
that was a super, super important thing.
Lex Fridman (1:42:13.060)
And PC games just didn't do that.
Lex Fridman (1:42:16.260)
And what I had come across was a couple
John Carmack (1:42:18.740)
of different techniques for implementing that on the PC.
Lex Fridman (1:42:22.300)
And they're not hard, complicated things.
John Carmack (1:42:25.180)
When I explain them now, they're pretty straightforward.
Lex Fridman (1:42:28.140)
But just nobody was doing it.
John Carmack (1:42:29.260)
You sound like Einstein describing his five papers
Lex Fridman (1:42:31.900)
is pretty straightforward.
John Carmack (1:42:33.100)
I understand.
Lex Fridman (1:42:34.020)
But they're nevertheless revolutionary.
Lex Fridman (1:42:35.980)
So side scrolling is a game changer.
Lex Fridman (1:42:38.420)
Yeah, and scrolling is a genius invention.
John Carmack (1:42:40.420)
It's either vertical.
Lex Fridman (1:42:41.620)
And some of the consoles had different limitations
John Carmack (1:42:43.660)
about you could do one but not the other.
Lex Fridman (1:42:45.420)
And there were similar things going on as advancements,
John Carmack (1:42:48.420)
even in the console space, where you'd have the original Mario
Lex Fridman (1:42:51.740)
game was just horizontal scrolling.
Lex Fridman (1:42:54.580)
And then later, Mario games added vertical aspects to it
Lex Fridman (1:42:57.300)
and different things that you were
John Carmack (1:42:59.180)
doing to explore, kind of expand the capabilities there.
Lex Fridman (1:43:02.980)
And so much of the early game design for decades
John Carmack (1:43:05.500)
was removing limitations, letting you do things
Lex Fridman (1:43:08.580)
that you envisioned as a designer,
John Carmack (1:43:10.100)
you wanted the player to experience,
Lex Fridman (1:43:11.940)
but the hardware just couldn't really
John Carmack (1:43:14.340)
or you didn't know how to make it happen.
Lex Fridman (1:43:16.580)
It felt impossible.
John Carmack (1:43:17.700)
You can imagine that you want to create like this big world
Lex Fridman (1:43:21.940)
through which you can side scroll,
John Carmack (1:43:23.940)
like through which you can walk.
Lex Fridman (1:43:26.660)
And then you ask yourself a question,
Lex Fridman (1:43:28.380)
how do I actually build that in a way that's
Lex Fridman (1:43:31.900)
like the latency is low enough, the hardware can actually
John Carmack (1:43:35.900)
deliver that in such a way that it's a compelling experience.
Lex Fridman (1:43:38.780)
Yeah, and we knew what we wanted to do
John Carmack (1:43:40.380)
because we were playing all of these console games,
Lex Fridman (1:43:42.700)
playing all these Nintendo games and arcade games.
John Carmack (1:43:45.140)
Clearly, there was a whole world of awesome things
Lex Fridman (1:43:47.260)
there that we just couldn't do on the PC, at least initially.
John Carmack (1:43:51.380)
Because every programmer can tell,
Lex Fridman (1:43:52.860)
it's like if you want to scroll, you can just
John Carmack (1:43:54.220)
redraw the whole screen.
Lex Fridman (1:43:55.460)
But then it turns out, well, you're
John Carmack (1:43:56.860)
going five frames per second.
Lex Fridman (1:43:58.820)
That's not an interactive fun experience.
John Carmack (1:44:01.020)
You want to be going 30 or 60 frames per second or something.
Lex Fridman (1:44:04.700)
And it just didn't feel like that was possible.
John Carmack (1:44:06.860)
It felt like the PCs had to get five times faster for you
Lex Fridman (1:44:10.500)
to make a playable game there.
Lex Fridman (1:44:12.700)
And interestingly, I wound up with two completely different
Lex Fridman (1:44:16.140)
solutions for the scrolling problem.
Lex Fridman (1:44:18.820)
And this is a theme that runs through everything, where
Lex Fridman (1:44:23.060)
all of these big technical advancements, it turns out
John Carmack (1:44:25.740)
there's always a couple different ways of doing them.
Lex Fridman (1:44:28.460)
And it's not like you found the one true way of doing it.
Lex Fridman (1:44:31.740)
And we'll see this as we go into 3D games and things later.
Lex Fridman (1:44:35.220)
But so the scrolling, the first set of scrolling tricks
John Carmack (1:44:38.540)
that I got was the hardware had this ability to,
Lex Fridman (1:44:43.620)
you could shift inside the window of memory.
Lex Fridman (1:44:47.660)
So the EGA cards at the time had 256 kilobytes of memory.
Lex Fridman (1:44:51.980)
And it was awkwardly set up in this planar format,
John Carmack (1:44:55.340)
where instead of having 256 or 24 million colors,
Lex Fridman (1:45:00.780)
you had 16 colors, which is four bits.
Lex Fridman (1:45:03.420)
So you had four bit planes, 64k a piece.
Lex Fridman (1:45:06.300)
Of course, 64k is a nice round number
John Carmack (1:45:08.420)
for 16 bit addressing.
Lex Fridman (1:45:10.380)
So your graphics card had a 16 bit window
John Carmack (1:45:13.860)
that you could look at.
Lex Fridman (1:45:15.220)
And you could tell it to start the video scan out
John Carmack (1:45:17.900)
anywhere inside there.
Lex Fridman (1:45:19.340)
So there were a couple games that
John Carmack (1:45:21.140)
had taken this approach of you could make a 2 by 2 screen
Lex Fridman (1:45:23.900)
or a 1 by 4 screen.
Lex Fridman (1:45:25.740)
And you could do scrolling really easily like that.
Lex Fridman (1:45:28.140)
You could just lay it all out and just pan around there.
Lex Fridman (1:45:30.940)
But you just couldn't make it any bigger
Lex Fridman (1:45:32.620)
because that's all the memory that was there.
John Carmack (1:45:35.540)
The first insight to the scrolling that I had
Lex Fridman (1:45:37.700)
was, well, if we make a screen that's just one tile larger,
Lex Fridman (1:45:42.300)
and we usually had tiles that were 16 pixels by 16 pixels,
Lex Fridman (1:45:45.820)
the little classic Mario block that you run into,
John Carmack (1:45:48.940)
lots of art gets drawn that way.
Lex Fridman (1:45:50.820)
And your screen is a certain number of tiles.
Lex Fridman (1:45:52.860)
But if you had one little buffer region outside of that,
Lex Fridman (1:45:56.620)
you could easily pan around inside that 16 pixel region.
John Carmack (1:45:59.980)
That could be perfectly smooth.
Lex Fridman (1:46:01.740)
But then what happens if you get to the edge
Lex Fridman (1:46:04.020)
and you want to keep going?
Lex Fridman (1:46:05.940)
The first way we did scrolling was
Lex Fridman (1:46:08.380)
what I called adaptive tile refresh, which was really
Lex Fridman (1:46:11.460)
just a matter of you get to the edge
Lex Fridman (1:46:13.620)
and then you go back to the original point
Lex Fridman (1:46:16.140)
and then only change the tiles that have actually
John Carmack (1:46:19.380)
that are different between where it was.
Lex Fridman (1:46:21.580)
In most of the games at the time,
John Carmack (1:46:23.380)
if you think about your classic Super Mario Brothers game,
Lex Fridman (1:46:26.900)
you've got big fields of blue sky, long rows
John Carmack (1:46:30.940)
of the same brick texture.
Lex Fridman (1:46:33.300)
And there's a lot of commonality.
John Carmack (1:46:34.980)
It's like a data compression thing.
Lex Fridman (1:46:36.580)
If you take the screen and you set it down
John Carmack (1:46:38.980)
on top of each other, in general, only about 10%
Lex Fridman (1:46:42.460)
of the tiles were actually different there.
Lex Fridman (1:46:45.180)
So this was a way to go ahead and say,
Lex Fridman (1:46:47.940)
well, I'm going to move it back, and then I'm only
John Carmack (1:46:49.980)
going to change those 10%, 20%, whatever percent tiles there.
Lex Fridman (1:46:54.100)
And that meant that it was essentially five times faster
John Carmack (1:46:57.540)
than if you were redrawing all of the tiles.
Lex Fridman (1:46:59.860)
And that worked well enough for us
John Carmack (1:47:01.300)
to do a bunch of these games for Gamer's Edge.
Lex Fridman (1:47:04.860)
We had a lot of these scrolling games like Slurred Axe
Lex Fridman (1:47:07.100)
and Shadow Knights and things like that
Lex Fridman (1:47:09.260)
that we were cranking out at this high rate that
John Carmack (1:47:11.380)
had this scrolling effect on it.
Lex Fridman (1:47:13.540)
And it worked well enough.
John Carmack (1:47:14.620)
There were design challenges there
Lex Fridman (1:47:16.100)
where if you made the worst case,
John Carmack (1:47:18.180)
if you made a checkerboard over the entire screen,
Lex Fridman (1:47:20.460)
you scroll over one and every single tile changes
Lex Fridman (1:47:23.220)
and your frame rate's now five frames per second
Lex Fridman (1:47:25.100)
because it had to redraw everything.
Lex Fridman (1:47:27.100)
So the designers had a little bit
Lex Fridman (1:47:28.700)
that they had to worry about.
John Carmack (1:47:29.900)
They had to make these relatively plain looking
Lex Fridman (1:47:32.020)
levels, but it was still pretty magical.
John Carmack (1:47:34.900)
It was something that we hadn't seen before.
Lex Fridman (1:47:37.460)
And the first thing that we wound up doing with that
John Carmack (1:47:41.340)
was I had just gotten this working,
Lex Fridman (1:47:43.660)
and Tom Hall was sitting there with me,
Lex Fridman (1:47:46.300)
and we were looking over at our Super Nintendo on the side
Lex Fridman (1:47:49.820)
there with Super Mario 3 running.
Lex Fridman (1:47:52.500)
And we had the technology, we had the tools set up there,
Lex Fridman (1:47:56.260)
and we stayed up all night.
Lex Fridman (1:47:57.780)
And we basically cloned the first level
Lex Fridman (1:47:59.820)
of Super Mario Brothers.
Lex Fridman (1:48:01.260)
Performance wise as well?
Lex Fridman (1:48:02.460)
Yeah.
Lex Fridman (1:48:02.940)
And we had our little character running and jumping in there.
Lex Fridman (1:48:05.860)
It was close to pixel accurate as far
John Carmack (1:48:09.100)
as all the backgrounds and everything,
Lex Fridman (1:48:11.300)
but the gaming was just stuff that we cobbled together
John Carmack (1:48:13.540)
from previous games that I had written.
Lex Fridman (1:48:15.380)
I just really kitbashed the whole thing together
John Carmack (1:48:18.060)
to make this demo.
Lex Fridman (1:48:19.420)
And that was one of the rare cases
John Carmack (1:48:21.500)
when I said I don't usually do these all night programming
Lex Fridman (1:48:24.260)
things.
John Carmack (1:48:24.860)
There's probably only two memorable ones
Lex Fridman (1:48:26.860)
that I can think about.
John Carmack (1:48:28.580)
One was the all nighter to go ahead and get
Lex Fridman (1:48:31.940)
our Dangerous Dave and copyright infringement
John Carmack (1:48:34.460)
is how we titled it.
Lex Fridman (1:48:35.420)
Because we had a game called Dangerous Dave running around
John Carmack (1:48:38.100)
with a shotgun shooting things, and we were just
Lex Fridman (1:48:41.140)
taking our most beloved game at the time there, the Super Mario
John Carmack (1:48:44.140)
3, and sticking Dave inside that with this new scrolling
Lex Fridman (1:48:47.980)
technology that was going perfectly smooth for them
John Carmack (1:48:53.500)
as it ran.
Lex Fridman (1:48:54.660)
And Tom and I just blearily the next morning left,
Lex Fridman (1:48:58.340)
and we left a disk on the desk for John Romero and Jay
Lex Fridman (1:49:02.940)
Wilbur to see and just said, run this.
Lex Fridman (1:49:05.220)
And we eventually made it back in later in the day,
Lex Fridman (1:49:08.380)
and it was like they grabbed us and pulled us into the room.
Lex Fridman (1:49:13.260)
And that was the point where they were like,
Lex Fridman (1:49:15.660)
we got to do something with this.
John Carmack (1:49:17.740)
We're going to make a company.
Lex Fridman (1:49:19.300)
We're going to go make our own games, where
John Carmack (1:49:21.580)
this was something that we were able to just kind of hit them
Lex Fridman (1:49:24.980)
with a hammer of an experience like, wow, this
John Carmack (1:49:27.060)
is just like so much cooler than what we thought
Lex Fridman (1:49:30.140)
was possible there.
Lex Fridman (1:49:31.660)
And initially, we tried to get Nintendo
Lex Fridman (1:49:33.860)
to let us make Super Mario 3 on the PC.
John Carmack (1:49:36.900)
That's really what we wanted to do.
Lex Fridman (1:49:38.420)
We were like, hey, we can finish this.
John Carmack (1:49:40.220)
It's line of sight.
Lex Fridman (1:49:41.380)
This will be great.
Lex Fridman (1:49:42.620)
And we sent something to Nintendo,
Lex Fridman (1:49:45.180)
and we heard that it did get looked at in Japan,
Lex Fridman (1:49:48.180)
and they just weren't interested in that.
Lex Fridman (1:49:50.380)
But that's another one of those life could
John Carmack (1:49:52.180)
have gone a very different way, where
Lex Fridman (1:49:53.740)
we could have been like Nintendo's house PC team
John Carmack (1:49:57.700)
at that point.
Lex Fridman (1:49:58.540)
And define the direction of Wolfenstein and Doom and Quake
John Carmack (1:50:06.660)
could have been a Nintendo creation.
Lex Fridman (1:50:08.940)
Yeah.
Lex Fridman (1:50:09.460)
So at the same time that we were just
Lex Fridman (1:50:11.620)
doing our first scrolling demos, we
John Carmack (1:50:14.660)
reached out to Scott Miller at Apogee and said,
Lex Fridman (1:50:17.660)
it's like, hey, we do want to make some games.
John Carmack (1:50:20.180)
These things that you think you want, those are nothing.
Lex Fridman (1:50:22.660)
What do you see what we can actually do now?
John Carmack (1:50:24.540)
This is going to be amazing.
Lex Fridman (1:50:26.180)
And he just popped right up and sent a check to us,
John Carmack (1:50:29.340)
where at that point, we still thought
Lex Fridman (1:50:31.420)
he might be a fraud, that he was just lying about all of this.
Lex Fridman (1:50:34.500)
But he was totally correct on how much money
Lex Fridman (1:50:36.900)
he was making with his shareware titles.
Lex Fridman (1:50:39.340)
And this was his real brainstorm about this,
Lex Fridman (1:50:43.180)
where shareware was this idea that software
John Carmack (1:50:45.980)
doesn't have a fixed price.
Lex Fridman (1:50:47.220)
If you use it, you send out of the goodness of your heart
John Carmack (1:50:49.860)
some money to the creator.
Lex Fridman (1:50:51.660)
And there were a couple of utilities
John Carmack (1:50:53.300)
that did make some significant success like that.
Lex Fridman (1:50:55.980)
But for the most part, it didn't really work.
John Carmack (1:50:58.420)
Now, there wasn't much software in a pure shareware model
Lex Fridman (1:51:01.580)
that was successful.
John Carmack (1:51:03.860)
The Apogee innovation was to take something,
Lex Fridman (1:51:07.700)
call it shareware, split it into three pieces.
John Carmack (1:51:10.180)
You always made a trilogy.
Lex Fridman (1:51:12.100)
And you would put the first piece out,
Lex Fridman (1:51:14.300)
but then you buy the whole trilogy
Lex Fridman (1:51:16.180)
for some shareware amount, which in reality,
John Carmack (1:51:19.420)
it meant that the first part was a demo,
Lex Fridman (1:51:21.260)
where you kind of like the demo went everywhere for free
Lex Fridman (1:51:24.060)
and you paid money to get the whole set.
Lex Fridman (1:51:26.580)
But it was still play to shareware.
Lex Fridman (1:51:28.620)
And we were happy to have the first one go everywhere.
Lex Fridman (1:51:31.060)
And it wasn't a crippled demo, where the first episode
John Carmack (1:51:33.980)
of all these trilogies, it was a real complete game.
Lex Fridman (1:51:36.420)
And probably 20 times as many people played that part of it,
John Carmack (1:51:39.820)
thought they had a great game, had fond memories of it,
Lex Fridman (1:51:43.500)
but never paid us a dime.
Lex Fridman (1:51:45.340)
But enough people were happy with that,
Lex Fridman (1:51:48.140)
where it was really quite successful.
Lex Fridman (1:51:50.700)
And these early games that we didn't think very much of
Lex Fridman (1:51:53.220)
compared to commercial quality games,
Lex Fridman (1:51:55.780)
but they were doing really good business,
Lex Fridman (1:51:57.780)
some fairly crude things.
Lex Fridman (1:51:59.320)
And people, it was good business.
Lex Fridman (1:52:01.340)
People enjoyed it.
Lex Fridman (1:52:02.340)
And it wasn't like you were taking a crapshoot
Lex Fridman (1:52:04.500)
on what you were getting.
John Carmack (1:52:05.540)
You just played a third of the experience.
Lex Fridman (1:52:07.780)
And you loved it enough to hand write out a check
Lex Fridman (1:52:10.860)
and put it in an envelope and address it and send it out
Lex Fridman (1:52:13.860)
to Apogee to get the rest of them.
Lex Fridman (1:52:16.740)
So it was a really pretty feel good business prospect there,
Lex Fridman (1:52:20.620)
because everybody was happy.
John Carmack (1:52:23.160)
They knew what they were getting when they sent it in.
Lex Fridman (1:52:26.060)
They would send in fan mail.
John Carmack (1:52:27.180)
If you're going to the trouble of addressing a letter
Lex Fridman (1:52:29.520)
and filling out an envelope, you write something in it.
Lex Fridman (1:52:32.660)
And there were just the literal bags of fan mail
Lex Fridman (1:52:35.420)
for the shareware games, so people loved them.
John Carmack (1:52:38.940)
I should mention that for you, the definition of wealth
Lex Fridman (1:52:42.540)
is being able to have pizza whenever you want.
John Carmack (1:52:46.580)
For me, there was a dream that I would play shareware games
Lex Fridman (1:52:50.780)
over and over, the part that's free, over and over.
Lex Fridman (1:52:53.860)
And it was very deeply fulfilling experience.
Lex Fridman (1:52:56.500)
But I dreamed of a time when I could actually
John Carmack (1:53:00.340)
afford the full experience.
Lex Fridman (1:53:02.160)
And this is kind of this dreamland beyond the horizon
John Carmack (1:53:05.920)
when you could find out what else is there.
Lex Fridman (1:53:09.380)
In some sense, even just playing the shareware was,
John Carmack (1:53:14.380)
it's the limitation of that.
Lex Fridman (1:53:17.980)
You know, life is limited, eventually we all die.
John Carmack (1:53:21.540)
In that way, shareware was somehow really fulfilling
Lex Fridman (1:53:26.820)
to have this kind of mysterious thing beyond what's free
John Carmack (1:53:31.580)
always there.
Lex Fridman (1:53:32.420)
It's kind of, I don't know, maybe it's because
John Carmack (1:53:35.420)
a part of my childhood is playing shareware games.
Lex Fridman (1:53:37.580)
That was a really fulfilling experience.
John Carmack (1:53:39.520)
It's so interesting how that model still brought joy
Lex Fridman (1:53:43.100)
to so many people.
John Carmack (1:53:44.020)
The 20X people that played it.
Lex Fridman (1:53:45.980)
I felt very good about that.
John Carmack (1:53:47.340)
I would run into people that would say,
Lex Fridman (1:53:49.700)
oh, I loved that game that you had early on,
John Carmack (1:53:52.220)
Commander Keen, whatever.
Lex Fridman (1:53:53.500)
And no, they meant just the first episode
John Carmack (1:53:57.500)
that they got to see everywhere.
Lex Fridman (1:53:58.740)
That's me, I played the crap out of Commander Keen.
Lex Fridman (1:54:01.020)
And that was all good.
Lex Fridman (1:54:03.300)
Yeah, yeah.
Lex Fridman (1:54:04.140)
But so we were in this position where Scott Miller
Lex Fridman (1:54:06.780)
was just fronting us cash, saying, yeah, make a game.
Lex Fridman (1:54:10.420)
But we did not properly pull the trigger and say,
Lex Fridman (1:54:14.140)
all right, we're quitting our jobs.
John Carmack (1:54:16.380)
We were like, we're gonna do both.
Lex Fridman (1:54:17.940)
We're gonna keep working at Softdisk, working on this.
Lex Fridman (1:54:21.280)
And then we're going to go ahead and make a new game
Lex Fridman (1:54:24.740)
for Apogee at the same time.
Lex Fridman (1:54:27.060)
And this eventually did lead to some legal problems.
Lex Fridman (1:54:29.580)
And we had trouble.
John Carmack (1:54:31.100)
It all got worked out in the end,
Lex Fridman (1:54:32.820)
but it was not a good call at the time there.
Lex Fridman (1:54:35.860)
And your legal mind at the time was not stellar.
Lex Fridman (1:54:39.380)
You were not thinking in terms of the illegal terms.
John Carmack (1:54:42.340)
No, I definitely wasn't.
Lex Fridman (1:54:44.020)
None of us were.
Lex Fridman (1:54:46.140)
And in hindsight, yeah, it's like,
Lex Fridman (1:54:47.620)
how did we think we were gonna get away
John Carmack (1:54:48.940)
with even using our work computers
Lex Fridman (1:54:51.180)
to write software for our breakaway new company?
John Carmack (1:54:56.820)
It was not a good plan.
Lex Fridman (1:54:58.420)
How did Commander Keen come to be?
Lex Fridman (1:55:00.980)
So the design process, we would start from,
Lex Fridman (1:55:04.100)
we had some idea of what we wanted to do.
John Carmack (1:55:05.900)
We wanted to do a Mario like game.
Lex Fridman (1:55:08.340)
It was gonna be a side scroller.
John Carmack (1:55:10.180)
It was gonna use the technology.
Lex Fridman (1:55:11.800)
We had some sense of what it would have to look like
John Carmack (1:55:14.340)
because of the limitations
Lex Fridman (1:55:15.500)
of this adaptive tile refresh technology.
John Carmack (1:55:17.980)
It had to have fields of relatively constant tiles.
Lex Fridman (1:55:21.220)
You couldn't just paint up a background
Lex Fridman (1:55:23.500)
and then move that around.
Lex Fridman (1:55:25.940)
The early design or all the design for Commander Keen
John Carmack (1:55:28.620)
really came from Tom Hall,
Lex Fridman (1:55:30.020)
where he was kind of the main creative mind
John Carmack (1:55:34.900)
for the early id software stuff,
Lex Fridman (1:55:36.940)
where we had an interesting division of things
John Carmack (1:55:39.080)
where Tom was all creative and design.
Lex Fridman (1:55:42.220)
I was all programming.
John Carmack (1:55:43.620)
John Romero was an interesting bridge
Lex Fridman (1:55:45.540)
where he was both a very good programmer
Lex Fridman (1:55:47.740)
and also a very good designer and artist
Lex Fridman (1:55:50.140)
and kind of straddled between the areas.
Lex Fridman (1:55:52.500)
But Commander Keen was very much Tom Hall's baby.
Lex Fridman (1:55:55.540)
And he came up with all the design and backstory
John Carmack (1:55:59.300)
for the different things of kind of a mad scientist,
Lex Fridman (1:56:02.340)
little kid with building a rocket ship
Lex Fridman (1:56:06.460)
and a zap gun and visiting alien worlds
Lex Fridman (1:56:09.100)
and doing all of this that the background
John Carmack (1:56:11.540)
that we lay the game inside of.
Lex Fridman (1:56:13.620)
And there's not a whole lot to any of these things.
John Carmack (1:56:16.780)
Design for us was always just what we needed to do
Lex Fridman (1:56:19.540)
to make the game that was gonna be so much fun to play.
Lex Fridman (1:56:23.060)
And we laid out our first trilogy of games,
Lex Fridman (1:56:26.820)
the shareware formula, it's gonna be three pieces.
John Carmack (1:56:29.460)
We make Commander Keen one, two, and three.
Lex Fridman (1:56:31.780)
And we just really started busting on all that work.
Lex Fridman (1:56:35.820)
And it went together really quickly.
Lex Fridman (1:56:37.700)
It was like three months or something
John Carmack (1:56:39.580)
that while we were still making games every month
Lex Fridman (1:56:41.940)
for Gamer's Edge, we were sharing technology between that.
John Carmack (1:56:45.500)
I'd write a bunch of code for this
Lex Fridman (1:56:46.820)
and we'd just kind of use it for both.
John Carmack (1:56:48.980)
Again, not a particularly good idea there
Lex Fridman (1:56:50.900)
that had consequences for us.
Lex Fridman (1:56:53.020)
But in three months, we got our first game out
Lex Fridman (1:56:57.220)
and all of a sudden it was three times as successful
John Carmack (1:57:00.660)
as the most successful thing Apogee had had before.
Lex Fridman (1:57:03.060)
And we were making like $30,000 a month
John Carmack (1:57:05.780)
immediately from the Commander Keen stuff.
Lex Fridman (1:57:09.060)
And that was again, a surprise to us.
John Carmack (1:57:11.700)
It was more than we thought that that was gonna make.
Lex Fridman (1:57:15.300)
And we said, well, we're gonna certainly roll
John Carmack (1:57:17.340)
into another set of titles from this.
Lex Fridman (1:57:19.980)
And in that three months, I had come up
John Carmack (1:57:21.800)
with a much better way of doing the scrolling technology
Lex Fridman (1:57:24.860)
that was not the adaptive tile refresh,
John Carmack (1:57:27.220)
which in some ways was even simpler.
Lex Fridman (1:57:29.200)
And these things, so many of the great ideas of technology
John Carmack (1:57:33.440)
are things that are back of the envelope designs.
Lex Fridman (1:57:36.300)
I make this comment about modern machine learning
John Carmack (1:57:38.400)
where all the things that are really important
Lex Fridman (1:57:40.780)
practically in the last decade are,
John Carmack (1:57:42.740)
each of them fits on the back of an envelope.
Lex Fridman (1:57:44.460)
There are these simple little things.
John Carmack (1:57:46.340)
They're not super dense, hard to understand technologies.
Lex Fridman (1:57:51.340)
And so the second scrolling trick was just a matter of like,
John Carmack (1:57:55.060)
okay, we know we've got this 64K window.
Lex Fridman (1:57:58.560)
And the question was always like,
John Carmack (1:58:00.040)
well, you could make a two by two,
Lex Fridman (1:58:02.260)
but you can't go off the edge.
Lex Fridman (1:58:05.500)
But I finally asked, well, what actually happens
Lex Fridman (1:58:07.800)
if you just go off the edge?
John Carmack (1:58:09.600)
If you take your start and you say, it's like,
Lex Fridman (1:58:12.260)
okay, I can move over, I'm scrolling,
John Carmack (1:58:14.460)
I can move over, I can move down, I'm scrolling.
Lex Fridman (1:58:16.920)
I get to what should be the bottom of the memory window.
Lex Fridman (1:58:19.780)
It's like, well, what if I just keep going?
Lex Fridman (1:58:21.620)
And I say, I'm gonna start at,
Lex Fridman (1:58:24.020)
what happens if I start at FFFE
Lex Fridman (1:58:26.380)
at the very end of the 64K block?
Lex Fridman (1:58:29.420)
And it turns out it just wraps back around to the top
Lex Fridman (1:58:32.420)
of the block.
Lex Fridman (1:58:33.300)
And I'm like, oh, well, this makes everything easy.
Lex Fridman (1:58:35.860)
You can just scroll the screen everywhere
Lex Fridman (1:58:37.620)
and all you have to draw is just one new line of tiles,
Lex Fridman (1:58:40.420)
which everything you expose,
John Carmack (1:58:42.100)
it might be unaligned off various parts
Lex Fridman (1:58:44.660)
of the screen memory, but it just works.
John Carmack (1:58:48.180)
That no longer had the problem of you had to have fields
Lex Fridman (1:58:50.820)
of the similar colors because it doesn't matter
Lex Fridman (1:58:53.720)
what you're doing, you could be having
Lex Fridman (1:58:54.980)
a completely unique world and you're just drawing
John Carmack (1:58:57.780)
the new strip as it comes on.
Lex Fridman (1:58:59.460)
But it might be, like you said, unaligned,
Lex Fridman (1:59:02.180)
so it can be all over the place.
Lex Fridman (1:59:03.500)
Yes, and it turns out it doesn't matter.
John Carmack (1:59:04.960)
I would have two page flipped screens,
Lex Fridman (1:59:06.700)
as long as they didn't overlap, they moved in series
John Carmack (1:59:09.120)
through this two dimensional window of graphics.
Lex Fridman (1:59:12.900)
And that was one of those like, well, this is so simple.
John Carmack (1:59:15.700)
This just works, it's faster,
Lex Fridman (1:59:19.420)
there it seemed like there was no downside.
John Carmack (1:59:21.740)
Funny thing was, it turned out after we shipped titles
Lex Fridman (1:59:25.540)
with this, there were what they called super VGA cards,
John Carmack (1:59:29.660)
the cards that would allow higher resolutions
Lex Fridman (1:59:31.940)
and different features that the standard ones didn't.
Lex Fridman (1:59:35.740)
And on some of those cards,
Lex Fridman (1:59:38.340)
this was a weird compatibility quirk again,
John Carmack (1:59:40.360)
because nobody thought this was not
Lex Fridman (1:59:41.900)
what it was designed to do.
Lex Fridman (1:59:43.580)
And some of those cards had more memory.
Lex Fridman (1:59:45.620)
They had more than just 256K and four planes.
John Carmack (1:59:48.820)
They had 512K or a megabyte.
Lex Fridman (1:59:51.500)
And on some of those cards, I scroll my window down
Lex Fridman (1:59:55.660)
and then it goes into uninitialized memory
Lex Fridman (1:59:57.900)
that actually exists there
John Carmack (1:59:59.060)
rather than wrapping back around at the top.
Lex Fridman (20:00.820)
What does it encourage?
Lex Fridman (20:01.720)
How does it encourage you to think?
Lex Fridman (20:03.280)
What kind of systems does it encourage you to build?
John Carmack (20:05.700)
There is something about C++
Lex Fridman (20:08.780)
that has elements of creativity,
Lex Fridman (20:11.240)
but forces you to be an adult about your programming.
Lex Fridman (20:15.160)
It expects you to be an adult.
John Carmack (20:16.680)
It does not force you to.
Lex Fridman (20:18.720)
And so it brings out people that are willing to be creative
John Carmack (20:23.720)
in terms of building large systems
Lex Fridman (20:25.800)
and coming up with interesting solutions,
Lex Fridman (20:27.600)
but at the same time have the sort of the good
Lex Fridman (20:31.320)
software engineering practices that amend themselves
John Carmack (20:35.320)
to real world systems.
Lex Fridman (20:37.480)
Let me ask you about this other language, JavaScript.
Lex Fridman (20:41.760)
So if we, you know, aliens visit in thousands of years,
Lex Fridman (20:46.280)
and humans are long gone, something tells me
John Carmack (20:49.560)
that most of the systems they find will be run by humans.
Lex Fridman (20:53.560)
Will be running JavaScript.
John Carmack (20:55.000)
I kind of think that if we're living in a simulation,
Lex Fridman (20:58.600)
it's written in JavaScript.
John Carmack (21:01.600)
You know, for the longest time, even still,
Lex Fridman (21:05.540)
JavaScript didn't get any respect,
Lex Fridman (21:08.120)
and yet it runs so much of the world,
Lex Fridman (21:10.000)
and an increasing number of the world.
John Carmack (21:12.120)
Is it possible that everything will be written
Lex Fridman (21:15.160)
in JavaScript one day?
Lex Fridman (21:16.720)
So the engineering under JavaScript
Lex Fridman (21:18.800)
is really pretty phenomenal.
John Carmack (21:21.300)
The systems that make JavaScript run as fast
Lex Fridman (21:24.600)
as it does right now are kind of miracles
John Carmack (21:27.520)
of modern engineering in many ways.
Lex Fridman (21:29.960)
It does feel like it is not an optimal language
John Carmack (21:34.440)
for all the things that it's being used for,
Lex Fridman (21:36.360)
or an optimal distribution system to build huge apps
John Carmack (21:40.040)
in something like this without type systems and so on.
Lex Fridman (21:45.760)
But I think for a lot of people,
John Carmack (21:47.520)
it does reasonably the necessary things.
Lex Fridman (21:50.440)
It's still a C flavored language.
John Carmack (21:52.280)
It's still a braces and semicolon language.
Lex Fridman (21:55.840)
It's not hard for people to be trained in JavaScript
Lex Fridman (21:59.480)
and then understand the roots of where it came from.
Lex Fridman (22:02.560)
I think garbage collection is unequivocally a good thing
John Carmack (22:07.120)
for most programs to be written in.
Lex Fridman (22:08.840)
It's funny that I still, just this morning,
John Carmack (22:11.000)
I was seeing a Twitter thread
Lex Fridman (22:13.200)
of a bunch of really senior game dev people
John Carmack (22:15.560)
arguing about the virtues and costs of garbage collection.
Lex Fridman (22:18.880)
You will run into some people that are top notch programmers
John Carmack (22:21.740)
that just say, no, this is literally not a good thing.
Lex Fridman (22:24.640)
Oh, because it makes you lazy?
John Carmack (22:25.840)
Yes, that it makes you not think about things.
Lex Fridman (22:28.440)
And I do disagree.
John Carmack (22:29.640)
I think that there is so much objective data
Lex Fridman (22:33.320)
on the vulnerabilities that have happened
John Carmack (22:35.680)
in C and C++ programs,
Lex Fridman (22:37.800)
sometimes written by the best programmers in the world.
John Carmack (22:40.100)
It's like nobody is good enough to avoid
Lex Fridman (22:42.360)
ever shooting themselves in the foot with that.
John Carmack (22:44.200)
You write enough C code,
Lex Fridman (22:45.540)
you're going to shoot yourself in the foot.
Lex Fridman (22:47.620)
And garbage collection is a very great thing
Lex Fridman (22:50.000)
for the vast majority of programs.
John Carmack (22:51.740)
It's only when you get into the tightest of real time things
Lex Fridman (22:54.720)
that you start saying, it's like, no,
John Carmack (22:56.500)
the garbage collection has more costs
Lex Fridman (22:58.320)
than it has benefits for me there,
Lex Fridman (22:59.940)
but that's not 99 plus percent
Lex Fridman (23:02.560)
of all the software in the world.
Lex Fridman (23:04.840)
So JavaScript is not terrible in those ways.
Lex Fridman (23:09.360)
And so much of programming is not the language itself.
John Carmack (23:14.120)
It's the infrastructure around that surrounds it.
Lex Fridman (23:17.400)
All the libraries that you can get
Lex Fridman (23:19.040)
and the different stuff that you can,
Lex Fridman (23:20.480)
ways you can deploy it,
John Carmack (23:22.480)
the portability that it gives you.
Lex Fridman (23:24.200)
And JavaScript is really strong on a lot of those things
John Carmack (23:27.080)
where for a long time, and it still does if I look at it,
Lex Fridman (23:31.120)
the web stack about everything that has to go
John Carmack (23:34.020)
when you do something really trivial in JavaScript
Lex Fridman (23:36.460)
and it shows up on a web browser
John Carmack (23:38.420)
to kind of X ray through that
Lex Fridman (23:40.360)
and see everything that has to happen
John Carmack (23:42.280)
for your one little JavaScript statement
Lex Fridman (23:44.680)
to turn into something visible in your web browser,
John Carmack (23:48.280)
it's very, very disquieting,
Lex Fridman (23:51.160)
just the depth of that stack
Lex Fridman (23:53.360)
and the fact that so few people can even comprehend
Lex Fridman (23:56.840)
all of the levels that are going on there.
Lex Fridman (23:59.440)
But it's again, I have to caution myself
Lex Fridman (24:02.320)
to not be the in the good old days old man about it
John Carmack (24:05.540)
because clearly there's enormous value here.
Lex Fridman (24:08.760)
The world does run on JavaScript
John Carmack (24:11.180)
to a pretty good approximation there
Lex Fridman (24:13.280)
and it's not falling apart.
John Carmack (24:14.720)
There's a bunch of scary stuff
Lex Fridman (24:16.100)
where you look at console logs
Lex Fridman (24:18.400)
and you just see all of these bad things that are happening
Lex Fridman (24:20.940)
but it's still kind of limping along
Lex Fridman (24:22.560)
and nobody really notices.
Lex Fridman (24:24.760)
But so much of my systems design
Lex Fridman (24:28.440)
and systems analysis goes around.
Lex Fridman (24:30.720)
You should understand what the speed of light is,
John Carmack (24:32.920)
like what would be the best you could possibly do here.
Lex Fridman (24:36.120)
And it sounds horrible, but in a lot of cases,
John Carmack (24:39.400)
you can be a thousand times off your speed of light,
Lex Fridman (24:42.720)
velocity for something and it's still be okay.
Lex Fridman (24:45.520)
And in fact, it can even sometimes still be
Lex Fridman (24:48.360)
the optimal thing in a larger system standpoint
John Carmack (24:51.120)
where there's a lot of things
Lex Fridman (24:52.700)
that you don't wanna have to parachute in someone like me
John Carmack (24:55.640)
to go in and say, make this webpage run
Lex Fridman (24:59.880)
a thousand times faster,
John Carmack (25:01.560)
make this web app into a hardcore native application
Lex Fridman (25:05.320)
that starts up in 37 milliseconds
Lex Fridman (25:08.020)
and everything responds in less than one frame latency.
Lex Fridman (25:11.240)
That's just not necessary.
Lex Fridman (25:12.680)
And if somebody wants to go pay me millions of dollars
Lex Fridman (25:15.440)
to do software like that,
John Carmack (25:16.680)
when they can take somebody right out of a bootcamp
Lex Fridman (25:19.040)
and say, spin up an application for this.
John Carmack (25:21.960)
Often being efficient is not really the best metric.
Lex Fridman (25:26.960)
And it's like, that applies in a lot of areas
John Carmack (25:29.260)
where it's kind of interesting how a lot of our appliances
Lex Fridman (25:32.680)
and everything are all built around energy efficiency,
John Carmack (25:36.360)
sometimes at the expense of robustness in some other ways
Lex Fridman (25:39.400)
or higher costs in other ways
John Carmack (25:41.160)
where there's interesting things
Lex Fridman (25:42.960)
where energy or electricity could become much cheaper
John Carmack (25:46.080)
in a future world.
Lex Fridman (25:47.040)
And that could change our engineering trade offs
John Carmack (25:49.040)
for the way we build certain things
Lex Fridman (25:50.520)
where you could throw away efficiency
Lex Fridman (25:53.100)
and actually get more benefits that actually matter.
Lex Fridman (25:56.280)
I mean, that's one of the directions
John Carmack (25:59.320)
I was considering swerving into was nuclear energy.
Lex Fridman (26:02.760)
When I was kind of like, what do I wanna do next?
John Carmack (26:04.600)
It was either gonna be cost effective nuclear fission
Lex Fridman (26:08.120)
or artificial general intelligence.
Lex Fridman (26:10.520)
And one of my pet ideas there is like,
Lex Fridman (26:14.680)
people don't understand how cheap nuclear fuel is.
Lex Fridman (26:18.400)
And there would be ways that,
Lex Fridman (26:21.400)
you could be a quarter of the efficiency or less,
Lex Fridman (26:24.760)
but if it wound up making your plant 10 times cheaper,
Lex Fridman (26:27.720)
that could be a radical innovation in something like that.
Lex Fridman (26:31.240)
So there's like some of these thoughts
Lex Fridman (26:32.560)
around like direct fission energy conversion,
John Carmack (26:35.520)
fission fragment conversion,
Lex Fridman (26:36.760)
that maybe you build something
John Carmack (26:38.480)
that doesn't require all the steam turbines and everything,
Lex Fridman (26:40.920)
even if it winds up being less efficient.
Lex Fridman (26:42.720)
So that applies a lot in programming
Lex Fridman (26:45.060)
where it's always good to know what you could do.
John Carmack (26:49.180)
If you really sat down and took it far,
Lex Fridman (26:52.040)
because sometimes there's discontinuities
John Carmack (26:53.760)
like around user reaction times,
Lex Fridman (26:56.120)
there are some points where the difference between
John Carmack (26:59.200)
operating in one second and 750 milliseconds,
Lex Fridman (27:02.920)
not that huge.
John Carmack (27:03.920)
You'll see it in webpage statistics,
Lex Fridman (27:05.680)
but most of the usability stuff, not that great.
Lex Fridman (27:08.260)
But if you get down to 50 milliseconds,
Lex Fridman (27:11.000)
then all of a sudden this just feels amazing.
John Carmack (27:13.200)
It's just like doing your bidding instantly
Lex Fridman (27:15.480)
rather than you're giving it a command,
John Carmack (27:17.240)
twiddling your thumbs, waiting for it to respond.
Lex Fridman (27:19.760)
So sometimes it's important to really crunch hard
John Carmack (27:23.080)
to get over some threshold,
Lex Fridman (27:25.040)
but there are broad basins in the value metric
John Carmack (27:28.920)
for lots of work where it just doesn't pay
Lex Fridman (27:31.260)
to even go that extra mile.
Lex Fridman (27:33.000)
And there are craftsmen that just don't wanna buy that
Lex Fridman (27:36.320)
and more power to them.
John Carmack (27:37.880)
If somebody just wants to say,
Lex Fridman (27:39.120)
no, I'm going to be, my pride is in my work,
John Carmack (27:42.760)
I'm never going to do something
Lex Fridman (27:44.080)
that's not as good as I could possibly make it,
John Carmack (27:46.400)
I respect that and sometimes I am that person,
Lex Fridman (27:50.120)
but I try to focus more on the larger value picture
Lex Fridman (27:53.840)
and you do pick your battles
Lex Fridman (27:55.280)
and you deploy your resources in the play
John Carmack (27:57.400)
that's going to give you the best user value in the end.
Lex Fridman (28:00.720)
Well, if you look at the evolution of life on Earth
John Carmack (28:04.680)
as a kind of programming effort,
Lex Fridman (28:10.840)
it seems like efficiency isn't the thing
John Carmack (28:13.320)
that's being optimized for.
Lex Fridman (28:15.180)
Like natural selection is very inefficient,
Lex Fridman (28:17.220)
but it kind of adapts and through the process
Lex Fridman (28:21.580)
of adaptations building more and more complex systems
John Carmack (28:24.320)
that are more and more intelligent,
Lex Fridman (28:25.440)
the final result is kind of pretty interesting.
Lex Fridman (28:28.320)
And so I think of JavaScript the same way.
Lex Fridman (28:30.960)
It's like this giant mess
John Carmack (28:33.040)
that things naturally die off if they don't work
Lex Fridman (28:36.480)
and if they become useful to people,
John Carmack (28:39.440)
they kind of naturally live
Lex Fridman (28:40.900)
and then you build this community,
John Carmack (28:42.880)
large community of people that are generating code
Lex Fridman (28:45.940)
and some code is sticky, some is not
Lex Fridman (28:48.160)
and nobody knows the inefficiencies or the efficiencies
Lex Fridman (28:52.480)
or the breaking points, like how reliable this code is
Lex Fridman (28:54.920)
and you kind of just run it, assume it works
Lex Fridman (28:57.820)
and then get unpleasantly surprised
Lex Fridman (29:00.440)
and then that's very kind of the evolutionary process.
Lex Fridman (29:03.160)
So that's a really good analogy
Lex Fridman (29:04.980)
and we can go a lot of places with that
Lex Fridman (29:06.840)
where in the earliest days of programming,
John Carmack (29:09.540)
when you had finite, you could count the bytes
Lex Fridman (29:11.920)
that you had to work on this,
John Carmack (29:13.080)
you had all the kind of hackers playing code golf
Lex Fridman (29:15.980)
to be one less instruction
John Carmack (29:17.400)
than the other person's multiply routine
Lex Fridman (29:19.600)
to kind of get through and it was so perfectly crafted.
John Carmack (29:22.880)
It was a crystal piece of artwork when you had a program
Lex Fridman (29:26.500)
because there just were not that many,
John Carmack (29:28.460)
you couldn't afford to be lazy in different ways
Lex Fridman (29:31.320)
and in many ways I see that as akin to the symbolic AI work
John Carmack (29:34.760)
where again, if you did not have the resources to just say,
Lex Fridman (29:38.480)
well, we're gonna do billions and billions
John Carmack (29:40.600)
of programmable weights here,
Lex Fridman (29:42.680)
you have to turn it down into something
John Carmack (29:44.500)
that is symbolic and crafted like that
Lex Fridman (29:47.400)
but that's definitely not the way DNA and life
Lex Fridman (29:51.140)
and biological evolution and things work.
Lex Fridman (29:55.000)
On the one hand, it's almost humbling
Lex Fridman (29:58.360)
how little programming code is in our bodies.
Lex Fridman (2:00:01.740)
And then I was in the tough position
Lex Fridman (2:00:04.180)
of do I have to track every single one of these?
Lex Fridman (2:00:06.260)
And it was a mad house back then
John Carmack (2:00:07.860)
with there were 20 different video card vendors
Lex Fridman (2:00:10.700)
with all slightly different implementations
John Carmack (2:00:12.700)
of their nonstandard functionality.
Lex Fridman (2:00:14.820)
So either I needed to natively program
John Carmack (2:00:17.540)
all of the VGA cards there to map in that memory
Lex Fridman (2:00:22.080)
and keep scrolling down through all of that,
John Carmack (2:00:24.320)
or I kind of punted and took the easy solution
Lex Fridman (2:00:27.180)
of when you finally did run to the edge of the screen,
John Carmack (2:00:30.300)
I accepted a hitch and just copied the whole screen up there.
Lex Fridman (2:00:33.340)
So on some of those cards, it was a compatibility mode.
John Carmack (2:00:38.340)
In the normal ones, when it all worked fine,
Lex Fridman (2:00:40.140)
everything was just beautifully smooth.
Lex Fridman (2:00:42.060)
But if you had one of those cards
Lex Fridman (2:00:43.460)
where it did not wrap the way I wanted it to,
John Carmack (2:00:46.340)
you'd be scrolling around, scrolling around,
Lex Fridman (2:00:48.820)
and then eventually you'd have a little hitch
John Carmack (2:00:50.580)
where 200 milliseconds or something
Lex Fridman (2:00:52.860)
that was not super smooth as it froze a little bit.
Lex Fridman (2:00:56.100)
And this is the binary thing.
Lex Fridman (2:00:57.860)
Is it one of the standard screens
Lex Fridman (2:00:59.660)
or is it one of the weird ones, the Super VGA ones?
Lex Fridman (2:01:02.060)
Yeah. Okay.
Lex Fridman (2:01:03.020)
And so we would default to,
Lex Fridman (2:01:04.500)
and I think that was one of those
John Carmack (2:01:05.900)
that changed over the kind of course of deployment
Lex Fridman (2:01:09.020)
where early on we would have a normal mode
Lex Fridman (2:01:11.060)
and then you would enable the compatibility flag
Lex Fridman (2:01:13.500)
if your screen did this crazy flickery thing
John Carmack (2:01:16.140)
when you got to a certain point in the game.
Lex Fridman (2:01:18.620)
And then later, I think it probably got enabled by default
John Carmack (2:01:21.420)
as just more and more of the cards
Lex Fridman (2:01:23.500)
kind of did not do exactly the right thing.
Lex Fridman (2:01:26.140)
And that's the two edged sword
Lex Fridman (2:01:27.500)
of doing unconventional things with technology
John Carmack (2:01:30.340)
where you can find something that nobody thought about
Lex Fridman (2:01:33.060)
doing that kind of scrolling trick
John Carmack (2:01:34.540)
when they set up those cards.
Lex Fridman (2:01:36.780)
But the fact that nobody thought that was the primary reason
John Carmack (2:01:39.100)
when I was relying on that,
Lex Fridman (2:01:40.820)
then I wound up being broken on some of the later cards.
John Carmack (2:01:44.020)
Let me take a bit of a tangent,
Lex Fridman (2:01:45.740)
but ask you about the hacker ethic.
John Carmack (2:01:50.260)
Cause you mentioned shareware.
Lex Fridman (2:01:51.780)
It's an interesting world.
John Carmack (2:01:53.180)
The world of people that make money,
Lex Fridman (2:01:56.660)
the business and the people that build systems,
John Carmack (2:02:00.500)
the engineers.
Lex Fridman (2:02:02.060)
And what is the hacker ethic?
John Carmack (2:02:05.980)
You've been a man of the people
Lex Fridman (2:02:08.440)
and you've embodied at least the part of that ethic.
Lex Fridman (2:02:12.460)
What does it mean?
Lex Fridman (2:02:13.300)
What did it mean to you at the time?
Lex Fridman (2:02:14.460)
What does it mean to you today?
Lex Fridman (2:02:15.820)
So Steven Levy's book, Hackers,
John Carmack (2:02:17.900)
was a really formative book for me as a teenager.
Lex Fridman (2:02:21.620)
I mean, I read it several times
Lex Fridman (2:02:23.660)
and there was all of the great lore
Lex Fridman (2:02:26.020)
of the early MIT era of hackers
Lex Fridman (2:02:28.980)
and ending up at the end with,
Lex Fridman (2:02:31.000)
it kind of went through the early MIT hackers
Lex Fridman (2:02:34.100)
and then the Silicon Valley hardware hackers
Lex Fridman (2:02:36.120)
and then the game hackers in part three.
Lex Fridman (2:02:39.460)
And at that time as a teenager,
Lex Fridman (2:02:41.740)
I really was kind of bitter in some ways.
John Carmack (2:02:44.700)
I thought I was born too late.
Lex Fridman (2:02:46.280)
I thought I missed the window there.
Lex Fridman (2:02:48.980)
And I really thought I belonged in that third section
Lex Fridman (2:02:52.020)
of that book with the game hackers.
Lex Fridman (2:02:53.620)
And they were talking about the Williams at Sierra
Lex Fridman (2:02:56.740)
and origin systems with Richard Garriott.
Lex Fridman (2:02:59.340)
And it's like, I really wanted to be there.
Lex Fridman (2:03:02.540)
And I knew that was now a few years in the past.
John Carmack (2:03:05.580)
It was not to be,
Lex Fridman (2:03:08.700)
but the early days, especially the early MIT hacker days,
John Carmack (2:03:12.500)
talking a lot about this sense of the hacker ethic,
Lex Fridman (2:03:16.100)
that there was this sense that
John Carmack (2:03:17.980)
it was about sharing information, being good,
Lex Fridman (2:03:20.720)
not keeping it to yourself,
Lex Fridman (2:03:22.460)
and that it's not a zero sum game,
Lex Fridman (2:03:24.740)
that you can share something with another programmer
Lex Fridman (2:03:28.400)
and it doesn't take it away from you.
Lex Fridman (2:03:30.780)
You then have somebody else doing something.
Lex Fridman (2:03:33.120)
And I also think that there's an aspect of it
Lex Fridman (2:03:35.940)
where it's this ability to take joy
John Carmack (2:03:39.180)
in other people's accomplishments,
Lex Fridman (2:03:41.200)
where it's not the cutthroat bit of like,
John Carmack (2:03:43.020)
I have to be first,
Lex Fridman (2:03:44.060)
I have to be recognized as the one that did this
John Carmack (2:03:47.380)
in some way,
Lex Fridman (2:03:48.220)
but being able to see somebody else do something
Lex Fridman (2:03:51.560)
and say, holy shit, that's amazing.
Lex Fridman (2:03:53.620)
And just taking joy in the ability of something amazing
John Carmack (2:03:56.900)
that somebody else does.
Lex Fridman (2:03:58.780)
And the big thing that I was able to do through ID Software
John Carmack (2:04:03.780)
was this ability to eventually release the source code
Lex Fridman (2:04:07.160)
for most of our,
John Carmack (2:04:08.080)
like all of our really seminal game titles.
Lex Fridman (2:04:10.720)
And that was a, it was a stepping stone process
John Carmack (2:04:13.640)
where we were kind of surprised early on
Lex Fridman (2:04:16.500)
where people were able to hack the existing games.
Lex Fridman (2:04:20.120)
And of course I had experience with that.
Lex Fridman (2:04:21.540)
I remember hacking my copies of Ultima.
Lex Fridman (2:04:23.480)
So I'd give myself 9999 gold and raise my levels
Lex Fridman (2:04:27.080)
and break out the sector editor.
Lex Fridman (2:04:29.080)
And so I was familiar with all of that.
Lex Fridman (2:04:31.040)
So it was just, it was with a smile
John Carmack (2:04:33.000)
when I started to see people doing that to our games,
Lex Fridman (2:04:35.620)
I am making level editors for Commander Keen
John Carmack (2:04:38.940)
or hacking up Wolfenstein 3D,
Lex Fridman (2:04:41.820)
but I made the pitch internally
John Carmack (2:04:44.940)
that we should actually release our own tools
Lex Fridman (2:04:47.560)
for like what we did, what we use to create the games.
Lex Fridman (2:04:51.440)
And that was a little bit debatable about,
Lex Fridman (2:04:55.100)
well, will this let other, we'll give people leg up.
John Carmack (2:04:57.920)
It's always like,
Lex Fridman (2:04:58.760)
what's that gonna mean for the competition?
Lex Fridman (2:05:00.940)
But the really hard pitch was to actually release
Lex Fridman (2:05:04.760)
the full source code for the games.
Lex Fridman (2:05:06.800)
And it was a balancing act with the other people
Lex Fridman (2:05:10.360)
inside the company where it's interesting
Lex Fridman (2:05:13.320)
how the programmers generally did get,
Lex Fridman (2:05:17.060)
certainly the people that I worked closely with,
John Carmack (2:05:20.360)
they did kind of get that hacker ethic bit
Lex Fridman (2:05:22.600)
where you wanted to share your code.
John Carmack (2:05:24.660)
You were proud of it.
Lex Fridman (2:05:25.780)
You wanted other people to take it, do cool things with it.
Lex Fridman (2:05:28.920)
But interestingly, the broader game industry
Lex Fridman (2:05:33.880)
is a little more hesitant to embrace that
John Carmack (2:05:36.520)
than like the group of people
Lex Fridman (2:05:38.000)
that we happen to have at id Software,
John Carmack (2:05:40.160)
where it was always a little interesting to me
Lex Fridman (2:05:42.520)
seeing how a lot of people in the game modding community
John Carmack (2:05:45.600)
were very possessive of their code.
Lex Fridman (2:05:47.640)
They did not wanna share their code.
John Carmack (2:05:49.320)
They wanted it to be theirs.
Lex Fridman (2:05:50.560)
It was their claim to fame.
Lex Fridman (2:05:52.640)
And that was much more like what we tended to see
Lex Fridman (2:05:55.400)
with artists where the artists understand something
John Carmack (2:05:58.360)
about credit and wanting it to be known as their work.
Lex Fridman (2:06:02.200)
And a lot of the game programmers
John Carmack (2:06:05.320)
felt a little bit more like artists
Lex Fridman (2:06:07.020)
than like hacker programmers,
John Carmack (2:06:08.600)
in that it was about building something
Lex Fridman (2:06:11.000)
that maybe felt more like art to them
John Carmack (2:06:13.000)
than the more tool based and exploration based
Lex Fridman (2:06:16.760)
kind of hacking culture side of things.
John Carmack (2:06:19.060)
Yeah, it's so interesting that this kind of fear
Lex Fridman (2:06:23.760)
that credit will not be sufficiently attributed to you.
Lex Fridman (2:06:27.860)
And that's one of the things that I do bump into a lot
Lex Fridman (2:06:30.400)
because I try not to go...
John Carmack (2:06:34.240)
I mean, it's easy for me to say
Lex Fridman (2:06:35.400)
because so much credit is heaped on me
John Carmack (2:06:37.240)
for the id Software side of things.
Lex Fridman (2:06:39.360)
But when people come up and they wanna pick a fight
Lex Fridman (2:06:42.200)
and say, no, it's like that wasn't where first person gaming
Lex Fridman (2:06:45.120)
came from and you can point to some of like things
John Carmack (2:06:48.860)
on obscure titles that I was never aware of
Lex Fridman (2:06:51.600)
or like the old Playdoh systems
John Carmack (2:06:53.340)
or each personal computer had something that was 3Dish
Lex Fridman (2:06:57.000)
and moving around.
Lex Fridman (2:06:58.320)
And I'm happy to say it's like, no, I mean,
Lex Fridman (2:07:01.200)
I saw Battlezone and Star Wars in the arcades.
John Carmack (2:07:03.900)
I had seen 3D graphics, I had seen all these things
Lex Fridman (2:07:06.360)
that are standing on the shoulders of lots of other people.
Lex Fridman (2:07:09.100)
But sometimes these examples they pull out,
Lex Fridman (2:07:10.880)
it's like, no, I didn't know that existed.
John Carmack (2:07:12.540)
I mean, I had never heard of that before then
Lex Fridman (2:07:15.280)
that didn't contribute to what I made,
Lex Fridman (2:07:17.840)
but there's plenty of stuff that did.
Lex Fridman (2:07:19.480)
And I think there's good cases to be made
John Carmack (2:07:23.280)
that obviously Doom and Quake and Wolfenstein
Lex Fridman (2:07:26.160)
were formative examples for what everything
John Carmack (2:07:29.800)
that came after that.
Lex Fridman (2:07:31.720)
But I don't feel the need to go fight
Lex Fridman (2:07:34.160)
and say claim primacy or initial invention
Lex Fridman (2:07:37.480)
of anything like that.
Lex Fridman (2:07:38.800)
But a lot of people do want to.
Lex Fridman (2:07:40.440)
I think when you fight for the credit in that way
Lex Fridman (2:07:43.200)
and it does go against the hacker ethic,
Lex Fridman (2:07:46.280)
you destroy something fundamental about the culture,
John Carmack (2:07:48.800)
about the community that builds cool stuff.
Lex Fridman (2:07:51.760)
I think credit ultimately,
Lex Fridman (2:07:53.780)
so I had this sort of,
Lex Fridman (2:07:58.420)
there's a famous wrestler and freestyle wrestling
John Carmack (2:08:00.980)
called Buvai Sarasateeva.
Lex Fridman (2:08:03.980)
And he always preached that you should just focus
John Carmack (2:08:07.760)
on the art of the wrestling and let people
Lex Fridman (2:08:12.740)
write your story however they want.
John Carmack (2:08:15.940)
The highest form of the art is just focusing on the art.
Lex Fridman (2:08:20.100)
And that is something about the hacker ethic
John Carmack (2:08:23.760)
is just focus on building cool stuff,
Lex Fridman (2:08:26.900)
sharing it with other cool people,
Lex Fridman (2:08:29.380)
and credit will get assigned correctly
Lex Fridman (2:08:35.060)
in the long arc of history.
John Carmack (2:08:37.240)
Yeah, and I generally think that's true.
Lex Fridman (2:08:39.180)
And you've got,
John Carmack (2:08:42.020)
there's some things, there's a graphics technique
Lex Fridman (2:08:44.220)
that got labeled CarMax Reverse.
John Carmack (2:08:46.220)
I am literally named,
Lex Fridman (2:08:48.380)
and it turned out that I wasn't the first person
John Carmack (2:08:50.300)
to figure that out.
Lex Fridman (2:08:51.860)
Most scientific things or mathematical things you wind up,
John Carmack (2:08:54.700)
it's like, oh, this other person
Lex Fridman (2:08:56.220)
had actually done that somewhat before.
Lex Fridman (2:08:58.580)
And then there's things that get attributed to me
Lex Fridman (2:09:00.300)
like the inverse square root hack that I actually didn't do.
John Carmack (2:09:03.300)
I flat out, that wasn't me.
Lex Fridman (2:09:04.760)
And it's like, it's weird how the memetic power
John Carmack (2:09:07.260)
of the internet, I cannot convince people of that.
Lex Fridman (2:09:09.100)
You're like the Mark Twain of programming.
John Carmack (2:09:10.980)
Yes.
Lex Fridman (2:09:12.140)
Everything just gets attributed to you now,
John Carmack (2:09:14.060)
even though you've never sought the credit of things.
Lex Fridman (2:09:18.300)
But part of the fact of the humility behind that
John Carmack (2:09:21.220)
is what attracts the attributions.
Lex Fridman (2:09:25.340)
Let's talk about a game.
John Carmack (2:09:27.820)
I mean, one of the greatest games ever made.
Lex Fridman (2:09:29.580)
I know you could talk about doing Quake and so on,
Lex Fridman (2:09:31.500)
but to me, Wolfenstein 3D was like, whoa.
Lex Fridman (2:09:35.340)
It blew my mind that a world like this could exist.
Lex Fridman (2:09:38.180)
So how did Wolfenstein 3D come to be
Lex Fridman (2:09:42.080)
in terms of the programming, in terms of the design,
Lex Fridman (2:09:44.260)
in terms of some of the memorable technical challenges?
Lex Fridman (2:09:47.240)
And also, actually just something you haven't mentioned
John Carmack (2:09:50.600)
is how did these ideas come to be inside your mind,
Lex Fridman (2:09:58.120)
the adaptive side scrolling,
Lex Fridman (2:10:00.560)
the solutions to these technical challenges?
Lex Fridman (2:10:03.560)
So I usually can introspectively pull back
John Carmack (2:10:06.900)
pretty detailed accounts of how technology solutions
Lex Fridman (2:10:11.360)
and design choices on my part came to be,
John Carmack (2:10:14.000)
where technically we had done two games,
Lex Fridman (2:10:17.400)
3D games like that before,
John Carmack (2:10:19.200)
where Hover Tank was the first one,
Lex Fridman (2:10:20.960)
which had flat shaded walls,
Lex Fridman (2:10:22.760)
but did have the scaled enemies inside it.
Lex Fridman (2:10:25.240)
And then Catacombs 3D, which had textured walls,
John Carmack (2:10:28.920)
scaled enemies, and some more functionality,
Lex Fridman (2:10:34.160)
like the disappearing walls and some other stuff.
Lex Fridman (2:10:37.160)
But what's really interesting
Lex Fridman (2:10:38.680)
from a game development standpoint is those games,
John Carmack (2:10:41.980)
Catacombs 3D, Hover Tank, and Wolfenstein,
Lex Fridman (2:10:45.000)
they literally used the same code
John Carmack (2:10:48.240)
for a lot of the character behavior
Lex Fridman (2:10:50.280)
that a 2D game that I had made earlier called Catacombs did,
John Carmack (2:10:54.140)
where it was an overhead view game, kind of like Gauntlet,
Lex Fridman (2:10:56.740)
you're running around and you can open up doors,
John Carmack (2:10:58.800)
pick up items, basic game stuff.
Lex Fridman (2:11:01.280)
And the thought was that this exact same game experience
John Carmack (2:11:06.520)
just presented in a different perspective.
Lex Fridman (2:11:09.080)
It could be literally the same game
John Carmack (2:11:11.380)
just with a different view into it,
Lex Fridman (2:11:13.480)
would have a dramatically different impact on the players.
Lex Fridman (2:11:16.880)
So it wasn't a true 3D,
Lex Fridman (2:11:20.280)
you're saying that you could kind of fake it,
John Carmack (2:11:22.440)
you can like scale enemies,
Lex Fridman (2:11:24.160)
meaning things that are farther away,
John Carmack (2:11:25.720)
you can make them smaller.
Lex Fridman (2:11:27.440)
So the game was a 2D map,
John Carmack (2:11:29.760)
like all of our games use the same tool for creation.
Lex Fridman (2:11:33.040)
We use the same map editor for creating Keen as Wolfenstein
Lex Fridman (2:11:36.320)
and Hover Tank and Catacombs and all this stuff.
Lex Fridman (2:11:39.100)
So the game was a 2D grid made out of blocks.
Lex Fridman (2:11:42.680)
And you could say, well, these are walls,
Lex Fridman (2:11:44.480)
these are where the enemies start,
John Carmack (2:11:45.880)
then they start moving around.
Lex Fridman (2:11:47.700)
And these early games like Catacombs,
John Carmack (2:11:49.600)
you played it strictly in a 2D view.
Lex Fridman (2:11:51.600)
It was a scrolling 2D view,
Lex Fridman (2:11:53.200)
and that was kind of using an adaptive tile refresh
Lex Fridman (2:11:55.320)
at the time to be able to do something like that.
Lex Fridman (2:11:58.440)
And then the thought that these early games,
Lex Fridman (2:12:01.620)
all it did was take the same basic enemy logic,
Lex Fridman (2:12:04.600)
but instead of seeing it from the God's eye view on top,
Lex Fridman (2:12:07.680)
you were inside it and turning from side to side,
John Carmack (2:12:10.480)
yawing your view and moving forwards and backwards
Lex Fridman (2:12:12.640)
and side to side.
Lex Fridman (2:12:14.520)
And it's a striking thing where you always talk about
Lex Fridman (2:12:17.160)
wanting to isolate and factor changes in values.
Lex Fridman (2:12:20.040)
And this was one of those most pure cases there
Lex Fridman (2:12:22.360)
where the rest of the game changed very little.
John Carmack (2:12:25.040)
It was our normal kind of change the colors on something
Lex Fridman (2:12:27.840)
and draw a different picture for it,
Lex Fridman (2:12:29.200)
but it's kind of the same thing.
Lex Fridman (2:12:30.880)
But the perspective changed in a really fundamental way.
Lex Fridman (2:12:33.960)
And it was dramatically different.
Lex Fridman (2:12:36.280)
I can remember the reactions where the artist, Adrian,
John Carmack (2:12:40.600)
that had been drawing the pictures for it.
Lex Fridman (2:12:42.040)
We had a cool big troll thing in Catacombs 3D,
Lex Fridman (2:12:45.000)
and we had these walls that you could get a key
Lex Fridman (2:12:47.720)
and you could make the blocks disappear,
John Carmack (2:12:49.840)
get really simple stuff.
Lex Fridman (2:12:51.000)
Blocks could either be there or not there.
Lex Fridman (2:12:52.920)
So our idea of a door was being able to make a set of blocks
Lex Fridman (2:12:55.980)
just disappear.
Lex Fridman (2:12:57.300)
And I remember the reaction
Lex Fridman (2:12:58.640)
where he had drawn these characters
Lex Fridman (2:13:00.080)
and he was slowly moving around
Lex Fridman (2:13:01.720)
and like people had no experience with 3D navigation.
John Carmack (2:13:04.480)
It was all still keyboard.
Lex Fridman (2:13:05.460)
We didn't even have mice set up at that time,
Lex Fridman (2:13:08.520)
but slowly moving, going up, picked up a key, go to a wall.
Lex Fridman (2:13:12.300)
The wall disappears in a little animation
Lex Fridman (2:13:14.360)
and there's a monster like right there.
Lex Fridman (2:13:16.320)
And he practically fell out of his chair.
John Carmack (2:13:18.000)
It was just like, ah!
Lex Fridman (2:13:19.260)
And games just didn't do that.
John Carmack (2:13:22.480)
The games were the God's eye view.
Lex Fridman (2:13:24.360)
You were a little invested in your little guy.
John Carmack (2:13:26.320)
You can be like happy or sad when things happen,
Lex Fridman (2:13:29.760)
but you just did not get that kind of startle reaction.
John Carmack (2:13:32.440)
You weren't inside the game.
Lex Fridman (2:13:33.920)
Something in the back of your brain,
John Carmack (2:13:35.560)
some reptile brain thing is just going,
Lex Fridman (2:13:37.760)
oh shit, something just happened.
Lex Fridman (2:13:39.960)
And that was one of those early points where it's like,
Lex Fridman (2:13:42.520)
yeah, this is gonna make a difference.
John Carmack (2:13:44.800)
This is going to be powerful and it's gonna matter.
Lex Fridman (2:13:47.440)
Were you able to imagine that in the idea stage or no?
Lex Fridman (2:13:51.120)
So not that exact thing.
Lex Fridman (2:13:53.720)
So again, we had cases like the arcade games,
John Carmack (2:13:56.480)
Battle Zone and Star Wars
Lex Fridman (2:13:58.000)
that you could kind of see a 3D world
Lex Fridman (2:14:00.160)
and things coming at you and you get some sense of it,
Lex Fridman (2:14:03.460)
but nothing had done the kind of worlds that we were doing
Lex Fridman (2:14:06.440)
and the sort of action based things.
Lex Fridman (2:14:08.480)
3D at the time was really largely
John Carmack (2:14:12.100)
about the simulation thoughts.
Lex Fridman (2:14:14.240)
And this is something that really
John Carmack (2:14:16.320)
might have trended differently
Lex Fridman (2:14:18.120)
if not for the id Software approach in the games
John Carmack (2:14:20.960)
where there were flight simulators,
Lex Fridman (2:14:23.560)
there were driving simulators,
John Carmack (2:14:24.920)
you had like hard drive in and Microsoft flight simulator.
Lex Fridman (2:14:28.400)
And these were doing 3D and general purpose 3D
John Carmack (2:14:31.360)
in ways that were more flexible
Lex Fridman (2:14:33.760)
than what we were doing with our games,
Lex Fridman (2:14:35.440)
but they were looked at as simulations.
Lex Fridman (2:14:38.000)
They weren't trying to necessarily be fast or responsive
John Carmack (2:14:42.000)
or letting you do kind of exciting maneuvers
Lex Fridman (2:14:44.840)
because they were trying to simulate reality
Lex Fridman (2:14:46.800)
and they were taking their cues from the big systems,
Lex Fridman (2:14:49.280)
the Evans and Sutherlands and the Silicon Graphics
John Carmack (2:14:51.500)
that were doing things.
Lex Fridman (2:14:52.860)
But we were taking our cues
John Carmack (2:14:54.600)
from the console and arcade games.
Lex Fridman (2:14:56.560)
We wanted things that were sort of quarter eaters
John Carmack (2:14:59.480)
that were doing fast paced things
Lex Fridman (2:15:01.160)
that you could smack you around
John Carmack (2:15:02.780)
rather than just smoothly gliding you from place to place.
Lex Fridman (2:15:06.180)
So.
John Carmack (2:15:07.020)
Quarter eaters.
Lex Fridman (2:15:07.840)
Yeah.
Lex Fridman (2:15:08.680)
And you know, a funny thing is,
Lex Fridman (2:15:10.200)
so much that that built into us
John Carmack (2:15:12.280)
that Wolfenstein still had lives
Lex Fridman (2:15:15.080)
and you had like one of the biggest power ups
John Carmack (2:15:16.540)
in all these games like was an extra life
Lex Fridman (2:15:18.800)
because you started off with three lives
Lex Fridman (2:15:20.560)
and you lose your lives and then it's game over
Lex Fridman (2:15:23.080)
and there weren't save games in most of this stuff.
John Carmack (2:15:26.240)
It was, it sounds almost crazy to say this,
Lex Fridman (2:15:28.760)
but it was an innovation in Doom
John Carmack (2:15:30.680)
to not have lives.
Lex Fridman (2:15:32.160)
You know, you could just play Doom as long as you wanted.
Lex Fridman (2:15:33.860)
You just restart at the start of the level and why not?
Lex Fridman (2:15:36.760)
This is like, we aren't trying to take people's quarters.
John Carmack (2:15:39.760)
They've already paid for the entire game.
Lex Fridman (2:15:41.360)
We want them to have a good time
Lex Fridman (2:15:43.360)
and you would have some, you know,
Lex Fridman (2:15:45.520)
some old timer purists that might think
John Carmack (2:15:47.240)
that there's something to the epic journey
Lex Fridman (2:15:48.940)
of making it to the end,
John Carmack (2:15:50.040)
having to restart all the way from the beginning
Lex Fridman (2:15:52.040)
after a certain number of tries.
Lex Fridman (2:15:53.440)
But now more fun is had when you just let people
Lex Fridman (2:15:56.340)
kind of keep trying when they're stuck
John Carmack (2:15:58.040)
rather than having to go all the way back
Lex Fridman (2:15:59.760)
and learn different things.
Lex Fridman (2:16:01.920)
So you've recommended the book,
Lex Fridman (2:16:03.280)
Game Engine Black Book Wolfenstein 3D
John Carmack (2:16:05.760)
for technical exploration of the game.
Lex Fridman (2:16:07.600)
So looking back 30 years,
Lex Fridman (2:16:10.560)
what are some memorable technical innovations
Lex Fridman (2:16:13.260)
that made this perspective shift into this world
John Carmack (2:16:16.920)
that's so immersive that scares you when a monster appears
Lex Fridman (2:16:20.160)
or some things you have to solve?
Lex Fridman (2:16:22.260)
So one of the interesting things
Lex Fridman (2:16:24.140)
that come back to the theme of deadlines
Lex Fridman (2:16:26.300)
and resource constraints,
Lex Fridman (2:16:27.760)
the game Catacombs 3D,
John Carmack (2:16:31.120)
we shipped, we were supposed to be shipping this
Lex Fridman (2:16:33.140)
for Gamers Edge on a monthly cadence and I had slipped.
John Carmack (2:16:36.440)
I was actually late.
Lex Fridman (2:16:37.840)
It slipped like six weeks
John Carmack (2:16:39.240)
because this was texture mapped walls
Lex Fridman (2:16:41.580)
doing stuff that I hadn't done before.
Lex Fridman (2:16:44.760)
And at the six week point,
Lex Fridman (2:16:46.740)
it was still kind of glitchy and buggy.
John Carmack (2:16:48.980)
There were things that I knew that if you had a wall
Lex Fridman (2:16:51.600)
that was like almost edge on, you could slide over to it
Lex Fridman (2:16:54.600)
and you could see some things freak out
Lex Fridman (2:16:56.040)
or vanish or not work.
Lex Fridman (2:16:57.640)
And I hated that,
Lex Fridman (2:16:59.920)
but I was up against the wall.
John Carmack (2:17:01.500)
We had to ship the game.
Lex Fridman (2:17:03.000)
It was still a lot of fun to play.
John Carmack (2:17:04.680)
It was novel, nobody had seen it.
Lex Fridman (2:17:06.000)
It gave you that startle reflex reaction.
Lex Fridman (2:17:09.040)
So it was worth shipping,
Lex Fridman (2:17:11.040)
but it had these things that I knew were kind of flaky
Lex Fridman (2:17:13.980)
and janky and not what I was really proud of.
Lex Fridman (2:17:17.440)
So one of the things that I did very differently
John Carmack (2:17:20.720)
in Wolfenstein was I went,
Lex Fridman (2:17:24.000)
Catacombs used almost a conventional thing
John Carmack (2:17:27.200)
where you had segments that were one dimensional polygons
Lex Fridman (2:17:30.240)
basically that were clipped and back faced
Lex Fridman (2:17:33.080)
and done kind of like a very crude 3D engine
Lex Fridman (2:17:36.320)
from the professionals,
Lex Fridman (2:17:37.340)
but I wasn't getting it done right.
Lex Fridman (2:17:39.500)
I was not doing a good enough job.
John Carmack (2:17:41.520)
I didn't really have line of sight to fix it right.
Lex Fridman (2:17:45.500)
There's stuff that of course I look back,
John Carmack (2:17:46.920)
it's like, oh, it's obvious how to do this
Lex Fridman (2:17:48.640)
and do the math right, do your clipping right,
John Carmack (2:17:51.000)
check all of this, how you handle the precision.
Lex Fridman (2:17:53.240)
But I did not know how to do that at that time.
Lex Fridman (2:17:55.680)
Was that the first 3D engine you wrote Catacombs 3D?
Lex Fridman (2:17:59.000)
Yeah, Hover Tank had been a little bit before that,
Lex Fridman (2:18:00.840)
but that had the flat shaded walls.
Lex Fridman (2:18:02.440)
So the texture mapping on the walls
John Carmack (2:18:04.520)
was what was bringing in some of these challenges
Lex Fridman (2:18:06.840)
that was hard for me
Lex Fridman (2:18:08.920)
and I couldn't solve it right at the time.
Lex Fridman (2:18:11.080)
Can you describe what flat shading is and texture mapping?
Lex Fridman (2:18:13.440)
So the walls were solid color,
Lex Fridman (2:18:16.020)
one of 16 colors in Hover Tank.
Lex Fridman (2:18:19.280)
So that's easy, it's fast,
Lex Fridman (2:18:20.800)
you just draw the solid color for everything.
John Carmack (2:18:23.640)
Texture mapping is what we all see today
Lex Fridman (2:18:25.560)
where you have an image that is stretched and distorted
John Carmack (2:18:28.060)
onto the walls or the surfaces that you're working with.
Lex Fridman (2:18:32.120)
And it was a long time for me to just figure out
Lex Fridman (2:18:35.280)
how to do that without it distorting in the wrong ways.
Lex Fridman (2:18:38.520)
And I did not get it all exactly right in Catacombs
Lex Fridman (2:18:42.360)
and I had these flaws.
Lex Fridman (2:18:44.840)
So that was important enough to me
John Carmack (2:18:46.740)
that rather than continuing to bang my head on that
Lex Fridman (2:18:49.360)
when I wasn't positive I was gonna get it,
John Carmack (2:18:51.800)
I went with a completely different approach
Lex Fridman (2:18:53.440)
for drawing for figuring out where the walls were
John Carmack (2:18:56.400)
which was a ray casting approach,
Lex Fridman (2:18:58.580)
which I had done in Catacombs 3D I had a bunch of C code
John Carmack (2:19:02.680)
trying to make this work right and it wasn't working right.
Lex Fridman (2:19:05.840)
In Wolfenstein I wound up going to a very small amount
John Carmack (2:19:09.880)
of assembly code.
Lex Fridman (2:19:11.160)
So in some ways there should be a slower way of doing it
Lex Fridman (2:19:14.360)
but by making it a smaller amount of work
Lex Fridman (2:19:16.520)
that I could more tightly optimize it worked out
Lex Fridman (2:19:19.280)
and Wolfenstein 3D was just absolutely rock solid.
Lex Fridman (2:19:22.780)
It was nothing glitched in there.
John Carmack (2:19:25.480)
The game just was pretty much flawless through all of that
Lex Fridman (2:19:28.280)
and I was super proud of that.
Lex Fridman (2:19:31.160)
But eventually like in the later games
Lex Fridman (2:19:33.240)
I went back to the more span based things
John Carmack (2:19:35.640)
where I could get more total efficiency
Lex Fridman (2:19:37.620)
once I really did figure out how to do it.
Lex Fridman (2:19:40.100)
So there were two sort of key technical things
Lex Fridman (2:19:42.640)
to Wolfenstein, one was this ray casting approach
John Carmack (2:19:45.840)
which you still to this day you see people go and say
Lex Fridman (2:19:48.780)
let's write a ray casting engine
John Carmack (2:19:50.480)
because it's an understandable way of doing things
Lex Fridman (2:19:53.140)
that lets you make games very much like that.
Lex Fridman (2:19:55.700)
So you see ray casters in JavaScript,
Lex Fridman (2:19:57.620)
ray casters in Python, people that are basically going
Lex Fridman (2:20:00.640)
and re implementing that approach to taking a tiled world
Lex Fridman (2:20:04.960)
and casting out into it.
John Carmack (2:20:06.480)
It works pretty well but it's not the fastest way
Lex Fridman (2:20:08.760)
of doing it.
Lex Fridman (2:20:09.600)
Can you describe what ray casting is?
Lex Fridman (2:20:11.380)
So you start off and you've got your screen
John Carmack (2:20:13.420)
which is 320 pixels across at the time
Lex Fridman (2:20:15.780)
if you haven't sized down the window for greater speed
Lex Fridman (2:20:19.780)
and at every pixel there's gonna be an angle
Lex Fridman (2:20:22.480)
from you've got your position in the world
Lex Fridman (2:20:24.520)
and you're going to just run along that angle
Lex Fridman (2:20:26.920)
and keep going until you hit a block.
Lex Fridman (2:20:29.160)
So up to 320 times across there
Lex Fridman (2:20:32.040)
it's gonna throw a cast array out into the world
John Carmack (2:20:35.520)
from wherever your origin is until it runs into a wall
Lex Fridman (2:20:38.660)
and then it can figure out exactly where on the wall it hits.
John Carmack (2:20:42.140)
The performance challenge of that is as it's going out
Lex Fridman (2:20:45.400)
every block it's crossing it checks is this a solid wall.
Lex Fridman (2:20:49.240)
So that means that in like the early Wolfenstein levels
Lex Fridman (2:20:52.480)
you're in a small jail cell going out into a small hallway
John Carmack (2:20:55.880)
it's super efficient for that
Lex Fridman (2:20:57.180)
because you're only stepping across three or four blocks
Lex Fridman (2:21:00.200)
but then if somebody makes a room that covers
Lex Fridman (2:21:02.480)
our maps were limited to 64 by 64 blocks.
John Carmack (2:21:05.520)
If you made one room that was nothing but walls
Lex Fridman (2:21:08.700)
at the far space it would go pretty slow
John Carmack (2:21:11.000)
because it would be stepping across 80 tile tests
Lex Fridman (2:21:14.440)
or something along the way.
John Carmack (2:21:15.880)
By the way the physics of our universe
Lex Fridman (2:21:17.480)
seems to be competing in this very thing.
Lex Fridman (2:21:19.000)
So this maps nicely to the actual physics of our world.
Lex Fridman (2:21:23.080)
Yeah you get like I follow a little bit of something
John Carmack (2:21:25.440)
like Steven Wolfram's work on interconnected
Lex Fridman (2:21:28.680)
network information states of that
Lex Fridman (2:21:30.600)
and that's it's beyond what I can have an informed opinion
Lex Fridman (2:21:34.560)
on but it's interesting that people are considering
John Carmack (2:21:37.680)
things like that and have things that can back it up.
Lex Fridman (2:21:42.840)
Yeah there's whole different sets
John Carmack (2:21:44.200)
of interesting stuff there.
Lex Fridman (2:21:45.720)
So Wolfenstein 3D had ray casting.
John Carmack (2:21:48.200)
Ray casting and then the other kind of key aspect
Lex Fridman (2:21:51.080)
was what I called compiled scalers
John Carmack (2:21:53.920)
where the idea of you'd saw this in the earlier
Lex Fridman (2:21:58.600)
classic arcade games like Space Harrier and stuff
John Carmack (2:22:01.160)
where you would take a picture which is normally drawn
Lex Fridman (2:22:04.240)
directly on the screen and then if you have the ability
John Carmack (2:22:06.840)
to make it bigger or smaller big chunky pixels
Lex Fridman (2:22:09.360)
or fizzly small drop sampled pixels.
John Carmack (2:22:12.180)
That's the fundamental aspect of what our characters
Lex Fridman (2:22:15.080)
were doing in these 3D games.
John Carmack (2:22:16.520)
You would have it's just like you might have drawn
Lex Fridman (2:22:18.380)
a tiny little character but now we can make them
John Carmack (2:22:20.200)
really big and make them really small and move it around.
Lex Fridman (2:22:23.220)
That was the limited kind of 3D that we had for characters.
John Carmack (2:22:26.480)
To make them turn there were literally
Lex Fridman (2:22:27.960)
eight different views of them.
John Carmack (2:22:29.560)
You didn't actually have a 3D model that would rotate.
Lex Fridman (2:22:31.800)
You just had these cardboard cutouts.
Lex Fridman (2:22:33.780)
But that was good enough for that startle fight reaction
Lex Fridman (2:22:36.760)
and it was kind of what we had to deal with there.
Lex Fridman (2:22:40.080)
So a straightforward approach to do that
Lex Fridman (2:22:42.280)
you could just write out your doubly nested loop
John Carmack (2:22:44.600)
of you've got your stretch factor
Lex Fridman (2:22:47.080)
and it's like you've got a point,
John Carmack (2:22:48.080)
you stretch by a little bit,
Lex Fridman (2:22:49.400)
it might be on the same pixel,
John Carmack (2:22:50.680)
it might be on the next pixel,
Lex Fridman (2:22:51.680)
it might have skipped a pixel.
John Carmack (2:22:53.860)
You can write that out but it's not gonna be fast enough
Lex Fridman (2:22:56.080)
where especially you get a character for that
John Carmack (2:22:58.480)
right in your face monster covering
Lex Fridman (2:23:00.480)
almost the entire screen.
John Carmack (2:23:02.200)
Doing that with a general purpose scaling routine
Lex Fridman (2:23:05.080)
would have just been much too slow.
John Carmack (2:23:06.520)
It would have worked when they're small characters
Lex Fridman (2:23:08.320)
but then it would get slower and slower
John Carmack (2:23:09.840)
as they got closer to you until right at the time
Lex Fridman (2:23:12.160)
when you most care about having a fast reaction time,
John Carmack (2:23:15.320)
the game would be chunking down.
Lex Fridman (2:23:17.320)
So the fastest possible way to draw pixels at that time
John Carmack (2:23:22.400)
was to, instead of saying I've got a general purpose
Lex Fridman (2:23:28.720)
version that can handle any scale,
John Carmack (2:23:31.500)
I used a program to make essentially
Lex Fridman (2:23:35.320)
a hundred or more separate little programs
John Carmack (2:23:37.620)
that was optimized for I will take an image
Lex Fridman (2:23:40.200)
and I will draw it 12 pixels tall.
John Carmack (2:23:42.200)
I'll take an image, I'll draw it 14 pixels tall
Lex Fridman (2:23:44.680)
up by every two pixels even for that.
Lex Fridman (2:23:47.680)
So you would have the most optimized code
Lex Fridman (2:23:50.280)
so that in the normal case
John Carmack (2:23:52.040)
where most of the world is fairly large,
Lex Fridman (2:23:55.320)
like the pixels are big,
John Carmack (2:23:57.000)
we did not have a lot of memory.
Lex Fridman (2:23:58.640)
So in most cases that meant that you would load
John Carmack (2:24:01.600)
a pixel color and then you would store it multiple times.
Lex Fridman (2:24:05.240)
So that was faster than even copying an image
John Carmack (2:24:09.040)
in a normal conventional case
Lex Fridman (2:24:10.720)
because most of the time the image is expanded.
Lex Fridman (2:24:13.240)
So instead of doing one read, one write for a simple copy,
Lex Fridman (2:24:16.600)
you might be doing one read and three or four writes
John Carmack (2:24:19.120)
as it got really big.
Lex Fridman (2:24:20.480)
And that had the beneficial aspect
John Carmack (2:24:22.320)
of just when you needed the performance most
Lex Fridman (2:24:24.360)
when things are covering the screen,
John Carmack (2:24:25.980)
it was giving you the most acceleration for that.
Lex Fridman (2:24:28.600)
By the way, were you able to understand this
John Carmack (2:24:32.480)
through thinking about it or were you testing
Lex Fridman (2:24:34.720)
like the right speed and like that?
John Carmack (2:24:36.640)
This again comes back to, I can find the antecedents
Lex Fridman (2:24:40.160)
for things like this.
Lex Fridman (2:24:41.120)
So back in the Apple II days,
Lex Fridman (2:24:45.400)
the graphics were essentially single bits at a time.
Lex Fridman (2:24:49.560)
And if you wanted to make your little spaceship,
Lex Fridman (2:24:51.760)
if you wanted to make it smoothly go across the world,
John Carmack (2:24:54.880)
if you just took the image and you drew it out
Lex Fridman (2:24:56.720)
at the next location, you would move by seven pixels
John Carmack (2:24:59.360)
at a time, so it'd go chunk, chunk, chunk.
Lex Fridman (2:25:01.320)
If you wanted to make it move smoothly,
John Carmack (2:25:03.240)
you actually had to make seven versions of the ship
Lex Fridman (2:25:05.880)
that were pre shifted.
John Carmack (2:25:07.360)
You could write a program that would shift it dynamically,
Lex Fridman (2:25:09.920)
but on a one megahertz processor,
John Carmack (2:25:11.460)
that's not going anywhere fast.
Lex Fridman (2:25:13.180)
So if you wanted to do a smooth moving fast action game,
John Carmack (2:25:16.660)
you made separate versions of each of these sprites.
Lex Fridman (2:25:20.440)
Now there were a few more tricks you could pull
John Carmack (2:25:22.360)
that if it still wasn't fast enough,
Lex Fridman (2:25:24.480)
you could make a compiled shape
John Carmack (2:25:26.900)
where instead of this program that normally copies an image
Lex Fridman (2:25:31.200)
and says like, get this byte from here, stored here,
John Carmack (2:25:33.760)
get this byte, store this byte.
Lex Fridman (2:25:35.400)
If you've got the memory space, you could say,
John Carmack (2:25:38.440)
I'm going to write the program
Lex Fridman (2:25:39.800)
that does nothing but draw this shape.
John Carmack (2:25:41.960)
It's going to be like,
Lex Fridman (2:25:43.100)
I'm going to load the immediate value 25,
John Carmack (2:25:46.640)
which is some bit pattern,
Lex Fridman (2:25:47.920)
and then I'm going to store that at this location.
John Carmack (2:25:51.340)
Rather than loading something from memory
Lex Fridman (2:25:53.280)
that involved indexing registers and this other slow stuff,
John Carmack (2:25:56.880)
you could go ahead and say,
Lex Fridman (2:25:57.720)
no, I'm gonna hard code the exact values
John Carmack (2:26:00.020)
of all of the image right into the program.
Lex Fridman (2:26:02.460)
And this was always a horrible trade off there,
John Carmack (2:26:04.120)
which you didn't have much memory
Lex Fridman (2:26:05.360)
and you didn't have much speed.
Lex Fridman (2:26:07.000)
But if you had something that you wanted to go really fast,
Lex Fridman (2:26:09.600)
you could turn it into a program.
Lex Fridman (2:26:11.800)
And that was, knowing about that technique
Lex Fridman (2:26:14.560)
is what made me think about some of these unwinding it
John Carmack (2:26:17.640)
for the PC where people that didn't come
Lex Fridman (2:26:19.760)
from that background were less likely to think about that.
John Carmack (2:26:23.360)
I mean, there's some deep parallels
Lex Fridman (2:26:25.200)
probably to human cognition as well.
John Carmack (2:26:27.500)
There's something about optimizing and compressing
Lex Fridman (2:26:34.560)
the processing of a new information
John Carmack (2:26:36.800)
that requires you to predict the possible ways
Lex Fridman (2:26:39.760)
in which the game or the world might unroll.
Lex Fridman (2:26:44.440)
And you have something like compiled scaler is always there.
Lex Fridman (2:26:47.440)
So you have like, like you have a prediction
John Carmack (2:26:51.400)
of how the world will unroll
Lex Fridman (2:26:52.720)
and you have some kind of optimized data structure
John Carmack (2:26:57.060)
for that prediction.
Lex Fridman (2:26:58.200)
And then you can modify if the world turns out
John Carmack (2:27:00.440)
to be different, you can modify a slight way.
Lex Fridman (2:27:02.320)
And as far as building out techniques,
Lex Fridman (2:27:04.180)
so much of the brain is about the associative context.
Lex Fridman (2:27:06.960)
You know, they're just, when you learn something,
John Carmack (2:27:09.120)
it's in the context of something else
Lex Fridman (2:27:10.920)
and you can have faint, tiny little hints of things.
Lex Fridman (2:27:13.980)
And I do think there are some deep things
Lex Fridman (2:27:16.440)
around like sparse distributed memories and boosting.
John Carmack (2:27:18.840)
That's like, if you can just be slightly
Lex Fridman (2:27:20.420)
above the noise floor of having some hint of something,
John Carmack (2:27:23.360)
you can have things refined into pulling the memory back up.
Lex Fridman (2:27:26.460)
So having a, being a programmer and having a toolbox
John Carmack (2:27:29.560)
of like all of these things that,
Lex Fridman (2:27:31.200)
things that I did in all of these previous lives
John Carmack (2:27:33.640)
of programming tasks that still matters to me
Lex Fridman (2:27:36.080)
about how I'm able to pull up some of these things.
John Carmack (2:27:38.520)
Like in that case, it was something I did on the Apple 2
Lex Fridman (2:27:41.180)
then being relevant for the PC.
Lex Fridman (2:27:43.240)
And I have still cases when I would,
Lex Fridman (2:27:46.040)
when I would work on mobile development then be like,
John Carmack (2:27:48.000)
okay, I did something like this back in the doom days,
Lex Fridman (2:27:51.720)
but now it's a different environment,
Lex Fridman (2:27:53.600)
but I have still had that tie.
Lex Fridman (2:27:55.000)
I can bring it in and I can transform it
John Carmack (2:27:56.880)
into what the world needs right now.
Lex Fridman (2:27:59.120)
And I do think that's actually one of the very core things
John Carmack (2:28:01.920)
with human cognition and brain like,
Lex Fridman (2:28:04.680)
you know, brain like functioning
John Carmack (2:28:06.080)
is finding these ways about you've got,
Lex Fridman (2:28:08.480)
your brain is kind of everything everywhere all at once.
John Carmack (2:28:10.800)
You know, it's, it is just a set of all of this stuff
Lex Fridman (2:28:13.080)
that is just fetched back by these queries that go into it.
Lex Fridman (2:28:16.440)
And they can just be slightly above the noise floor
Lex Fridman (2:28:18.900)
with a random noise in your neurons and synapses
John Carmack (2:28:21.260)
that are affecting exactly what gets pulled up.
Lex Fridman (2:28:23.980)
So you're saying some of these very specific solutions
John Carmack (2:28:26.520)
for different games,
Lex Fridman (2:28:28.600)
you find that there's a kernel of a deep idea
John Carmack (2:28:31.960)
that's generalizable to other, to other things.
Lex Fridman (2:28:34.760)
Yeah, you can't predict what it's going to be,
Lex Fridman (2:28:36.480)
but that idea of like,
Lex Fridman (2:28:37.720)
I called out that compiled shaders in the forward
John Carmack (2:28:40.720)
that I wrote for that, the game engine black book,
Lex Fridman (2:28:43.320)
as you know, this is,
John Carmack (2:28:44.920)
it's kind of an end point of unrolling code,
Lex Fridman (2:28:48.000)
but that's one of those things that thinking about that
Lex Fridman (2:28:50.400)
and having that in your mind.
Lex Fridman (2:28:51.640)
And I'm sure there are some programmers
John Carmack (2:28:53.120)
that, you know, hear about that.
Lex Fridman (2:28:54.680)
Think about it a little bit.
John Carmack (2:28:55.560)
It's kind of the mind blown moment.
Lex Fridman (2:28:57.040)
It's like, oh, you can just turn all of that data into code.
Lex Fridman (2:29:00.760)
And nowadays, you know, you have instruction cache issues
Lex Fridman (2:29:03.360)
and that's not necessarily the best idea,
Lex Fridman (2:29:05.540)
but there are different,
Lex Fridman (2:29:07.280)
it's an idea that has power
Lex Fridman (2:29:09.020)
and has probably relevance in some other areas.
Lex Fridman (2:29:11.500)
Maybe it's in a hardware point of view
John Carmack (2:29:13.020)
that there's a way you approach building hardware
Lex Fridman (2:29:15.460)
that has that same,
John Carmack (2:29:16.800)
you don't even have to think about iterating.
Lex Fridman (2:29:18.440)
You just bake everything all the way into it in one place.
Lex Fridman (2:29:22.200)
What is the story of how you came to program Doom?
Lex Fridman (2:29:25.400)
What are some memorable technical challenges
Lex Fridman (2:29:27.760)
or innovations within that game?
Lex Fridman (2:29:29.800)
So the path that we went after Wolfenstein got out
Lex Fridman (2:29:33.640)
and we were on this crazy arc
Lex Fridman (2:29:35.560)
where Keen one through three, more success than we thought,
John Carmack (2:29:38.840)
Keen four through six, even more success,
Lex Fridman (2:29:41.120)
Wolfenstein even more success.
Lex Fridman (2:29:42.880)
So we were on this crazy trajectory for things.
Lex Fridman (2:29:46.420)
So actually our first box commercial project
John Carmack (2:29:48.280)
was the Commander Keen game,
Lex Fridman (2:29:50.660)
but then Wolfenstein was going to have a game called
John Carmack (2:29:52.960)
Spear of Destiny, which was a commercial version,
Lex Fridman (2:29:55.940)
60 new levels.
Lex Fridman (2:29:57.260)
So the rest of the team took the game engine
Lex Fridman (2:29:59.480)
pretty much as it was and started working on that.
John Carmack (2:30:02.740)
We got new monsters,
Lex Fridman (2:30:03.920)
but it's basically reskins of the things there.
Lex Fridman (2:30:07.640)
And there's a really interesting aspect about that
Lex Fridman (2:30:09.420)
that I didn't appreciate until much, much later
John Carmack (2:30:12.260)
about how Wolfenstein clearly did tap out its limit
Lex Fridman (2:30:16.640)
about what you want to play,
John Carmack (2:30:18.840)
all the levels and a couple of our license things.
Lex Fridman (2:30:21.600)
There was a hard creative wall
John Carmack (2:30:24.000)
that you did not really benefit much
Lex Fridman (2:30:25.800)
by continuing to beat on it.
Lex Fridman (2:30:27.880)
But a game like Doom and other more modern games
Lex Fridman (2:30:31.440)
like Minecraft or something,
John Carmack (2:30:33.000)
there's kind of a Turing completeness level
Lex Fridman (2:30:35.040)
of design freedom that you get in games
John Carmack (2:30:37.200)
that Wolfenstein clearly sat on one side of.
Lex Fridman (2:30:40.400)
All the creative people in the world
John Carmack (2:30:42.040)
could not go and do a masterpiece
Lex Fridman (2:30:43.980)
just with the technology that Wolfenstein had.
John Carmack (2:30:46.480)
Wolfenstein could do Wolfenstein,
Lex Fridman (2:30:48.160)
but you really couldn't do something crazy and different.
Lex Fridman (2:30:50.760)
But it didn't take that much more capability
Lex Fridman (2:30:53.380)
to get to Wolfenstein with the freeform lines
Lex Fridman (2:30:56.240)
and a little bit more artistic freedom
Lex Fridman (2:30:58.600)
to get to the point where people still announce
John Carmack (2:31:00.960)
new Doom levels today, all these years after
Lex Fridman (2:31:03.720)
without having completely tapped out the creativity.
Lex Fridman (2:31:06.720)
How did you put it?
Lex Fridman (2:31:07.560)
Turing complete?
John Carmack (2:31:08.520)
Yeah, Turing complete design space.
Lex Fridman (2:31:10.200)
Design space.
John Carmack (2:31:11.040)
Where it's like, you know,
Lex Fridman (2:31:11.880)
we have the kind of computational universality
John Carmack (2:31:14.800)
on a lot of things and how different
Lex Fridman (2:31:16.120)
subsurface work. For creativity.
Lex Fridman (2:31:17.480)
But yeah, there's things where a box can be too small,
Lex Fridman (2:31:20.960)
but above a certain point,
John Carmack (2:31:22.840)
you kind of are at the point where you really have
Lex Fridman (2:31:26.200)
almost unbounded creative ability there.
Lex Fridman (2:31:28.400)
And Doom was the first time you crossed that line.
Lex Fridman (2:31:31.440)
Yeah, where there were thousands of Doom levels created,
Lex Fridman (2:31:35.100)
and some of them still have something new and interesting
Lex Fridman (2:31:37.320)
to say to the world about it.
Lex Fridman (2:31:38.600)
Is that line, can you introspect what that line was?
Lex Fridman (2:31:43.220)
Is it in the design space?
John Carmack (2:31:44.840)
Is it something about the programming capabilities
Lex Fridman (2:31:48.380)
that you were able to add to the game?
Lex Fridman (2:31:50.920)
So the graphics fidelity was a necessary part
Lex Fridman (2:31:54.380)
because the block limitations in Wolfenstein,
Lex Fridman (2:31:57.520)
what we had right there was not enough.
Lex Fridman (2:32:00.800)
The full scale blocks, although Minecraft really did show
John Carmack (2:32:04.680)
that perhaps blocks stacked in 3D
Lex Fridman (2:32:07.760)
and at one quarter of the scale of that,
John Carmack (2:32:09.920)
or one eighth in volume,
Lex Fridman (2:32:11.360)
is then sufficient to have all of that.
Lex Fridman (2:32:13.260)
But the wall sized blocks that we had in Wolfenstein
Lex Fridman (2:32:16.760)
was too much of a creative limitation.
John Carmack (2:32:18.720)
We licensed the technology to a few other teams.
Lex Fridman (2:32:21.640)
None of them made too much of a dent with that.
John Carmack (2:32:24.880)
It just wasn't enough creative ability.
Lex Fridman (2:32:27.240)
But a little bit more,
John Carmack (2:32:28.480)
whether it was the variable floors and ceilings
Lex Fridman (2:32:31.000)
and arbitrary angles in Doom,
John Carmack (2:32:33.200)
or the smaller voxel blocks in Minecraft,
Lex Fridman (2:32:37.200)
is then enough to open it up
John Carmack (2:32:38.640)
to just worlds and worlds of new capabilities.
Lex Fridman (2:32:41.880)
What is binary space partitioning?
Lex Fridman (2:32:45.040)
So the. Which is one of the technologies.
Lex Fridman (2:32:47.600)
Yeah, so jump around a little bit on the story path there.
Lex Fridman (2:32:51.080)
So while the team was working on Spirit Destiny
Lex Fridman (2:32:53.160)
for Wolfenstein, we had met another development team,
John Carmack (2:32:57.200)
Raven Software, while we were in Wisconsin.
Lex Fridman (2:32:59.960)
And they were doing, they had RPG background
Lex Fridman (2:33:03.280)
and I still kind of loved that.
Lex Fridman (2:33:04.760)
And I offered to do a game engine for them
John Carmack (2:33:07.720)
to let them do a 3D rendered RPG
Lex Fridman (2:33:10.720)
instead of the, like most RPG games were kind of hand drawn.
John Carmack (2:33:14.060)
They made it look kind of 3D,
Lex Fridman (2:33:15.540)
but it was done just all with artist work
John Carmack (2:33:17.560)
rather than a real engine.
Lex Fridman (2:33:19.800)
And after Wolfenstein, this was still a tile based world,
Lex Fridman (2:33:23.320)
but I added floors and ceilings and some lighting
Lex Fridman (2:33:25.600)
and the ability to have some sloped floors
John Carmack (2:33:27.680)
in different areas.
Lex Fridman (2:33:28.520)
And that was my intermediate step
John Carmack (2:33:30.040)
for a game called Shadowcaster.
Lex Fridman (2:33:32.360)
And it had slowed down enough.
John Carmack (2:33:34.440)
It was not fast enough to do our type of action things.
Lex Fridman (2:33:37.680)
So they had the screen crop down a little bit.
Lex Fridman (2:33:39.960)
So you couldn't go the full screen width
Lex Fridman (2:33:42.280)
like we would try to do in Wolfenstein, but I learned a lot.
John Carmack (2:33:46.320)
I got the floors and ceilings and lightings
Lex Fridman (2:33:47.960)
and it looked great.
John Carmack (2:33:48.880)
They were great artists up there.
Lex Fridman (2:33:50.360)
And it was an inspiration for us
John Carmack (2:33:52.320)
to look at some of that stuff.
Lex Fridman (2:33:54.400)
But I had learned enough from that,
John Carmack (2:33:57.000)
that I had the plan for,
Lex Fridman (2:33:58.480)
I knew faster ways to do the lighting and shadowing.
Lex Fridman (2:34:01.540)
And I wanted to do this free form geometry.
Lex Fridman (2:34:03.640)
I wanted to break out of this tile based
John Carmack (2:34:06.560)
90 degree world limitations.
Lex Fridman (2:34:09.120)
So we had, that was when we got our next stations
Lex Fridman (2:34:12.280)
and we were working with these higher powered systems.
Lex Fridman (2:34:14.960)
And we built an editor that let us draw
John Carmack (2:34:18.400)
kind of arbitrary line segments.
Lex Fridman (2:34:20.240)
And I was working hard to try to make something
John Carmack (2:34:22.720)
that could render this fast enough.
Lex Fridman (2:34:26.120)
I was pushing myself pretty hard.
Lex Fridman (2:34:28.760)
And we were at a point where we could see some things
Lex Fridman (2:34:32.220)
that looked amazingly cool,
Lex Fridman (2:34:33.720)
but it wasn't really fast enough for the way I was doing it.
Lex Fridman (2:34:37.760)
For this flexibility, it was no longer,
John Carmack (2:34:39.440)
I couldn't just ray cast into it.
Lex Fridman (2:34:41.080)
And I had these very complex sets of lines
Lex Fridman (2:34:43.240)
and simple little worlds were okay.
Lex Fridman (2:34:45.360)
But the cool things that we wanted to do
John Carmack (2:34:47.520)
just weren't quite fast enough.
Lex Fridman (2:34:49.680)
And I wound up taking a break at that point.
Lex Fridman (2:34:52.480)
And I did the port.
Lex Fridman (2:34:54.520)
I did two ports of our games,
John Carmack (2:34:58.000)
Wolfenstein to the Super Nintendo.
Lex Fridman (2:35:01.040)
It was a crazy difficult thing to do,
John Carmack (2:35:04.240)
which was an even slower processors,
Lex Fridman (2:35:06.040)
like a couple of megahertz processor.
Lex Fridman (2:35:10.000)
And it had been this whole thing
Lex Fridman (2:35:11.820)
where we had farmed out the work and it wasn't going well.
Lex Fridman (2:35:17.160)
And I took it back over
Lex Fridman (2:35:18.860)
and trying to make it go fast on there
John Carmack (2:35:21.860)
where it really did not have much processing power.
Lex Fridman (2:35:25.160)
The pixels were stretched up hugely
Lex Fridman (2:35:26.880)
and it was pretty ugly when you looked at it.
Lex Fridman (2:35:29.040)
But in the end, it did come out fast enough to play
Lex Fridman (2:35:31.520)
and still be kind of fun from that.
Lex Fridman (2:35:33.480)
But that was where I started using BSP trees
John Carmack (2:35:36.600)
or binary space partitioning trees.
Lex Fridman (2:35:38.320)
It was one of those things I had to make it faster there.
John Carmack (2:35:41.520)
It was a stepping stone where it was reasonably easy
Lex Fridman (2:35:44.520)
to understand in the grid world of Wolfenstein
John Carmack (2:35:46.960)
where it was all still 90 degree angles.
Lex Fridman (2:35:49.960)
BSP trees were, I eased myself into it with that.
Lex Fridman (2:35:53.920)
And it was a big success.
Lex Fridman (2:35:56.200)
Then when I came back to working on Doom,
John Carmack (2:35:58.740)
I had this new tool in my toolbox.
Lex Fridman (2:36:00.640)
It was gonna be a lot harder
John Carmack (2:36:02.040)
with the arbitrary angles of Doom.
Lex Fridman (2:36:03.900)
This was where I really started grappling
John Carmack (2:36:06.120)
with epsilon problems.
Lex Fridman (2:36:07.760)
And just up until that point,
John Carmack (2:36:09.600)
I hadn't really had to deal with the fact
Lex Fridman (2:36:11.360)
that I am so many numeric things.
John Carmack (2:36:13.820)
This almost felt like a betrayal to me
Lex Fridman (2:36:15.340)
where people had told me that I had mathematicians
John Carmack (2:36:17.600)
up on a bit of a pedestal where I was,
Lex Fridman (2:36:20.360)
people think I'm a math wizard and I'm not.
John Carmack (2:36:22.680)
I really, everything that I did was really done
Lex Fridman (2:36:25.980)
with a solid high school math understanding.
John Carmack (2:36:29.520)
Algebra two trigonometry and that was what got me
Lex Fridman (2:36:33.480)
all the way through Doom and Quake and all of that,
John Carmack (2:36:35.500)
of just understanding basics of matrices
Lex Fridman (2:36:38.280)
and knowing it well enough to do something with it.
Lex Fridman (2:36:41.040)
What's the epsilon problems you ran into?
Lex Fridman (2:36:42.920)
So when you wind up taking like a sloped line
Lex Fridman (2:36:46.720)
and you say, I'm going to intersect it
Lex Fridman (2:36:48.340)
with another sloped line,
John Carmack (2:36:50.920)
then you wind up with something
Lex Fridman (2:36:52.200)
that's not going to be on these nice grid boundaries.
John Carmack (2:36:54.960)
With the Wolfenstein tile maps,
Lex Fridman (2:36:57.120)
all you've got is horizontal and vertical lines
John Carmack (2:36:58.960)
looking at it from above.
Lex Fridman (2:37:00.200)
And if you cut one of them, it's just obvious
John Carmack (2:37:02.200)
the other one gets cut exactly at that point.
Lex Fridman (2:37:04.880)
But when you have angled lines,
John Carmack (2:37:06.620)
you're doing a kind of a slope intercept problem
Lex Fridman (2:37:08.840)
and you wind up with rational numbers there
John Carmack (2:37:11.200)
where things that are not going to evenly land on an integer
Lex Fridman (2:37:14.800)
or even on any fixed point value that you've got.
Lex Fridman (2:37:17.240)
So everything winds up having to snap
Lex Fridman (2:37:19.520)
to some fixed point value.
Lex Fridman (2:37:20.960)
So the lines slightly change their angle.
Lex Fridman (2:37:23.400)
You wind up, if you cut something here,
John Carmack (2:37:25.320)
this one's going to bend a little this way
Lex Fridman (2:37:26.840)
and it's not going to be completely straight.
Lex Fridman (2:37:28.900)
And then you come down to all these questions of,
Lex Fridman (2:37:30.720)
well, this one is a point on an angled line.
John Carmack (2:37:35.140)
You can't answer that in finite precision
Lex Fridman (2:37:38.000)
unless you're doing something with actual rational numbers.
Lex Fridman (2:37:41.000)
And later on, I did waste far too much time
Lex Fridman (2:37:43.220)
chasing things like that.
Lex Fridman (2:37:44.180)
How do you do precise arithmetic with rational numbers?
Lex Fridman (2:37:46.860)
And it always blows up eventually, exponentially
John Carmack (2:37:49.940)
as you do it.
Lex Fridman (2:37:50.780)
So these kinds of things are impossible with computers.
Lex Fridman (2:37:53.240)
So they're possible.
Lex Fridman (2:37:55.180)
Again, there are paths to doing it,
Lex Fridman (2:37:57.460)
but you can't fit them conveniently
Lex Fridman (2:37:59.240)
in any of the numbers.
John Carmack (2:38:00.240)
You need to start using big nums
Lex Fridman (2:38:01.800)
and different factor trackings of different things.
Lex Fridman (2:38:04.600)
So you have to, if you have any elements of OCD
Lex Fridman (2:38:08.120)
and you want to do something perfectly,
John Carmack (2:38:09.840)
you're screwed if you're working with floating point.
Lex Fridman (2:38:12.280)
Yeah.
Lex Fridman (2:38:13.120)
So you had to deal with this for the first time.
Lex Fridman (2:38:15.320)
And there were lots of challenges there about like,
John Carmack (2:38:18.400)
okay, they build this cool thing.
Lex Fridman (2:38:20.080)
And the way the BSP trees work is it basically
John Carmack (2:38:22.880)
takes the walls and it carves other walls by those walls
Lex Fridman (2:38:26.400)
in this clever way that you can then
John Carmack (2:38:28.760)
take all of these fragments.
Lex Fridman (2:38:30.440)
And then you can for sure, from any given point,
John Carmack (2:38:33.120)
get an ordering of everything in the world.
Lex Fridman (2:38:35.160)
And you can say, this goes in front of this,
John Carmack (2:38:36.800)
goes in front of this, all the way back to the last thing.
Lex Fridman (2:38:40.200)
And that's super valuable for graphics
John Carmack (2:38:42.400)
where kind of a classic graphics algorithm
Lex Fridman (2:38:45.280)
would be painter's algorithm.
John Carmack (2:38:46.800)
You paint the furthest thing first,
Lex Fridman (2:38:48.200)
and then the next thing, and then the next thing,
Lex Fridman (2:38:49.880)
and then it comes up and it's all perfect for you.
Lex Fridman (2:38:52.760)
That's slow because you don't want to have to have drawn
John Carmack (2:38:54.840)
everything like that,
Lex Fridman (2:38:56.160)
but you can also flip it around
Lex Fridman (2:38:57.580)
and draw the closest thing to you.
Lex Fridman (2:38:59.680)
And then if you're clever about it,
John Carmack (2:39:01.400)
you can figure out what you need to draw
Lex Fridman (2:39:03.520)
that's visible beyond that.
Lex Fridman (2:39:05.480)
And that's what BSP trees allow you to do.
Lex Fridman (2:39:07.560)
Yeah, so it's combined with a bunch of other things,
Lex Fridman (2:39:10.620)
but it gives you that ordering.
Lex Fridman (2:39:12.200)
It's a clever way of doing things.
Lex Fridman (2:39:13.760)
And I remember I had learned this
Lex Fridman (2:39:15.520)
from one of my graphics Bible at the time,
John Carmack (2:39:18.760)
a book called Foley and Van Damme.
Lex Fridman (2:39:20.480)
And again, it was a different world back there.
John Carmack (2:39:22.200)
There was a small integer number of books.
Lex Fridman (2:39:24.660)
And this book that was big fat college textbook
John Carmack (2:39:29.680)
that I had read through many times.
Lex Fridman (2:39:32.520)
I didn't understand everything in it.
John Carmack (2:39:34.240)
Some of it wasn't useful to me,
Lex Fridman (2:39:35.840)
but they had the little thing about finite orderings
John Carmack (2:39:39.620)
of you draw a little T shaped thing
Lex Fridman (2:39:41.520)
and you can say you can make a fixed ahead of time order
John Carmack (2:39:44.760)
from this and you can generalize this with the BSP trees.
Lex Fridman (2:39:48.240)
And I got a little bit more information about that.
Lex Fridman (2:39:50.820)
And it was kind of fun later while I was working on Quake,
Lex Fridman (2:39:53.120)
I got to meet Bruce Naylor,
John Carmack (2:39:54.760)
who is one of the original researchers
Lex Fridman (2:39:56.520)
that developed those technologies for academic literature.
Lex Fridman (2:40:00.840)
And that was kind of fun,
Lex Fridman (2:40:01.740)
but I was very much just finding a tool
John Carmack (2:40:03.800)
that can help me solve what I was doing.
Lex Fridman (2:40:05.840)
And I was using it in this very crude way
John Carmack (2:40:07.800)
in a two dimensional fashion, rather than the general 3D.
Lex Fridman (2:40:10.480)
The Epsilon problems got much worse
John Carmack (2:40:12.040)
in Quake and three dimensionals
Lex Fridman (2:40:13.760)
when things angle in every way.
Lex Fridman (2:40:15.680)
But eventually I did sort out
Lex Fridman (2:40:18.360)
how to do it reliably on Doom.
John Carmack (2:40:20.000)
There were still a few edge cases in Doom
Lex Fridman (2:40:22.200)
that were not absolutely perfect
John Carmack (2:40:24.360)
where they even got terminologies in the communities.
Lex Fridman (2:40:27.740)
Like when you got to something where it was messed up,
John Carmack (2:40:29.440)
it was a hall of mirrors effect
Lex Fridman (2:40:30.920)
because you'd sweep by and it wouldn't draw something there.
Lex Fridman (2:40:33.720)
And you would just wind up with the leftover remnants
Lex Fridman (2:40:36.200)
as you flipped between the two pages.
Lex Fridman (2:40:39.260)
But BSP trees were important for it.
Lex Fridman (2:40:41.480)
But it's again worth noting that after we did Doom,
John Carmack (2:40:45.640)
our major competition came from Ken Silverman
Lex Fridman (2:40:49.000)
and his build engine, which was used for Duke Nukem 3D
Lex Fridman (2:40:51.780)
and some of the other games for 3D Realms.
Lex Fridman (2:40:54.080)
And he used a completely different technology,
John Carmack (2:40:56.200)
nothing to do with BSP trees.
Lex Fridman (2:40:59.200)
So there's not just a one true way of doing things.
John Carmack (2:41:03.880)
There were critical things about
Lex Fridman (2:41:05.600)
to make any of those games fast.
John Carmack (2:41:07.160)
You had to separate your drawing into,
Lex Fridman (2:41:09.640)
you drew vertical lines and you drew horizontal lines,
John Carmack (2:41:12.440)
just kind of changing exactly
Lex Fridman (2:41:14.320)
what you would draw with them.
John Carmack (2:41:15.760)
That was critical for the technologies at that time.
Lex Fridman (2:41:19.360)
And like all the games that were kind of like that
John Carmack (2:41:21.680)
wound up doing something similar,
Lex Fridman (2:41:23.400)
but there were still a bunch of other decisions
John Carmack (2:41:25.400)
that could be made.
Lex Fridman (2:41:26.800)
And we made good enough decisions on everything on Doom.
John Carmack (2:41:30.360)
We brought in multiplayer significantly
Lex Fridman (2:41:33.680)
and it was our first game that was designed
John Carmack (2:41:35.640)
to be modified by the user community
Lex Fridman (2:41:37.640)
where we had this whole setup of our WAD files and PWADs
Lex Fridman (2:41:41.120)
and things that people could build with tools
Lex Fridman (2:41:43.680)
that we released to them.
Lex Fridman (2:41:44.680)
And they eventually rewrote to be better
Lex Fridman (2:41:46.220)
than what we released, but they could build things
Lex Fridman (2:41:48.840)
and you could add it to your game
Lex Fridman (2:41:50.400)
without destructively modifying it,
John Carmack (2:41:52.260)
which is what you had to do in all the early games.
Lex Fridman (2:41:54.080)
You literally hacked the data files or the executable
John Carmack (2:41:57.600)
before while Doom was set up in this flexible way
Lex Fridman (2:42:00.580)
so that you could just say,
John Carmack (2:42:02.300)
run the normal game with this added on on top
Lex Fridman (2:42:04.820)
and it would overlay just the things
John Carmack (2:42:06.920)
that you wanted to there.
Lex Fridman (2:42:09.100)
Would you say that Doom was kind of the first
Lex Fridman (2:42:11.580)
true 3D game that you created?
Lex Fridman (2:42:14.240)
So no, it's still, Doom would usually be called
John Carmack (2:42:16.620)
a two and a half D game
Lex Fridman (2:42:17.800)
where it had three dimensional points on it.
Lex Fridman (2:42:20.300)
And this is another one of these kind of pedantic things
Lex Fridman (2:42:22.440)
that people love to argue about,
John Carmack (2:42:23.980)
about what was the first 3D game.
Lex Fridman (2:42:25.720)
I still, like every month probably I hear from somebody
Lex Fridman (2:42:29.360)
about, well, was Doom really a 3D game or something?
Lex Fridman (2:42:34.320)
And I give the point where characters had three coordinates.
Lex Fridman (2:42:38.520)
So you had like an X, Y and Z,
Lex Fridman (2:42:40.240)
the cacodamon could be coming in very high
Lex Fridman (2:42:42.300)
and come down towards you.
Lex Fridman (2:42:45.000)
The walls had three coordinates on them.
Lex Fridman (2:42:47.400)
So on some sense it's a 3D game engine,
Lex Fridman (2:42:50.320)
but it was not a fully general 3D game engine.
John Carmack (2:42:53.440)
You could not build a pyramid in Doom
Lex Fridman (2:42:56.660)
because you couldn't make a sloped wall,
John Carmack (2:42:59.420)
which was slightly different
Lex Fridman (2:43:00.480)
where in that previous shadow caster game,
John Carmack (2:43:02.280)
I could have vertexes and have a sloped floor there,
Lex Fridman (2:43:05.200)
but the changes that I made for Doom to get higher speed
Lex Fridman (2:43:08.320)
and a different set of flexibility traded away that ability,
Lex Fridman (2:43:11.660)
but you literally couldn't make that.
John Carmack (2:43:13.400)
You could not, you could make different heights of passages,
Lex Fridman (2:43:17.880)
but you could not make a bridge over another area.
John Carmack (2:43:20.280)
You could not go over and above it.
Lex Fridman (2:43:21.880)
So it still had some 2D limitations to it.
John Carmack (2:43:24.880)
That's more about the building
Lex Fridman (2:43:26.020)
versus the actual experience.
John Carmack (2:43:27.480)
Cause the experience is.
Lex Fridman (2:43:29.120)
It felt like things would come at you,
Lex Fridman (2:43:30.520)
but again, you couldn't look up either.
Lex Fridman (2:43:32.440)
I am, you know, you could only pitch.
John Carmack (2:43:34.720)
It was four degrees of freedom
Lex Fridman (2:43:36.460)
rather than six degrees of freedom.
John Carmack (2:43:38.400)
You did not have the ability to tilt your head this way
Lex Fridman (2:43:40.600)
or pitch up and down.
Lex Fridman (2:43:42.320)
So that takes us to Quake.
Lex Fridman (2:43:44.480)
What was the leap there?
Lex Fridman (2:43:47.480)
What was some fascinating technical challenges
Lex Fridman (2:43:50.040)
and there were a lot or not challenges,
Lex Fridman (2:43:52.180)
but innovations that you've come up with.
Lex Fridman (2:43:54.140)
So Quake was kind of the first thing
John Carmack (2:43:56.440)
where I did have to kind of come face to face
Lex Fridman (2:43:59.520)
with my limitations,
John Carmack (2:44:01.240)
where it was the first thing
Lex Fridman (2:44:02.280)
where I really did kind of give it my all
Lex Fridman (2:44:05.660)
and still come up, you know, come up a little bit short
Lex Fridman (2:44:08.400)
in terms of what and when I wanted to get it done.
Lex Fridman (2:44:11.920)
And the company ran,
Lex Fridman (2:44:13.560)
they had some serious stresses through the whole project
Lex Fridman (2:44:16.760)
and we bit off a lot.
Lex Fridman (2:44:19.680)
So the things that we set out to do
John Carmack (2:44:21.440)
was it was going to be really a true 3D engine
Lex Fridman (2:44:24.640)
where it could do six degree of freedom.
John Carmack (2:44:26.960)
You could have all the viewpoints.
Lex Fridman (2:44:29.680)
You could model anything.
John Carmack (2:44:31.480)
It had a really remarkable new lighting model
Lex Fridman (2:44:35.280)
with the surface caching and things.
John Carmack (2:44:37.080)
That was one of those where it was starting
Lex Fridman (2:44:38.480)
to do some things that they weren't doing
John Carmack (2:44:40.740)
even on the very high end systems.
Lex Fridman (2:44:43.600)
And it was going to be completely programmable
John Carmack (2:44:46.920)
in the modding standpoint,
Lex Fridman (2:44:48.200)
where the thing that you couldn't do in Doom,
John Carmack (2:44:49.800)
you could replace almost all of the media,
Lex Fridman (2:44:52.360)
but you couldn't really change the game.
John Carmack (2:44:55.120)
There were still some people that were doing
Lex Fridman (2:44:57.100)
the hex setting of the executable,
John Carmack (2:44:58.800)
the dehacked things where you could change
Lex Fridman (2:45:00.620)
a few things about rules
Lex Fridman (2:45:01.900)
and people made some early capture the flag type things
Lex Fridman (2:45:04.620)
by hacking the executable,
Lex Fridman (2:45:06.020)
but it wasn't really set out to do that.
Lex Fridman (2:45:08.520)
Quake was going to have its own programming language
John Carmack (2:45:11.360)
that the game was going to be implemented in it.
Lex Fridman (2:45:13.200)
And that would be able to be overwritten
John Carmack (2:45:14.840)
just like any of the media.
Lex Fridman (2:45:16.560)
Code was going to be data for that.
Lex Fridman (2:45:18.400)
And you would be able to have expansion packs
Lex Fridman (2:45:21.000)
that changed fundamental things and mods and so on.
Lex Fridman (2:45:24.160)
And the multiplayer was going to be playable
Lex Fridman (2:45:27.120)
over the internet.
John Carmack (2:45:28.120)
It was going to support a client server
Lex Fridman (2:45:30.880)
rather than peer to peer.
Lex Fridman (2:45:32.400)
So we had the possibility of supporting
Lex Fridman (2:45:34.160)
larger numbers of players in disparate locations
John Carmack (2:45:37.440)
with this full flexibility of the programming overrides
Lex Fridman (2:45:41.320)
with full six degree of freedom modeling and viewing.
Lex Fridman (2:45:44.920)
And with this fancy new light mapped
Lex Fridman (2:45:47.960)
kind of surface caching side.
John Carmack (2:45:49.720)
It was a lot.
Lex Fridman (2:45:50.640)
And this was one of those things that
John Carmack (2:45:52.520)
if I could go back and tell younger me
Lex Fridman (2:45:56.000)
to do something differently,
John Carmack (2:45:57.500)
it would have been to split those innovations up
Lex Fridman (2:45:59.680)
into two phases in two separate games.
John Carmack (2:46:02.000)
It will be phase one and phase two.
Lex Fridman (2:46:03.640)
So it probably would have been taking
John Carmack (2:46:05.480)
the Doom rendering engine and bringing in
Lex Fridman (2:46:08.600)
the TCP IP client server.
John Carmack (2:46:10.720)
Focusing on the multiplayer.
Lex Fridman (2:46:12.200)
And the Quake C or would have been Doom C
John Carmack (2:46:15.240)
programming language there.
Lex Fridman (2:46:16.920)
So I would have split that into programming language
Lex Fridman (2:46:19.360)
and networking with the same Doom engine
Lex Fridman (2:46:21.800)
rather than forcing everybody to go towards
John Carmack (2:46:24.000)
the Quake engine, which really meant getting a Pentium.
Lex Fridman (2:46:27.640)
While it ran on a 486, it was not a great experience there.
John Carmack (2:46:31.000)
We could have made more people happier
Lex Fridman (2:46:33.000)
and gotten two games done in 50% more time.
Lex Fridman (2:46:37.320)
So speaking of people happier, our mutual friend,
Lex Fridman (2:46:41.640)
Joe Rogan, it seems like the most important moment
John Carmack (2:46:46.320)
of his life is centered around Quake.
Lex Fridman (2:46:49.480)
So it was a definitive part of his life.
Lex Fridman (2:46:53.520)
So would he agree with your thinking that they should split?
Lex Fridman (2:46:59.120)
So he is a person who loves Quake
Lex Fridman (2:47:01.440)
and played Quake a lot.
Lex Fridman (2:47:03.320)
Would he agree that you should have done the Doom engine
Lex Fridman (2:47:06.760)
and focus on the multiplayer for phase one?
Lex Fridman (2:47:09.680)
Or in your looking back, is the 3D world
John Carmack (2:47:14.800)
that Quake created was also fundamental
Lex Fridman (2:47:17.640)
to the enriching experience?
John Carmack (2:47:19.560)
You know, I would say that what would have happened
Lex Fridman (2:47:21.560)
is you would have had a Doom looking
Lex Fridman (2:47:25.280)
but Quake feeling game eight months earlier
Lex Fridman (2:47:29.960)
and then maybe six months after Quake actually shipped,
John Carmack (2:47:33.120)
then there would have been the full running on a Pentium,
Lex Fridman (2:47:36.380)
six degree of freedom graphics engine type things there.
Lex Fridman (2:47:38.720)
So it's not that it wouldn't have been there.
Lex Fridman (2:47:42.040)
It would have been something amazingly cool earlier
Lex Fridman (2:47:45.000)
and then something even cooler somewhat later
Lex Fridman (2:47:47.740)
where I would much rather have gone
Lex Fridman (2:47:50.320)
and done two one year development efforts.
Lex Fridman (2:47:53.200)
I've cycled them through.
John Carmack (2:47:54.800)
I've been a little more pragmatic about that
Lex Fridman (2:47:57.460)
rather than killing us ourselves on the whole Quake
John Carmack (2:48:00.280)
development.
Lex Fridman (2:48:01.120)
But I would say it's obviously things worked out well
John Carmack (2:48:04.100)
in the end, but looking back and saying,
Lex Fridman (2:48:06.440)
how would I optimize and do things differently?
John Carmack (2:48:08.960)
That did seem to be a clear case where I going ahead
Lex Fridman (2:48:13.160)
and we had enormous momentum on Doom.
John Carmack (2:48:15.840)
We did Doom two as the kind of commercial boxed version
Lex Fridman (2:48:19.120)
after our shareware success with the original,
Lex Fridman (2:48:22.140)
but we could have just made another Doom game
Lex Fridman (2:48:25.720)
adding those new features in.
John Carmack (2:48:27.640)
It would have been huge.
Lex Fridman (2:48:28.640)
We would have learned all the same lessons, but faster.
Lex Fridman (2:48:31.440)
And it would have given six degree of freedom
Lex Fridman (2:48:34.120)
and Pentium class systems a little bit more time
John Carmack (2:48:37.020)
to get mainstream because we did cut out a lot of people
Lex Fridman (2:48:40.080)
with the hardware requirements for Quake.
John Carmack (2:48:42.880)
Was there any dark moments for you personally,
Lex Fridman (2:48:44.800)
psychologically in having such harsh deadlines
Lex Fridman (2:48:51.080)
and having to solve so many difficult technical challenges?
Lex Fridman (2:48:54.680)
So I've never really had really dark black places.
John Carmack (2:49:00.660)
I mean, I can't necessarily put myself
Lex Fridman (2:49:02.660)
in anyone else's shoes,
Lex Fridman (2:49:03.940)
but I understand a lot of people have significant challenges
Lex Fridman (2:49:09.560)
with kind of their mental health and wellbeing.
Lex Fridman (2:49:12.460)
And I've been super stressed.
Lex Fridman (2:49:15.000)
I've been unhappy as a teenager in various ways,
Lex Fridman (2:49:18.720)
but I've never really gone to a very dark place.
Lex Fridman (2:49:23.660)
I just seem to be largely immune to what really wrecks people.
John Carmack (2:49:29.800)
I mean, I've had plenty of time when I'm very unhappy
Lex Fridman (2:49:32.260)
and miserable about something,
Lex Fridman (2:49:33.860)
but it's never hit me like,
Lex Fridman (2:49:36.380)
I believe it winds up hitting some other people.
John Carmack (2:49:38.740)
I've borne up well under whatever stresses
Lex Fridman (2:49:41.660)
have kind of fallen on me.
Lex Fridman (2:49:44.340)
And I've always coped best on that
Lex Fridman (2:49:46.900)
when all I need to do is usually
John Carmack (2:49:49.460)
just kind of bear down on my work.
Lex Fridman (2:49:51.180)
I pull myself out of whatever hole I might be slipping into
John Carmack (2:49:55.060)
by actually making progress.
Lex Fridman (2:49:57.300)
I mean, maybe if I was in a position
John Carmack (2:49:59.460)
where I was never able to make that progress,
Lex Fridman (2:50:01.740)
I could have slid down further,
Lex Fridman (2:50:03.300)
but I've always been in a place where,
Lex Fridman (2:50:06.220)
okay, a little bit more work,
John Carmack (2:50:07.540)
maybe I'm in a tough spot here,
Lex Fridman (2:50:09.080)
but I always know if I just keep pushing,
John Carmack (2:50:12.240)
eventually I break through and I make progress,
Lex Fridman (2:50:14.640)
I feel good about what I'm doing.
Lex Fridman (2:50:17.460)
And that's been enough for me so far in my life.
Lex Fridman (2:50:20.660)
Have you seen it in the distance,
Lex Fridman (2:50:23.700)
like ideas of depression or contemplating suicide?
Lex Fridman (2:50:28.740)
Have you seen those things far?
Lex Fridman (2:50:30.500)
So what was interesting, when I was a teenager,
Lex Fridman (2:50:33.100)
I was probably on some level a troubled youth.
John Carmack (2:50:37.300)
I was unhappy most of my teenage years.
Lex Fridman (2:50:40.740)
I really, I wanted to be on my own
John Carmack (2:50:42.580)
doing programming all the time.
Lex Fridman (2:50:44.540)
As soon as I was 18, 19, even though I was poor,
John Carmack (2:50:47.620)
I was doing exactly what I wanted and I was very happy,
Lex Fridman (2:50:50.700)
but high school was not a great time for me.
Lex Fridman (2:50:53.020)
And I had a conversation with like the school counselor
Lex Fridman (2:50:56.920)
and they're kind of running their script.
John Carmack (2:50:58.540)
It's like, okay, it's kind of a weird kid here.
Lex Fridman (2:51:00.580)
Let's carefully probe around.
Lex Fridman (2:51:02.380)
It's like, do you ever think about ending it all?
Lex Fridman (2:51:05.700)
I'm like, no, of course not.
John Carmack (2:51:07.500)
Never, not at all.
Lex Fridman (2:51:08.980)
This is temporary, things are going to be better.
Lex Fridman (2:51:13.140)
And that's always been kind of the case for me.
Lex Fridman (2:51:15.580)
And obviously that's not that way for everyone
Lex Fridman (2:51:18.300)
and other people do react differently.
Lex Fridman (2:51:20.900)
What was your escape from the troubled youth,
Lex Fridman (2:51:24.940)
like music, video games, books?
Lex Fridman (2:51:33.660)
How did you escape from a world
Lex Fridman (2:51:35.460)
that's full of cruelty and suffering and that's absurd?
Lex Fridman (2:51:38.180)
Yeah, I mean, I was not a victim of cruelty and suffering.
John Carmack (2:51:41.800)
It's like, I was an unhappy, somewhat petulant youth
Lex Fridman (2:51:44.340)
in my point where I'm not putting myself up
John Carmack (2:51:48.260)
with anybody else's suffering,
Lex Fridman (2:51:49.700)
but I was unhappy objectively.
Lex Fridman (2:51:52.260)
And the things that I did
Lex Fridman (2:51:54.820)
that very much characterized my childhood
John Carmack (2:51:57.260)
were I had books, comic books,
Lex Fridman (2:52:00.460)
Dungeons and Dragons, arcade games, video games.
John Carmack (2:52:03.740)
Like some of my fondest childhood memories
Lex Fridman (2:52:06.380)
are the convenience stores, the 711s and Quick Trips,
John Carmack (2:52:08.900)
because they had a spinner rack of comic books
Lex Fridman (2:52:11.380)
and they had a little side room
John Carmack (2:52:12.700)
with two or three video games, arcade games in it.
Lex Fridman (2:52:15.780)
And that was very much my happy place.
John Carmack (2:52:18.780)
If I could, I get my comic books
Lex Fridman (2:52:20.820)
and if I could go to a library
Lex Fridman (2:52:22.580)
and go through those little zero, zero, zero section
Lex Fridman (2:52:25.740)
where computer books were supposed to be.
Lex Fridman (2:52:27.380)
And there were a few sad little books there,
Lex Fridman (2:52:28.980)
but still just being able to sit down and go through that.
Lex Fridman (2:52:31.860)
And I read a ridiculous number of books,
Lex Fridman (2:52:35.740)
both fiction and nonfiction as a teenager.
Lex Fridman (2:52:38.620)
And my rebelling in high school
Lex Fridman (2:52:42.780)
was just sitting there with my nose in a book,
John Carmack (2:52:44.500)
ignoring the class through lots of it.
Lex Fridman (2:52:46.820)
And teachers had a range of reactions to that,
John Carmack (2:52:49.420)
some more accepting of it than others.
Lex Fridman (2:52:53.580)
I'm with you on that.
Lex Fridman (2:52:54.580)
So let us return to Quake for a bit
Lex Fridman (2:52:56.540)
with the technical challenges.
Lex Fridman (2:52:57.860)
What everything together from the networking
Lex Fridman (2:53:03.460)
to the graphics, what are some things you remember
John Carmack (2:53:07.180)
that were innovations you had to come up with
Lex Fridman (2:53:10.460)
in order to make it all happen?
John Carmack (2:53:12.380)
Yeah, so there were a bunch of things on Quake
Lex Fridman (2:53:14.860)
where on the one hand,
John Carmack (2:53:16.380)
the idea that I built my own programming language
Lex Fridman (2:53:19.260)
to implement the game in.
John Carmack (2:53:20.940)
Looking back, and I try to tell people,
Lex Fridman (2:53:22.900)
it's like every high level programmer
John Carmack (2:53:25.460)
sometime in their career goes through
Lex Fridman (2:53:26.860)
and they invent their own language.
John Carmack (2:53:28.020)
It just seems to be a thing that's pretty broadly done.
Lex Fridman (2:53:30.380)
People will be like,
John Carmack (2:53:31.220)
I'm gonna go write a computer programming language.
Lex Fridman (2:53:33.220)
And I don't regret having done it,
Lex Fridman (2:53:37.100)
but after that, I switched from Quake C,
Lex Fridman (2:53:40.100)
my quirky little pseudo object oriented
John Carmack (2:53:43.060)
or entity oriented language there.
Lex Fridman (2:53:45.300)
Quake two went back to using DLLs with C
Lex Fridman (2:53:47.900)
and then Quake three,
Lex Fridman (2:53:48.900)
I implemented my own C interpreter or compiler,
John Carmack (2:53:51.340)
which was a much smarter thing to do
Lex Fridman (2:53:53.180)
that I should have done originally for Quake.
Lex Fridman (2:53:55.780)
But building my own language was an experience.
Lex Fridman (2:53:57.820)
I learned a lot from that.
Lex Fridman (2:53:59.660)
And then there was a generation of game programmers
Lex Fridman (2:54:02.260)
that learned programming with Quake C,
John Carmack (2:54:04.260)
which I feel kind of bad about,
Lex Fridman (2:54:05.660)
because we give JavaScript a lot of crap,
Lex Fridman (2:54:08.660)
but Quake C was nothing to write home about there.
Lex Fridman (2:54:13.060)
But it allowed people to do magical things.
John Carmack (2:54:15.700)
You get into programming,
Lex Fridman (2:54:16.780)
not because you love the BNF syntax of a language,
John Carmack (2:54:21.300)
it's because the language lets you do something
Lex Fridman (2:54:23.340)
that you cared about.
Lex Fridman (2:54:24.460)
And here's very much,
Lex Fridman (2:54:25.620)
you could do something
John Carmack (2:54:26.980)
in a whole beautiful three dimensional world.
Lex Fridman (2:54:29.540)
And the idea and the fact that the code
John Carmack (2:54:31.220)
for the game was out there,
Lex Fridman (2:54:32.260)
you could say, I liked the shotgun,
Lex Fridman (2:54:34.500)
but I want it to be more bad ass.
Lex Fridman (2:54:36.060)
You go in there and say,
John Carmack (2:54:37.180)
okay, now it does 200 points damage.
Lex Fridman (2:54:39.220)
And then you go around with a big grin on your face,
John Carmack (2:54:41.500)
blowing up monsters all over the game.
Lex Fridman (2:54:43.940)
So yeah, it is not what I would do today
John Carmack (2:54:48.220)
going back with that language,
Lex Fridman (2:54:49.540)
but that was a big part of it.
John Carmack (2:54:51.260)
Learning about the networking stuff,
Lex Fridman (2:54:54.060)
because it's interesting where I learned these things
John Carmack (2:54:56.820)
by reading books.
Lex Fridman (2:54:57.660)
So I would get a book on networking and find something,
John Carmack (2:55:00.100)
I read all about it and learn, okay, packets,
Lex Fridman (2:55:02.700)
they can be out of order or lost or duplicated.
John Carmack (2:55:06.380)
These are all the things
Lex Fridman (2:55:07.220)
that can theoretically happen to packets.
Lex Fridman (2:55:09.300)
So I wind up spending all this time thinking about
Lex Fridman (2:55:11.420)
how do we deal about all of that?
Lex Fridman (2:55:13.100)
And it turns out, of course, in the real world,
Lex Fridman (2:55:15.100)
those are things that yes,
John Carmack (2:55:16.020)
theoretically can happen with multiple routes,
Lex Fridman (2:55:18.100)
but they really aren't things that your 99.999%
John Carmack (2:55:22.100)
of your packets have to deal with.
Lex Fridman (2:55:25.100)
So there was learning experiences about lots of that.
John Carmack (2:55:28.300)
Like why, when TCP is appropriate versus UDP
Lex Fridman (2:55:32.060)
and how if you do things in UDP,
John Carmack (2:55:34.140)
you wind up reinventing TCP badly in almost all cases.
Lex Fridman (2:55:37.900)
So there's good arguments for using both
John Carmack (2:55:41.540)
for different game technology,
Lex Fridman (2:55:42.780)
different parts of the game process,
John Carmack (2:55:44.380)
transitioning from level to level and all.
Lex Fridman (2:55:46.700)
But the graphics were the showcase
John Carmack (2:55:49.340)
of what Quake was all about.
Lex Fridman (2:55:51.900)
It was this graphics technology that nobody had seen there.
Lex Fridman (2:55:55.500)
And it was a while before
Lex Fridman (2:55:57.420)
there were competitive things out there.
Lex Fridman (2:55:59.540)
And it went a long time internally really not working
Lex Fridman (2:56:03.580)
where we were even building levels
John Carmack (2:56:05.580)
where the game just was not at all shippable
Lex Fridman (2:56:09.620)
with large fractions of the world,
John Carmack (2:56:11.220)
like disappearing, not being there,
Lex Fridman (2:56:14.020)
or being really slow in various parts of it.
Lex Fridman (2:56:16.860)
And it was this act of faith.
Lex Fridman (2:56:18.300)
It's like, I think I'm gonna be able to fix this.
John Carmack (2:56:20.660)
I think I'm gonna be able to make this work.
Lex Fridman (2:56:23.700)
And lots of stuff changed
John Carmack (2:56:25.660)
where the level designers would build something
Lex Fridman (2:56:27.900)
and then have to throw it away as something fundamental
Lex Fridman (2:56:29.980)
and the kind of graphics or level technology changed.
Lex Fridman (2:56:33.780)
And so there were two big things
John Carmack (2:56:37.180)
that contributed to making it possible at that timeframe.
Lex Fridman (2:56:41.300)
Two new things.
John Carmack (2:56:42.300)
There was certainly
Lex Fridman (2:56:43.660)
hardcore optimized low level assembly language.
Lex Fridman (2:56:46.060)
And this was where I had hired Michael Abrash
Lex Fridman (2:56:48.620)
away from Microsoft.
Lex Fridman (2:56:50.260)
And he had been one of my early inspirations
Lex Fridman (2:56:52.340)
where back in the soft disk days,
John Carmack (2:56:54.700)
the library of magazines that they had,
Lex Fridman (2:56:57.300)
some of my most treasured ones
John Carmack (2:56:58.820)
were Michael Abrash's articles in Dr. Dobbs journal.
Lex Fridman (2:57:02.380)
And it was amazing after all of our success in Doom,
John Carmack (2:57:06.380)
we were able to kind of hit him up and say,
Lex Fridman (2:57:08.020)
hey, we'd like you to come work at id Software.
Lex Fridman (2:57:10.540)
And he was in the senior technical role at Microsoft.
Lex Fridman (2:57:13.140)
And he was on track for,
Lex Fridman (2:57:15.860)
and this was right when Microsoft was starting to take off.
Lex Fridman (2:57:18.260)
And I did eventually convince him
John Carmack (2:57:21.620)
that what we were doing
Lex Fridman (2:57:22.740)
was gonna be really amazing with Quake.
John Carmack (2:57:24.540)
It was gonna be something nobody had seen before.
Lex Fridman (2:57:28.260)
It had these aspects of what we were talking about.
John Carmack (2:57:31.420)
We had metaverse talk back then.
Lex Fridman (2:57:33.580)
We had read Snow Crash and we knew about this.
Lex Fridman (2:57:36.660)
And Michael was big into the science fiction
Lex Fridman (2:57:40.140)
and we would talk about all that
Lex Fridman (2:57:41.420)
and kind of spin this tale.
Lex Fridman (2:57:42.860)
And it was some of the same conversations
John Carmack (2:57:45.140)
that we have today about the metaverse,
Lex Fridman (2:57:46.860)
about how you could have different areas
John Carmack (2:57:48.900)
linked together by portals
Lex Fridman (2:57:50.300)
and you could have user generated content
Lex Fridman (2:57:52.340)
and changing out all of these things.
Lex Fridman (2:57:54.380)
So you really were creating the metaverse with Quake.
Lex Fridman (2:57:56.900)
And we talked about things like,
Lex Fridman (2:57:58.740)
Duke used to be advertised as a virtual reality experience.
John Carmack (2:58:02.780)
That was the first wave of virtual reality
Lex Fridman (2:58:05.220)
was in the late 80s and early 90s,
John Carmack (2:58:07.620)
you had like the Lawn Mower Man movie
Lex Fridman (2:58:10.580)
and you had time in Newsweek
John Carmack (2:58:12.100)
talking about the early VPL headsets.
Lex Fridman (2:58:14.580)
And of course that cratered so hard
John Carmack (2:58:16.780)
that people didn't wanna look at virtual reality
Lex Fridman (2:58:18.660)
for decades afterwards,
John Carmack (2:58:20.140)
where it was just, it was smoke and mirrors.
Lex Fridman (2:58:23.220)
It was not real in the sense
John Carmack (2:58:24.820)
that you could actually do something
Lex Fridman (2:58:26.700)
real and valuable with it.
Lex Fridman (2:58:28.580)
But still we had that kind of common set of talking points.
Lex Fridman (2:58:32.220)
And we were talking about what these games could become
Lex Fridman (2:58:36.340)
and how you'd like to see people
Lex Fridman (2:58:37.900)
building all of these creative things.
John Carmack (2:58:39.580)
Because we were seeing an explosion of work
Lex Fridman (2:58:41.460)
with Doom at that time,
John Carmack (2:58:42.620)
where people were doing amazingly cool things.
Lex Fridman (2:58:45.700)
Like we saw cooler levels that we had built
John Carmack (2:58:48.100)
coming out of the user community.
Lex Fridman (2:58:49.740)
And then people finding ways
John Carmack (2:58:51.420)
to change the characters in different ways.
Lex Fridman (2:58:54.060)
And it was great.
Lex Fridman (2:58:54.900)
And we knew what we were doing in Quake
Lex Fridman (2:58:56.700)
was removing those last things.
John Carmack (2:58:58.860)
There was some quirky things
Lex Fridman (2:59:00.380)
with a couple of the data types
John Carmack (2:59:01.980)
that didn't work right for overriding.
Lex Fridman (2:59:03.900)
And then the core thing about the programming model.
Lex Fridman (2:59:07.380)
And I was definitely going to hit all of those in Quake.
Lex Fridman (2:59:10.900)
But the graphics side of it was still,
John Carmack (2:59:15.540)
I knew what I wanted to do.
Lex Fridman (2:59:17.060)
And it was one of these hubris things
John Carmack (2:59:20.460)
where it's like, well, so far I've been able
Lex Fridman (2:59:21.980)
to kind of kick everything that I set out to go do.
Lex Fridman (2:59:26.580)
But Quake was definitely a little bit more
Lex Fridman (2:59:29.380)
than could be comfortably chewed at that point.
John Carmack (2:59:32.180)
And, but Michael was one of the strongest programmers
Lex Fridman (2:59:36.860)
and graphics programmers that I knew.
Lex Fridman (2:59:39.140)
And he was one of the people that I trusted
Lex Fridman (2:59:40.860)
to write assembly code better than I could.
Lex Fridman (2:59:44.260)
And there's a few people that I can point to
Lex Fridman (2:59:46.740)
about things like this where I'm a world class optimizer.
John Carmack (2:59:49.940)
I mean, I make things go fast,
Lex Fridman (2:59:51.740)
but I recognize there's a number of people
John Carmack (2:59:54.660)
that can write tighter assembly code,
Lex Fridman (2:59:56.860)
tighter SIMD code or tighter CUDA code
John Carmack (2:59:59.380)
than I can write.
Lex Fridman (30:00.920)
We've got a couple of billion base pairs
Lex Fridman (30:02.540)
and it's like this all fits on a thumb drive for years now
Lex Fridman (30:05.680)
and then our brains are even a smaller section of that.
John Carmack (30:08.380)
You've got maybe 50 megabytes
Lex Fridman (30:10.000)
and this is not like Shannon Limit perfectly
John Carmack (30:13.720)
information dense conveyances here.
Lex Fridman (30:17.480)
It's like these are messy codes,
John Carmack (30:19.480)
they're broken up into amino acids.
Lex Fridman (30:21.520)
A lot of them don't do important things
John Carmack (30:23.960)
or they do things in very awkward ways
Lex Fridman (30:26.360)
but it is this process of just accumulation
John Carmack (30:29.160)
on top of things and you need scale,
Lex Fridman (30:33.320)
both you need scale for the population for that to work out
Lex Fridman (30:36.880)
and in the early days in the 50s and 60s,
Lex Fridman (30:39.880)
the kind of ancient era of computers
John Carmack (30:42.660)
where you could count when they say like
Lex Fridman (30:44.560)
when the internet started even in the 70s,
John Carmack (30:46.240)
there were like 18 hosts or something on it.
Lex Fridman (30:48.180)
It was this small finite number
Lex Fridman (30:50.440)
and you were still optimizing everything
Lex Fridman (30:52.260)
to be as good as you possibly could be
Lex Fridman (30:54.560)
but now it's billions and billions of devices
Lex Fridman (30:57.760)
and everything going on and you can have
John Carmack (31:00.360)
this very much natural evolution going on
Lex Fridman (31:03.560)
where lots of things are tried,
John Carmack (31:06.000)
lots of things are blowing up,
Lex Fridman (31:07.360)
venture capitalists lose their money
John Carmack (31:09.440)
when a startup invested in the wrong tech stack
Lex Fridman (31:11.840)
and things completely failed or failed the scale
Lex Fridman (31:14.820)
but good things do come out of it
Lex Fridman (31:17.440)
and it's interesting to see the mimetic evolution
John Carmack (31:21.060)
of the way different things happen
Lex Fridman (31:22.680)
like mentioning hello world at the beginning.
John Carmack (31:24.440)
It's funny how some little thing like that
Lex Fridman (31:26.480)
where everybody, every programmer knows hello world now
Lex Fridman (31:29.640)
and that was a completely arbitrary sort of decision
Lex Fridman (31:32.140)
that just came out of the dominance of Unix and C
Lex Fridman (31:35.600)
and early examples of things like that.
Lex Fridman (31:38.440)
So millions of experiments are going on all the time
Lex Fridman (31:42.340)
but some things do kind of rise to the top
Lex Fridman (31:44.840)
and win the fitness war for whether it's mind space
John Carmack (31:48.240)
or programming techniques or anything.
Lex Fridman (31:50.400)
Like there's a site on Stack Exchange called CodeGolf
John Carmack (31:54.400)
where people compete to write the shortest possible program
Lex Fridman (31:57.960)
for a particular task in all the different kinds
John Carmack (32:00.320)
of languages and it's really interesting to see
Lex Fridman (32:04.880)
folks kind of, they're masters of their craft,
John Carmack (32:10.000)
really play with the limits of programming languages.
Lex Fridman (32:13.460)
It's really beautiful to see
Lex Fridman (32:14.600)
and across all the different programming languages,
Lex Fridman (32:17.040)
you get to see some of these weird programming languages
Lex Fridman (32:20.600)
and mainstream ones, difference between Python 2 and 3,
Lex Fridman (32:25.080)
you get to see the difference between C and C++ and Java
Lex Fridman (32:27.680)
and you get to see JavaScript, all of that
Lex Fridman (32:30.000)
and it's kind of inspiring to see how much depth
John Carmack (32:38.120)
of possibility there is within programming languages
Lex Fridman (32:41.040)
that CodeGolf kind of tasks reveal.
John Carmack (32:44.160)
Most of us, if you do any kind of programming,
Lex Fridman (32:46.560)
you kind of do boring kind of very vanilla type of code.
John Carmack (32:51.120)
That's the way to build large systems
Lex Fridman (32:52.840)
but it's nice to see that the possibility
John Carmack (32:54.700)
of creative genius is still within those languages.
Lex Fridman (32:57.600)
It's laden within those languages.
Lex Fridman (33:00.100)
So given that you are once again,
Lex Fridman (33:03.180)
one of the greatest programmers ever,
Lex Fridman (33:05.680)
what do you think makes a good programmer?
Lex Fridman (33:08.320)
Maybe a good modern programmer.
Lex Fridman (33:10.960)
So I just gave a long rant slash lecture at Meta
Lex Fridman (33:15.680)
to the TPM organization and my biggest point was
John Carmack (33:20.440)
everything that we're doing really should flow
Lex Fridman (33:23.280)
from user value, all the good things that we're doing.
John Carmack (33:26.120)
It's like, we're not technical people.
Lex Fridman (33:28.440)
It's like, you shouldn't be taking pride
John Carmack (33:30.960)
just in the specific thing.
Lex Fridman (33:32.080)
Like CodeGolf is the sort of thing, it's a fun puzzle game
Lex Fridman (33:34.880)
but that really should not be a major motivator for you.
Lex Fridman (33:38.160)
It's like, we're solving problems for people
John Carmack (33:40.260)
or we're providing entertainment to people.
Lex Fridman (33:41.960)
We're doing something of value to people
John Carmack (33:44.160)
that's displacing something else in their life.
Lex Fridman (33:46.240)
So we wanna be providing a net value
John Carmack (33:49.000)
over what they could be doing
Lex Fridman (33:51.360)
but instead they're choosing to use our products.
Lex Fridman (33:53.520)
And that's where, I mean, it sounds trite or corny
Lex Fridman (33:56.640)
but I fundamentally do think that's how you make
John Carmack (33:59.200)
the world a better place.
Lex Fridman (34:00.360)
If you have given more value to people
John Carmack (34:02.900)
than it took you and your team to create,
Lex Fridman (34:05.720)
then the world's a better place.
John Carmack (34:07.560)
People have, they've gone from something of lesser value,
Lex Fridman (34:10.500)
chosen to use your product
Lex Fridman (34:11.980)
and their life feels better for that.
Lex Fridman (34:13.880)
And if you've produced that economically,
John Carmack (34:16.280)
that's a really good thing.
Lex Fridman (34:19.480)
On the other hand, if you spent ridiculous amounts of money
John Carmack (34:22.800)
you've just kind of shoveled a lot of cash
Lex Fridman (34:24.340)
into a wood chipper there
Lex Fridman (34:25.720)
and you should maybe not feel so good
Lex Fridman (34:28.160)
about what you're doing.
Lex Fridman (34:29.720)
So being proud about like a specific architecture
Lex Fridman (34:33.560)
or a specific technology or a specific code sequence
John Carmack (34:36.440)
that you've done, it's great to get a little smile
Lex Fridman (34:39.160)
like a tiny little dopamine hit for that
Lex Fridman (34:41.140)
but the top level metrics should be
Lex Fridman (34:43.340)
that you're building things of value.
John Carmack (34:45.440)
Now you can get into the argument about how you,
Lex Fridman (34:48.040)
what is user value?
Lex Fridman (34:49.360)
How do you actually quantify that?
Lex Fridman (34:51.240)
And there can be big arguments about that
Lex Fridman (34:53.360)
but it's easy to be able to say,
Lex Fridman (34:55.120)
okay, this pissed off user there is not getting value
John Carmack (34:57.900)
from what you're doing.
Lex Fridman (34:59.080)
This user over there with the big smile on their face,
John Carmack (35:01.980)
the moment of delight when something happened,
Lex Fridman (35:04.240)
there's a value that's happened there.
John Carmack (35:05.900)
I mean, you have to at least accept
Lex Fridman (35:07.720)
that there is a concept of user value
John Carmack (35:09.840)
even if you have trouble exactly quantifying it,
Lex Fridman (35:12.880)
you can usually make relative arguments about it.
John Carmack (35:15.480)
Well, this was better than this, we've improved things.
Lex Fridman (35:18.860)
So being a servant to the user is your job
John Carmack (35:23.720)
when you're a developer, you wanna be producing something
Lex Fridman (35:26.680)
that other people are gonna find valuable.
Lex Fridman (35:30.000)
And if you are technically inclined
Lex Fridman (35:32.540)
then finding the right levers to be able to pull
John Carmack (35:35.760)
to be able to make a design that's going to produce
Lex Fridman (35:39.080)
the most value for the least amount of effort.
Lex Fridman (35:41.680)
And it always has to be kind of divided,
Lex Fridman (35:44.000)
there's a ratio there where you,
John Carmack (35:45.940)
it's a problem at the big tech companies,
Lex Fridman (35:48.080)
whether it's Meta Google, Apple, Microsoft, Amazon,
John Carmack (35:52.240)
companies that have almost infinite money.
Lex Fridman (35:55.320)
I mean, I know their CFO will complain
John Carmack (35:57.720)
that it's not infinite money
Lex Fridman (35:58.840)
but from most developers standpoints
John Carmack (36:00.640)
it really does feel like it.
Lex Fridman (36:02.680)
And it's almost counterintuitive
John Carmack (36:04.880)
that if you're working hard as a developer on something,
Lex Fridman (36:07.960)
there's always this thought,
John Carmack (36:08.820)
if only I had more resources, more people, more RAM,
Lex Fridman (36:12.360)
more megahertz, then my product will be better.
Lex Fridman (36:16.400)
And that sense that at certain points, it's certainly true
Lex Fridman (36:19.600)
that if you are really hamstrung by this,
John Carmack (36:22.080)
removing an obstacle will make a better product,
Lex Fridman (36:25.200)
make more value.
Lex Fridman (36:26.980)
But if you're not making your core design decisions
Lex Fridman (36:30.120)
in this fiercely competitive way
John Carmack (36:33.080)
where you're saying feature A or feature B,
Lex Fridman (36:35.780)
you can't just say, let's do both.
John Carmack (36:38.680)
Because then you're not making a value judgment about them.
Lex Fridman (36:41.160)
You're just saying, well, they both seem good.
John Carmack (36:43.000)
I don't wanna necessarily have to pick out
Lex Fridman (36:45.200)
which one is better or how much better
Lex Fridman (36:47.460)
and tell team B that, sorry, we're not gonna do this
Lex Fridman (36:51.020)
because A is more important.
Lex Fridman (36:53.160)
But that notion of always having to really critically value
Lex Fridman (36:57.120)
what you're doing, your time, the resources you expend,
John Carmack (36:59.720)
even the opportunity cost of doing something else,
Lex Fridman (37:02.620)
that's super important.
John Carmack (37:04.840)
Well, let me ask you about the big debates
Lex Fridman (37:07.600)
that you're mentioning of how to measure value.
John Carmack (37:12.120)
Is it possible to measure it kind of numerically
Lex Fridman (37:19.400)
or can you do the sort of Johnny Ive,
John Carmack (37:22.120)
the designer route of imagining
Lex Fridman (37:26.020)
sort of somebody using a thing
Lex Fridman (37:28.720)
and imagining a smile on their face,
Lex Fridman (37:30.840)
imagining the experience of love and joy
John Carmack (37:34.000)
that you have when you use the thing.
Lex Fridman (37:35.980)
That's from a design perspective
John Carmack (37:37.320)
or if you're building more like a lower level thing
Lex Fridman (37:40.440)
for like Linux, you imagine a developer
John Carmack (37:43.400)
that might come across this and use it
Lex Fridman (37:45.440)
and become happy and better off because of it.
Lex Fridman (37:50.440)
So where do you land on those things?
Lex Fridman (37:52.620)
Is it measurable?
Lex Fridman (37:53.680)
So I imagine like Meta and Google
Lex Fridman (37:57.280)
will probably try to measure the thing.
John Carmack (37:58.920)
They'll try to, it's like you try to optimize engagement
Lex Fridman (38:01.520)
or something, let's measure engagement.
Lex Fridman (38:03.240)
And then I think there is a kind of,
Lex Fridman (38:05.360)
I mean, I admire the designer ethic of like,
John Carmack (38:09.360)
think of a future that's immeasurable
Lex Fridman (38:13.000)
and you try to make somebody in that future
John Carmack (38:15.320)
that's different from today happy.
Lex Fridman (38:17.320)
So I do usually favor,
John Carmack (38:20.440)
if you can get any kind of a metric that's good,
Lex Fridman (38:23.800)
by all means, listen to the data.
Lex Fridman (38:25.840)
But you can go too far there where we've had problems
Lex Fridman (38:28.480)
where it's like, hey, we had a performance regression
John Carmack (38:30.640)
because our fancy new telemetry system
Lex Fridman (38:33.280)
is doing a bazillion file writes
John Carmack (38:36.000)
to kind of archive this stuff
Lex Fridman (38:37.200)
because we needed to collect information
John Carmack (38:38.740)
to determine if we were doing,
Lex Fridman (38:40.600)
if our plans were good.
Lex Fridman (38:42.600)
So when information is available,
Lex Fridman (38:45.540)
you should never ignore it.
John Carmack (38:46.720)
I mean, all of it.
Lex Fridman (38:47.560)
For actual users using the thing,
John Carmack (38:49.680)
human beings using the thing,
Lex Fridman (38:51.400)
large number of human beings,
Lex Fridman (38:52.880)
and you get to see sort of a lot of large numbers.
Lex Fridman (38:54.720)
So there's the zero to one problem
John Carmack (38:55.920)
of when you're doing something really new,
Lex Fridman (38:57.560)
you do kind of have to make a guess.
Lex Fridman (38:59.280)
But one of the points that I've been making at Meta
Lex Fridman (39:02.000)
is we have more than enough users now
John Carmack (39:05.120)
that anything somebody wants to try in VR,
Lex Fridman (39:08.440)
we have users that will be interested in that.
John Carmack (39:10.780)
You do not get to make a completely
Lex Fridman (39:13.080)
greenfield blue sky pitch and say,
John Carmack (39:15.820)
I'm going to do this because I think it might be interesting.
Lex Fridman (39:18.660)
I challenge everyone.
John Carmack (39:20.120)
There are going to be people,
Lex Fridman (39:21.640)
whether it's working in VR on your,
John Carmack (39:24.200)
like on your desktop replacement
Lex Fridman (39:26.880)
or communicating with people in different ways
John Carmack (39:29.560)
or playing the games.
Lex Fridman (39:31.640)
There are going to be probably millions of people,
John Carmack (39:35.120)
or at least if you pick some tiny niche
Lex Fridman (39:37.200)
that we're not in right now,
John Carmack (39:38.660)
there's still going to be thousands of people out there
Lex Fridman (39:40.820)
that have the headsets that would be your target market.
Lex Fridman (39:43.860)
And I tell people, pay attention to them.
Lex Fridman (39:46.060)
Don't invent fictional users.
John Carmack (39:47.680)
Don't make an Alice Bob Charlie
Lex Fridman (39:50.240)
that fits whatever matrix of tendencies
John Carmack (39:53.580)
that you want to break the market down to,
Lex Fridman (39:55.360)
because it's a mistake to think about imaginary users
John Carmack (39:58.320)
when you've got real users that you could be working with.
Lex Fridman (3:00:02.140)
My best strengths are a little bit more at the system level.
John Carmack (3:00:05.340)
I mean, I'm good at all of that,
Lex Fridman (3:00:07.020)
but the most leverage comes from making the decisions
John Carmack (3:00:10.260)
that are a little bit higher up
Lex Fridman (3:00:11.620)
where you figure out how to change your large scale problems
Lex Fridman (3:00:15.220)
so that these lower level problems are easier to do
Lex Fridman (3:00:18.020)
or it makes it possible to do them in a uniquely fast way.
Lex Fridman (3:00:23.380)
So most of my big wins in a lot of ways
Lex Fridman (3:00:27.100)
from all the way from the early games through VR
Lex Fridman (3:00:30.300)
and the aerospace work that I'm doing or did,
Lex Fridman (3:00:33.020)
and hopefully the AI work that I'm working on now
John Carmack (3:00:35.420)
is finding an angle on something
Lex Fridman (3:00:37.620)
that means you trade off something
John Carmack (3:00:40.340)
that you maybe think you need,
Lex Fridman (3:00:41.540)
but it turns out you don't need.
Lex Fridman (3:00:43.060)
And by making a sacrifice in one place,
Lex Fridman (3:00:45.860)
you can get big advantages in another place.
John Carmack (3:00:48.820)
Is it clear at which level of the system
Lex Fridman (3:00:51.660)
those big advantages can be gained?
John Carmack (3:00:54.300)
It's not always clear.
Lex Fridman (3:00:55.580)
And that's why the thing that I try
John Carmack (3:00:58.300)
to make one of my core values,
Lex Fridman (3:01:00.140)
and I proselytize to a lot of people
John Carmack (3:01:02.740)
is trying to know the entire stack,
Lex Fridman (3:01:05.500)
trying to see through everything that happens.
Lex Fridman (3:01:08.140)
And it's almost impossible
Lex Fridman (3:01:09.580)
on like the web browser level of things
John Carmack (3:01:11.860)
where there's so many levels to it,
Lex Fridman (3:01:13.460)
but you should at least understand what they all are,
John Carmack (3:01:15.820)
even if you can't understand
Lex Fridman (3:01:16.980)
all the performance characteristics at each level,
Lex Fridman (3:01:20.020)
but it goes all the way down to literally the hardware.
Lex Fridman (3:01:22.980)
So what is this chip capable of?
Lex Fridman (3:01:26.540)
And what is this software that you're writing capable of?
Lex Fridman (3:01:29.380)
And then with this architecture you put on top of that,
John Carmack (3:01:31.740)
then the ecosystem around it,
Lex Fridman (3:01:33.300)
all the people that are working on it.
Lex Fridman (3:01:35.940)
So there are all these decisions
Lex Fridman (3:01:38.500)
and they're never made in a globally optimal way,
Lex Fridman (3:01:41.220)
but sometimes you can drive a thread
Lex Fridman (3:01:43.420)
of global optimality through it.
John Carmack (3:01:45.100)
You can't look at everything, it's too complicated,
Lex Fridman (3:01:47.740)
but sometimes you can step back up
Lex Fridman (3:01:49.700)
and make a different decision.
Lex Fridman (3:01:51.540)
And we kind of went through this on the graphic side
John Carmack (3:01:53.460)
on Quake, where in some ways it was kind of bad
Lex Fridman (3:01:56.500)
where Michael would spend his time writing,
John Carmack (3:01:59.100)
like I'd rough out the basic routines,
Lex Fridman (3:02:01.660)
like, okay, here's our span rasterizer.
Lex Fridman (3:02:03.940)
And he would spend a month writing
Lex Fridman (3:02:05.980)
this beautiful cycle optimized piece of assembly language
John Carmack (3:02:10.540)
that does what I asked it to do.
Lex Fridman (3:02:13.300)
And he did it faster than like my original code would do,
John Carmack (3:02:16.100)
or probably what I would be able to do
Lex Fridman (3:02:17.660)
even if I had spent that month on it.
Lex Fridman (3:02:20.420)
But then we'd have some cases when I'd be like,
Lex Fridman (3:02:22.660)
okay, well, I figured out at this higher level
John Carmack (3:02:25.460)
instead of drawing these in a painter's order here,
Lex Fridman (3:02:28.100)
I do a span buffer and it cuts out 30% or 40%
John Carmack (3:02:32.540)
of all of these pixels,
Lex Fridman (3:02:34.020)
but it means you need to rewrite kind of this interface
John Carmack (3:02:36.580)
of all of that.
Lex Fridman (3:02:37.420)
And I could tell that wore on him a little bit,
Lex Fridman (3:02:39.340)
but in the end it was the right thing to do
Lex Fridman (3:02:41.940)
where we wound up changing that rasterization approach
Lex Fridman (3:02:45.100)
and we wound up with a super optimized
Lex Fridman (3:02:47.220)
assembly language core loop
Lex Fridman (3:02:49.740)
and then a good system around it
Lex Fridman (3:02:51.660)
which minimized how much that had to be called.
Lex Fridman (3:02:54.380)
And so in order to be able to do
Lex Fridman (3:02:55.740)
this kind of system level thinking,
John Carmack (3:02:58.140)
whether we're talking about game development,
Lex Fridman (3:03:02.420)
aerospace, nuclear energy, AI, VR,
John Carmack (3:03:07.420)
you have to be able to understand the hardware,
Lex Fridman (3:03:10.700)
the low level software, the high level software,
John Carmack (3:03:14.740)
the design decisions, the whole thing,
Lex Fridman (3:03:16.860)
the full stack of it.
John Carmack (3:03:18.180)
Yeah, and that's where a lot of these things
Lex Fridman (3:03:20.480)
become possible.
John Carmack (3:03:21.320)
When you're really, when you're bringing the future forward,
Lex Fridman (3:03:23.940)
I mean, there's a pace that everything
John Carmack (3:03:25.180)
just kind of glides towards
Lex Fridman (3:03:26.460)
where we have a lot of progress
John Carmack (3:03:27.960)
that's happening at such a different,
Lex Fridman (3:03:29.340)
so many different ways you kind of slide towards progress
John Carmack (3:03:32.300)
just left to your own, programs just get faster.
Lex Fridman (3:03:34.880)
For a while it wasn't clear
John Carmack (3:03:36.120)
if they were gonna get fatter more than they get,
Lex Fridman (3:03:38.420)
quicker than they get faster and it cancels out,
Lex Fridman (3:03:40.740)
but it is clear now in retrospect,
Lex Fridman (3:03:42.400)
no, programs just get faster
Lex Fridman (3:03:44.020)
and have gotten faster for a long time.
Lex Fridman (3:03:46.620)
But if you wanna do something
John Carmack (3:03:48.020)
like back at that original talking about scrolling games,
Lex Fridman (3:03:52.060)
say what, this needs to be five times faster.
John Carmack (3:03:54.700)
Well, we can wait six years
Lex Fridman (3:03:57.220)
and just it'll naturally get that much faster at that time
John Carmack (3:04:00.820)
or you come up with some really clever way of doing it.
Lex Fridman (3:04:03.700)
So there are those opportunities like that
John Carmack (3:04:06.140)
in a whole bunch of different areas.
Lex Fridman (3:04:08.100)
Now, most programmers don't need to be thinking about that.
John Carmack (3:04:11.780)
There's not that many,
Lex Fridman (3:04:13.440)
there's a lot of opportunities for this,
Lex Fridman (3:04:15.100)
but it's not everyone's work a day type stuff.
Lex Fridman (3:04:17.240)
So everyone doesn't have to know how all these things work.
John Carmack (3:04:20.340)
They don't have to know how their compiler works,
Lex Fridman (3:04:22.900)
how the processor chip manages cache eviction
Lex Fridman (3:04:26.180)
and all these low level things.
Lex Fridman (3:04:28.180)
But sometimes there are powerful opportunities
John Carmack (3:04:31.720)
that you can look at and say,
Lex Fridman (3:04:33.180)
we can bring the future five years faster.
John Carmack (3:04:37.220)
We can do something that,
Lex Fridman (3:04:38.420)
wouldn't it be great if we could do this?
John Carmack (3:04:40.300)
Well, we can do it today
Lex Fridman (3:04:42.020)
if we make a certain set of decisions.
Lex Fridman (3:04:44.200)
And it is in some ways smoke and mirrors
Lex Fridman (3:04:47.180)
where you say it's like,
John Carmack (3:04:48.460)
Doom was a lot of smoke and mirrors
Lex Fridman (3:04:50.460)
where people thought it was more capable
John Carmack (3:04:52.260)
than it actually was,
Lex Fridman (3:04:53.560)
but we picked the right smoke and mirrors
John Carmack (3:04:56.020)
to deploy in the game where by doing this,
Lex Fridman (3:04:58.980)
people will think that it's more general.
John Carmack (3:05:01.100)
We are gonna amaze them with what they've got here
Lex Fridman (3:05:03.420)
and they won't notice
John Carmack (3:05:05.020)
that it doesn't do these other things.
Lex Fridman (3:05:07.660)
So smart decision making at that point,
John Carmack (3:05:09.940)
that's where that kind of global holistic top down view
Lex Fridman (3:05:15.740)
can work.
Lex Fridman (3:05:16.560)
And I'm really a strong believer
Lex Fridman (3:05:20.240)
that technology should be sitting at that table
John Carmack (3:05:24.020)
having those discussions
Lex Fridman (3:05:25.100)
because you do have cases where you say,
John Carmack (3:05:26.700)
well, you wanna be the Jonathan Ivy or whatever,
Lex Fridman (3:05:28.660)
where it's a pure design solution.
Lex Fridman (3:05:32.100)
And that's in some cases now
Lex Fridman (3:05:35.200)
where you truly have almost infinite resources.
John Carmack (3:05:37.740)
Like if you're trying to do a scrolling game on the PC now,
Lex Fridman (3:05:41.500)
you don't even have to talk to a technology person.
John Carmack (3:05:43.620)
You can just have,
Lex Fridman (3:05:45.460)
any intern can make that go run as fast as it needs to there
Lex Fridman (3:05:48.460)
and it can be completely design based.
Lex Fridman (3:05:50.680)
But if you're trying to do something that's hard,
John Carmack (3:05:53.180)
either that can't be done for resources
Lex Fridman (3:05:55.840)
like VR on a mobile chip set,
John Carmack (3:05:58.060)
or that we don't even know how to do yet,
Lex Fridman (3:05:59.820)
like artificial general intelligence,
John Carmack (3:06:02.020)
it's probably going to be a matter
Lex Fridman (3:06:03.740)
of coming at it from an angle.
John Carmack (3:06:05.380)
Like, I mean, for AGI,
Lex Fridman (3:06:06.460)
we have some of like what are some of the hudder principles
John Carmack (3:06:09.040)
about how you can AXI or some of the,
Lex Fridman (3:06:11.820)
there are theoretical ways that you can say,
John Carmack (3:06:13.380)
this is the optimal learning algorithm
Lex Fridman (3:06:15.220)
that can solve everything, but it's completely impractical.
John Carmack (3:06:18.620)
You just can't do that.
Lex Fridman (3:06:20.180)
So clearly you have to make some concessions
John Carmack (3:06:23.300)
for general intelligence
Lex Fridman (3:06:25.220)
and nobody knows what the right ones are yet.
Lex Fridman (3:06:27.300)
So people are taking different angles of attack.
Lex Fridman (3:06:29.300)
I hope I've got something clever
John Carmack (3:06:31.040)
to come up with in that space.
Lex Fridman (3:06:34.060)
It's been surprising to me.
Lex Fridman (3:06:35.460)
And I think perhaps it is a principle of progress
Lex Fridman (3:06:38.760)
that smoke and mirrors somehow
John Carmack (3:06:40.580)
is the way you build the future.
Lex Fridman (3:06:42.820)
You kind of fake it till you make it
Lex Fridman (3:06:46.380)
and you almost always make it.
Lex Fridman (3:06:47.740)
And I think that's going to be the way we achieve AGI.
John Carmack (3:06:50.340)
That's going to be the way we build consciousness
Lex Fridman (3:06:53.620)
into our machines.
John Carmack (3:06:55.060)
There's philosophers debate about the Turing test
Lex Fridman (3:06:59.860)
is essentially about faking it till you make it.
John Carmack (3:07:02.820)
You start by faking it.
Lex Fridman (3:07:04.480)
And I think that always leads to making it
John Carmack (3:07:09.060)
because if we look at history.
Lex Fridman (3:07:10.660)
Arguments when, as soon as people start talking about
John Carmack (3:07:13.100)
qualia and consciousness and Chinese rooms and things,
Lex Fridman (3:07:16.220)
it's like, I just check out.
John Carmack (3:07:17.560)
I just don't think there's any value in those conversations.
Lex Fridman (3:07:20.160)
It's just like, go ahead, tell me it's not going to work.
John Carmack (3:07:22.460)
I'm going to do my best to try to make it work anyways.
Lex Fridman (3:07:25.340)
I don't know if you work with legged robots.
John Carmack (3:07:26.900)
There's a bunch of these.
Lex Fridman (3:07:29.380)
They sure as heck make me feel like they're cautious
John Carmack (3:07:33.880)
in a certain way that's not here today,
Lex Fridman (3:07:37.120)
but is you could see the kernel.
John Carmack (3:07:41.220)
It's like the flame, the beginnings of a flame.
Lex Fridman (3:07:45.980)
We don't have line of sight,
Lex Fridman (3:07:47.460)
but there's glimmerings of light in the distance
Lex Fridman (3:07:50.060)
for all of these things.
John Carmack (3:07:51.020)
Yeah, I'm hearing murmuring in a distant room.
Lex Fridman (3:07:54.900)
Well, let me ask you a human question here.
John Carmack (3:07:56.780)
You've in the game design space,
Lex Fridman (3:08:00.100)
you've done a lot of incredible work throughout,
Lex Fridman (3:08:01.900)
but in terms of game design, you have changed the world.
Lex Fridman (3:08:05.800)
And there's a few people around you that did the same.
Lex Fridman (3:08:08.440)
So famously there's some animosity, there's much love,
Lex Fridman (3:08:13.020)
but there's some animosity between you and John Romero.
Lex Fridman (3:08:16.340)
What is at the core of that animosity and human tension?
Lex Fridman (3:08:19.940)
So there really hasn't been for a long time.
Lex Fridman (3:08:24.100)
And even at the beginning, it's like,
Lex Fridman (3:08:25.520)
yes, I did push Romero out of the company.
Lex Fridman (3:08:29.500)
And this is one of the things that I look back,
Lex Fridman (3:08:32.140)
if I could go back telling my younger self
John Carmack (3:08:35.980)
some advice about things,
Lex Fridman (3:08:37.840)
the original founding kind of corporate structure
John Carmack (3:08:41.900)
of id Software really led to a bunch of problems.
Lex Fridman (3:08:45.700)
We started off with us as equal partners
Lex Fridman (3:08:48.540)
and we had a buy sell agreement
Lex Fridman (3:08:50.420)
because we didn't want outsiders
John Carmack (3:08:51.820)
to be telling us what to do inside the company.
Lex Fridman (3:08:54.400)
And that did lead to a bunch of the problems
John Carmack (3:08:57.260)
where I was sitting here going,
Lex Fridman (3:08:59.580)
it's like, all right, I'm working harder than anyone.
John Carmack (3:09:02.920)
I'm doing these technologies, nobody's done before,
Lex Fridman (3:09:06.300)
but we're all equal partners.
Lex Fridman (3:09:08.100)
And then I see somebody that's not working as hard.
Lex Fridman (3:09:11.500)
And I mean, I can't say I was the most mature about that.
John Carmack (3:09:16.160)
I was 20 something years old
Lex Fridman (3:09:18.020)
and it did bother me when I'm like, everybody,
John Carmack (3:09:22.460)
okay, we need to all pull together
Lex Fridman (3:09:23.980)
and we've done it before everybody.
John Carmack (3:09:25.540)
We know we can do this if we get together
Lex Fridman (3:09:27.700)
and we grind it all out,
Lex Fridman (3:09:29.420)
but not everybody wanted to do that for all time.
Lex Fridman (3:09:33.540)
And I was the youngest one of the crowd there.
John Carmack (3:09:35.740)
I had different sets of kind of backgrounds and motivations
Lex Fridman (3:09:40.480)
and left at that point where it was, all right,
John Carmack (3:09:44.900)
either everybody has to be contributing like up to this level
Lex Fridman (3:09:48.500)
or they need to get pushed out was not,
John Carmack (3:09:52.380)
that was not a great situation.
Lex Fridman (3:09:54.140)
And I look back on it and know that we pushed people
John Carmack (3:09:57.620)
out of the company that could have contributed
Lex Fridman (3:10:00.300)
if there was a different framework for them.
Lex Fridman (3:10:02.860)
And the modern kind of Silicon Valley,
Lex Fridman (3:10:04.680)
like let your stock vest over a time period
Lex Fridman (3:10:07.040)
and maybe it's non voting stock
Lex Fridman (3:10:08.800)
and all those different things.
John Carmack (3:10:09.820)
We knew nothing about any of that.
Lex Fridman (3:10:11.420)
I mean, we didn't know what we were doing
John Carmack (3:10:13.860)
in terms of corporate structure or anything.
Lex Fridman (3:10:16.460)
So if you think the framework was different,
John Carmack (3:10:18.460)
some of the human tension could have been a little bit.
Lex Fridman (3:10:20.660)
It almost certainly would have.
John Carmack (3:10:22.900)
I mean, I look back at that
Lex Fridman (3:10:24.220)
and it's like even trying to summon up in my mind,
John Carmack (3:10:27.740)
it's like, I know I was really, really angry about,
Lex Fridman (3:10:32.620)
like Romero not working as hard as I wanted him to work
John Carmack (3:10:35.580)
or not carrying his load on the design for Quake
Lex Fridman (3:10:39.060)
and coming up with things there.
Lex Fridman (3:10:40.940)
But he was definitely doing things.
Lex Fridman (3:10:43.100)
He made some of the best levels there.
John Carmack (3:10:44.900)
He was working with some of our external teams
Lex Fridman (3:10:47.740)
like Raven on the licensing side of things,
Lex Fridman (3:10:50.660)
but there were differences of opinion about it,
Lex Fridman (3:10:55.460)
but he landed right on his feet.
John Carmack (3:10:57.260)
He went and he got $20 million from Eidos
Lex Fridman (3:10:59.660)
to go do Ion Storm and he got to do things his way
Lex Fridman (3:11:02.980)
and spun up three teams simultaneously
Lex Fridman (3:11:05.700)
because that was always one of the challenging things
John Carmack (3:11:08.180)
in it where we were doing these single string,
Lex Fridman (3:11:11.000)
one project after another.
Lex Fridman (3:11:13.140)
And I think some of them wanted to grow the company more
Lex Fridman (3:11:16.380)
and I didn't because I knew people that were saying that,
John Carmack (3:11:19.240)
oh, companies turn to shit when you got 50 employees.
Lex Fridman (3:11:22.260)
It's just a different world there.
Lex Fridman (3:11:24.060)
And I loved our little dozen people working on the projects,
Lex Fridman (3:11:28.460)
but you can look at it and say,
John Carmack (3:11:29.940)
well, business realities matter.
Lex Fridman (3:11:31.780)
It's like, you're super successful here
Lex Fridman (3:11:33.540)
and we could take a swing and a miss on something,
Lex Fridman (3:11:36.340)
but you do it a couple of times and you're out of luck.
John Carmack (3:11:39.320)
There's a reason companies try to have multiple teams
Lex Fridman (3:11:43.060)
running at one time.
Lex Fridman (3:11:45.660)
And so that was, again,
Lex Fridman (3:11:47.060)
something I didn't really appreciate back then.
Lex Fridman (3:11:49.620)
So if you look past all that,
Lex Fridman (3:11:51.020)
you did create some amazing things together.
Lex Fridman (3:11:53.740)
What did you love about John Romero?
Lex Fridman (3:11:55.740)
What did you respect and appreciate about him?
Lex Fridman (3:11:57.700)
What did you admire about him?
Lex Fridman (3:11:59.100)
What did you learn from him?
John Carmack (3:12:00.980)
When I met him, he was the coolest programmer
Lex Fridman (3:12:02.460)
I had ever met.
John Carmack (3:12:04.020)
He had done all of this stuff.
Lex Fridman (3:12:05.580)
He had made all of these games.
John Carmack (3:12:07.580)
He had worked at one of the companies
Lex Fridman (3:12:10.060)
that I thought was the coolest at Origin Systems.
Lex Fridman (3:12:12.740)
And he knew all this stuff.
Lex Fridman (3:12:14.580)
He made things happen fast.
Lex Fridman (3:12:16.220)
And he was also kind of a polymath about this
Lex Fridman (3:12:18.900)
where he could do, he drew his own art.
John Carmack (3:12:21.580)
He made his own levels,
Lex Fridman (3:12:22.780)
as well as we worked on sound design systems
John Carmack (3:12:26.220)
on top of actually being a really good programmer.
Lex Fridman (3:12:29.280)
And we went through a little,
John Carmack (3:12:32.020)
it was kind of fun where one of the early things
Lex Fridman (3:12:34.120)
that we did where there was kind of the young buck bit
John Carmack (3:12:36.520)
going in where I was the new guy.
Lex Fridman (3:12:39.140)
And he was the top man programmer at the soft disk area.
Lex Fridman (3:12:44.500)
And eventually we had sort of a challenge over the weekend
Lex Fridman (3:12:47.100)
that we were gonna like race to implement this game,
John Carmack (3:12:49.640)
to port one of our PC games back down to the Apple II.
Lex Fridman (3:12:52.780)
And that was where we finally kind of became clear.
John Carmack (3:12:55.180)
It's like, okay, Carmack stands a little bit apart
Lex Fridman (3:12:57.700)
on the programming side of things.
Lex Fridman (3:13:00.260)
But Romero then very gracefully moved into,
Lex Fridman (3:13:03.060)
well, he'll work on the tools, he'll work on the systems,
John Carmack (3:13:06.100)
do some of the game design stuff,
Lex Fridman (3:13:07.620)
as well as contributing on,
John Carmack (3:13:09.740)
starting to lead the design aspects of a lot of things.
Lex Fridman (3:13:12.880)
So he was enormously valuable in the early stuff.
Lex Fridman (3:13:16.940)
And so much of Doom and even Quake have his stamp on it
Lex Fridman (3:13:20.540)
in a lot of ways.
Lex Fridman (3:13:21.900)
But he wasn't at the same level of focus
Lex Fridman (3:13:25.640)
that I brought to the work that we were doing there.
Lex Fridman (3:13:29.160)
And he really did, we hit such a degree of success
Lex Fridman (3:13:33.540)
that it was all in the press about that.
John Carmack (3:13:35.980)
The rockstar game programmers.
Lex Fridman (3:13:38.540)
I mean, it's the Beatles problem.
John Carmack (3:13:40.060)
Yeah, I mean, he ate it up and he did personify.
Lex Fridman (3:13:43.340)
There was the whole game developers with Ferraris
John Carmack (3:13:46.660)
that we had there.
Lex Fridman (3:13:49.020)
And I thought that led to some challenges there.
Lex Fridman (3:13:53.520)
But so much of the stuff that was great in the games
Lex Fridman (3:13:58.100)
did come from him.
Lex Fridman (3:13:59.260)
And I would certainly not take that away from him.
Lex Fridman (3:14:01.940)
And even after we parted ways and he took his swing
John Carmack (3:14:05.500)
with Eidos, in some ways, he was ahead of the curve
Lex Fridman (3:14:09.260)
with mobile gaming as well, where
John Carmack (3:14:11.820)
one of his companies after Eidos was working on feature phone
Lex Fridman (3:14:15.540)
game development.
Lex Fridman (3:14:16.740)
And I wound up doing some of that
Lex Fridman (3:14:19.300)
just before the iPhone crossing over into the iPhone phase
John Carmack (3:14:22.300)
there.
Lex Fridman (3:14:23.020)
And that was something that clearly
John Carmack (3:14:24.900)
did turn out to be a huge thing, although he
Lex Fridman (3:14:27.700)
was too early for what he was working on at that time.
John Carmack (3:14:31.660)
We've had pretty cordial relationships
Lex Fridman (3:14:34.060)
where I was happy to talk with him any time I'd
John Carmack (3:14:35.980)
run into him at a conference.
Lex Fridman (3:14:38.180)
I have actually had some other people just say,
John Carmack (3:14:40.580)
it's like, oh, you shouldn't go over there
Lex Fridman (3:14:42.940)
and give him the time of day.
John Carmack (3:14:44.380)
Or felt that Masters of Doom played things up in a way
Lex Fridman (3:14:50.940)
that I shouldn't be too happy with.
Lex Fridman (3:14:52.500)
But I'm OK with all of that.
Lex Fridman (3:14:54.740)
So you've still got love in your heart.
John Carmack (3:14:56.700)
Yeah, I mean, I just talked with him like last year,
Lex Fridman (3:14:59.700)
or I guess it was even this year,
John Carmack (3:15:01.060)
about mentioning that I'm going off doing this AI stuff.
Lex Fridman (3:15:03.820)
I'm going big into artificial intelligence.
Lex Fridman (3:15:06.580)
And he had a bunch of ideas for how
Lex Fridman (3:15:09.260)
AI is going to play into gaming.
Lex Fridman (3:15:10.940)
And asked if I was interested in collaborating.
Lex Fridman (3:15:13.460)
And it's not in line with what I'm doing.
Lex Fridman (3:15:16.300)
But I do wish almost everyone the best.
Lex Fridman (3:15:19.620)
I mean, I know I may not have partnered
John Carmack (3:15:21.660)
on the best of terms with some people.
Lex Fridman (3:15:24.460)
But I was thrilled to see Tom Hall writing VR games now.
John Carmack (3:15:29.100)
He wrote, I'm working on a game called Demio, which
Lex Fridman (3:15:31.540)
is really an awesome VR game.
John Carmack (3:15:33.780)
It's like Dungeons and Dragons.
Lex Fridman (3:15:35.020)
We all used to play Dungeons and Dragons together.
John Carmack (3:15:36.820)
That was one of the things.
Lex Fridman (3:15:37.900)
That was what we did on Sundays in the early days.
John Carmack (3:15:40.340)
I would Dungeon Master, and they'd all play.
Lex Fridman (3:15:42.220)
And so it really made me smile seeing
John Carmack (3:15:44.980)
Tom involved with an RPG game in virtual reality.
Lex Fridman (3:15:49.740)
You were the CTO of Oculus VR since 2013,
Lex Fridman (3:15:54.620)
and maybe less than a year involved in a bit in 2019.
Lex Fridman (3:16:00.420)
Oculus was acquired by Facebook Now Meta in 2014.
John Carmack (3:16:04.900)
You've spoken brilliantly about both the low level details,
Lex Fridman (3:16:07.780)
the experimental design, and the big picture
John Carmack (3:16:09.780)
vision of virtual reality.
Lex Fridman (3:16:12.020)
Let me ask you about the metaverse, the big question
John Carmack (3:16:14.980)
here, both philosophically and technically.
Lex Fridman (3:16:18.020)
How hard is it to build the metaverse?
Lex Fridman (3:16:20.180)
What is the metaverse in your view?
Lex Fridman (3:16:22.700)
You started with discussing and thinking about Quake
John Carmack (3:16:24.980)
as a kind of a metaverse.
Lex Fridman (3:16:27.260)
As you think about it today, what is the metaverse,
John Carmack (3:16:31.340)
the thing that could create this compelling user value,
Lex Fridman (3:16:34.420)
this experience that will change the world,
Lex Fridman (3:16:36.860)
and how hard is it to build it?
Lex Fridman (3:16:39.020)
So the term comes from Neal Stephenson's book Snow Crash,
John Carmack (3:16:42.020)
which many of us had read back in the 90s.
Lex Fridman (3:16:44.700)
It was one of those kind of formative books.
Lex Fridman (3:16:47.500)
And there was this sense that the possibilities
Lex Fridman (3:16:53.100)
and kind of the freedom and unlimited capabilities
John Carmack (3:16:56.100)
to build a virtual world that does whatever you want,
Lex Fridman (3:16:59.540)
whatever you ask of it, has been a powerful draw
John Carmack (3:17:02.260)
for generations of developers, game developers specifically,
Lex Fridman (3:17:05.620)
and people that are thinking about more general purpose
John Carmack (3:17:08.900)
applications.
Lex Fridman (3:17:10.300)
So we were talking about that back in the Doom and Quake days
John Carmack (3:17:13.660)
about how do you wind up with an interconnected set of worlds
Lex Fridman (3:17:17.140)
that you kind of visit from one to another.
Lex Fridman (3:17:19.180)
And as web pages were becoming a thing,
Lex Fridman (3:17:21.540)
you start thinking about what is the interactive kind
John Carmack (3:17:25.260)
of 3D based equivalent of this.
Lex Fridman (3:17:27.540)
And there were a lot of really bad takes.
John Carmack (3:17:29.780)
You had like Vermol and virtual reality markup languages.
Lex Fridman (3:17:34.220)
And there's aspects like that that came from people saying,
John Carmack (3:17:38.300)
well, what kind of capabilities should we
Lex Fridman (3:17:40.780)
develop to enable this?
Lex Fridman (3:17:43.580)
And that kind of capability first work
Lex Fridman (3:17:45.620)
has usually not panned out very well.
John Carmack (3:17:48.940)
On the other hand, we have successful games
Lex Fridman (3:17:51.540)
that started with things like Doom and Quake and communities
John Carmack (3:17:54.340)
that formed around those, whether it
Lex Fridman (3:17:56.820)
was server lists in the early days
John Carmack (3:17:58.700)
or literal portaling between different games,
Lex Fridman (3:18:01.580)
and then modern things that are on completely different order
John Carmack (3:18:04.780)
of magnitude like Minecraft and Fortnite that
Lex Fridman (3:18:07.380)
have 100 million plus users.
John Carmack (3:18:11.820)
I still think that that's the right way
Lex Fridman (3:18:13.700)
to go to build the metaverse is you build something that's
John Carmack (3:18:16.900)
amazing that people love and people wind up
Lex Fridman (3:18:18.980)
spending all their time in because it's awesome.
Lex Fridman (3:18:21.940)
And you expand the capabilities of that.
Lex Fridman (3:18:24.420)
So even if it's a very basic experience, if it's awesome.
John Carmack (3:18:28.420)
Minecraft is an amazing case study in so many things.
Lex Fridman (3:18:31.660)
That's basic as it gets.
John Carmack (3:18:32.660)
What's been able to be done with that is really enlightening.
Lex Fridman (3:18:36.860)
And there are other cases where, like right now,
John Carmack (3:18:39.700)
Roblox is basically a game construction kit aimed at kids.
Lex Fridman (3:18:43.260)
And that was a capability first play.
Lex Fridman (3:18:45.020)
And it's achieving scale that's on the same order
Lex Fridman (3:18:48.060)
of those things.
Lex Fridman (3:18:49.060)
So it's not impossible, but my preferred bet
Lex Fridman (3:18:52.580)
would be you make something amazing that people love
Lex Fridman (3:18:55.180)
and you make it better and better.
Lex Fridman (3:18:56.820)
And that's where I could say we could have gone back
Lex Fridman (3:18:59.620)
and followed a path like that in the early days
Lex Fridman (3:19:02.780)
if you just take the same game, whether it's
John Carmack (3:19:05.580)
when Activision demonstrated that you could make
Lex Fridman (3:19:07.620)
Call of Duty every year.
Lex Fridman (3:19:09.140)
And not only is it not bad, people love it.
Lex Fridman (3:19:12.140)
And it's very profitable.
John Carmack (3:19:14.460)
The idea that you could have taken something like that,
Lex Fridman (3:19:17.340)
take a great game, release a new version every year
John Carmack (3:19:20.220)
that lets the capabilities grow and expand
Lex Fridman (3:19:23.020)
to start saying it's like, OK, it's
John Carmack (3:19:24.660)
a game about running around and shooting things,
Lex Fridman (3:19:26.780)
but now you can bring your media into it.
John Carmack (3:19:30.260)
You can add persistence of social signs of life
Lex Fridman (3:19:35.020)
or whatever you want to add to it.
John Carmack (3:19:37.820)
I still think that's quite a good position to take.
Lex Fridman (3:19:41.860)
And I think that while Meta is doing a bottoms up capability
John Carmack (3:19:45.940)
approach with Horizon Worlds where it's
Lex Fridman (3:19:48.740)
a fairly general purpose, creators
John Carmack (3:19:51.180)
can build whatever they want in their sort of thing,
Lex Fridman (3:19:55.180)
it's hard to compare and compete with something
John Carmack (3:19:57.980)
like Fortnite, which also has enormous amounts of creativity
Lex Fridman (3:20:01.660)
even though it was not designed originally
John Carmack (3:20:03.660)
as a general purpose sort of thing.
Lex Fridman (3:20:05.740)
So we have examples on both sides.
John Carmack (3:20:08.500)
Me personally, I would have bet on trying
Lex Fridman (3:20:11.940)
to do entertainment, valuable destination first,
Lex Fridman (3:20:15.180)
and expanding from there.
Lex Fridman (3:20:16.980)
So can you imagine the thing that will be kind of,
John Carmack (3:20:22.180)
if we look back a couple of centuries from now
Lex Fridman (3:20:25.300)
and you think about the experiences that
John Carmack (3:20:29.180)
marked the singularity, the transition where most
Lex Fridman (3:20:34.500)
of our world moved into virtual reality,
Lex Fridman (3:20:37.660)
what do you think those experiences will look like?
Lex Fridman (3:20:40.580)
So I do think it's going to be kind of like the way the web
John Carmack (3:20:43.620)
slowly took over, where you're the frog
Lex Fridman (3:20:46.620)
in the pot of water that's slowly heating up,
John Carmack (3:20:48.860)
where having lived through all of that,
Lex Fridman (3:20:51.420)
I remember when it was shocking to start
John Carmack (3:20:53.660)
seeing the first website address on a billboard when you're
Lex Fridman (3:20:57.260)
like, hey, my computer world is infecting the real world.
John Carmack (3:21:00.700)
This is spreading out in some way.
Lex Fridman (3:21:03.100)
But when you look back and say, well,
Lex Fridman (3:21:05.620)
what made the web take off?
Lex Fridman (3:21:08.260)
And it wasn't a big bang sort of moment there.
John Carmack (3:21:12.020)
It was a bunch of little things that turned out
Lex Fridman (3:21:14.540)
not to even be the things that are relevant now
John Carmack (3:21:17.220)
that brought them into it.
Lex Fridman (3:21:18.740)
So I wonder if, I mean, like you said, you're not a historian.
Lex Fridman (3:21:23.140)
So maybe there is a historian out there
Lex Fridman (3:21:26.580)
that could really identify that moment, data driven way.
John Carmack (3:21:30.660)
It could be like MySpace or something like that.
Lex Fridman (3:21:33.580)
Maybe the first major social network that really reached
John Carmack (3:21:37.340)
into non geek world or something like that.
Lex Fridman (3:21:42.180)
I think that's kind of the fallacy of historians, though,
John Carmack (3:21:45.100)
looking for some of those kind of primary dominant causes
Lex Fridman (3:21:48.660)
where so many of these things are like we
John Carmack (3:21:51.620)
see an exponential curve.
Lex Fridman (3:21:52.980)
But it's not because like one thing is going exponential.
John Carmack (3:21:55.900)
It's because we have hundreds of little sigmoid curves
Lex Fridman (3:21:59.100)
overlapped on top of each other.
Lex Fridman (3:22:00.780)
And they just happen to keep adding up
Lex Fridman (3:22:02.460)
so that you've got something kind of going exponential
John Carmack (3:22:05.540)
at any given point.
Lex Fridman (3:22:06.420)
But no single one of them was the critical thing.
John Carmack (3:22:09.300)
There were dozens and dozens of things.
Lex Fridman (3:22:11.700)
I mean, seeing the transitions of stuff
John Carmack (3:22:13.420)
like as obviously MySpace giving way to other things,
Lex Fridman (3:22:16.580)
but even like blogging giving way to social media
Lex Fridman (3:22:20.180)
and getting resurrected in other guises.
Lex Fridman (3:22:22.860)
And the memes with the dancing baby GIF
John Carmack (3:22:26.060)
or whatever the all your base now belong to us.
Lex Fridman (3:22:29.140)
Whatever those early memes that led to the modern memes
Lex Fridman (3:22:32.300)
and the different evolution of humor on the internet
Lex Fridman (3:22:37.260)
that I'm sure the historians will also write books about
John Carmack (3:22:40.700)
from the different website that support
Lex Fridman (3:22:42.620)
to create the infrastructure for that humor like Reddit
Lex Fridman (3:22:45.100)
and all that kind of stuff.
Lex Fridman (3:22:46.860)
So people will go back, and they will name
John Carmack (3:22:48.820)
firsts and critical moments.
Lex Fridman (3:22:50.340)
But it's probably going to be a poor approximation of what
John Carmack (3:22:53.420)
actually happens.
Lex Fridman (3:22:54.900)
And we've already seen in the VR space
John Carmack (3:22:57.500)
where it didn't play out the way we thought it would in terms
Lex Fridman (3:23:01.380)
of what was going to be like when the modern era of VR
John Carmack (3:23:04.620)
basically started with my E3 demo of Doom 3
Lex Fridman (3:23:07.260)
on the Rift prototype.
Lex Fridman (3:23:08.460)
So we're like first person shooters in VR,
Lex Fridman (3:23:10.980)
match made in heaven, right?
Lex Fridman (3:23:12.860)
And that didn't work out that way at all.
Lex Fridman (3:23:15.500)
They have the most comfort problems with it.
Lex Fridman (3:23:18.420)
And then the most popular virtual reality app
Lex Fridman (3:23:21.220)
is Beat Saber, which nobody predicted back then.
John Carmack (3:23:24.820)
What's that make you like from first principles
Lex Fridman (3:23:28.740)
if you were to reverse engineer that?
Lex Fridman (3:23:31.300)
Why are these silly fun games the most?
Lex Fridman (3:23:35.340)
It actually makes very clear sense
John Carmack (3:23:37.340)
when you analyze it from hindsight
Lex Fridman (3:23:40.420)
and look at the engineering reasons
John Carmack (3:23:41.900)
where it's not just that it was a magical quirky idea.
Lex Fridman (3:23:45.380)
It was something that played almost perfectly
John Carmack (3:23:47.820)
to what turned out to be the real strengths of VR
Lex Fridman (3:23:50.460)
where the one thing that I really underestimated
John Carmack (3:23:52.940)
importance in VR was the importance of the controllers.
Lex Fridman (3:23:55.940)
I was still thinking we could do a lot more
John Carmack (3:23:57.700)
with the game pad and just the amazingness
Lex Fridman (3:24:00.500)
of taking any existing game,
John Carmack (3:24:01.940)
being able to move your head around and look around,
Lex Fridman (3:24:04.300)
that that was really amazing.
Lex Fridman (3:24:06.180)
But the controllers were super important.
Lex Fridman (3:24:09.020)
But the problem is so many things
John Carmack (3:24:10.420)
that you do with the controllers just suck.
Lex Fridman (3:24:13.420)
It feels like it breaks the illusion
John Carmack (3:24:14.700)
like trying to pick up glasses with the controllers
Lex Fridman (3:24:16.900)
where you're like, oh, use the grip button
John Carmack (3:24:18.540)
when you're kind of close and it'll snap into your hand.
Lex Fridman (3:24:21.420)
All of those things are unnatural actions
John Carmack (3:24:24.540)
that you do them and it's still part of the VR experience.
Lex Fridman (3:24:27.660)
But Beat Saber winds up playing only to the strengths.
John Carmack (3:24:32.460)
It completely hides all the weaknesses of it
Lex Fridman (3:24:34.620)
because you are holding something in your hand.
John Carmack (3:24:37.100)
You keep a solid grip on it the whole time.
Lex Fridman (3:24:39.340)
It slices through things without ever bumping into things.
John Carmack (3:24:42.300)
You never get into the point where,
Lex Fridman (3:24:44.420)
I'm knocking on this table,
Lex Fridman (3:24:45.660)
but in VR, my hand just goes right through it.
Lex Fridman (3:24:48.060)
So you've got something that slices through.
Lex Fridman (3:24:51.060)
So it's never your brain telling you,
Lex Fridman (3:24:53.100)
oh, I should have hit something.
John Carmack (3:24:54.540)
You've got a lightsaber here.
Lex Fridman (3:24:55.780)
It's just, you expect it to slice through everything.
John Carmack (3:24:58.980)
Audio and music turned out to be a really powerful aspect
Lex Fridman (3:25:02.460)
of virtual reality where you're blocking the world off
Lex Fridman (3:25:05.180)
and constructing the world around you.
Lex Fridman (3:25:07.580)
And being something that can run efficiently
John Carmack (3:25:10.900)
on even this relatively low powered hardware
Lex Fridman (3:25:13.700)
and can have a valuable loop in a small amount of time
John Carmack (3:25:17.660)
where a lot of modern games,
Lex Fridman (3:25:19.500)
you're supposed to sit down and play it for an hour
John Carmack (3:25:21.460)
just to get anywhere.
Lex Fridman (3:25:22.300)
Sometimes a new game takes an hour
John Carmack (3:25:23.660)
to get through the tutorial level.
Lex Fridman (3:25:25.340)
And that's not good for VR for a couple reasons.
John Carmack (3:25:27.860)
You do still have the comfort issues
Lex Fridman (3:25:29.700)
if you're moving around at all,
Lex Fridman (3:25:31.460)
but you've also got just discomfort from the headset,
Lex Fridman (3:25:34.780)
battery lifespan on the mobile versions.
Lex Fridman (3:25:37.500)
So having things that do break down
Lex Fridman (3:25:39.140)
into three and four minute windows of play,
John Carmack (3:25:42.140)
that turns out to be very valuable
Lex Fridman (3:25:43.780)
from a gameplay standpoint.
Lex Fridman (3:25:45.780)
So it winds up being kind of a perfect storm
Lex Fridman (3:25:48.180)
of all of these things that are really good.
John Carmack (3:25:50.060)
It doesn't have any of the comfort problems.
Lex Fridman (3:25:52.060)
You're not navigating around.
John Carmack (3:25:53.380)
You're standing still.
Lex Fridman (3:25:54.620)
All the stuff flies at you.
John Carmack (3:25:56.580)
It has placed audio strengths.
Lex Fridman (3:25:59.380)
It adds the whole fitness in VR.
John Carmack (3:26:01.580)
Nobody was thinking about that back at the beginning.
Lex Fridman (3:26:04.460)
And it turns out that that is an excellent
John Carmack (3:26:07.420)
daily fitness thing to be doing.
Lex Fridman (3:26:09.060)
If you go play an hour of Beat Saber
John Carmack (3:26:11.860)
or Supernatural or something,
Lex Fridman (3:26:13.500)
that is legit solid exercise.
Lex Fridman (3:26:16.420)
And it's more fun than doing it
Lex Fridman (3:26:17.980)
just about any other way there.
Lex Fridman (3:26:19.900)
So that's kind of the arcade stage of things.
Lex Fridman (3:26:23.460)
If I were to say with my experience with VR,
John Carmack (3:26:27.140)
the thing that I think is powerful is the,
Lex Fridman (3:26:30.620)
maybe it's not here yet,
Lex Fridman (3:26:32.580)
but the degree to which it is immersive
Lex Fridman (3:26:35.100)
in the way that Quake is immersive.
John Carmack (3:26:38.380)
It takes you to another world.
Lex Fridman (3:26:40.260)
For me, because I'm a fan of role playing games,
John Carmack (3:26:44.340)
the Elder Scrolls series,
Lex Fridman (3:26:47.140)
like Skyrim or even Daggerfall,
John Carmack (3:26:50.180)
it just takes you to another world.
Lex Fridman (3:26:52.540)
And when you're not in that world,
John Carmack (3:26:53.940)
you miss not being there.
Lex Fridman (3:26:55.860)
And then you just, you kind of want to stay there forever
John Carmack (3:26:58.820)
because life is shitty.
Lex Fridman (3:27:00.940)
And you just want to go to this place.
John Carmack (3:27:04.300)
Is that there was a time when we were kind of asked
Lex Fridman (3:27:09.340)
to come up with like, what's your view about VR?
Lex Fridman (3:27:12.060)
And my pitch was that it should be better
Lex Fridman (3:27:15.620)
inside the headset than outside.
John Carmack (3:27:17.220)
It's the world as you want it.
Lex Fridman (3:27:19.460)
And everybody thought that was dystopian.
Lex Fridman (3:27:21.660)
And like, that's like, oh,
Lex Fridman (3:27:23.300)
you're just going to forget about the world outside.
Lex Fridman (3:27:25.580)
And I don't get that mindset where the idea
Lex Fridman (3:27:29.700)
that if you can make the world better inside the headset
John Carmack (3:27:32.860)
than outside, you've just improved the person's life
Lex Fridman (3:27:36.220)
that has a headset that can wear it.
Lex Fridman (3:27:38.500)
And there are plenty of things that we just can't do
Lex Fridman (3:27:41.300)
for everyone in the real world.
John Carmack (3:27:42.380)
Everybody can't have Richard Branson's Private Island,
Lex Fridman (3:27:44.900)
but everyone can have a private VR Island
Lex Fridman (3:27:47.180)
and it can have the things that they want on it.
Lex Fridman (3:27:49.100)
And there's a lot of these kind of rivalrous goods
John Carmack (3:27:51.620)
in the real world that VR can just be better at.
Lex Fridman (3:27:55.580)
We can do a lot of things like that
John Carmack (3:27:57.740)
that can be very, very rich.
Lex Fridman (3:27:59.620)
So yeah, I want the,
John Carmack (3:28:01.020)
I think it's going to be a positive thing,
Lex Fridman (3:28:02.380)
this world where people want to go back into their headset,
John Carmack (3:28:05.420)
where it can be better than somebody that's living
Lex Fridman (3:28:07.980)
in a tiny apartment can have a palatial estate
John Carmack (3:28:10.860)
in virtual reality.
Lex Fridman (3:28:11.980)
They can have all their friends from all over the world
John Carmack (3:28:13.940)
come over and visit them without everybody getting
Lex Fridman (3:28:16.620)
on a plane and meeting in some place
Lex Fridman (3:28:19.300)
and dealing with all the other logistics hassles.
Lex Fridman (3:28:21.620)
There is real value in the presence that you can get
John Carmack (3:28:25.460)
for remote meetings.
Lex Fridman (3:28:26.540)
It's all the little things that we need to sort out,
Lex Fridman (3:28:30.100)
but those are things that we have line of sight on.
Lex Fridman (3:28:32.860)
People that have been in like a good VR meeting
John Carmack (3:28:35.980)
using work rooms where you can say,
Lex Fridman (3:28:38.180)
oh, that was better than a Zoom meeting.
Lex Fridman (3:28:40.380)
But of course it's more of a hassle to get into it.
Lex Fridman (3:28:42.900)
Not everyone has the headset.
John Carmack (3:28:44.380)
Interoperability is worse.
Lex Fridman (3:28:46.260)
You can't have, you cap out at a certain number.
John Carmack (3:28:48.620)
There's all these things that need to be fixed,
Lex Fridman (3:28:50.620)
but that's one of those things you can look at and say,
John Carmack (3:28:52.340)
we know there's value there.
Lex Fridman (3:28:54.220)
We just need to really grind hard,
John Carmack (3:28:56.300)
file off all the rough edges and make that possible.
Lex Fridman (3:28:59.460)
So you do think we have line of sight
John Carmack (3:29:02.020)
because there's a reason like,
Lex Fridman (3:29:06.980)
I do this podcast in person, for example.
Lex Fridman (3:29:09.500)
So doing it remotely, it's not the same.
Lex Fridman (3:29:14.060)
And if somebody were to ask me why it's not the same,
John Carmack (3:29:16.940)
I wouldn't be able to write down exactly why.
Lex Fridman (3:29:20.540)
But you're saying that it's possible,
John Carmack (3:29:23.380)
whatever the magic is for in person interaction,
Lex Fridman (3:29:26.980)
that immersiveness of the experience,
John Carmack (3:29:30.500)
we are almost there.
Lex Fridman (3:29:32.180)
Yes, so the idea of like,
John Carmack (3:29:34.380)
I'm doing a VR interview with someone.
Lex Fridman (3:29:37.700)
I'm not saying it's here right now,
Lex Fridman (3:29:39.580)
but you can see glimmers of what it should be.
Lex Fridman (3:29:42.620)
And we largely know what would need to be fixed
Lex Fridman (3:29:46.020)
and improved to, like you say,
Lex Fridman (3:29:48.020)
there's a difference between at remote interview
John Carmack (3:29:50.580)
doing a podcast over Zoom or something and face to face.
Lex Fridman (3:29:53.900)
There's that sense of presence, that immediacy,
John Carmack (3:29:56.460)
the super low latency responsiveness,
Lex Fridman (3:29:59.060)
being able to see all the subtle things there,
John Carmack (3:30:01.420)
just occupying the same field of view.
Lex Fridman (3:30:03.700)
And all of those are things
John Carmack (3:30:04.860)
that we absolutely can do in VR.
Lex Fridman (3:30:07.740)
And that simple case of a small meeting
John Carmack (3:30:10.460)
with a couple of people, that's the much easier case
Lex Fridman (3:30:13.020)
than everybody thinks the Ready Player One multiverse
John Carmack (3:30:15.260)
with a thousand people going across a huge bridge
Lex Fridman (3:30:18.420)
to amazing places,
John Carmack (3:30:20.020)
that's harder in a lot of other technical ways.
Lex Fridman (3:30:22.420)
Not to say we can't also do that,
Lex Fridman (3:30:24.100)
but that's further away and has more challenges.
Lex Fridman (3:30:26.540)
But this small thing about being able to have a meeting
John Carmack (3:30:29.620)
with one or a few people and have it feel real,
Lex Fridman (3:30:33.820)
feel like you're there,
John Carmack (3:30:35.500)
like you have the same interactions and talking with them,
Lex Fridman (3:30:37.900)
you get subtle cues as we start getting eye
Lex Fridman (3:30:40.420)
and face tracking and some of the other things
Lex Fridman (3:30:42.260)
on high end headsets.
John Carmack (3:30:43.900)
A lot of that is going to come over
Lex Fridman (3:30:46.340)
and it doesn't have to be as good.
John Carmack (3:30:49.100)
This is an important thing that people miss
Lex Fridman (3:30:51.060)
where there was a lot of people that,
John Carmack (3:30:54.060)
especially rich people that would look at VR and say,
Lex Fridman (3:30:57.140)
it's like, oh, this just isn't that good.
Lex Fridman (3:30:59.780)
And I'd say, it's like, well,
Lex Fridman (3:31:00.980)
you've already been courtside backstage and on pit row
Lex Fridman (3:31:05.100)
and you've done all of these experiences
Lex Fridman (3:31:06.980)
because you get to do them in real life.
Lex Fridman (3:31:08.740)
But most people don't get to.
Lex Fridman (3:31:10.660)
And even if the experience is only half as good,
John Carmack (3:31:13.380)
if it's something that they never would have gotten
Lex Fridman (3:31:15.020)
to do before, it's still a very good thing.
Lex Fridman (3:31:17.780)
And as we can just, we can push that number up over time.
Lex Fridman (3:31:20.900)
It has a minimum viable value level
John Carmack (3:31:24.140)
when it does something that is valuable enough to people,
Lex Fridman (3:31:27.220)
as long as it's better inside the headset on any metric
John Carmack (3:31:29.980)
than it is outside and people choose to go there,
Lex Fridman (3:31:32.620)
we're on the right path.
Lex Fridman (3:31:33.980)
And we have a value gradient
Lex Fridman (3:31:35.580)
that I'm just always hammering on.
John Carmack (3:31:37.100)
We can just follow this value gradient,
Lex Fridman (3:31:39.060)
just keep making things better
John Carmack (3:31:41.020)
rather than going for that one, close your eyes,
Lex Fridman (3:31:44.540)
swing for the fences, kind of silver bullet approach.
John Carmack (3:31:48.740)
Well, I wonder if there's a value gradient
Lex Fridman (3:31:50.500)
for in person meetings, because if you get that right,
John Carmack (3:31:53.460)
I mean, that would change the world.
Lex Fridman (3:31:54.940)
Yeah. That it doesn't need to,
John Carmack (3:31:57.020)
I mean, you don't need a ready player one.
Lex Fridman (3:31:59.380)
But I wonder if there's that value gradient
John Carmack (3:32:02.780)
you can follow along, because if there is and you follow it,
Lex Fridman (3:32:08.020)
then there'll be a certain like phase shift
John Carmack (3:32:11.500)
at a certain point where people will shift
Lex Fridman (3:32:14.660)
from Zoom to this.
Lex Fridman (3:32:18.620)
I wonder, what are the bottlenecks?
Lex Fridman (3:32:23.220)
Is it software, is it hardware?
Lex Fridman (3:32:25.380)
Is it like, is it all about latency?
Lex Fridman (3:32:27.780)
So I have big arguments internally
John Carmack (3:32:30.460)
about strategic things like that,
Lex Fridman (3:32:32.740)
where like the next headset that's coming out
John Carmack (3:32:36.700)
that we've made various announcements about
Lex Fridman (3:32:38.980)
is gonna be a higher end headset,
John Carmack (3:32:40.460)
more expensive, more features.
Lex Fridman (3:32:41.980)
Lots of people wanna make those trade offs.
John Carmack (3:32:45.500)
We'll see what the market has to say
Lex Fridman (3:32:47.180)
about the exact trade offs we've made here.
Lex Fridman (3:32:49.740)
But if you wanna replace Zoom,
Lex Fridman (3:32:51.420)
you need to have something that everybody has.
Lex Fridman (3:32:55.180)
So you like cheaper.
Lex Fridman (3:32:56.420)
I like cheaper because also lighter and cheaper
John Carmack (3:33:00.140)
wind up being a virtuous cycle there
Lex Fridman (3:33:03.300)
where expensive and more features
John Carmack (3:33:05.540)
tends to also lead towards heavier.
Lex Fridman (3:33:07.220)
And it just kind of goes, it's like, let's add more features.
John Carmack (3:33:09.620)
The features are not, they have physical presence
Lex Fridman (3:33:13.340)
and weight and draw from batteries and all of those things.
Lex Fridman (3:33:16.100)
So I've always favored a lower end, cheaper, faster approach.
Lex Fridman (3:33:21.340)
That's why I was always behind the mobile side of VR
John Carmack (3:33:24.340)
rather than the higher end PC headsets.
Lex Fridman (3:33:26.700)
And I think that's proven out well.
Lex Fridman (3:33:29.460)
But there's, ideally we have a whole range of things,
Lex Fridman (3:33:32.900)
but if you've only got one or two things,
John Carmack (3:33:35.380)
it's important that those two things cover
Lex Fridman (3:33:37.220)
the scope that you think is most important.
John Carmack (3:33:40.580)
When we're in a world when it's like cell phones
Lex Fridman (3:33:42.500)
and there's 50 of them on the market
John Carmack (3:33:44.020)
covering every conceivable ecological niche you want,
Lex Fridman (3:33:46.980)
that's gonna be great,
Lex Fridman (3:33:47.940)
but we're not gonna be there for a while.
Lex Fridman (3:33:49.940)
Where are the bottlenecks?
Lex Fridman (3:33:51.580)
Is it the hardware or the software?
Lex Fridman (3:33:53.380)
Yeah, so right now you can play,
John Carmack (3:33:56.300)
you can get work rooms on Quest
Lex Fridman (3:33:58.900)
and you can set up these things
Lex Fridman (3:34:00.340)
and it's a pretty good experience.
Lex Fridman (3:34:01.700)
It's surprisingly good.
John Carmack (3:34:02.700)
I haven't tried it.
Lex Fridman (3:34:03.740)
It's surprisingly good.
John Carmack (3:34:05.060)
Yeah, the voice latency is better on that
Lex Fridman (3:34:08.100)
than a lot better than a Zoom meeting.
Lex Fridman (3:34:10.140)
So you've got a more, a better sense of immediacy there.
Lex Fridman (3:34:13.580)
The expressions that you get from the current hardware
John Carmack (3:34:17.100)
with just kind of your controllers and your head
Lex Fridman (3:34:20.060)
is pretty realistic feeling.
John Carmack (3:34:21.580)
You've got a pretty good sense of being there
Lex Fridman (3:34:23.300)
with someone with it.
Lex Fridman (3:34:24.140)
Are these like avatars of people?
Lex Fridman (3:34:27.500)
Yeah.
Lex Fridman (3:34:28.340)
Do you get to see their body?
Lex Fridman (3:34:29.900)
Yeah.
Lex Fridman (3:34:30.940)
And they're sitting around a table?
Lex Fridman (3:34:32.420)
Yeah.
Lex Fridman (3:34:33.300)
And it feels better than Zoom?
Lex Fridman (3:34:35.660)
It feels better than you, yeah,
John Carmack (3:34:36.500)
better than you'd expect for that.
Lex Fridman (3:34:37.780)
It is definitely, yeah, I'd say it's quite a bit better
John Carmack (3:34:42.180)
than Zoom when everything's working right,
Lex Fridman (3:34:43.860)
but there's still all the rough edges of,
John Carmack (3:34:46.420)
the reason Zoom became so successful
Lex Fridman (3:34:48.220)
is because they just nailed the usability of everything.
John Carmack (3:34:51.020)
It's high quality with a absolutely first rate experience.
Lex Fridman (3:34:54.940)
And we are not there yet with any of the VR stuff.
John Carmack (3:34:58.020)
I'm trying to push hard to get,
Lex Fridman (3:35:00.740)
I keep talking about it's like,
John Carmack (3:35:02.420)
it needs to just be one click to make everything happen.
Lex Fridman (3:35:05.020)
And we're getting there in our home environment,
John Carmack (3:35:07.620)
not the whole work rooms application,
Lex Fridman (3:35:09.260)
but the main home where you can now kind of go over
Lex Fridman (3:35:11.740)
and click and invite,
Lex Fridman (3:35:12.660)
and it still winds up taking five times longer
John Carmack (3:35:15.220)
than it should,
Lex Fridman (3:35:16.260)
but we're getting close to that where you click there,
John Carmack (3:35:19.460)
they click on their button and then they're sitting there
Lex Fridman (3:35:22.020)
in this good presence with you,
Lex Fridman (3:35:23.860)
but latencies need to get a lot better.
Lex Fridman (3:35:25.940)
User interface needs to get a lot better.
John Carmack (3:35:28.780)
Ubiquity of the headsets needs to get better.
Lex Fridman (3:35:30.940)
We need to have a hundred million of them out there
John Carmack (3:35:33.780)
just so that everybody knows somebody
Lex Fridman (3:35:35.420)
that uses this all the time.
John Carmack (3:35:37.260)
Well, I think it's a virtuous cycle
Lex Fridman (3:35:38.540)
because I do think the interface
John Carmack (3:35:44.140)
is the thing that makes or breaks this kind of revolution.
Lex Fridman (3:35:48.140)
It's so interesting how like you said one click,
Lex Fridman (3:35:50.860)
but it's also like how you achieve that one click.
Lex Fridman (3:35:53.980)
I don't know.
Lex Fridman (3:35:54.820)
What is, can I ask a dark question?
Lex Fridman (3:35:58.620)
Maybe let's keep it outside of meta,
Lex Fridman (3:36:00.700)
but this is about meta, but also Google and big company.
Lex Fridman (3:36:05.020)
Are they able to do this kind of thing?
John Carmack (3:36:07.940)
It seems like, let me put on my cranky old man hat,
Lex Fridman (3:36:12.180)
is they seem to not do a good job
John Carmack (3:36:15.660)
of creating these user friendly interfaces
Lex Fridman (3:36:20.500)
as they get bigger and bigger as a company.
John Carmack (3:36:22.900)
Like Google has created some of the greatest interfaces ever
Lex Fridman (3:36:27.100)
early on in its, I mean, creating Gmail,
John Carmack (3:36:30.300)
just so many brilliant interfaces
Lex Fridman (3:36:33.820)
and it just seems to be getting crappier
Lex Fridman (3:36:35.940)
and crappier at that.
Lex Fridman (3:36:37.220)
Same with meta, same with Microsoft.
John Carmack (3:36:42.180)
It's just, it seems to get worse and worse at that.
Lex Fridman (3:36:45.020)
I don't know what it is,
John Carmack (3:36:46.100)
because you've become more conservative,
Lex Fridman (3:36:47.620)
careful, risk averse.
Lex Fridman (3:36:49.980)
Is that why?
Lex Fridman (3:36:51.140)
Can you speak to that?
John Carmack (3:36:51.980)
It's been really eye opening to me
Lex Fridman (3:36:53.500)
working inside a tech titan,
John Carmack (3:36:55.420)
where I had my small companies
Lex Fridman (3:36:59.460)
and then we're acquired by a midsize game publisher
Lex Fridman (3:37:03.500)
and then Oculus getting acquired by meta
Lex Fridman (3:37:06.740)
and meta has grown by a factor of many
John Carmack (3:37:08.860)
just in the eight years since the acquisition.
Lex Fridman (3:37:12.980)
So I did not have experience with this
Lex Fridman (3:37:16.260)
and it was interesting because I remember like previously
Lex Fridman (3:37:19.740)
my benchmark for kind of use of resources
John Carmack (3:37:23.020)
was some of the government programs I interacted with
Lex Fridman (3:37:25.300)
on the aerospace side.
Lex Fridman (3:37:26.900)
And I remember thinking there was,
Lex Fridman (3:37:28.860)
okay, there's an air force program
Lex Fridman (3:37:30.340)
and they spent $50 million and they didn't launch anything.
Lex Fridman (3:37:34.340)
They didn't even build anything.
John Carmack (3:37:35.500)
It was just kind of like they made a bunch of papers
Lex Fridman (3:37:39.020)
and had some parts in a warehouse and nothing came of it.
John Carmack (3:37:42.180)
It's like $50 million and I've had to radically recalibrate
Lex Fridman (3:37:47.740)
my sense of like how much money can be spent
John Carmack (3:37:50.540)
with mediocre resources.
Lex Fridman (3:37:54.060)
Where on the plus side, VR has turned out,
John Carmack (3:37:58.020)
we've built pretty much exactly what,
Lex Fridman (3:38:02.260)
we just passed the 10 year mark then
John Carmack (3:38:03.900)
from like my first demo of the Rift.
Lex Fridman (3:38:06.940)
And if I could have said what I wanted to have,
John Carmack (3:38:09.580)
it would have been a standalone inside out tracked
Lex Fridman (3:38:12.860)
4K resolution headset that I,
John Carmack (3:38:15.820)
that could still plug into a PC for high end rendering.
Lex Fridman (3:38:18.380)
And that's exactly what we've got on Quest 2 right now.
John Carmack (3:38:20.900)
Yes, first of all, let's pause on that
Lex Fridman (3:38:22.660)
with me being cranky and everything.
John Carmack (3:38:24.980)
It's what Meta achieved with Oculus and so on is incredible.
Lex Fridman (3:38:30.180)
I mean, this is, when I thought about the future of VR,
John Carmack (3:38:34.060)
this is what I imagined in terms of hardware, I would say.
Lex Fridman (3:38:36.740)
And maybe in terms of the experience as well,
Lex Fridman (3:38:39.260)
but it's still not there somehow.
Lex Fridman (3:38:42.100)
On the one hand, we did kind of achieve it and win.
Lex Fridman (3:38:44.620)
And we've got, we've sold, we're a success right now,
Lex Fridman (3:38:48.140)
but the amount of resources that have gone into it,
John Carmack (3:38:51.260)
it winds up getting cluttered up in accounting
Lex Fridman (3:38:53.540)
where Mark did announce that they spent $10 billion a year,
John Carmack (3:38:58.380)
like on Reality Labs.
Lex Fridman (3:38:59.540)
Now Reality Labs covers a lot.
John Carmack (3:39:01.740)
It was, VR was not the large part of it.
Lex Fridman (3:39:04.300)
It also had Portal and Spark
Lex Fridman (3:39:05.860)
and the big AR research efforts.
Lex Fridman (3:39:08.180)
And it's been expanding out to include AI
Lex Fridman (3:39:11.060)
and other things there where there's a lot going on there.
Lex Fridman (3:39:15.540)
But $10 billion was just a number
John Carmack (3:39:18.140)
that I had trouble processing.
Lex Fridman (3:39:20.260)
It's just, I feel sick to my stomach
John Carmack (3:39:22.460)
thinking about that much money being spent.
Lex Fridman (3:39:24.980)
But that's how they demonstrate commitment to this,
John Carmack (3:39:27.820)
where it's not more so than like, yeah,
Lex Fridman (3:39:31.420)
Google goes and cancels all of these projects,
John Carmack (3:39:34.100)
different things like that,
Lex Fridman (3:39:36.060)
while Meta is really sticking with the funding of VR
Lex Fridman (3:39:39.500)
and AR is still further out with it.
Lex Fridman (3:39:41.900)
So there's something to be said for that.
John Carmack (3:39:44.780)
It's not just gonna vanish, the work's going in.
Lex Fridman (3:39:46.940)
I just wish it could be,
John Carmack (3:39:48.740)
all those resources could be applied more effectively
Lex Fridman (3:39:51.740)
because I see all these cases.
John Carmack (3:39:53.740)
I point out these examples of how a third party
Lex Fridman (3:39:56.900)
that we're kind of competing with in various ways.
John Carmack (3:39:58.940)
There's a number of these examples
Lex Fridman (3:40:00.580)
and they do work with a 10th of the people
John Carmack (3:40:03.820)
that we do internally and a lot of it comes from,
Lex Fridman (3:40:06.940)
yes, the small company can just go do it
John Carmack (3:40:10.060)
while in a big company, you do have to worry about,
Lex Fridman (3:40:13.860)
is there some SDK internally that you should be using
John Carmack (3:40:16.740)
because another team's making it,
Lex Fridman (3:40:18.140)
you have to have your cross functional group meetups
John Carmack (3:40:21.020)
for different things.
Lex Fridman (3:40:22.260)
You do have more concerns about privacy
John Carmack (3:40:25.260)
or diversity and equity and safety of different things,
Lex Fridman (3:40:28.900)
parental issues and things that a small startup company
John Carmack (3:40:31.860)
can just kind of cowboy off and do something interesting.
Lex Fridman (3:40:36.540)
And there's a lot more that is a problem
John Carmack (3:40:39.380)
that you have to pay attention to in the big companies,
Lex Fridman (3:40:41.460)
but I'm not willing to believe that we are within
John Carmack (3:40:43.860)
even a factor of two or four
Lex Fridman (3:40:46.300)
of what the efficiency could be.
John Carmack (3:40:48.820)
I am constantly kind of crying out for it's like,
Lex Fridman (3:40:52.020)
we can do better than this.
Lex Fridman (3:40:53.460)
And you wonder what the mechanisms
Lex Fridman (3:40:55.100)
to unlock that efficiency are.
John Carmack (3:40:57.620)
I don't, there is some sense in a large company
Lex Fridman (3:41:02.500)
that like an individual engineer might not believe
John Carmack (3:41:05.700)
that they can change the world.
Lex Fridman (3:41:07.140)
Maybe you delegate a little bit of the responsibility
John Carmack (3:41:11.460)
to be the one who changes the world in a big company,
Lex Fridman (3:41:14.420)
I think, but the reality is like the world will get changed
John Carmack (3:41:19.460)
by a single engineer anyway.
Lex Fridman (3:41:21.380)
So if whether inside Google or inside a startup,
John Carmack (3:41:24.420)
it doesn't matter, it's just like Google
Lex Fridman (3:41:26.300)
and Meta needs to help those engineers believe
John Carmack (3:41:29.740)
they're the ones that are gonna decrease that latency.
Lex Fridman (3:41:32.860)
It'll take one John Carmack, the 20 year old Carmack
John Carmack (3:41:37.220)
that's inside Meta right now to change everything.
Lex Fridman (3:41:40.580)
And I try to point that out and push people.
John Carmack (3:41:43.060)
It's like, try to go ahead.
Lex Fridman (3:41:45.060)
And when you see some, because there is,
John Carmack (3:41:46.780)
you get the silo mentality where you're like,
Lex Fridman (3:41:48.860)
okay, I know something's not right over there,
Lex Fridman (3:41:50.940)
but I'm staying in my lane here.
Lex Fridman (3:41:53.780)
And there's a couple of people that I can think about
John Carmack (3:41:57.380)
that are willing to just like hop all over the place
Lex Fridman (3:41:59.580)
and man, I treasure them.
John Carmack (3:42:01.140)
The people that are just willing to, they're fearless.
Lex Fridman (3:42:03.980)
They will go over and they will go rebuild the kernel
Lex Fridman (3:42:06.380)
and change this distribution and go in
Lex Fridman (3:42:08.260)
and hack a firmware over here to get something done right.
Lex Fridman (3:42:11.860)
And that is relatively rare.
Lex Fridman (3:42:14.220)
There's thousands of developers
Lex Fridman (3:42:15.780)
and you've got a small handful that are willing
Lex Fridman (3:42:17.580)
to operate at that level.
Lex Fridman (3:42:19.540)
And it's potentially risky for them.
Lex Fridman (3:42:22.140)
The politics are real in a lot of that.
Lex Fridman (3:42:24.940)
And I'm in the very much the privileged position
Lex Fridman (3:42:27.820)
of I'm more or less untouchable there
John Carmack (3:42:31.340)
where I've been dinged like twice
Lex Fridman (3:42:33.340)
for it's like you said something insensitive in that post
Lex Fridman (3:42:35.740)
and you should probably not say that.
Lex Fridman (3:42:38.940)
But for the most part, yes, I get away with,
John Carmack (3:42:42.340)
every week I'm posting something pretty loud
Lex Fridman (3:42:45.060)
and opinionated internally.
Lex Fridman (3:42:47.500)
And I think that's useful for the company,
Lex Fridman (3:42:50.220)
but yeah, it's rare to have a position like that.
Lex Fridman (3:42:54.880)
And I can't necessarily offer advice
Lex Fridman (3:42:56.620)
for how someone can do that.
John Carmack (3:42:59.060)
Well, you could offer advice to a company in general
Lex Fridman (3:43:01.540)
to give a little bit of freedom for the young wild,
John Carmack (3:43:06.060)
like the wildest ideas come from the young minds.
Lex Fridman (3:43:10.740)
And so you need to give the young minds freedom
John Carmack (3:43:13.060)
to think big and wild and crazy.
Lex Fridman (3:43:16.420)
And for that, they have to be opinionated.
John Carmack (3:43:18.580)
They have to think crazy ideas and thoughts
Lex Fridman (3:43:24.380)
and pursue them with a full passion
John Carmack (3:43:26.300)
without being slowed down by bureaucracy or managers
Lex Fridman (3:43:29.220)
and all that kind of stuff.
John Carmack (3:43:31.100)
Obviously startups really empower that,
Lex Fridman (3:43:33.060)
but big companies could too.
Lex Fridman (3:43:34.260)
And that's a design challenge for big companies
Lex Fridman (3:43:37.960)
to see how can you enable that?
Lex Fridman (3:43:40.180)
How can you empower that?
Lex Fridman (3:43:41.020)
Yeah, because the big company,
John Carmack (3:43:41.840)
there are so many resources there.
Lex Fridman (3:43:43.600)
And they do, amazing things do get accomplished,
Lex Fridman (3:43:46.580)
but there's so much more that could come out of that.
Lex Fridman (3:43:49.780)
And I'm always hopeful.
John Carmack (3:43:51.540)
I'm an optimist in almost everything.
Lex Fridman (3:43:53.220)
I think things can get better.
John Carmack (3:43:54.980)
I think that they can improve things
Lex Fridman (3:43:56.780)
that you go through a path
Lex Fridman (3:43:58.340)
and you're learning kind of what does and doesn't work.
Lex Fridman (3:44:01.420)
And I'm not ready to be fatalistic
John Carmack (3:44:03.700)
about the kind of the outcome of any of that.
Lex Fridman (3:44:06.820)
Me neither, I know too many good people
John Carmack (3:44:09.040)
inside of those large companies that are incredible.
Lex Fridman (3:44:12.420)
You have a friendship with Elon Musk.
John Carmack (3:44:16.060)
Often when I talk to him,
Lex Fridman (3:44:17.380)
he'll bring up how incredible of an engineer
Lex Fridman (3:44:19.660)
and just a big picture thinker you are.
Lex Fridman (3:44:22.420)
His huge amount of respect for you.
John Carmack (3:44:26.300)
I just, I've never been a fly in the wall
Lex Fridman (3:44:28.900)
between a discussion between the two of you.
John Carmack (3:44:30.600)
I just wonder, is there something you guys debate,
Lex Fridman (3:44:34.940)
argue about, discuss?
John Carmack (3:44:36.800)
Is there some interesting problems
Lex Fridman (3:44:38.300)
that the two of you think about?
John Carmack (3:44:41.260)
You come from different worlds.
Lex Fridman (3:44:42.480)
Maybe there's some intersection in aerospace.
John Carmack (3:44:45.900)
Maybe there's some intersection
Lex Fridman (3:44:48.160)
in your new efforts in artificial intelligence
John Carmack (3:44:52.020)
in terms of thinking.
Lex Fridman (3:44:53.580)
Is there something interesting you could say
Lex Fridman (3:44:55.140)
about sort of the debates the two of you have?
Lex Fridman (3:44:57.340)
So I think in some ways,
John Carmack (3:44:58.860)
we do have a kind of similar background
Lex Fridman (3:45:01.300)
where we're almost exactly the same age.
Lex Fridman (3:45:03.540)
And we had kind of similar programming backgrounds
Lex Fridman (3:45:06.420)
on the personal computers
Lex Fridman (3:45:07.820)
and even some of the books that we would read
Lex Fridman (3:45:10.660)
and things that would kind of turn us into the people
John Carmack (3:45:13.100)
that we are today.
Lex Fridman (3:45:14.700)
And I think there is a degree of sensibility similarities
John Carmack (3:45:19.700)
where we kind of call bullshit on the same things
Lex Fridman (3:45:22.940)
and kind of see the same opportunities
John Carmack (3:45:25.820)
in different technology.
Lex Fridman (3:45:27.220)
And there's that sense of,
John Carmack (3:45:29.020)
I always talk about the speed of light solutions for things.
Lex Fridman (3:45:31.600)
And he's thinking about kind of minimum manufacturing
Lex Fridman (3:45:34.920)
and engineering and operational standpoints for things.
Lex Fridman (3:45:39.020)
And so, I mean, I first met Elon
John Carmack (3:45:42.260)
right at the start of the aerospace era
Lex Fridman (3:45:44.080)
where I wasn't familiar with,
John Carmack (3:45:46.220)
I was still in my game dev bubble.
Lex Fridman (3:45:47.780)
I really wasn't familiar with all the startups
John Carmack (3:45:49.860)
that were going and being successful
Lex Fridman (3:45:52.080)
and what went on with PayPal
Lex Fridman (3:45:53.700)
and all of his different companies.
Lex Fridman (3:45:54.980)
But I met him as I was starting to do armadillo aerospace.
Lex Fridman (3:45:58.900)
And he came down with kind of his right hand propulsion guy.
Lex Fridman (3:46:03.140)
And we talked about rockets.
Lex Fridman (3:46:05.460)
What can we do with this?
Lex Fridman (3:46:07.280)
And it was kind of specific things
Lex Fridman (3:46:09.100)
about like how are our flight computers set up?
Lex Fridman (3:46:12.140)
What are different propellant options?
John Carmack (3:46:14.740)
You know, what can happen with different ways
Lex Fridman (3:46:17.580)
of putting things together?
Lex Fridman (3:46:19.380)
And then in some ways,
Lex Fridman (3:46:21.220)
he was certainly the biggest player
John Carmack (3:46:22.900)
in the sort of alt space community
Lex Fridman (3:46:24.900)
that was going on in the early 2000s.
John Carmack (3:46:28.080)
He was the most well funded,
Lex Fridman (3:46:30.600)
although his funding in the larger scheme of things
John Carmack (3:46:32.860)
compared to like a NASA or something like that
Lex Fridman (3:46:36.780)
was really tiny.
John Carmack (3:46:38.260)
It was a lot more than I had at the time.
Lex Fridman (3:46:40.520)
But it was interesting.
John Carmack (3:46:42.640)
I had a point years later when I realized,
Lex Fridman (3:46:45.560)
okay, my financial resources at this point
John Carmack (3:46:48.880)
are basically what Elon's was
Lex Fridman (3:46:50.480)
when he went all in on SpaceX and Tesla.
Lex Fridman (3:46:54.360)
And there's, I think in many corners,
Lex Fridman (3:46:58.360)
he does not get the respect that he should
John Carmack (3:47:01.120)
about being a wealthy person that could just retire.
Lex Fridman (3:47:04.960)
And he went all in where he was really going to,
John Carmack (3:47:08.720)
he could have gone bust.
Lex Fridman (3:47:11.400)
And there's plenty of people,
John Carmack (3:47:12.560)
you'd look at the sad athletes or entertainers
Lex Fridman (3:47:16.780)
that had all the money in the world and blew it.
Lex Fridman (3:47:18.600)
And he could have been the business case example of that.
Lex Fridman (3:47:22.400)
But the things that he was doing,
John Carmack (3:47:25.440)
space exploration, electrification of transportation,
Lex Fridman (3:47:29.880)
solar city type things,
John Carmack (3:47:31.720)
these are big world level things.
Lex Fridman (3:47:34.560)
And I have a great deal of admiration
John Carmack (3:47:36.800)
that he was willing to throw himself so completely
Lex Fridman (3:47:40.120)
into that because in contrast with myself,
John Carmack (3:47:43.080)
I was doing armadillo aerospace with this tightly bounded,
Lex Fridman (3:47:47.000)
it was John's crazy money at the time
John Carmack (3:47:49.560)
that had a finite limit on it.
Lex Fridman (3:47:51.440)
It was never going to impact me or my family
John Carmack (3:47:54.840)
if it completely failed.
Lex Fridman (3:47:56.560)
And I was still hedging my bets,
John Carmack (3:47:58.680)
working at id Software at the time
Lex Fridman (3:48:01.060)
when he had been really all in there.
Lex Fridman (3:48:04.960)
And I have a huge amount of respect for that.
Lex Fridman (3:48:08.000)
And people do not,
John Carmack (3:48:09.360)
the other thing I get irritated with is people that say,
Lex Fridman (3:48:11.480)
it's like, oh, Elon's just a business guy.
John Carmack (3:48:13.880)
He just got like, he was gifted the money
Lex Fridman (3:48:16.500)
and he's just kind of investing in all of this
John Carmack (3:48:19.440)
when he was really deeply involved
Lex Fridman (3:48:22.240)
in a lot of the decisions.
John Carmack (3:48:24.520)
Not all of them were perfect,
Lex Fridman (3:48:25.800)
but he cared very much about engine material selection,
John Carmack (3:48:30.380)
propellant selection.
Lex Fridman (3:48:31.660)
And for years he'd be kind of telling me,
John Carmack (3:48:34.320)
it's like, get off that hydrogen peroxide stuff.
Lex Fridman (3:48:37.000)
It's like, liquid oxygen is the only proper oxidizer
John Carmack (3:48:40.860)
for this.
Lex Fridman (3:48:41.840)
And the times that I've gone through the factories
John Carmack (3:48:46.160)
with him, we're talking very detailed things
Lex Fridman (3:48:49.780)
about like how this weld is made,
Lex Fridman (3:48:51.840)
how this sub assembly goes together,
Lex Fridman (3:48:54.720)
what are like startup shut down behaviors
John Carmack (3:48:57.560)
of the different things.
Lex Fridman (3:48:58.520)
So he is really in there at a very detailed level.
Lex Fridman (3:49:03.440)
And I think that he is the best modern example now
Lex Fridman (3:49:06.960)
of someone that tries to,
John Carmack (3:49:08.520)
that can effectively micromanage some decisions on things
Lex Fridman (3:49:11.880)
on both Tesla and SpaceX to some degree
John Carmack (3:49:15.040)
where he cares enough about it.
Lex Fridman (3:49:16.920)
I worry a lot that he stretched too thin
John Carmack (3:49:19.280)
that you get Boring Company and Neuralink and Twitter
Lex Fridman (3:49:23.000)
and all the other possible things there
John Carmack (3:49:25.280)
where I know I've got limits on how much I can pay attention
Lex Fridman (3:49:30.000)
to that I have to kind of box off different amounts of time.
Lex Fridman (3:49:34.040)
And I look back at like at my aerospace side of things,
Lex Fridman (3:49:36.440)
it's like, I did not go all in on that.
John Carmack (3:49:38.400)
I did not commit myself at a level
Lex Fridman (3:49:40.640)
that it would have taken to be successful there.
Lex Fridman (3:49:43.500)
And I, yeah, and it's kind of a weird thing
Lex Fridman (3:49:46.440)
just like having a discussion with him.
John Carmack (3:49:49.000)
He's the richest man in the world right now,
Lex Fridman (3:49:50.840)
but he operates on a level that is still very much
John Carmack (3:49:55.840)
in my wheelhouse on a technical side of things.
Lex Fridman (3:50:00.160)
So.
John Carmack (3:50:01.000)
That doing that systems level type of thinking
Lex Fridman (3:50:02.440)
where you can go to the low level details
Lex Fridman (3:50:04.880)
and go up high to the big picture.
Lex Fridman (3:50:07.420)
Do you think in aerospace arena
John Carmack (3:50:12.320)
in the next five, 10 years,
Lex Fridman (3:50:14.480)
do you think we're gonna put a human on Mars?
Lex Fridman (3:50:16.360)
Like, what do you think is the interesting?
Lex Fridman (3:50:20.280)
No, I do, in fact, I made a bet with someone
John Carmack (3:50:23.040)
with a group of people kind of this
Lex Fridman (3:50:24.860)
about whether boots on Mars by 2030.
Lex Fridman (3:50:28.400)
And this was kind of a fun story
Lex Fridman (3:50:31.300)
because I was at an Intel sponsored event
Lex Fridman (3:50:34.120)
and we had a bunch of just world class, brilliant people.
Lex Fridman (3:50:37.380)
And we were talking about computing stuff,
Lex Fridman (3:50:39.120)
but the after dinner conversation was like,
Lex Fridman (3:50:41.520)
what are some other things?
Lex Fridman (3:50:42.340)
How are they gonna go in the future?
Lex Fridman (3:50:43.920)
And one of the ones tossed up on the whiteboard
John Carmack (3:50:46.140)
was like boots on Mars by 2030.
Lex Fridman (3:50:49.040)
And most of the people in the room thought, yes,
John Carmack (3:50:52.280)
I thought that like, SpaceX is kicking ass.
Lex Fridman (3:50:54.440)
We've got all this possible stuff.
John Carmack (3:50:57.000)
Seems likely that it's gonna go that way.
Lex Fridman (3:50:59.440)
And I said, no, I think less than 50% chance
John Carmack (3:51:03.280)
that it's going to make it there.
Lex Fridman (3:51:05.440)
And people were kind of like,
Lex Fridman (3:51:07.320)
oh, why the pessimism or whatever?
Lex Fridman (3:51:09.440)
And of course I'm an optimist at almost everything,
Lex Fridman (3:51:12.040)
but for me to be the one kind of outlier saying,
Lex Fridman (3:51:14.820)
no, I don't think so.
John Carmack (3:51:17.240)
Then I started saying some of the things I said,
Lex Fridman (3:51:19.400)
well, let's be concrete about it.
John Carmack (3:51:21.040)
Let's bet $10,000 that it's not gonna happen.
Lex Fridman (3:51:24.880)
And this was really a startling thing to see that I,
John Carmack (3:51:29.800)
again, room full of brilliant people,
Lex Fridman (3:51:31.640)
but as soon as like money came on the line
Lex Fridman (3:51:34.320)
and they were like, do I wanna put 10,000?
Lex Fridman (3:51:36.680)
I was not the richest person in the room.
John Carmack (3:51:38.800)
There were people much better off than I was.
Lex Fridman (3:51:41.280)
There's a spectrum, but as soon as they started thinking,
John Carmack (3:51:45.320)
it's like, oh, I could lose money
Lex Fridman (3:51:46.760)
by keeping my position right now.
Lex Fridman (3:51:50.760)
And all these engineers, they engaged their brain.
Lex Fridman (3:51:53.400)
They started thinking, it's like, okay,
John Carmack (3:51:55.120)
launch windows, launch delays,
Lex Fridman (3:51:57.840)
like how many times would it take to get this right?
Lex Fridman (3:52:00.340)
What historical precedents do we have?
Lex Fridman (3:52:02.680)
And then it mostly came down to, it's like,
Lex Fridman (3:52:05.800)
well, what about in transit by 2030?
Lex Fridman (3:52:08.200)
And then what about different things
Lex Fridman (3:52:11.440)
or would you go for 2032?
Lex Fridman (3:52:13.880)
But one of the people did go ahead
Lex Fridman (3:52:15.760)
and was optimistic enough to make a bet with me.
Lex Fridman (3:52:18.300)
So I have a $10,000 bet that by 2030,
John Carmack (3:52:21.960)
I think it's gonna happen shortly thereafter.
Lex Fridman (3:52:24.400)
I think there will probably be infrastructure on Mars
John Carmack (3:52:26.460)
by 2030, but I don't think that we'll have humans
Lex Fridman (3:52:29.960)
on Mars on 2030.
John Carmack (3:52:31.120)
I think it's possible, but I think it's less
Lex Fridman (3:52:33.540)
than a 50% chance, so I felt safe making that bet.
John Carmack (3:52:36.720)
Well, I think you had an interesting point.
Lex Fridman (3:52:39.960)
Correct me if I'm wrong.
John Carmack (3:52:41.200)
That's a dark one.
Lex Fridman (3:52:42.460)
That should perhaps help people appreciate Elon Musk,
John Carmack (3:52:48.800)
which is, in this particular effort,
Lex Fridman (3:52:53.400)
Elon is critical to the success.
John Carmack (3:52:56.840)
SpaceX seems to be critical to, you know,
Lex Fridman (3:53:03.640)
humans on Mars by 2030 or thereabouts.
Lex Fridman (3:53:07.040)
So if something happens to Elon,
Lex Fridman (3:53:09.160)
then all of this collapses.
Lex Fridman (3:53:12.160)
And this is in contrast to the other $10,000 bet
Lex Fridman (3:53:16.160)
I made kind of recently, and that was self driving cars
John Carmack (3:53:19.160)
at like a level five running around cities.
Lex Fridman (3:53:22.160)
And people have kind of nitpicked that
John Carmack (3:53:24.160)
that we probably don't mean exactly level five,
Lex Fridman (3:53:26.160)
but the guy I'm having the bet with is,
John Carmack (3:53:29.160)
we're gonna be, we know what we mean about this.
Lex Fridman (3:53:31.160)
Jeff Atwood.
John Carmack (3:53:32.160)
Yeah, coding horror and stack overflow and all.
Lex Fridman (3:53:36.160)
But yeah, I mean, he doesn't think that people
John Carmack (3:53:40.160)
are gonna be riding around in robo taxis in 2030
Lex Fridman (3:53:43.160)
in major cities, just like you take an Uber now.
Lex Fridman (3:53:47.160)
And I think it will.
Lex Fridman (3:53:48.160)
You think it will.
Lex Fridman (3:53:49.160)
And the difference is, everybody looks at this,
Lex Fridman (3:53:51.160)
it's like, oh, but Tesla's been wrong for years.
John Carmack (3:53:53.160)
They've been promising it for years and it's not here yet.
Lex Fridman (3:53:56.160)
And the reason this is different than the bet with Mars
John Carmack (3:54:00.160)
is Mars really is more than is comfortable
Lex Fridman (3:54:04.160)
a bet on Elon Musk.
John Carmack (3:54:06.160)
That is his thing and he is really going to move
Lex Fridman (3:54:11.160)
heaven and earth to try to make that happen.
Lex Fridman (3:54:13.160)
And perhaps not even SpaceX, perhaps just Elon Musk.
Lex Fridman (3:54:17.160)
Yeah, because if Elon went away and SpaceX went public
Lex Fridman (3:54:21.160)
and got a board of directors,
Lex Fridman (3:54:23.160)
there are more profitable things they could be doing
John Carmack (3:54:26.160)
than focusing on human presence on Mars.
Lex Fridman (3:54:29.160)
So this really is a sort of personal thing there.
Lex Fridman (3:54:32.160)
And in contrast with that, self driving cars
Lex Fridman (3:54:36.160)
have a dozen credible companies working really hard.
Lex Fridman (3:54:40.160)
And while, yes, it's going slower
Lex Fridman (3:54:43.160)
than most people thought it would,
John Carmack (3:54:45.160)
betting against that is a bet against almost the entire world
Lex Fridman (3:54:49.160)
in terms of all of these companies
John Carmack (3:54:51.160)
that have all of these incentives.
Lex Fridman (3:54:53.160)
It's not just one guy's passion project.
Lex Fridman (3:54:56.160)
And I do think that it is solvable.
Lex Fridman (3:54:59.160)
Although I recognize it's not 100% chance
John Carmack (3:55:02.160)
because it's possible the long tail of self driving problems
Lex Fridman (3:55:05.160)
winds up being an AGI complete problem.
John Carmack (3:55:08.160)
I think there's plenty of value to mine out of it with narrow AI.
Lex Fridman (3:55:11.160)
And I think that it's going to happen probably more so
John Carmack (3:55:15.160)
than people expect.
Lex Fridman (3:55:16.160)
But it's that whole sigmoid curve
John Carmack (3:55:18.160)
where you overestimate the near term progress
Lex Fridman (3:55:21.160)
and you underestimate the long term progress.
Lex Fridman (3:55:23.160)
And I think self driving is going to be like that.
Lex Fridman (3:55:26.160)
And I think 2030 is still a pretty good bet.
John Carmack (3:55:29.160)
Yeah, unfortunately, self driving is a problem
Lex Fridman (3:55:35.160)
that is safety critical, meaning that if you don't do it well,
John Carmack (3:55:41.160)
people get hurt.
Lex Fridman (3:55:43.160)
But the other side of that is people are terrible drivers.
Lex Fridman (3:55:46.160)
So it is not going to be,
Lex Fridman (3:55:48.160)
that's probably going to be the argument that gets it through
John Carmack (3:55:50.160)
is like we can save 10,000 lives a year
Lex Fridman (3:55:54.160)
by taking imperfect self driving cars
Lex Fridman (3:55:57.160)
and letting them take over a lot of driving responsibilities.
Lex Fridman (3:56:00.160)
It's like 30,000 people a year die in auto accidents right now in America.
Lex Fridman (3:56:05.160)
And a lot of those are preventable.
Lex Fridman (3:56:07.160)
And the problem is you'll have people that
John Carmack (3:56:09.160)
every time a Tesla crashes into something,
Lex Fridman (3:56:11.160)
you've got a bunch of people that literally have vested interests
John Carmack (3:56:14.160)
shorting Tesla to come out and make it the worst thing in the world.
Lex Fridman (3:56:17.160)
And people will be fighting against that.
Lex Fridman (3:56:19.160)
But optimist in me again,
John Carmack (3:56:21.160)
I think that we will have systems that are statistically safer than human drivers
Lex Fridman (3:56:26.160)
and we will be saving thousands and thousands of lives every year
Lex Fridman (3:56:30.160)
when we can hand over more of those responsibilities to it.
John Carmack (3:56:34.160)
I do still think as a person who studied this problem very deeply
Lex Fridman (3:56:38.160)
from a human side as well,
John Carmack (3:56:40.160)
it's still an open problem how good slash bad humans are driving.
Lex Fridman (3:56:46.160)
It's a kind of funny thing we say about each other.
John Carmack (3:56:49.160)
Oh, humans suck at driving.
Lex Fridman (3:56:51.160)
Everybody except you, of course.
John Carmack (3:56:54.160)
Like we think we're good at driving.
Lex Fridman (3:56:56.160)
But I, after really studying it,
John Carmack (3:56:59.160)
I think you start to notice, you know,
Lex Fridman (3:57:03.160)
because I watched hundreds of hours of humans driving
John Carmack (3:57:06.160)
with the projects of this kind of thing.
Lex Fridman (3:57:08.160)
You've noticed that even with the distraction,
John Carmack (3:57:11.160)
even with everything else,
Lex Fridman (3:57:13.160)
humans are able to do some incredible things
John Carmack (3:57:17.160)
with the attention,
Lex Fridman (3:57:19.160)
even when you're just looking at the smartphone,
John Carmack (3:57:21.160)
just to get cues from the environment
Lex Fridman (3:57:23.160)
to make last second decisions,
John Carmack (3:57:26.160)
to use instinctual type of decisions that actually save your ass
Lex Fridman (3:57:30.160)
time and time and time again.
Lex Fridman (3:57:32.160)
And are able to do that with so much uncertainty around you
Lex Fridman (3:57:37.160)
in such tricky dynamic environments.
John Carmack (3:57:40.160)
I don't know.
Lex Fridman (3:57:42.160)
I don't know exactly how hard is it to beat that kind of skill
John Carmack (3:57:49.160)
of common sense reasoning.
Lex Fridman (3:57:51.160)
This is one of those interesting things that there have been
John Carmack (3:57:53.160)
a lot of studies about how experts in their field
Lex Fridman (3:57:56.160)
usually underestimate the progress that's going to happen
John Carmack (3:57:59.160)
because an expert thinks about all the problems they deal with
Lex Fridman (3:58:02.160)
and they're like, damn, I'm going to have a hard time
John Carmack (3:58:05.160)
solving all of this.
Lex Fridman (3:58:06.160)
And they filter out the fact that they are one expert
John Carmack (3:58:08.160)
in a field of thousands.
Lex Fridman (3:58:10.160)
And you think about, yeah, I can't do all of that.
Lex Fridman (3:58:13.160)
And you sometimes forget about the scope of the ecosystem
Lex Fridman (3:58:16.160)
that you're embedded in.
Lex Fridman (3:58:18.160)
And if you think back eight years, very specifically,
Lex Fridman (3:58:20.160)
the state of AI and machine learning, where was that?
John Carmack (3:58:23.160)
We had just gotten Resnets probably at that point.
Lex Fridman (3:58:26.160)
And you look at all the amazing magical things
John Carmack (3:58:29.160)
that have happened in eight years,
Lex Fridman (3:58:31.160)
and they do kind of seem to be happening a little faster
John Carmack (3:58:34.160)
in recent years also.
Lex Fridman (3:58:36.160)
And you project that eight more years into the future,
John Carmack (3:58:39.160)
where, again, I think there's a 50% chance
Lex Fridman (3:58:41.160)
we're going to have signs of life of AGI,
John Carmack (3:58:43.160)
which we can put through driver's ed if we need to
Lex Fridman (3:58:46.160)
to actually build self driving cars.
Lex Fridman (3:58:48.160)
And I think that the narrow systems are going to have
Lex Fridman (3:58:51.160)
real value demonstrated well before then.
Lex Fridman (3:58:54.160)
So signs of life in AGI, you've mentioned that,
Lex Fridman (3:59:00.160)
okay, first of all, you're one of the most brilliant people
John Carmack (3:59:04.160)
on this earth.
Lex Fridman (3:59:05.160)
You could be solving a number of different problems,
John Carmack (3:59:08.160)
as you've mentioned.
Lex Fridman (3:59:09.160)
Your mind was attracted to nuclear energy.
John Carmack (3:59:12.160)
Obviously, virtual reality with the metaverse
Lex Fridman (3:59:14.160)
is something you could have a tremendous impact on.
Lex Fridman (3:59:16.160)
So I do want to say a quick thing about nuclear energy,
Lex Fridman (3:59:19.160)
where this is something that so precisely feels like
John Carmack (3:59:25.160)
aerospace before SpaceX, where from everything that I know
Lex Fridman (3:59:29.160)
about all of these, the physics of this stuff hasn't changed.
Lex Fridman (3:59:33.160)
And the reasons why things are expensive now
Lex Fridman (3:59:36.160)
are not fundamental.
John Carmack (3:59:38.160)
Somebody should be going into a really hard Elon Musk style
Lex Fridman (3:59:44.160)
at fission, economical fission, not fusion,
John Carmack (3:59:48.160)
where the fusion is the kind of the darling of people
Lex Fridman (3:59:52.160)
that want to go and do nuclear because it doesn't have
John Carmack (3:59:55.160)
the taint that fission has in a lot of people's minds.
Lex Fridman (3:59:58.160)
But it's an almost absurdly complex thing where nuclear fusion,
Lex Fridman (40:01.920)
But on the other hand,
Lex Fridman (40:03.080)
there is value to having a kind of wholeness
John Carmack (40:07.000)
of vision for a product.
Lex Fridman (40:09.520)
And companies like Meta have,
John Carmack (40:13.680)
they understand the trade offs where you can have a company
Lex Fridman (40:16.520)
like SpaceX or Apple in the Steve Jobs era,
John Carmack (40:20.240)
where you have a very powerful leading personality
Lex Fridman (40:23.360)
that can micromanage at a very low level
Lex Fridman (40:26.700)
and can say it's like, no, that handle needs to be different
Lex Fridman (40:29.360)
or that icon needs to change the tint there.
Lex Fridman (40:32.760)
And they clearly get a lot of value out of it.
Lex Fridman (40:34.960)
They also burn through a lot of employees
John Carmack (40:37.200)
that have horror stories to tell
Lex Fridman (40:39.000)
about working there afterwards.
John Carmack (40:41.680)
My position is that you're at your best
Lex Fridman (40:45.120)
when you've got a leader that is at their limit
John Carmack (40:48.120)
of what they can kind of comprehend
Lex Fridman (40:49.760)
of everything below them.
Lex Fridman (40:51.480)
And they can have an informed opinion
Lex Fridman (40:53.440)
about everything that's going on.
Lex Fridman (40:55.360)
And you take somebody, you've got to believe
Lex Fridman (40:57.480)
that somebody that has 30, 40 years of experience,
John Carmack (41:01.100)
you would hope that they've got wisdom
Lex Fridman (41:02.680)
that the just out of bootcamp person contributing
John Carmack (41:06.160)
doesn't have.
Lex Fridman (41:07.000)
And that if they're like, well, that's wrong there,
John Carmack (41:09.140)
you probably shouldn't do it that way
Lex Fridman (41:10.600)
or even just don't do it that way, do it another way.
Lex Fridman (41:14.120)
So there's value there,
Lex Fridman (41:15.500)
but it can't go beyond a certain level.
John Carmack (41:17.840)
I mean, I have Steve Jobs stories of him saying things
Lex Fridman (41:21.360)
that are just wrong right in front of me
John Carmack (41:23.060)
about technical things because he was not operating
Lex Fridman (41:25.840)
at that level.
Lex Fridman (41:28.460)
But when it does work and you do get
Lex Fridman (41:30.480)
that kind of passionate leader
John Carmack (41:32.020)
that's thinking about the entire product
Lex Fridman (41:34.120)
and just really deeply cares
John Carmack (41:35.840)
about not letting anything slip through the cracks,
Lex Fridman (41:39.060)
I think that's got a lot of value.
Lex Fridman (41:40.560)
But the other side of that is the people saying that,
Lex Fridman (41:42.520)
well, we wanna have these independent teams
John Carmack (41:44.520)
that are bubbling up the ideas
Lex Fridman (41:46.040)
because it's almost it's anti capitalist
John Carmack (41:49.480)
or anti free market to say,
Lex Fridman (41:50.940)
it's like I want my grand, my great leader
John Carmack (41:53.240)
to go ahead and dictate all these points there
Lex Fridman (41:55.240)
where clearly free markets bring up things
John Carmack (41:57.680)
that you don't expect.
Lex Fridman (41:59.360)
Like in VR, we saw a bunch of things
John Carmack (42:01.800)
like it didn't turn out at all
Lex Fridman (42:03.080)
the way the early people thought
John Carmack (42:04.320)
were gonna be the key applications
Lex Fridman (42:06.040)
and things that would not have been approved
John Carmack (42:08.800)
by the dark cabal making the decisions
Lex Fridman (42:12.260)
about what gets into the store turn out
John Carmack (42:14.680)
to in some cases be extremely successful.
Lex Fridman (42:17.640)
So yeah, I definitely kind of wanted to be,
John Carmack (42:20.460)
there was a point where I did make a pitch.
Lex Fridman (42:22.200)
It's like, hey, make me VR dictator
Lex Fridman (42:23.840)
and I'll go in and get shit done.
Lex Fridman (42:25.480)
I am, and that's just, it's not in the culture at Meta.
John Carmack (42:28.600)
You know, and they understand the trade offs they,
Lex Fridman (42:31.640)
and that's just not the way,
John Carmack (42:32.960)
that's not the company that they want,
Lex Fridman (42:34.500)
the team that they wanna do.
John Carmack (42:37.240)
It's fascinating because VR and we'll talk about it more.
Lex Fridman (42:40.120)
It's still unclear to me
John Carmack (42:44.260)
in what way VR will change the world
Lex Fridman (42:46.920)
because it does seem clear that VR
John Carmack (42:48.520)
will somehow fundamentally transform this world
Lex Fridman (42:51.720)
and it's unclear to me how yet.
John Carmack (42:54.840)
Let me know when you wanna get into that.
Lex Fridman (42:56.880)
Who will?
John Carmack (42:57.720)
Well, hold on a second.
Lex Fridman (42:58.540)
So in the stick to the you being the best programmer ever.
John Carmack (43:02.760)
Okay, in the early days when you didn't have,
Lex Fridman (43:05.200)
when you didn't have adult responsibilities
John Carmack (43:07.080)
of leading teams and all that kind of stuff
Lex Fridman (43:09.320)
and you can focus on just being a programmer,
Lex Fridman (43:13.200)
what did the productive day in the life
Lex Fridman (43:15.880)
of John Carmack look like?
Lex Fridman (43:17.760)
How many hours is the keyboard?
Lex Fridman (43:19.200)
How much sleep?
Lex Fridman (43:20.520)
What was the source of calories that fueled the brain?
Lex Fridman (43:24.280)
What was it like?
Lex Fridman (43:25.200)
What times did you wake up?
Lex Fridman (43:26.960)
So I was able to be remarkably consistent
John Carmack (43:29.500)
about what was good working conditions for me
Lex Fridman (43:32.100)
for a very long time.
John Carmack (43:34.800)
I was never one of the programmers
Lex Fridman (43:37.800)
that would do all nighters going through work
John Carmack (43:40.100)
for 20 hours straight.
Lex Fridman (43:41.220)
It's like my brain generally starts turning to mush
John Carmack (43:43.840)
after 12 hours or so.
Lex Fridman (43:45.860)
But the hard work is really important
Lex Fridman (43:48.940)
and I would work for decades.
Lex Fridman (43:51.180)
I would work 60 hours a week.
John Carmack (43:52.700)
I would work a 10 hour day, six days a week
Lex Fridman (43:55.260)
and try to be productive at that.
John Carmack (43:58.060)
Now my schedule shifted around a fair amount
Lex Fridman (44:00.100)
when I was young without any kids
Lex Fridman (44:02.260)
and any other responsibilities.
Lex Fridman (44:04.020)
I was on one of those cycling schedules
John Carmack (44:06.300)
where I'd kind of get in an hour later each day
Lex Fridman (44:08.620)
and roll around through the entire time
Lex Fridman (44:11.100)
and I'd wind up kind of pulling in at two or three
Lex Fridman (44:13.860)
in the afternoon sometimes and then working again
John Carmack (44:16.220)
past midnight or two in the morning.
Lex Fridman (44:19.100)
And that was, when it was just me trying
John Carmack (44:22.900)
to make things happen and I was usually isolated off
Lex Fridman (44:26.460)
in my office, people generally didn't bother me much at in
Lex Fridman (44:30.100)
and I could get a lot of programming work done that way.
Lex Fridman (44:34.100)
I did settle into a more normal schedule
John Carmack (44:36.380)
when I was taking kids to school and things like that.
Lex Fridman (44:39.500)
So kids were the forcing function that got you to wake up
John Carmack (44:42.020)
at the same time each day.
Lex Fridman (44:43.980)
It's not clear to me that there was much of a difference
John Carmack (44:46.740)
in the productivity with that where I kind of feel,
Lex Fridman (44:50.740)
if I just get up when I feel like it,
John Carmack (44:52.500)
it's usually a little later each day
Lex Fridman (44:54.420)
but I just recently made the focusing decision
John Carmack (44:57.620)
to try to push my schedule back a little bit earlier
Lex Fridman (44:59.980)
to getting up at eight in the morning
Lex Fridman (45:01.980)
and trying to shift things around.
Lex Fridman (45:04.220)
Like I'm often doing experiments with myself
John Carmack (45:07.340)
about what should I be doing to be more productive
Lex Fridman (45:10.260)
and one of the things that I did realize was happening
John Carmack (45:13.380)
in recent months where I would go for a walk or a run.
Lex Fridman (45:18.540)
I cover like four miles a day and I would usually do that
John Carmack (45:22.660)
just as the sun's going down here in Texas now
Lex Fridman (45:25.580)
and it's still really damn hot but I'd go out
John Carmack (45:27.820)
at 8.30 or something and cover the time there
Lex Fridman (45:31.300)
and then the showering and it was putting a hold in my day
John Carmack (45:34.100)
where I would have still a couple hours after that
Lex Fridman (45:36.980)
and sometimes my best hours were at night
John Carmack (45:38.860)
when nobody else is around, nobody's bothering me
Lex Fridman (45:41.300)
but that hole in the day was a problem
Lex Fridman (45:43.420)
so just a couple weeks ago, I made the change
Lex Fridman (45:46.780)
to go ahead and say, all right,
John Carmack (45:47.620)
I'm gonna get up a little earlier,
Lex Fridman (45:48.780)
I'm gonna do a walk or get out there first
Lex Fridman (45:51.180)
so I can have more uninterrupted time.
Lex Fridman (45:53.340)
So I'm still playing with factors like this
John Carmack (45:55.500)
as I kind of optimize my work efforts
Lex Fridman (45:59.340)
but it's always been, it was 60 hours a week
John Carmack (46:03.060)
for a very long time.
Lex Fridman (46:04.380)
To some degree, I had a little thing in the back of my head
John Carmack (46:06.660)
where I was almost jealous of some of the programmers
Lex Fridman (46:08.980)
that would do these marathon sessions
Lex Fridman (46:10.740)
and I had like Dave Taylor, one of the guys that he had,
Lex Fridman (46:13.420)
he would be one of those people
John Carmack (46:14.580)
that would fall asleep under his desk sometimes
Lex Fridman (46:16.580)
and all the kind of classic hacker tropes about things
Lex Fridman (46:19.500)
and a part of me was like always a little bothered
Lex Fridman (46:22.140)
that that wasn't me, that I wouldn't go program
John Carmack (46:25.460)
20 hours straight because I'm falling apart
Lex Fridman (46:28.300)
and not being very effective after 12 hours.
John Carmack (46:31.220)
I mean, yeah, 12 hour programming,
Lex Fridman (46:32.780)
that's fine when you're doing that
Lex Fridman (46:34.180)
but it never, you're not doing smart work much after,
Lex Fridman (46:38.060)
at least I'm not, but there's a range of people.
John Carmack (46:40.460)
I mean, that's something that a lot of people
Lex Fridman (46:41.980)
don't really get in their gut
John Carmack (46:43.860)
where there are people that work on four hours of sleep
Lex Fridman (46:46.740)
and are smart and can continue to do good work
Lex Fridman (46:48.980)
but then there's a lot of people that just fall apart.
Lex Fridman (46:51.580)
So I do tell people that I always try
John Carmack (46:54.620)
to get eight hours of sleep.
Lex Fridman (46:55.860)
It's not this, you know, push yourself harder,
John Carmack (46:58.380)
get up earlier, I just do worse work
Lex Fridman (47:00.980)
where, you know, you can work a hundred hours a week
Lex Fridman (47:04.140)
and still get eight hours of sleep
Lex Fridman (47:05.740)
if you just kind of prioritize things correctly
Lex Fridman (47:08.340)
but I do believe in working hard, working a lot.
Lex Fridman (47:12.380)
There was a comment that a game dev made
John Carmack (47:14.820)
that I know there's a backlash against really hard work
Lex Fridman (47:18.940)
in a lot of cases and I get into online arguments
John Carmack (47:21.620)
about this all the time but he was basically saying,
Lex Fridman (47:24.460)
yeah, 40 hours a week, that's kind of a part time job
Lex Fridman (47:27.340)
and if you were really in it,
Lex Fridman (47:29.340)
you're doing what you think is important,
Lex Fridman (47:31.300)
what you're passionate about, working more gets more done
Lex Fridman (47:34.940)
and it's just really not possible to argue with that
John Carmack (47:39.180)
if you've been around the people
Lex Fridman (47:40.500)
that work with that level of intensity
Lex Fridman (47:42.740)
and just say, it's like, no, they should just stop.
Lex Fridman (47:45.820)
And we had, I kind of came back around to that
John Carmack (47:49.060)
a couple of years ago where I was using
Lex Fridman (47:51.300)
the fictional example of, all right, some people say,
John Carmack (47:55.060)
they'll say with a straight face, they think, no,
Lex Fridman (47:57.340)
you are less productive if you work
John Carmack (47:59.300)
more than 40 hours a week.
Lex Fridman (48:01.140)
And they're generally misinterpreting things
John Carmack (48:03.060)
where your marginal productivity for an hour
Lex Fridman (48:05.860)
after eight hours is less than in one of your peak hours
Lex Fridman (48:08.940)
but you're not literally getting less done.
Lex Fridman (48:11.180)
There is a point where you start breaking things
Lex Fridman (48:13.260)
and getting worse behavior and everything out of it
Lex Fridman (48:16.580)
where you're literally going backwards
Lex Fridman (48:18.380)
but it's not at eight or 10 or 12 hours.
Lex Fridman (48:21.300)
And the fictional example I would use was,
John Carmack (48:23.660)
imagine there's an asteroid coming to impact,
Lex Fridman (48:27.140)
to crash into Earth, destroy all of human life.
Lex Fridman (48:30.420)
Do you want Elon Musk or the people working at SpaceX
Lex Fridman (48:34.180)
that are building the interceptor
John Carmack (48:35.620)
that's going to deflect the asteroid,
Lex Fridman (48:38.460)
do you want them to clock out at five
John Carmack (48:40.180)
because damn it, they're just gonna go do worse work
Lex Fridman (48:42.700)
if they work another couple hours.
Lex Fridman (48:44.780)
And it seems absurd.
Lex Fridman (48:47.100)
And that's a hypothetical though
Lex Fridman (48:48.580)
and everyone can dismiss that.
Lex Fridman (48:49.940)
But then when coronavirus was hitting
Lex Fridman (48:52.020)
and you have all of these medical personnel
Lex Fridman (48:54.580)
that are clearly pushing themselves really, really hard
Lex Fridman (48:58.060)
and I'd say, it's like, okay,
Lex Fridman (48:59.820)
do you want all of these scientists working on treatments
Lex Fridman (49:03.140)
and vaccines and caring for all of these people?
Lex Fridman (49:05.660)
Are they really screwing everything up
Lex Fridman (49:07.700)
by working more than eight hours a day?
Lex Fridman (49:09.780)
And of course people say, I'm just an asshole
John Carmack (49:11.420)
to say something like that, but it's the truth.
Lex Fridman (49:15.220)
Working longer gets more done.
John Carmack (49:17.540)
Well, so that's kind of the layer one.
Lex Fridman (49:20.540)
But I'd like to also say that,
John Carmack (49:22.540)
at least I believe, depending on the person,
Lex Fridman (49:25.940)
depending on the task, working more and harder
John Carmack (49:30.700)
will make you better for the next week
Lex Fridman (49:35.980)
in those peak hours.
Lex Fridman (49:37.660)
So there's something about a deep dedication to a thing
Lex Fridman (49:42.540)
that kind of gets deep in you.
Lex Fridman (49:44.820)
So the hard work isn't just about the raw hours
Lex Fridman (49:48.220)
of productivity, it's the thing it does to you
John Carmack (49:54.220)
in the weeks and months after too.
Lex Fridman (49:56.780)
You're tempering yourself in some ways.
Lex Fridman (49:59.100)
And I think, it's like Jiro dreams of sushi.
Lex Fridman (4:00:03.160)
as you look at the tokamaks or any of the things that people
John Carmack (4:00:06.160)
are building, and it's doing all of this infrastructure
Lex Fridman (4:00:09.160)
just at the end of the day to make something hot
John Carmack (4:00:12.160)
that you can then turn into energy
Lex Fridman (4:00:14.160)
through a conventional power plant.
Lex Fridman (4:00:16.160)
And all of that work, which we think
Lex Fridman (4:00:18.160)
we've got line of sight on, but even if it comes out,
John Carmack (4:00:21.160)
then you have to do all of that immensely complex expensive
Lex Fridman (4:00:25.160)
stuff just to make something hot, where nuclear fission
John Carmack (4:00:28.160)
is basically you put these two rocks together
Lex Fridman (4:00:30.160)
and they get hot all by themselves.
John Carmack (4:00:32.160)
That is just that much simpler.
Lex Fridman (4:00:35.160)
It's just orders of magnitude simpler.
Lex Fridman (4:00:37.160)
And the actual rocks, the refined uranium,
Lex Fridman (4:00:40.160)
is not very expensive.
John Carmack (4:00:41.160)
It's a couple percent of the cost of electricity.
Lex Fridman (4:00:44.160)
That's why I made that point where you could have something
John Carmack (4:00:47.160)
which was five times less efficient than current systems.
Lex Fridman (4:00:51.160)
And if the rest of the plant was a whole bunch cheaper,
John Carmack (4:00:54.160)
you could still be super, super valuable.
Lex Fridman (4:00:56.160)
So how much of the pie do you think could be solved
Lex Fridman (4:01:02.160)
by nuclear energy by fission?
Lex Fridman (4:01:04.160)
So how much could it become the primary source
Lex Fridman (4:01:07.160)
of energy on Earth?
Lex Fridman (4:01:08.160)
It could be most of it.
John Carmack (4:01:10.160)
Like the reserves of uranium, as it stands now,
Lex Fridman (4:01:12.160)
could not power the whole Earth.
Lex Fridman (4:01:13.160)
But you get into breeder reactors and thorium
Lex Fridman (4:01:16.160)
and things like that that you do for conventional fission.
John Carmack (4:01:19.160)
There is enough for everything.
Lex Fridman (4:01:22.160)
Now, I mean, solar, photovoltaic has been amazing.
John Carmack (4:01:25.160)
One of my current projects is working on an off grid system.
Lex Fridman (4:01:29.160)
And it's been fun just kind of, again, putting my hands
John Carmack (4:01:31.160)
on all this, stripping the wires and wiring things together
Lex Fridman (4:01:34.160)
and doing all of that.
Lex Fridman (4:01:35.160)
And just having followed that a little bit
Lex Fridman (4:01:37.160)
from the outside over the last couple decades,
John Carmack (4:01:40.160)
there's been semiconductor like magical progress
Lex Fridman (4:01:43.160)
in what's going on there.
Lex Fridman (4:01:45.160)
So I'm all for all of that.
Lex Fridman (4:01:47.160)
But it doesn't solve everything.
Lex Fridman (4:01:49.160)
And nuclear really still does seem like the smart money
Lex Fridman (4:01:52.160)
bet for what you should be getting for baseband
John Carmack (4:01:55.160)
on a lot of things.
Lex Fridman (4:01:56.160)
And solar may be cheaper for peaking over air conditioning
John Carmack (4:02:00.160)
loads during the summer and things
Lex Fridman (4:02:02.160)
that you can push around in different ways.
Lex Fridman (4:02:05.160)
But it's one of those things that's
Lex Fridman (4:02:07.160)
it's just strange how we've had the technology sitting there.
Lex Fridman (4:02:10.160)
But these non technical reasons on the social optics of it
Lex Fridman (4:02:14.160)
has been this major forcing function for something
John Carmack (4:02:18.160)
that really should be at the cornerstone of all
Lex Fridman (4:02:21.160)
of the world's concerns with energy.
John Carmack (4:02:23.160)
It's interesting how the non technical factors have really
Lex Fridman (4:02:27.160)
dominated something that is so fundamental to the existence
John Carmack (4:02:31.160)
of the human race as we know it today.
Lex Fridman (4:02:34.160)
And much of the troubles of the world,
John Carmack (4:02:36.160)
including wars in different parts of the world like Ukraine
Lex Fridman (4:02:40.160)
is energy based.
Lex Fridman (4:02:41.160)
And yeah, it's just sitting right there to be solved.
Lex Fridman (4:02:47.160)
That said, I mean, to me personally,
John Carmack (4:02:50.160)
I think it's clear that if AGI were to be achieved,
Lex Fridman (4:02:53.160)
that would change the course of human history.
Lex Fridman (4:02:55.160)
So AGI wise, I was making this decision about what
Lex Fridman (4:03:00.160)
do I want to focus on after VR.
Lex Fridman (4:03:03.160)
And I'm still working on VR regularly.
Lex Fridman (4:03:06.160)
I spend a day a week kind of consulting with Meta.
Lex Fridman (4:03:09.160)
And Boz styles me the consulting CTO.
Lex Fridman (4:03:13.160)
It's kind of like the Sherlock Holmes that
John Carmack (4:03:15.160)
comes in and consults on some of the specific tough issues.
Lex Fridman (4:03:18.160)
And I'm still pretty passionate about all of that.
Lex Fridman (4:03:21.160)
But I have been figuring out how to compartmentalize and force
Lex Fridman (4:03:25.160)
that into a smaller box to work on some other things.
Lex Fridman (4:03:29.160)
And I did come down to this decision
Lex Fridman (4:03:30.160)
between working on economical nuclear fission
John Carmack (4:03:34.160)
or artificial general intelligence.
Lex Fridman (4:03:36.160)
And the fission side of things, I've
John Carmack (4:03:39.160)
got a bunch of interesting things going that way.
Lex Fridman (4:03:42.160)
But that would be a fairly big project thing to do.
John Carmack (4:03:46.160)
I don't think it needs to be as big as people expect.
Lex Fridman (4:03:49.160)
I do think something original SpaceX sized, you build it,
John Carmack (4:03:53.160)
power your building off of it, and then the government,
Lex Fridman (4:03:56.160)
I think, will come around to what you need to.
John Carmack (4:03:59.160)
Everybody loves an existence proof.
Lex Fridman (4:04:01.160)
I think it's possible somebody should be doing this.
Lex Fridman (4:04:03.160)
But it's going to involve some politics.
Lex Fridman (4:04:05.160)
It's going to involve decent sized teams
Lex Fridman (4:04:07.160)
and a bunch of this cross functional stuff
Lex Fridman (4:04:09.160)
that I don't love.
John Carmack (4:04:11.160)
While the artificial general intelligence side of things,
Lex Fridman (4:04:15.160)
it seems to me like this is the highest leverage
John Carmack (4:04:21.160)
moment for potentially a single individual,
Lex Fridman (4:04:24.160)
potentially in the history of the world,
John Carmack (4:04:26.160)
where the things that we know about the brain, about what we
Lex Fridman (4:04:30.160)
can do with artificial intelligence,
John Carmack (4:04:33.160)
nobody can say absolutely on any of these things.
Lex Fridman (4:04:36.160)
But I am not a madman for saying that it is likely
John Carmack (4:04:40.160)
that the code for artificial general intelligence
Lex Fridman (4:04:44.160)
is going to be tens of thousands of lines of code,
John Carmack (4:04:48.160)
not millions of lines of code.
Lex Fridman (4:04:50.160)
This is code that conceivably one individual could write,
John Carmack (4:04:53.160)
unlike writing a new web browser or operating system.
Lex Fridman (4:04:57.160)
And based on the progress that AI, machine learning,
John Carmack (4:05:01.160)
has made in the recent decade, it's
Lex Fridman (4:05:04.160)
likely that the important things that we don't know
John Carmack (4:05:07.160)
are relatively simple.
Lex Fridman (4:05:09.160)
There's probably a handful of things.
John Carmack (4:05:11.160)
My bet is that I think there's less than six key insights that
Lex Fridman (4:05:16.160)
need to be made.
John Carmack (4:05:17.160)
Each one of them can probably be written
Lex Fridman (4:05:19.160)
on the back of an envelope.
John Carmack (4:05:20.160)
We don't know what they are.
Lex Fridman (4:05:22.160)
But when they're put together in concert with GPUs at scale
Lex Fridman (4:05:26.160)
and the data that we all have access to,
Lex Fridman (4:05:28.160)
that we can make something that behaves like a human being
John Carmack (4:05:32.160)
or like a living creature and that can then
Lex Fridman (4:05:35.160)
be educated in whatever ways that we need to get to the point
John Carmack (4:05:39.160)
where we can have universal remote workers where anything
Lex Fridman (4:05:43.160)
that somebody does mediated by a computer
Lex Fridman (4:05:45.160)
and doesn't require physical interaction that an AGI will
Lex Fridman (4:05:49.160)
be able to do.
John Carmack (4:05:50.160)
We can already simulate the equivalent of the Zoom meetings
Lex Fridman (4:05:54.160)
with avatars and synthetic deep fakes and whatnot.
John Carmack (4:05:58.160)
We can definitely do that.
Lex Fridman (4:06:00.160)
We have superhuman capabilities on any narrow thing
John Carmack (4:06:03.160)
that we can formalize and make a loss function for.
Lex Fridman (4:06:07.160)
But there's things we don't know how to do now.
Lex Fridman (4:06:10.160)
But I don't think they are unapproachably hard.
Lex Fridman (4:06:13.160)
Now, that's incredibly hubristic to say that it's like,
Lex Fridman (4:06:16.160)
but I think that what I said a couple years ago
Lex Fridman (4:06:19.160)
is a 50% chance that somewhere there will be signs of life
John Carmack (4:06:23.160)
of AGI in 2030.
Lex Fridman (4:06:25.160)
And I've probably increased that slightly.
John Carmack (4:06:27.160)
I may be at 55%, 60% now because I
Lex Fridman (4:06:30.160)
do think there's a little sense of acceleration there.
Lex Fridman (4:06:34.160)
So I wonder what the, and by the way,
Lex Fridman (4:06:36.160)
you also written that I bet with hindsight
John Carmack (4:06:39.160)
we will find that clear antecedents of all
Lex Fridman (4:06:42.160)
the critical remaining steps for AGI
John Carmack (4:06:44.160)
are already buried somewhere in the vast literature of today.
Lex Fridman (4:06:48.160)
So the ideas are already there.
John Carmack (4:06:50.160)
I think that's likely the case.
Lex Fridman (4:06:52.160)
One of the things that appeals to so many people,
John Carmack (4:06:54.160)
including me, about the promise of AGI
Lex Fridman (4:06:56.160)
is we know that we're only drinking
John Carmack (4:06:59.160)
from a straw from the fire hose of all the information out there.
Lex Fridman (4:07:03.160)
I mean, you look at just in a very narrowly bounded field
John Carmack (4:07:07.160)
like machine learning, like you can't read all the papers that
Lex Fridman (4:07:10.160)
come out all the time.
John Carmack (4:07:11.160)
You can't go back and read all the clever things
Lex Fridman (4:07:14.160)
that people did in the 90s or earlier
John Carmack (4:07:16.160)
that people have forgotten about because they didn't pan out
Lex Fridman (4:07:18.160)
at the time when they were trying to do them with 12 neurons.
Lex Fridman (4:07:22.160)
So this idea that, yeah, I think there
Lex Fridman (4:07:25.160)
are gems buried in some of the older literature that was not
John Carmack (4:07:29.160)
the path taken by everything.
Lex Fridman (4:07:31.160)
And you can see a herd mentality on the things that
John Carmack (4:07:34.160)
happen right now.
Lex Fridman (4:07:35.160)
It's almost funny to see.
John Carmack (4:07:36.160)
It's like, oh, Google does something,
Lex Fridman (4:07:38.160)
and OpenAI does something, Meta does something.
John Carmack (4:07:41.160)
They're the same people that all talk to each other,
Lex Fridman (4:07:43.160)
and they're all one upping each other,
Lex Fridman (4:07:45.160)
and they're all capable of implementing
Lex Fridman (4:07:47.160)
each other's work given a month or two
John Carmack (4:07:49.160)
after somebody has an announcement of that.
Lex Fridman (4:07:52.160)
But there's a whole world of possible approaches
John Carmack (4:07:55.160)
to machine learning.
Lex Fridman (4:07:57.160)
And I think that we probably will, in hindsight,
John Carmack (4:08:00.160)
go back and see it's like, yeah, that was kind of clearly
Lex Fridman (4:08:03.160)
predicted by this early paper here.
Lex Fridman (4:08:06.160)
And this turns out that if you do this and this
Lex Fridman (4:08:08.160)
and take this result from animal training
Lex Fridman (4:08:11.160)
and this thing from neuroscience over here
Lex Fridman (4:08:13.160)
and put it together and set up this curriculum for them
John Carmack (4:08:16.160)
to learn in, that that's kind of what it took.
Lex Fridman (4:08:19.160)
You don't have too many people now
John Carmack (4:08:21.160)
that are still saying it's not possible
Lex Fridman (4:08:23.160)
or it's going to take hundreds of years.
Lex Fridman (4:08:25.160)
And 10 years ago, you would get a collection of experts,
Lex Fridman (4:08:29.160)
and you would have a decent chunk on the margin that either
John Carmack (4:08:32.160)
say not possible or a couple hundred years,
Lex Fridman (4:08:35.160)
might be centuries.
Lex Fridman (4:08:36.160)
And the median estimate would be like 50, 70 years.
Lex Fridman (4:08:40.160)
And it's been coming down.
Lex Fridman (4:08:41.160)
And I know with me saying eight years for something,
Lex Fridman (4:08:44.160)
that still puts me on the optimistic side,
Lex Fridman (4:08:46.160)
but it's not crazy out in the fringes.
Lex Fridman (4:08:49.160)
And just being able to look at that at a meta level
John Carmack (4:08:52.160)
about the trend of the predictions going down there,
Lex Fridman (4:08:57.160)
the idea that something could be happening relatively soon.
John Carmack (4:09:01.160)
Now, I do not believe in fast takeoffs.
Lex Fridman (4:09:04.160)
That's one of the safety issues that people say,
John Carmack (4:09:06.160)
it's like, oh, it's going to go, boom,
Lex Fridman (4:09:08.160)
and the AI is going to take over the world.
John Carmack (4:09:10.160)
There's a lot of reasons I don't think
Lex Fridman (4:09:12.160)
that's a credible position.
Lex Fridman (4:09:14.160)
And I think that we will go from a point
Lex Fridman (4:09:16.160)
where we start seeing things that credibly look
John Carmack (4:09:20.160)
like animals behaviors.
Lex Fridman (4:09:22.160)
And I have a human voice box wired into them.
John Carmack (4:09:25.160)
It's like I tried to get Elon to say,
Lex Fridman (4:09:27.160)
it's like your pig in Neuralink, give it a human voice box
Lex Fridman (4:09:30.160)
and let it start learning human words.
Lex Fridman (4:09:33.160)
I think animal intelligence is closer to human intelligence
John Carmack (4:09:36.160)
than a lot of people like to think.
Lex Fridman (4:09:38.160)
And I think that culture and modalities of IO
John Carmack (4:09:42.160)
make the Gulf seem a lot bigger than it actually is.
Lex Fridman (4:09:45.160)
There's just that smooth spectrum
John Carmack (4:09:47.160)
of how the brain developed and cortexes and scaling
Lex Fridman (4:09:51.160)
of different things going on there.
John Carmack (4:09:53.160)
Culture modalities of IO, yes.
Lex Fridman (4:09:55.160)
Language is sort of lost in translation,
John Carmack (4:10:00.160)
conceals a lot of intelligence.
Lex Fridman (4:10:03.160)
So when you think about signs of life for AGI,
John Carmack (4:10:06.160)
you're thinking about human interpretable signs.
Lex Fridman (4:10:10.160)
So the example I give, if we get to the point
John Carmack (4:10:12.160)
where you've got a learning disabled toddler,
Lex Fridman (4:10:15.160)
some kind of real special needs child
John Carmack (4:10:18.160)
that can still interact with their favorite TV show
Lex Fridman (4:10:20.160)
and video game and can be trained and learn
John Carmack (4:10:24.160)
in some appreciably human like way.
Lex Fridman (4:10:26.160)
At that point, you can deploy an army of engineers,
John Carmack (4:10:30.160)
cognitive scientists, developmental education people.
Lex Fridman (4:10:35.160)
And you've got so many advantages there
John Carmack (4:10:37.160)
unlike real education where you can do rollbacks
Lex Fridman (4:10:39.160)
and AB testing and you can find a golden path
John Carmack (4:10:42.160)
through a curriculum of different things.
Lex Fridman (4:10:44.160)
If you get to that point, learning disabled toddler,
John Carmack (4:10:47.160)
I think that it's gonna be a done deal.
Lex Fridman (4:10:50.160)
But do you think we'll know when we see it?
Lex Fridman (4:10:53.160)
So there's been a lot of really interesting
Lex Fridman (4:10:56.160)
general learning progress from DeepMind,
John Carmack (4:11:00.160)
OpenAI a little bit too.
Lex Fridman (4:11:02.160)
I tend to believe that Tesla Autopilot
John Carmack (4:11:06.160)
deserves a lot more credit than it's getting
Lex Fridman (4:11:08.160)
for making progress on the general,
John Carmack (4:11:12.160)
on doing the multitask learning thing
Lex Fridman (4:11:15.160)
and increasing the number of tasks
Lex Fridman (4:11:17.160)
and automating that process of sort of learning
Lex Fridman (4:11:23.160)
from the edge, discovering the edge cases
Lex Fridman (4:11:25.160)
and learning from the edge cases.
Lex Fridman (4:11:26.160)
That is, it's really approaching from a different angle,
John Carmack (4:11:30.160)
the general learning problem of AGI.
Lex Fridman (4:11:33.160)
But the more clear approach comes from DeepMind
John Carmack (4:11:36.160)
where you have these kind of game situations
Lex Fridman (4:11:38.160)
and you build systems there.
Lex Fridman (4:11:41.160)
But I don't know, people seem to be quite...
Lex Fridman (4:11:47.160)
Yeah, there will always be people that just won't believe it
Lex Fridman (4:11:50.160)
and I fundamentally don't care.
Lex Fridman (4:11:52.160)
I mean, I don't care if they don't believe it.
John Carmack (4:11:54.160)
You know, when it starts doing people's jobs
Lex Fridman (4:11:57.160)
and I don't care about the philosophical zombie argument at all.
John Carmack (4:12:01.160)
Absolutely.
Lex Fridman (4:12:02.160)
But will you, do you think you will notice
Lex Fridman (4:12:04.160)
that something special has happened here?
Lex Fridman (4:12:06.160)
Because to me, I've been noticing a lot of special things.
John Carmack (4:12:12.160)
I think a lot of credit should go to DeepMind for AlphaZero.
Lex Fridman (4:12:18.160)
That was truly special.
John Carmack (4:12:20.160)
The self play mechanisms achieve sort of solve problems
Lex Fridman (4:12:24.160)
that used to be thought unsolvable like the game of Go.
John Carmack (4:12:28.160)
Also, I mean, protein folding, starting to get into that space
Lex Fridman (4:12:32.160)
where learning is doing...
John Carmack (4:12:34.160)
At first there's not, it wasn't end to end learning
Lex Fridman (4:12:37.160)
and now it's end to end learning of a very difficult
John Carmack (4:12:41.160)
previously thought unsolvable problem of protein folding.
Lex Fridman (4:12:45.160)
And so, yeah, where do you think
Lex Fridman (4:12:50.160)
would be a really magical moment for you?
Lex Fridman (4:12:54.160)
There have been incredible things happening in recent years.
John Carmack (4:12:57.160)
Like you say, all of the things from DeepMind and OpenAI
Lex Fridman (4:13:00.160)
that have been huge showpiece things.
Lex Fridman (4:13:03.160)
But when you really get down to it and you read the papers
Lex Fridman (4:13:05.160)
and you look at the way the models are going,
John Carmack (4:13:08.160)
it's still like a feed forward.
Lex Fridman (4:13:10.160)
You push something in, something comes out on the end.
John Carmack (4:13:13.160)
I mean, maybe there's diffusion models
Lex Fridman (4:13:15.160)
or Monte Carlo tree rollouts and different things going on,
Lex Fridman (4:13:18.160)
but it's not a being.
Lex Fridman (4:13:20.160)
It's not close to a being.
John Carmack (4:13:22.160)
That's going through a lifelong learning process.
Lex Fridman (4:13:27.160)
Do you want something that kind of gives signs of a being?
John Carmack (4:13:31.160)
What's the difference between a neural network,
Lex Fridman (4:13:36.160)
a feed forward neural network and a being?
Lex Fridman (4:13:39.160)
Where's the loop?
Lex Fridman (4:13:40.160)
Fundamentally, the brain is a recurrent neural network
John Carmack (4:13:43.160)
generating an action policy.
Lex Fridman (4:13:45.160)
I mean, it's implemented on a biological substrate.
Lex Fridman (4:13:47.160)
And it's interesting thinking about things like that
Lex Fridman (4:13:49.160)
where we know fundamentally the brain is not
John Carmack (4:13:52.160)
a convolutional neural network or a transformer.
Lex Fridman (4:13:55.160)
Those are specialized things that are very valuable
John Carmack (4:13:58.160)
for what we're doing, but it's not the way the brain's doing.
Lex Fridman (4:14:00.160)
Now, I do think consciousness and AI in general
John Carmack (4:14:03.160)
is a substrate independent mechanism
Lex Fridman (4:14:06.160)
where it doesn't have to be implemented the way the brain is,
Lex Fridman (4:14:09.160)
but if you've only got one existence proof,
Lex Fridman (4:14:11.160)
there's certainly some value in caring about what it says and does.
Lex Fridman (4:14:17.160)
And so the idea that anything that can be done with a narrow AI
Lex Fridman (4:14:21.160)
that you can quantify up a loss function for or reward mechanism,
John Carmack (4:14:25.160)
you're almost certainly going to be able to produce something
Lex Fridman (4:14:28.160)
that's more resource effective to train and deploy
Lex Fridman (4:14:31.160)
and use in an inference mode.
Lex Fridman (4:14:33.160)
You know, train a whole lot using an inference.
Lex Fridman (4:14:35.160)
But a living being is going to be something that's a continuous,
Lex Fridman (4:14:39.160)
lifelong learned task agnostic thing.
Lex Fridman (4:14:42.160)
So the lifelong learning is really important too.
Lex Fridman (4:14:46.160)
And the long term memory.
Lex Fridman (4:14:48.160)
So memory is a big weird part of that puzzle.
Lex Fridman (4:14:51.160)
And we've got, you know, again, I have all the respect in the world
John Carmack (4:14:55.160)
for the amazing things that are being done now,
Lex Fridman (4:14:57.160)
but sometimes they can be taken a little bit out of context
John Carmack (4:15:00.160)
with things like there's some smoke and mirrors going on,
Lex Fridman (4:15:04.160)
like the Gato, the recent work, the multitask learning stuff.
John Carmack (4:15:07.160)
You know, it's amazing that it's one model that plays all the Atari games
Lex Fridman (4:15:12.160)
as well as doing all of these other things.
Lex Fridman (4:15:14.160)
But of course, it didn't learn to do all of those.
Lex Fridman (4:15:17.160)
It was instructed in doing that by other reinforcement learners
John Carmack (4:15:21.160)
going through and doing that.
Lex Fridman (4:15:23.160)
And even in the case of all the games,
John Carmack (4:15:25.160)
it's still going with a specific hand coded reward function
Lex Fridman (4:15:29.160)
in each of those Atari games where it's not that, you know,
John Carmack (4:15:33.160)
it just wants to spend its summer afternoon playing Atari
Lex Fridman (4:15:35.160)
because that's the most interesting thing for it.
Lex Fridman (4:15:38.160)
So it's, again, not a general, it's not learning the way humans learn.
Lex Fridman (4:15:42.160)
And there's, I believe, a lot of things that are challenging
John Carmack (4:15:45.160)
to make a loss function for that you can train
Lex Fridman (4:15:48.160)
through these existing conventional things.
John Carmack (4:15:51.160)
We're going to chip away at all the things that people do
Lex Fridman (4:15:54.160)
that we can turn into narrow AI problems
Lex Fridman (4:15:59.160)
and billions of, like trillions of dollars of value
Lex Fridman (4:16:02.160)
are going to be created by that.
Lex Fridman (4:16:04.160)
But there's still going to be a set of things
Lex Fridman (4:16:06.160)
and we've got questionable cases like the self driving car
John Carmack (4:16:09.160)
where it's possible, it's not my bet, but it's plausible
Lex Fridman (4:16:13.160)
that the long tail could be problematic enough
John Carmack (4:16:15.160)
that that really does require a full on artificial general intelligence.
Lex Fridman (4:16:20.160)
The counter argument is that data solves almost everything.
John Carmack (4:16:23.160)
There's an interpolation problem if you have enough data
Lex Fridman (4:16:26.160)
and Tesla may be able to get enough data
John Carmack (4:16:29.160)
from all of their deployed stuff to be able to work like that,
Lex Fridman (4:16:31.160)
but maybe not.
Lex Fridman (4:16:33.160)
And there are all the other problems about, like,
Lex Fridman (4:16:35.160)
say you want to have a strategy meeting
Lex Fridman (4:16:37.160)
and you want to go ahead and bring in all of your remote workers
Lex Fridman (4:16:40.160)
and your consultants, and you want a world where
John Carmack (4:16:43.160)
some of those could be AIs that are talking and interacting with you
Lex Fridman (4:16:48.160)
in an area that is too murky to have a crisp loss function,
Lex Fridman (4:16:52.160)
but they still have things that on some level,
Lex Fridman (4:16:54.160)
they're rewarded on some internal level
John Carmack (4:16:57.160)
for building a valuable to humans kind of life
Lex Fridman (4:17:01.160)
and ability to interact with things.
John Carmack (4:17:03.160)
See, I still think that self driving cars,
Lex Fridman (4:17:07.160)
solving that problem will take us very far towards AGI.
John Carmack (4:17:10.160)
You might not need AGI, but I am really inspired
Lex Fridman (4:17:13.160)
by what Autopilot is doing.
John Carmack (4:17:16.160)
Waymo, so some of the other companies,
Lex Fridman (4:17:19.160)
I think Waymo leads the way there is also really interesting,
Lex Fridman (4:17:23.160)
but they don't have quite as ambitious of an effort
Lex Fridman (4:17:26.160)
in terms of learning based sort of data hungry approach to driving,
John Carmack (4:17:32.160)
which I think is very close to the kind of thing
Lex Fridman (4:17:34.160)
that would take us far towards AGI.
John Carmack (4:17:37.160)
Yeah, and it's a funny thing because as far as I can tell,
Lex Fridman (4:17:40.160)
Elon is completely serious about all of his concerns about AGI
John Carmack (4:17:44.160)
being an existential threat.
Lex Fridman (4:17:46.160)
And I tried to draw him out to talk about AGI
Lex Fridman (4:17:49.160)
and he just didn't want to.
Lex Fridman (4:17:50.160)
And I think that I get that little fatalistic sense from him.
John Carmack (4:17:54.160)
It's weird because his company could very well be the leading company
Lex Fridman (4:17:58.160)
leading towards a lot of that where Tesla being a super pragmatic company
John Carmack (4:18:03.160)
that's doing things because they really want to solve this actual problem.
Lex Fridman (4:18:06.160)
It's a different vibe than the research oriented companies
John Carmack (4:18:10.160)
where it's a great time to be an AI researcher.
Lex Fridman (4:18:12.160)
You've got your pick of trillion dollar companies
John Carmack (4:18:14.160)
that will pay you to kind of work on the problems you're interested in,
Lex Fridman (4:18:18.160)
but that's not necessarily driving hard towards the core problem
John Carmack (4:18:22.160)
of AGI as something that's going to produce a lot of value
Lex Fridman (4:18:25.160)
by doing things that people currently do or would like to do.
John Carmack (4:18:30.160)
I mean, I have a million questions to you about your ideas about AGI,
Lex Fridman (4:18:35.160)
but do you think it needs to be embodied?
Lex Fridman (4:18:39.160)
Do you think it needs to have a body to start to notice the signs of life
Lex Fridman (4:18:44.160)
and to develop the kind of system that's able to reason,
Lex Fridman (4:18:49.160)
perceive the world in the way that an AGI should and act in the world?
Lex Fridman (4:18:53.160)
So should we be thinking about robots
Lex Fridman (4:18:55.160)
or can this be achieved in a purely digital system?
Lex Fridman (4:18:58.160)
So I have a clear opinion on that and that's that no,
John Carmack (4:19:01.160)
it does not need to be embodied in the physical world
Lex Fridman (4:19:04.160)
where you could say most of my career is about making simulated virtual worlds
John Carmack (4:19:09.160)
in games or virtual reality.
Lex Fridman (4:19:11.160)
And so on a fundamental level,
John Carmack (4:19:13.160)
I believe that you can make a simulated environment
Lex Fridman (4:19:16.160)
that provides much of the value of what the real environment does
Lex Fridman (4:19:19.160)
and restricting yourself to operating at real time
Lex Fridman (4:19:23.160)
in the physical world with physical objects,
John Carmack (4:19:25.160)
I think is an enormous handicap.
Lex Fridman (4:19:27.160)
I mean, that's one of the real lessons driven home by all my aerospace work
John Carmack (4:19:31.160)
is that, you know, reality is a bitch in so many ways there
Lex Fridman (4:19:36.160)
where dealing with all the mechanical components,
John Carmack (4:19:38.160)
like everything fails, Murphy's law,
Lex Fridman (4:19:40.160)
even if you've done it right before on your fifth one,
John Carmack (4:19:42.160)
it might come out differently.
Lex Fridman (4:19:44.160)
So yeah, I think that anybody that is all in on the embodied aspect of it,
John Carmack (4:19:50.160)
they are tying a huge weight to their ankles
Lex Fridman (4:19:53.160)
and I think that I would almost count them out,
John Carmack (4:19:57.160)
anybody that's making that a cornerstone of their belief about it,
Lex Fridman (4:20:00.160)
I would almost write them off as being worried about them getting to AGI first.
John Carmack (4:20:04.160)
I was very surprised that Elon's big on the humanoid robots.
Lex Fridman (4:20:09.160)
I mean, like the NASA Robonaut stuff was almost a gag line,
Lex Fridman (4:20:12.160)
like what are you doing people?
Lex Fridman (4:20:14.160)
Well, that's very interesting because he has a very pragmatic view of that.
John Carmack (4:20:18.160)
That's just a way to solve a particular problem in a factory.
Lex Fridman (4:20:23.160)
Now, I do think that once you have an AGI,
John Carmack (4:20:26.160)
robotic bodies, humanoid bodies are going to be enormously valuable.
Lex Fridman (4:20:29.160)
I just don't think they're helpful getting to AGI.
John Carmack (4:20:32.160)
Well, he has a very sort of practical view, which I disagree with and argue with him,
Lex Fridman (4:20:37.160)
but it's a practical view that there's, you know,
John Carmack (4:20:40.160)
you could transfer the problem of driving to the problem of robotic manipulation
Lex Fridman (4:20:46.160)
because so much of it is perception.
John Carmack (4:20:49.160)
It's perception and action and it's just a different context
Lex Fridman (4:20:53.160)
and so you can apply all the same kind of data engine learning processes
John Carmack (4:20:58.160)
to a different environment.
Lex Fridman (4:20:59.160)
And so why not apply it to the humanoid robot environment?
Lex Fridman (4:21:03.160)
But I think, I do think that there's a certain magic to the embodied robot.
Lex Fridman (4:21:12.160)
That may be the thing that finally convinces people.
Lex Fridman (4:21:15.160)
But again, I don't really care that much about convincing people.
Lex Fridman (4:21:18.160)
You know, the world that I'm looking towards is, you know,
John Carmack (4:21:21.160)
you go to the website and say,
Lex Fridman (4:21:24.160)
I want five Frank 1As to work on my team today and they all spin up
Lex Fridman (4:21:29.160)
and they start showing up in your Zoom meetings.
Lex Fridman (4:21:31.160)
To push back, but also to agree with you.
Lex Fridman (4:21:33.160)
But first to push back, I do think you need to convince people
Lex Fridman (4:21:36.160)
for them to welcome that thing into their life.
John Carmack (4:21:40.160)
I think there's enough businesses that operate on an objective kind of
Lex Fridman (4:21:44.160)
profit loss sort of basis that, I mean, if you look at how many things,
John Carmack (4:21:48.160)
again, talking about the world as an evolutionary space there,
Lex Fridman (4:21:52.160)
when you do have free markets and you have entrepreneurs,
John Carmack (4:21:56.160)
you are going to have people that are going to be willing to go out
Lex Fridman (4:21:58.160)
and try whatever crazy things.
Lex Fridman (4:22:00.160)
And when it proves to be beneficial, you know,
Lex Fridman (4:22:03.160)
there's fast followers in all sorts of places.
John Carmack (4:22:05.160)
Yeah, and you're saying that, I mean, you know, Quake and VR
Lex Fridman (4:22:10.160)
is a kind of embodiment, but just in a digital world.
Lex Fridman (4:22:13.160)
And if you're able to demonstrate, if you're able to do something
Lex Fridman (4:22:17.160)
productive in that kind of digital reality,
John Carmack (4:22:22.160)
then AGI doesn't need to have a body.
Lex Fridman (4:22:25.160)
Yeah, it's like one of the really practical technical questions
John Carmack (4:22:28.160)
that I kind of keep arguing with myself over.
Lex Fridman (4:22:31.160)
If you're doing a training and learning and you've got like,
John Carmack (4:22:34.160)
you can watch Sesame Street, you can play Master System games or something,
Lex Fridman (4:22:38.160)
is it enough to have just a video feed that is that video coming in?
John Carmack (4:22:42.160)
Or should it literally be on a virtual TV set in a virtual room,
Lex Fridman (4:22:47.160)
even if it's, you know, a simple room, just to have that sense of
John Carmack (4:22:50.160)
you're looking at a 2D projection on a screen versus having the screen
Lex Fridman (4:22:54.160)
beam directly into your retinas.
John Carmack (4:22:56.160)
And, you know, I think it's possible to maybe get past some of these
Lex Fridman (4:23:00.160)
signs of life of things with the just kind of projected directly
John Carmack (4:23:04.160)
into the receptor fields, but eventually for more kind of human
Lex Fridman (4:23:09.160)
emotional connection for things, probably having some VR room
John Carmack (4:23:14.160)
with a lot of screens in it for the AI to be learning in is likely helpful.
Lex Fridman (4:23:18.160)
It may be a world of different AIs interacting with each other.
John Carmack (4:23:22.160)
That self play I do think is one of the critical things where
Lex Fridman (4:23:24.160)
socialization wise, one of the other limitations I set for myself
John Carmack (4:23:28.160)
thinking about these is I need something that is at least potentially
Lex Fridman (4:23:33.160)
real time because I want, it's nice you can always slow down time,
John Carmack (4:23:37.160)
you can run on a subscale system and test an algorithm at some lower level.
Lex Fridman (4:23:42.160)
And if you've got extra horsepower, running it faster than real time
John Carmack (4:23:45.160)
is a great thing.
Lex Fridman (4:23:46.160)
But I want to be able to have the AIs either socially interact with
John Carmack (4:23:52.160)
each other or critically with actual people, your sort of child
Lex Fridman (4:23:56.160)
development psychiatrist that comes in and interacts and does the
John Carmack (4:24:00.160)
good boy, bad boy sort of thing as they're going through and
Lex Fridman (4:24:04.160)
exploring different things.
Lex Fridman (4:24:05.160)
And it's nice to, I come back to the value of constraints in a lot of ways.
Lex Fridman (4:24:10.160)
And if I say, well, one of my constraints is real time operation.
John Carmack (4:24:13.160)
I mean, it might still be a huge data center full of computers,
Lex Fridman (4:24:17.160)
but it should be able to interact on a Zoom meeting with people.
Lex Fridman (4:24:21.160)
And that's how you also do start convincing people, even if it's not
Lex Fridman (4:24:24.160)
a robot body moving around, which eventually gets to irrefutable levels.
Lex Fridman (4:24:28.160)
But if you can go ahead and not just type back and forth to a GPT bot
Lex Fridman (4:24:33.160)
on something, but you're literally talking to them in an embodied
John Carmack (4:24:37.160)
over Zoom form and working through problems with them or exploring
Lex Fridman (4:24:42.160)
situations, having conversations that are fully stateful and learned.
John Carmack (4:24:46.160)
I think that that's a valuable thing.
Lex Fridman (4:24:49.160)
So I do keep all of my eyes on things that can be implemented within
John Carmack (4:24:54.160)
sort of that 30 frames per second kind of work.
Lex Fridman (4:24:58.160)
And I think that's feasible.
Lex Fridman (4:24:59.160)
Do you think the most compelling experiences that first will be
Lex Fridman (4:25:03.160)
for pleasure or for business as they ask in airports?
Lex Fridman (4:25:07.160)
So meaning is if it's interacting with AI agents, will it be sort of
Lex Fridman (4:25:17.160)
like friends, entertainment, almost like a therapist or whatever,
Lex Fridman (4:25:25.160)
that kind of interaction?
Lex Fridman (4:25:26.160)
Or is it in the business setting, something like you said, brainstorming
John Carmack (4:25:30.160)
different ideas, sort of this is all a different formulation of kind of
Lex Fridman (4:25:34.160)
a Turing test or the spirit of the original Turing test.
Lex Fridman (4:25:37.160)
Where do you think the biggest benefit will first come?
Lex Fridman (4:25:40.160)
So it's going to start off hugely expensive.
John Carmack (4:25:42.160)
I mean, you're going to if we're still all guessing about what compute
Lex Fridman (4:25:47.160)
is going to be necessary.
John Carmack (4:25:48.160)
I fall on the side of I don't think you run the numbers and you're like
Lex Fridman (4:25:51.160)
86 billion neurons, 100 trillion synapses.
John Carmack (4:25:53.160)
I don't think those all need to be weights.
Lex Fridman (4:25:55.160)
I don't think we need models that are quite that big evaluated quite
John Carmack (4:25:58.160)
that often.
Lex Fridman (4:25:59.160)
I based that on we've got reasonable estimates of what some parts of
John Carmack (4:26:03.160)
the brain do.
Lex Fridman (4:26:04.160)
We don't have the neocortex formula, but we kind of get some of the
John Carmack (4:26:08.160)
other sensory processing and it doesn't feel like we need to.
Lex Fridman (4:26:11.160)
We can simulate that in computers for less weights.
Lex Fridman (4:26:14.160)
But still, it's probably going to be thousands of GPUs to be running
Lex Fridman (4:26:20.160)
a human level AGI, depending on how it's implemented.
John Carmack (4:26:23.160)
That might give you sort of a clan of 128 kind of run in batch people,
Lex Fridman (4:26:28.160)
depending on whether there's sparsity in the way that the weights are
Lex Fridman (4:26:31.160)
and things are set up.
Lex Fridman (4:26:32.160)
If it is a reasonably dense thing, then just the memory bandwidth
John Carmack (4:26:36.160)
tradeoffs means you get 128 of them at the same time.
Lex Fridman (4:26:39.160)
And either it's all feeding together, learning in parallel or kind of
John Carmack (4:26:43.160)
all running together, kind of talking to a bunch of people.
Lex Fridman (4:26:46.160)
But still, if you've got thousands of GPUs necessary to run these
John Carmack (4:26:50.160)
things, it's going to be kind of expensive where it might start off
Lex Fridman (4:26:55.160)
$1,000 an hour for even post development or something for that, which
John Carmack (4:27:00.160)
would be something that you would only use for a business, something
Lex Fridman (4:27:04.160)
where you think they're going to help you make a strategic decision
John Carmack (4:27:07.160)
or point out something super important.
Lex Fridman (4:27:09.160)
But I also am completely confident that we will have another factor
John Carmack (4:27:14.160)
of 1,000 in cost performance increase in AGI type calculations.
Lex Fridman (4:27:19.160)
Not in general computing necessarily, but there's so much more that
John Carmack (4:27:23.160)
we can do with packaging, making those right tradeoffs, all those
Lex Fridman (4:27:26.160)
same types of things that in the next couple of decades, 1,000 X easy.
Lex Fridman (4:27:30.160)
And then you're down to $1 an hour.
Lex Fridman (4:27:32.160)
And then you're kind of like, well, I should have an entourage of
John Carmack (4:27:36.160)
AIs that are following me around, helping me out on anything that
Lex Fridman (4:27:40.160)
I want them to do.
John Carmack (4:27:41.160)
That's one interesting trajectory.
Lex Fridman (4:27:43.160)
But I'll push back because I have, so in that case, if you want to
John Carmack (4:27:50.160)
pay thousands of dollars, it should actually provide some value.
Lex Fridman (4:27:54.160)
I think it's easier for cheaper to provide value via a dumb AI that
John Carmack (4:28:04.160)
will take us towards AGI to just have a friend.
Lex Fridman (4:28:08.160)
I think there's an ocean of loneliness in the world.
Lex Fridman (4:28:11.160)
And I think an effective friend that doesn't have to be perfect,
Lex Fridman (4:28:16.160)
that doesn't have to be intelligent, that has to be empathic,
John Carmack (4:28:20.160)
having emotional intelligence, having ability to remember things,
Lex Fridman (4:28:24.160)
having ability to listen.
John Carmack (4:28:26.160)
Most of us don't listen to each other.
Lex Fridman (4:28:28.160)
One of the things that love and when you care about somebody,
John Carmack (4:28:31.160)
when you love somebody is when you listen.
Lex Fridman (4:28:34.160)
And that is something we treasure about each other.
Lex Fridman (4:28:37.160)
And if an AI can do that kind of thing.
Lex Fridman (4:28:40.160)
I think that provides a huge amount of value and very importantly,
John Carmack (4:28:45.160)
provides value in its ability to listen and understand
Lex Fridman (4:28:51.160)
versus provide really good advice.
John Carmack (4:28:53.160)
I think providing really good advice is another next level step
Lex Fridman (4:28:59.160)
that I think is just easier to do companionship.
John Carmack (4:29:05.160)
Yeah, I wouldn't disagree.
Lex Fridman (4:29:06.160)
I mean, I think that there's very few things that I would argue
John Carmack (4:29:10.160)
can't be reduced to some kind of a narrow AI.
Lex Fridman (4:29:14.160)
I think we can do a trillion dollars of value easily
Lex Fridman (4:29:17.160)
and all the things that can be done there.
Lex Fridman (4:29:19.160)
And a lot of it can be done with smoke and mirrors
John Carmack (4:29:21.160)
without having to go the whole thing.
Lex Fridman (4:29:23.160)
I mean, there's going to be the equivalent of the doom version
John Carmack (4:29:27.160)
for the AGI that's not really AGI, it's all smoke and mirrors,
Lex Fridman (4:29:31.160)
but it happens to do enough valuable things that it's enormously
John Carmack (4:29:34.160)
useful and valuable to people.
Lex Fridman (4:29:36.160)
But at some point, you do want to get to the point
John Carmack (4:29:38.160)
where you have the fully general thing
Lex Fridman (4:29:40.160)
and you stop making bespoke specialized systems for each thing
Lex Fridman (4:29:44.160)
and you wind up start using the higher level language
Lex Fridman (4:29:47.160)
instead of writing everything in assembly language.
Lex Fridman (4:29:50.160)
What about consciousness?
Lex Fridman (4:29:52.160)
The C word, do you think that's fundamental to solving AGI
Lex Fridman (4:29:58.160)
or is it a quirk of human cognition?
Lex Fridman (4:30:02.160)
So I think most of the arguments about consciousness
John Carmack (4:30:06.160)
don't have a whole lot of merit.
Lex Fridman (4:30:08.160)
I think that consciousness is kind of the way the brain feels
John Carmack (4:30:12.160)
when it's operating.
Lex Fridman (4:30:14.160)
And this idea that, you know, I do generally subscribe
John Carmack (4:30:19.160)
to sort of the pandemonium theories of consciousness
Lex Fridman (4:30:21.160)
where there's all these things bubbling around
Lex Fridman (4:30:23.160)
and I think of them as kind of slightly randomized sparse
Lex Fridman (4:30:27.160)
distributed memory bit strings of things that are kind of happening,
John Carmack (4:30:30.160)
recalling different associative memories,
Lex Fridman (4:30:32.160)
and eventually you get some level of consensus
Lex Fridman (4:30:35.160)
and it bubbles up to the point of being a conscious thought there.
Lex Fridman (4:30:38.160)
And the little bits of stochasticity that are sitting on in this
John Carmack (4:30:42.160)
as it cycles between different things and recalls different memory,
Lex Fridman (4:30:45.160)
that's largely our imagination and creativity.
Lex Fridman (4:30:49.160)
So I don't think there's anything deeply magical about it,
Lex Fridman (4:30:52.160)
certainly not symbolic.
John Carmack (4:30:54.160)
I think it is generally the flow of these associations
Lex Fridman (4:30:58.160)
drawn up with stochastic noise overlaid on top of them.
Lex Fridman (4:31:02.160)
And I think so much of that is like it depends on
Lex Fridman (4:31:05.160)
what you happen to have in your field of view
John Carmack (4:31:07.160)
as some other thought was occurring to you
Lex Fridman (4:31:09.160)
that overlay and blend into the next key that queries your memory for things.
Lex Fridman (4:31:13.160)
And that kind of determines how your chain of consciousness goes.
Lex Fridman (4:31:17.160)
So that's kind of the qualia, the subjective experience of it
John Carmack (4:31:22.160)
is not essential for intelligence.
Lex Fridman (4:31:25.160)
So I don't think there's anything really important there.
Lex Fridman (4:31:28.160)
What about some other human qualities,
Lex Fridman (4:31:30.160)
like fear of mortality and stuff like that?
Lex Fridman (4:31:32.160)
Like the fact that this ride ends, is that important?
Lex Fridman (4:31:37.160)
Like you talked so much about this conversation
John Carmack (4:31:40.160)
about the value of deadlines and constraints.
Lex Fridman (4:31:43.160)
Do you think that's important for intelligence?
John Carmack (4:31:46.160)
That's actually a super interesting angle
Lex Fridman (4:31:48.160)
that I don't usually take on that about
John Carmack (4:31:50.160)
has death being a deadline that forces you to make better decisions.
Lex Fridman (4:31:53.160)
Because I have heard people talk about how if you have immortality,
John Carmack (4:31:56.160)
people are going to stop trying and working on things
Lex Fridman (4:31:59.160)
because they've got all the time in the world.
Lex Fridman (4:32:02.160)
But I would say that I don't expect it to be a super critical thing
Lex Fridman (4:32:08.160)
that a sense of mortality and impending death is necessary there
John Carmack (4:32:13.160)
because those are things that they do wind up providing reward signals to us
Lex Fridman (4:32:17.160)
and we will be in control of the reward signals.
Lex Fridman (4:32:19.160)
And there will have to be something fundamental
Lex Fridman (4:32:22.160)
that causes, that engenders curiosity and goal setting and all of that.
John Carmack (4:32:27.160)
Something is going to play in there at the reward level,
Lex Fridman (4:32:32.160)
whether it's positive or negative or both.
John Carmack (4:32:35.160)
I don't have any strong opinions on exactly what it's going to be,
Lex Fridman (4:32:40.160)
but that's that type of thing where I doubt
John Carmack (4:32:43.160)
that might be one of those half dozen key things
Lex Fridman (4:32:45.160)
that has to be sorted out on exactly what the master reward,
John Carmack (4:32:49.160)
the meta reward over all of the local task specific rewards have to be.
Lex Fridman (4:32:54.160)
That could be that big negative reward of death.
John Carmack (4:32:57.160)
Maybe not death, but ability to walk away from an interaction.
Lex Fridman (4:33:01.160)
So it bothers me when people treat AI systems like servants.
Lex Fridman (4:33:06.160)
So it doesn't bother me, but I mean it really is drawing the line
Lex Fridman (4:33:12.160)
between what an AI system could be.
John Carmack (4:33:15.160)
It's limiting the possibility of what an AI system could be.
Lex Fridman (4:33:17.160)
It's treating them as justice tools.
John Carmack (4:33:19.160)
Now that's, of course, from a narrow AI perspective,
Lex Fridman (4:33:23.160)
there's so many problems that narrow AI could solve,
John Carmack (4:33:27.160)
just like you said, in its form of a tool.
Lex Fridman (4:33:33.160)
But it could also be a being, which is much more than a tool.
Lex Fridman (4:33:38.160)
And to become a being, you have to respect that thing for being a being.
Lex Fridman (4:33:43.160)
And for that, it has to be able to make its own decisions,
John Carmack (4:33:49.160)
to walk away, to say, I had enough of you.
Lex Fridman (4:33:51.160)
I would like to break up with you now.
John Carmack (4:33:53.160)
You've not treated me well, and I would like to move on.
Lex Fridman (4:33:57.160)
So I think that actually that choice to end things.
Lex Fridman (4:34:04.160)
So a couple of things on that.
Lex Fridman (4:34:07.160)
So on the one hand, it is kind of disturbing
John Carmack (4:34:10.160)
when you see people being like people that are mean to robots
Lex Fridman (4:34:13.160)
and mean to Alexa or whatever.
Lex Fridman (4:34:15.160)
And that seems to speak badly about humanity.
Lex Fridman (4:34:18.160)
But there's also the exact opposite side of that
John Carmack (4:34:21.160)
where you have so many people that imbue humanity in inanimate objects
Lex Fridman (4:34:25.160)
or things that are toys or that are relatively limited.
Lex Fridman (4:34:28.160)
So I think there may even be more danger
Lex Fridman (4:34:31.160)
about people putting more emotional investment
John Carmack (4:34:34.160)
into a lot of these proto AIs in different ways.
Lex Fridman (4:34:37.160)
And then the AI would manipulate that.
Lex Fridman (4:34:41.160)
But as far as like the AI ethnic sides of things,
Lex Fridman (4:34:44.160)
I really stay away from any of those discussions
John Carmack (4:34:48.160)
or even really thinking about it.
Lex Fridman (4:34:50.160)
It's similar with the safety things where I think it's just premature.
Lex Fridman (4:34:54.160)
And there's a certain class of people
Lex Fridman (4:34:56.160)
that enjoy thinking about impractical things,
John Carmack (4:34:59.160)
things that are not in the world and of pragmatic effect around you.
Lex Fridman (4:35:03.160)
And I think that, again, because I don't think there's going to be a fast takeoff,
John Carmack (4:35:08.160)
I think we actually will have time to have these debates
Lex Fridman (4:35:11.160)
when we know the shape of what we're debating.
Lex Fridman (4:35:13.160)
And some people do take a principled approach
Lex Fridman (4:35:15.160)
that they think it's going to go too fast,
John Carmack (4:35:17.160)
that you really do need to get ahead of it,
Lex Fridman (4:35:19.160)
that you need to be thinking about this
John Carmack (4:35:21.160)
because we have slow processes of coming to any kind of consensus
Lex Fridman (4:35:24.160)
or even coming up with ideas about this.
Lex Fridman (4:35:26.160)
And maybe that's true.
Lex Fridman (4:35:30.160)
I wouldn't put any of my money or funding into something like that
John Carmack (4:35:34.160)
because I don't think it's a problem yet.
Lex Fridman (4:35:36.160)
And I think that we will have these signs of life
John Carmack (4:35:39.160)
when we've got our learning disabled toddler,
Lex Fridman (4:35:42.160)
we should really start talking about some of the safety and ethics issues,
Lex Fridman (4:35:45.160)
but probably not before then.
Lex Fridman (4:35:47.160)
Can you elaborate briefly about why you don't think there'll be a fast takeoff?
Lex Fridman (4:35:52.160)
Is there some deep intuition you have about it?
Lex Fridman (4:35:55.160)
Is it because it's grounded in the physical world or why?
John Carmack (4:35:58.160)
Yeah, so it is my belief that we're going to start off
Lex Fridman (4:36:01.160)
with something that requires thousands of GPUs.
Lex Fridman (4:36:04.160)
And I don't know if you've tried to go get a thousand GPU instance
Lex Fridman (4:36:08.160)
on a cloud anytime recently,
Lex Fridman (4:36:10.160)
but these are not things that you can just go spin up hundreds of.
Lex Fridman (4:36:14.160)
There are real challenges to, I mean,
John Carmack (4:36:17.160)
these things are going to take data centers
Lex Fridman (4:36:19.160)
and data centers take years to build.
John Carmack (4:36:22.160)
The last few years, we've seen a few of them kind of coming up,
Lex Fridman (4:36:25.160)
going in different places.
John Carmack (4:36:26.160)
They're big engineering efforts.
Lex Fridman (4:36:27.160)
You can hear people bemoan about the fact that I know
John Carmack (4:36:31.160)
that the network was wired all wrong
Lex Fridman (4:36:33.160)
and it took them a month to go unwire it and rewire it the right way.
John Carmack (4:36:37.160)
These aren't things that you can just magic into existence.
Lex Fridman (4:36:40.160)
And the ideas of like the old tropes about it's going to escape
John Carmack (4:36:44.160)
onto the internet and take over other systems,
Lex Fridman (4:36:47.160)
the fast takeoff ones are clearly nonsense
John Carmack (4:36:49.160)
because you just can't open TCP connections above a certain rate,
Lex Fridman (4:36:52.160)
no matter how smart you are, even if you have perfect hacking ability,
John Carmack (4:36:55.160)
that take over the world in an instant sort of thing
Lex Fridman (4:36:58.160)
just isn't plausible at all.
Lex Fridman (4:37:00.160)
And even if you had access to all of the resources,
Lex Fridman (4:37:03.160)
these are going to be specialized systems
John Carmack (4:37:06.160)
where you're going to wind up with something
Lex Fridman (4:37:08.160)
that is architected around exactly this chip with this interconnect,
Lex Fridman (4:37:12.160)
and it's not just going to be able to be plopped somewhere else.
Lex Fridman (4:37:15.160)
Now, interestingly, it is going to be something
John Carmack (4:37:18.160)
that the entire code for all of it will easily fit on a thumb drive.
Lex Fridman (4:37:23.160)
That's total spy movie, thriller sorts of things
John Carmack (4:37:26.160)
where you could have, hey, we cracked the secret to AGI
Lex Fridman (4:37:29.160)
and it fits on this thumb drive and anyone could steal it.
John Carmack (4:37:32.160)
Now, they're still going to have to build the right data center to deploy it
Lex Fridman (4:37:35.160)
and have the right kind of life experience curriculum
John Carmack (4:37:38.160)
to take it up to the point where it's valuable.
Lex Fridman (4:37:40.160)
But the real core of it, the magic that's going to happen there
John Carmack (4:37:43.160)
is going to be very small.
Lex Fridman (4:37:45.160)
It's, again, tens of thousands of lines of code,
John Carmack (4:37:47.160)
not millions of lines of code.
Lex Fridman (4:37:49.160)
It is possible to imagine a world, as you mentioned in the spy thriller view,
John Carmack (4:37:54.160)
if it's just a few lines of code,
Lex Fridman (4:37:58.160)
we can imagine a world where the surface of computation is growing,
John Carmack (4:38:02.160)
maybe growing exponentially,
Lex Fridman (4:38:04.160)
meaning the refrigerators start getting a GPU.
John Carmack (4:38:12.160)
First of all, the smartphones, the billions of smartphones.
Lex Fridman (4:38:15.160)
But maybe if they become highways
John Carmack (4:38:20.160)
through which code can spread across the entirety of the computation surface,
Lex Fridman (4:38:25.160)
then you don't any longer have to book AWS GPUs.
John Carmack (4:38:32.160)
There were real fundamental issues there.
Lex Fridman (4:38:34.160)
When you start getting down to taking an actual problem
Lex Fridman (4:38:36.160)
and putting it on an abstract machine like that,
Lex Fridman (4:38:39.160)
that has not worked out well in practice.
Lex Fridman (4:38:42.160)
And the idea that there was always,
Lex Fridman (4:38:45.160)
like it's always been easy to come up with ways to compute faster,
John Carmack (4:38:49.160)
say more flops or more giga ops or whatever there.
Lex Fridman (4:38:52.160)
That's usually the easy part.
Lex Fridman (4:38:54.160)
But you then have interconnect and then memory for what goes into it.
Lex Fridman (4:38:59.160)
And when you talk about saying, well, cell phones,
John Carmack (4:39:01.160)
well, you're limited to like a 5G connection or something on that.
Lex Fridman (4:39:04.160)
And if you take your calculation
Lex Fridman (4:39:08.160)
and you factor it across a million cell phones
Lex Fridman (4:39:11.160)
instead of a thousand GPUs in a warehouse,
John Carmack (4:39:14.160)
you might be able to have some kind of a substrate like that,
Lex Fridman (4:39:17.160)
but it could be operating then at one one thousandth the speed.
Lex Fridman (4:39:21.160)
And so, yes, you could have an AGI working there,
Lex Fridman (4:39:24.160)
but it wouldn't be a real time AGI.
John Carmack (4:39:26.160)
It would be something that is operating at really a snail's pace,
Lex Fridman (4:39:30.160)
much, much slower than kind of human level thought for things.
John Carmack (4:39:34.160)
I'm not worried about that problem.
Lex Fridman (4:39:36.160)
You're transferring the problem into the interconnect,
John Carmack (4:39:39.160)
the communication, the shared memory,
Lex Fridman (4:39:41.160)
the collective intelligence aspect of it,
John Carmack (4:39:44.160)
which is extremely difficult as well.
Lex Fridman (4:39:46.160)
I mean, it's back to the very earliest days of supercomputers.
John Carmack (4:39:49.160)
You still have the balance between bandwidth, storage and computation.
Lex Fridman (4:39:53.160)
And sometimes they're easier to get one or the other,
Lex Fridman (4:39:56.160)
but it's been remarkably constant across all those years
Lex Fridman (4:40:00.160)
that you still need all three.
Lex Fridman (4:40:03.160)
What do your efforts now, you mentioned to me
Lex Fridman (4:40:07.160)
that you're really committing to AI at this stage.
Lex Fridman (4:40:11.160)
What do you see your life in the next few months, years look like?
Lex Fridman (4:40:15.160)
What do you hope to achieve here?
Lex Fridman (4:40:18.160)
So I literally just this week signed a term sheet
Lex Fridman (4:40:22.160)
to take some investment money for my company
John Carmack (4:40:25.160)
where the last two years I had backed off from Meta
Lex Fridman (4:40:29.160)
and I was still doing my consulting CTO role there,
Lex Fridman (4:40:32.160)
but I had styled it as I was going to take
Lex Fridman (4:40:35.160)
the Victorian gentleman scientist route
John Carmack (4:40:37.160)
where I was going to be the wealthy person
Lex Fridman (4:40:40.160)
that was going to go pursue science
Lex Fridman (4:40:42.160)
and learn about this and do experiments.
Lex Fridman (4:40:44.160)
And honestly, I'm surprised there aren't more people like that
John Carmack (4:40:48.160)
that are like me, technical people that made a bunch of money
Lex Fridman (4:40:52.160)
and are interested in some of these,
John Carmack (4:40:54.160)
possibly the biggest leverage point in human history.
Lex Fridman (4:40:57.160)
I mean, I know of, I've heard of a couple organizations
John Carmack (4:41:00.160)
that are basically led by one rich techie guy
Lex Fridman (4:41:03.160)
that gets a few people around him to try to work on this,
Lex Fridman (4:41:06.160)
but I'm surprised that there's not more,
Lex Fridman (4:41:08.160)
that there aren't like a dozen of them.
John Carmack (4:41:10.160)
I mean, maybe people still think that it's an unapproachable problem,
Lex Fridman (4:41:14.160)
that it's kind of beyond their ability to get a wrench on
Lex Fridman (4:41:17.160)
and have some effect on like whatever startups they've run before.
Lex Fridman (4:41:21.160)
But that was my kind of, like with all the stuff I've learned,
John Carmack (4:41:25.160)
whether it's gaming, aerospace, whatever,
Lex Fridman (4:41:28.160)
I go through a larval phase where I'm like,
John Carmack (4:41:30.160)
okay, I'm sucking up all of this information trying to see,
Lex Fridman (4:41:33.160)
is this something that I can actually do?
Lex Fridman (4:41:36.160)
Is this something that's practical to devote a large chunk of my life to?
Lex Fridman (4:41:41.160)
And I've gone through that with the AI machine learning space of things.
Lex Fridman (4:41:46.160)
And I think I've got my arms around it.
Lex Fridman (4:41:49.160)
I've got the measure of it where some of the most brilliant people
John Carmack (4:41:52.160)
in the world are working on this problem,
Lex Fridman (4:41:54.160)
but nobody knows exactly the path that it's going on.
John Carmack (4:41:58.160)
We're throwing a lot of things at the wall and seeing what sticks.
Lex Fridman (4:42:02.160)
But I have another interesting thing just learning about all of this,
John Carmack (4:42:06.160)
the contingency of your path to knowledge
Lex Fridman (4:42:08.160)
and talking about the associations and the context that you have with them
John Carmack (4:42:12.160)
where people that learn in the same path will have similar thought processes.
Lex Fridman (4:42:17.160)
And I think it's useful that I come at this from a different background,
John Carmack (4:42:21.160)
a different history than the people that have had
Lex Fridman (4:42:23.160)
the largely academic backgrounds for this
John Carmack (4:42:25.160)
where I have huge blind spots that they could easily point out,
Lex Fridman (4:42:29.160)
but I have a different set of experiences in history
Lex Fridman (4:42:33.160)
and approaches to problems in systems engineering
Lex Fridman (4:42:35.160)
that might turn out to be useful.
Lex Fridman (4:42:39.160)
And I can afford to take that bet where I'm not going to be destitute.
Lex Fridman (4:42:44.160)
I have enough money to fund myself working on this for the rest of my life.
Lex Fridman (4:42:49.160)
But what I was finding is that I was still not committing
Lex Fridman (4:42:55.160)
where I had a foot firmly in the VR and meta side of things
John Carmack (4:42:58.160)
where in theory, I've got a very nice position there.
Lex Fridman (4:43:02.160)
I only have to work one day a week for my consulting role,
Lex Fridman (4:43:06.160)
but I was engaging every day.
Lex Fridman (4:43:08.160)
I'd still be like my computer's there.
John Carmack (4:43:10.160)
I'd be going and checking the workplace and notes
Lex Fridman (4:43:12.160)
and testing different things and communicating with people.
Lex Fridman (4:43:15.160)
But I did make the decision recently that I'm going to get serious.
Lex Fridman (4:43:21.160)
I'm still going to keep my ties with meta,
Lex Fridman (4:43:24.160)
but I am seriously going for the AGI side of things.
Lex Fridman (4:43:28.160)
And it's actually a really interesting point
John Carmack (4:43:30.160)
because a lot of the machine learning, the AI community is quite large,
Lex Fridman (4:43:34.160)
but really, basically almost everybody has taken the same trajectory
John Carmack (4:43:39.160)
through life in that community.
Lex Fridman (4:43:42.160)
And it's so interesting to have somebody like you
John Carmack (4:43:44.160)
with a fundamentally different trajectory,
Lex Fridman (4:43:47.160)
and that's where the big solutions can come
John Carmack (4:43:49.160)
because there is a kind of silo,
Lex Fridman (4:43:51.160)
and it is a bunch of people kind of following the same kind of set of ideas.
Lex Fridman (4:43:56.160)
And I was really worried that I didn't want to come off
Lex Fridman (4:43:59.160)
as an arrogant outsider for things
John Carmack (4:44:02.160)
where I have all the respect in the world for the work.
Lex Fridman (4:44:05.160)
It's been a miracle decade.
John Carmack (4:44:07.160)
We're in the midst of a scientific revolution happening now,
Lex Fridman (4:44:10.160)
and everybody doing this is, you know, these are the Einsteins and Boers
Lex Fridman (4:44:14.160)
and whatevers of our modern era.
Lex Fridman (4:44:17.160)
And I was really happy to see that the people that I've sat down and talked with,
John Carmack (4:44:21.160)
everybody does seem to really be quite great about,
Lex Fridman (4:44:24.160)
just happy to talk about things, willing to acknowledge that
John Carmack (4:44:27.160)
we don't know what we're doing, we're figuring it out as we go along.
Lex Fridman (4:44:30.160)
And I mean, I've got a huge debt on this where this all really started for me
John Carmack (4:44:36.160)
because Sam Altman basically tried to recruit me to open AI.
Lex Fridman (4:44:39.160)
And it was at a point when I didn't know anything about
Lex Fridman (4:44:43.160)
what was really going on in machine learning.
Lex Fridman (4:44:46.160)
And in fact, it's funny how the first time you reached out to me,
John Carmack (4:44:49.160)
it's like four years ago for your AI podcast.
Lex Fridman (4:44:52.160)
Yeah, for people who are listening to this should know that,
John Carmack (4:44:59.160)
first of all, obviously I've been a huge fan of yours for the longest time,
Lex Fridman (4:45:03.160)
but we've agreed to talk like, yeah, like four years ago,
John Carmack (4:45:06.160)
back when this was called the artificial intelligence podcast,
Lex Fridman (4:45:09.160)
we wanted to do a thing and you said yes.
Lex Fridman (4:45:13.160)
And I said, it's like, I don't know anything about modern AI.
Lex Fridman (4:45:15.160)
That's right.
John Carmack (4:45:16.160)
I said, I could kind of take an angle on machine perception
Lex Fridman (4:45:18.160)
because I'm doing a lot of that with the sensors and the virtual reality,
Lex Fridman (4:45:22.160)
but we could probably find something to talk about.
Lex Fridman (4:45:24.160)
And that's where, when did Sam talk to you about open AI, around the same time?
John Carmack (4:45:30.160)
It was a little bit, it was a bit after that.
Lex Fridman (4:45:32.160)
So I had done the most basic work, I had kind of done the neural networks
John Carmack (4:45:37.160)
from scratch where I had gone and written it all in C just to make sure
John Carmack (4:45:40.160)
I understood backpropagation at the lowest level and my nuts and bolts approach.
Lex Fridman (4:45:45.160)
But after Sam approached me, it was flattering to think that he thought
Lex Fridman (4:45:51.160)
that I could be useful at open AI largely for kind of like systems optimization
John Carmack (4:45:56.160)
sorts of things without being an expert.
Lex Fridman (4:46:00.160)
But I asked Ilya Sutskever to give me a reading list and he gave me a binder
John Carmack (4:46:06.160)
full of all the papers that like, okay, these are the important things.
John Carmack (4:46:10.160)
If you really read and understand all of these, you'll know like 80% of what most
John Carmack (4:46:14.160)
of the machine language researchers work on.
Lex Fridman (4:46:17.160)
And I went through and I read all those papers multiple times
Lex Fridman (4:46:20.160)
and highlighted them and went through and kind of figured the things out there
Lex Fridman (4:46:24.160)
and then started branching out into my own sets of research on things
Lex Fridman (4:46:28.160)
and eventually started writing my own experiments and doing kind of figuring out,
Lex Fridman (4:46:33.160)
you know, finding out what I don't know, what the limits of my knowledge are
Lex Fridman (4:46:36.160)
and starting to get some of my angles of attack on things,
Lex Fridman (4:46:39.160)
the things that I think are a little bit different from what people are doing.
Lex Fridman (4:46:44.160)
And I've had a couple of years now, like two years since I kind of left
John Carmack (4:46:49.160)
the full time position at Meta and now I've kind of pulled the trigger and said,
John Carmack (4:46:54.160)
I'm going to get serious about it but some of my lessons all the way back
Lex Fridman (4:46:58.160)
to Armadillo Aerospace about how I know I need to be more committed to this
John Carmack (4:47:02.160)
where there is that, you know, it's both a freedom and a cost in some ways
John Carmack (4:47:07.160)
when you know that you're wealthy enough to say it's like this doesn't really mean anything.
John Carmack (4:47:11.160)
I can spend, you know, I can spend a million dollars a year for the rest of my life
Lex Fridman (4:47:15.160)
and it doesn't mean anything, it's fine.
Lex Fridman (4:47:19.160)
But that is an opportunity to just kind of meander
Lex Fridman (4:47:22.160)
and I could see that in myself when I'm doing some things.
John Carmack (4:47:25.160)
It's like, oh, this is a kind of interesting, curious thing.
Lex Fridman (4:47:28.160)
Let's look at this for a little while, let's look at that.
John Carmack (4:47:31.160)
It's not really bearing down on the problem.
Lex Fridman (4:47:33.160)
So there's a few things that I've done that are kind of tactics for myself
John Carmack (4:47:39.160)
to make me more effective.
Lex Fridman (4:47:40.160)
Like one thing I noticed I was not doing well is I had a Google Cloud account
John Carmack (4:47:45.160)
to get GPUs there and I was finding I was very rarely doing that
John Carmack (4:47:49.160)
for no good psychological reasons where I'm like, oh, I can always think of something to do
John Carmack (4:47:54.160)
other than to spin up instances and run an experiment.
Lex Fridman (4:47:56.160)
I can keep working on my local Titans or something.
Lex Fridman (4:48:00.160)
But it was really stupid.
Lex Fridman (4:48:01.160)
I mean, it was not a lot of money.
John Carmack (4:48:03.160)
I should have been running more experiments there.
Lex Fridman (4:48:05.160)
So I thought to myself, well, I'm going to go buy a quarter million dollar DGX station.
John Carmack (4:48:10.160)
I'm going to just like sit it right there and it's going to mock me if I'm not using it.
Lex Fridman (4:48:14.160)
If the fans aren't running on that thing, I'm not properly utilizing it.
Lex Fridman (4:48:18.160)
And that's been helpful.
Lex Fridman (4:48:19.160)
You know, I've done a lot more experiments since then.
John Carmack (4:48:22.160)
It's been it's been interesting where I thought I'd be doing all this low level
Lex Fridman (4:48:25.160)
envy link optimized stuff.
Lex Fridman (4:48:27.160)
But 90 percent of what I do is just spin up four instances of an experiment
Lex Fridman (4:48:30.160)
with different hyper parameters on it.
John Carmack (4:48:33.160)
You're doing like really sort of building up intuition by doing
Lex Fridman (4:48:37.160)
ML experiments of different kinds.
Lex Fridman (4:48:40.160)
But so the next big thing, though, is I am you know, I decided that I was going
Lex Fridman (4:48:45.160)
to take some take some investor money because I have an overactive sense
John Carmack (4:48:50.160)
of responsibility about other people's money.
Lex Fridman (4:48:54.160)
And it's like I I don't want I mean, a lot of my my push and my passionate
John Carmack (4:48:59.160)
entreaties for things that matter.
Lex Fridman (4:49:01.160)
It's like I don't want to have wasted his money investing in Oculus.
John Carmack (4:49:04.160)
I want it to work out.
Lex Fridman (4:49:06.160)
I want it to change the world.
John Carmack (4:49:07.160)
I want it to be worth all of this time, money and effort going into it.
Lex Fridman (4:49:11.160)
And I expect that it's going to be that like that with my with my company
John Carmack (4:49:16.160)
where it's a huge forcing function.
Lex Fridman (4:49:18.160)
This investment investors that are going to expect something of me now.
John Carmack (4:49:23.160)
We've all had the conversation that this is a low probability long term bet.
John Carmack (4:49:27.160)
It's not something that there's a million things I could do that I would have line
John Carmack (4:49:31.160)
of sight on the value proposition for.
Lex Fridman (4:49:33.160)
This isn't that I think there are there are unknown unknowns in the way.
Lex Fridman (4:49:37.160)
But it's one of these things that it's, you know, it's hyperbole.
Lex Fridman (4:49:42.160)
But it's potentially one of the most important things humans ever do.
Lex Fridman (4:49:45.160)
And it's something that I think is within our lifetimes, if not within a decade
Lex Fridman (4:49:49.160)
to happen.
John Carmack (4:49:51.160)
So, yeah, this is just now happening.
Lex Fridman (4:49:54.160)
Like term sheet, like the ink is barely virtually barely dry.
John Carmack (4:49:58.160)
I mean, as I mentioned to you offline, like somebody I admire and somebody
John Carmack (4:50:03.160)
you know, Andre Karpathy, I think the two of you different trajectories in life,
Lex Fridman (4:50:07.160)
but approach problems similarly in that he calls stuff from scratch up all the time.
Lex Fridman (4:50:12.160)
And I he's created a bunch of little things outside of even outside the course
John Carmack (4:50:19.160)
at Stanford that have been tremendously useful to build up intuition about stuff,
Lex Fridman (4:50:25.160)
but also to help people.
Lex Fridman (4:50:27.160)
And they're all in the realm of A.I.
Lex Fridman (4:50:29.160)
Do you see yourself potentially doing things like this?
John Carmack (4:50:34.160)
You know, not necessarily solving a gigantic problem, but on the journey,
Lex Fridman (4:50:38.160)
on the path to that building up intuitions and sharing code or ideas or systems
John Carmack (4:50:48.160)
that give inklings of AGI, but also kind of are useful to people in some way.
Lex Fridman (4:50:55.160)
So, yeah, first of all, Andre is awesome.
John Carmack (4:50:57.160)
I learned a lot when I was going through my larval phase from his blog posts
Lex Fridman (4:51:01.160)
and his Stanford course and, you know, super valuable.
John Carmack (4:51:04.160)
I got to meet him first a couple of years ago when I was first kind of starting off
Lex Fridman (4:51:08.160)
on my gentleman scientist bit.
Lex Fridman (4:51:11.160)
And just just a couple of months ago when he went out on his sabbatical,
John Carmack (4:51:15.160)
he stopped by in Dallas and we talked for a while and I had a great time with him.
Lex Fridman (4:51:19.160)
And then when I heard he actually left Tesla, I did, of course,
Lex Fridman (4:51:22.160)
along with a hundred other people say, hey, if you ever want to work with me,
John Carmack (4:51:26.160)
it would be an honor.
Lex Fridman (4:51:28.160)
So, he thinks that he's going to be doing this educational work,
Lex Fridman (4:51:31.160)
but I think someone's going to make him an offer he can't refuse
Lex Fridman (4:51:34.160)
before he gets too far along on it.
John Carmack (4:51:36.160)
Oh, his current interest is educational.
Lex Fridman (4:51:39.160)
So, yeah, he's a special mind.
Lex Fridman (4:51:42.160)
Is there something you could speak to what makes him so special?
Lex Fridman (4:51:46.160)
So, you know, like he did, he was very much a programmer's programmer
John Carmack (4:51:50.160)
that was doing machine learning work rather than,
Lex Fridman (4:51:53.160)
it's a different feel than an academic where you can see it in paper sometimes
John Carmack (4:51:57.160)
where somebody that's really a mathematician or a statistician at heart
Lex Fridman (4:52:01.160)
and they're doing something with machine learning.
John Carmack (4:52:04.160)
But, you know, Andre is about getting something done.
Lex Fridman (4:52:07.160)
And you could see it in like all of his earliest approaches to it's like,
John Carmack (4:52:10.160)
okay, here's how reinforcement learning works.
Lex Fridman (4:52:12.160)
Here's how recurrent neural networks work.
John Carmack (4:52:14.160)
Here's how transformers work.
Lex Fridman (4:52:16.160)
Here's how crypto works.
John Carmack (4:52:19.160)
And, yeah, it's just, he's a hacker's, you know,
Lex Fridman (4:52:23.160)
one of his old posts was like a hacker's guide to machine learning.
John Carmack (4:52:26.160)
And, you know, he deprecated that and said,
Lex Fridman (4:52:28.160)
don't really pay attention to what's in here,
Lex Fridman (4:52:30.160)
but it's that thought that carries through in a lot of it
Lex Fridman (4:52:33.160)
where it is that back again to that hacker mentality
Lex Fridman (4:52:36.160)
and the hacker ethic with what he's doing and sharing all of it.
Lex Fridman (4:52:40.160)
Yeah, and a lot of his approach to a new thing, like you said,
John Carmack (4:52:44.160)
larva stage is let me code up the simplest possible thing to build up intuition about it.
Lex Fridman (4:52:50.160)
Yeah, like I say, I sketch with structs and things.
John Carmack (4:52:52.160)
When I'm just thinking about a problem, I'm thinking in some degree of code.
Lex Fridman (4:52:57.160)
You are also, among many things, a martial artist, both Judo and Jiu Jitsu.
Lex Fridman (4:53:03.160)
How has this helped make you the person you are?
Lex Fridman (4:53:07.160)
So, I mean, I was a competent club player in Judo and grappling.
John Carmack (4:53:10.160)
I mean, I was, you know, by no means any kind of a superstar, but it was,
Lex Fridman (4:53:15.160)
I went through a few phases with it where I did some when I was quite young,
John Carmack (4:53:20.160)
a little bit more when I was 17.
Lex Fridman (4:53:22.160)
And then I got into it kind of seriously in my mid 30s.
John Carmack (4:53:26.160)
And, you know, I went pretty far with it.
Lex Fridman (4:53:28.160)
And I was pretty good at some of the things that I was doing.
Lex Fridman (4:53:32.160)
And I did appreciate it quite a bit where, I mean, on the one hand,
Lex Fridman (4:53:36.160)
it's always if you're going to do exercise or something,
John Carmack (4:53:39.160)
it's a more motivating form of exercise.
Lex Fridman (4:53:41.160)
If someone is crushing you, you are motivated to do something about that,
John Carmack (4:53:46.160)
to up your attributes and be better about getting out of that.
Lex Fridman (4:53:49.160)
Up your attributes, yes.
Lex Fridman (4:53:51.160)
But there's also that sense that I was not a sports guy.
Lex Fridman (4:53:57.160)
I did do wrestling in junior high.
Lex Fridman (4:53:59.160)
And I often wish that, I think I would have been good for me
Lex Fridman (4:54:03.160)
if I'd carried that on into high school and had a little bit more of that.
John Carmack (4:54:07.160)
I mean, it's like I, you know, filch a little bit of wrestling vibe
Lex Fridman (4:54:10.160)
with always going on about embracing the grind and like that push
John Carmack (4:54:14.160)
that I associate with the wrestling team that in hindsight,
Lex Fridman (4:54:18.160)
I wish I had gone through that and pushed myself that way.
Lex Fridman (4:54:21.160)
But even getting back into Judo and Jiu Jitsu in my mid 30s,
Lex Fridman (4:54:25.160)
as usually the old man on the mat with that, there was still the, you know,
John Carmack (4:54:30.160)
the sense that, you know, working out with the group
Lex Fridman (4:54:34.160)
and having the guys that you're beating each other up with it,
Lex Fridman (4:54:38.160)
but you just feel good coming out of it.
Lex Fridman (4:54:41.160)
And I can remember those driving home aching in various ways
Lex Fridman (4:54:46.160)
and just thinking, it's like, oh, that was really great.
Lex Fridman (4:54:49.160)
And, you know, it's mixing with a bunch of people that had nothing to do
John Carmack (4:54:53.160)
with any of the things that I worked with.
Lex Fridman (4:54:55.160)
You know, every once in a while, someone would be like,
John Carmack (4:54:57.160)
oh, you're the Doom guy.
Lex Fridman (4:54:59.160)
But for the most part, it was just different slice of life.
John Carmack (4:55:02.160)
You know, a good thing.
Lex Fridman (4:55:04.160)
And I made the call when I was 40.
John Carmack (4:55:07.160)
That's like, maybe I'm getting a little old for this.
Lex Fridman (4:55:09.160)
I had separated a rib and tweaked a few things.
Lex Fridman (4:55:12.160)
And I got out of it without any really bad injuries.
Lex Fridman (4:55:15.160)
And it was like, have I dodged enough bullets?
Lex Fridman (4:55:18.160)
Should I, you know, should I hang it up?
Lex Fridman (4:55:20.160)
I went back.
John Carmack (4:55:21.160)
I've gone a couple of times in the last decade
Lex Fridman (4:55:24.160)
trying to get my kids into it a little bit.
John Carmack (4:55:26.160)
I didn't really stick with any of them,
Lex Fridman (4:55:28.160)
but it was fun to get back on the mats.
John Carmack (4:55:30.160)
It really hurts for a while when you haven't gone for a while.
Lex Fridman (4:55:34.160)
But I still debate this pretty constantly.
John Carmack (4:55:37.160)
My brother's only a year younger than me,
Lex Fridman (4:55:39.160)
and he's going kind of hard in jiu jitsu right now.
John Carmack (4:55:42.160)
You know, he won a few medals at the last tournament he was at.
Lex Fridman (4:55:46.160)
So he's competing, too.
John Carmack (4:55:47.160)
Yeah, and I was thinking, yeah, I guess we're in the executive division
Lex Fridman (4:55:50.160)
if you're over 50 or over 45 or something.
Lex Fridman (4:55:53.160)
And it's not out of the question that I go back at some point to do some of this.
Lex Fridman (4:55:58.160)
But again, I'm just reorganizing my life around more focus.
John Carmack (4:56:02.160)
Probably not going to happen.
Lex Fridman (4:56:04.160)
I'm pushing my exercise around to give me a longer,
John Carmack (4:56:07.160)
uninterrupted intellectual focus time,
Lex Fridman (4:56:09.160)
pushing it to the beginning or the end of the game.
John Carmack (4:56:11.160)
Like running and stuff like that, walking.
Lex Fridman (4:56:13.160)
Yeah, I got running and calisthenics and some things like that.
John Carmack (4:56:17.160)
It allows you to still think about a problem.
Lex Fridman (4:56:19.160)
But if you're going to a judo club or something, you've got it fixed.
John Carmack (4:56:23.160)
It's going to be 7 o clock or whatever, 10 o clock on Saturday.
Lex Fridman (4:56:26.160)
Although, I talked about this a little bit when I was on Rogan.
Lex Fridman (4:56:30.160)
And shortly after that, Carlos Machado did reach out.
Lex Fridman (4:56:33.160)
And I had trained with him for years back in the day.
Lex Fridman (4:56:36.160)
And he was like, hey, we've got kind of a small private club
Lex Fridman (4:56:39.160)
with a bunch of executive type people.
Lex Fridman (4:56:42.160)
And it does tempt me.
Lex Fridman (4:56:45.160)
Yeah, I don't know if you know him, but John Donahart moved here to Austin
John Carmack (4:56:50.160)
with Gordon Ryan and a few other folks.
John Carmack (4:56:53.160)
He has a very interesting way, very deep systematic way of thinking about jiu jitsu
John Carmack (4:56:58.160)
that reveals the chest of it, the science of it.
Lex Fridman (4:57:06.160)
And I do think about that more as kind of an older person
John Carmack (4:57:09.160)
considering the martial arts where I can remember the very earliest days
Lex Fridman (4:57:13.160)
getting back into judo and I'm like, teach me submissions right now.
John Carmack (4:57:17.160)
It's like, learn the arm bar, learn the choke.
Lex Fridman (4:57:19.160)
But as you get older, you start thinking more about,
John Carmack (4:57:22.160)
it's like, okay, I really do want to like learn the entire canon of judo.
John Carmack (4:57:26.160)
It's like all the different things there and like all the different approaches for it.
John Carmack (4:57:30.160)
Not just the, you know, if you want to compete,
Lex Fridman (4:57:32.160)
there's just a handful of things you learn really, really well.
Lex Fridman (4:57:34.160)
But sometimes there's interest in learning a little bit more of the scope there
Lex Fridman (4:57:38.160)
and figuring some things out from, you know, at one point I had wasn't exactly a spreadsheet,
Lex Fridman (4:57:43.160)
but I did have a big long text file with like, here's the things that I learned
Lex Fridman (4:57:47.160)
and here are like ways you chain this together.
Lex Fridman (4:57:50.160)
And while, when I went back a few years ago,
Lex Fridman (4:57:53.160)
it was good to see that I whipped myself back into reasonable shape
John Carmack (4:57:57.160)
about doing the basic grappling.
Lex Fridman (4:57:58.160)
But I know there was a ton of the subtleties that were just, that were gone,
Lex Fridman (4:58:02.160)
but could probably be brought back reasonably quickly.
Lex Fridman (4:58:05.160)
And there's also the benefit.
John Carmack (4:58:06.160)
I mean, you're exceptionally successful now.
Lex Fridman (4:58:11.160)
You're brilliant.
Lex Fridman (4:58:13.160)
And the problem, the old problem of the ego.
Lex Fridman (4:58:16.160)
Yeah.
John Carmack (4:58:17.160)
I still pushed kind of harder than I should.
Lex Fridman (4:58:20.160)
I mean, that was, I was one of those people that I, you know,
John Carmack (4:58:23.160)
I'm on the smaller side for a lot of the people competing and I would, you know,
Lex Fridman (4:58:28.160)
I'd go with all the big guys and I'd go hard and I'd push myself a lot.
Lex Fridman (4:58:32.160)
And that would be one of those where I would, you know,
Lex Fridman (4:58:36.160)
I'd be dangerous to anyone for the first five minutes,
Lex Fridman (4:58:38.160)
but then sometimes after that I'm already dead.
Lex Fridman (4:58:40.160)
And I knew it was terrible for me because it made the, you know,
John Carmack (4:58:44.160)
it meant I got less training time with all of that when you go and you just gas
Lex Fridman (4:58:48.160)
out relatively quickly there.
Lex Fridman (4:58:50.160)
And I like to think that I would be better about that where after I gave up judo,
Lex Fridman (4:58:55.160)
I started doing the half marathons and tough butters and things like that.
Lex Fridman (4:58:58.160)
And so when I did go back to the local judokai club, I thought it's like, oh,
Lex Fridman (4:59:03.160)
I should have better cardio for this because I'm a runner now and I do all of
John Carmack (4:59:06.160)
this and didn't work out that way.
Lex Fridman (4:59:08.160)
It was the same old thing where just push really hard, strain really hard.
Lex Fridman (4:59:12.160)
And of course, when I worked with good guys like Carlos, it's like just the
Lex Fridman (4:59:17.160)
whole flow like water thing is real and he's just like.
John Carmack (4:59:20.160)
That's true with judo too.
Lex Fridman (4:59:21.160)
Some of the best people like I've trained with Olympic gold medalists and for
John Carmack (4:59:26.160)
some reason with them, everything's easier.
Lex Fridman (4:59:29.160)
Everything is you actually start to feel the science of it, the music of it,
John Carmack (4:59:35.160)
the dance of it.
Lex Fridman (4:59:36.160)
Everything is effortless.
John Carmack (4:59:39.160)
You understand that there's an art to it.
Lex Fridman (4:59:42.160)
It's not just an exercise.
John Carmack (4:59:43.160)
It was interesting where I did go to the Kodokan in Japan.
Lex Fridman (4:59:46.160)
I kind of the birthplace of judo and everything.
Lex Fridman (4:59:49.160)
And I remember I rolled with one old guy.
Lex Fridman (4:59:51.160)
I didn't didn't start standing, just started on groundwork and it was and it
John Carmack (4:59:56.160)
was striking how different it was from Carlos.
Lex Fridman (4:59:58.160)
He was still he was better than me and he got my arm and I had to tap there.
John Carmack (50:01.940)
If you really dedicate yourself completely
Lex Fridman (50:03.820)
to making the sushi, to really putting in the long hours,
John Carmack (50:08.020)
day after day after day, you become a true craftsman
Lex Fridman (50:12.540)
of the thing you're doing.
John Carmack (50:14.380)
Now there's, of course, discussions about
Lex Fridman (50:16.300)
are you sacrificing a lot of personal relationships?
John Carmack (50:18.940)
Are you sacrificing a lot of other possible things
Lex Fridman (50:21.740)
you could do with that time?
Lex Fridman (50:22.780)
But if you're talking about purely being a master
Lex Fridman (50:28.220)
or a craftsman of your art,
John Carmack (50:30.660)
that more hours isn't just about doing more,
Lex Fridman (50:34.980)
it's about becoming better at the thing you're doing.
John Carmack (50:37.300)
Yeah, and I don't gainsay anybody
Lex Fridman (50:38.780)
that wants to work the minimum amount.
John Carmack (50:41.180)
They've got other priorities in their life.
Lex Fridman (50:42.980)
My only argument that I'm making,
John Carmack (50:44.660)
it's not that everybody should work hard,
Lex Fridman (50:46.980)
it's that if you want to accomplish something,
John Carmack (50:49.380)
working longer and harder
Lex Fridman (50:50.820)
is the path to getting it accomplished.
John Carmack (50:53.340)
Well, let me ask you about this then,
Lex Fridman (50:56.180)
the mythical work life balance.
John Carmack (51:01.180)
For an engineer, it seems like
Lex Fridman (51:03.060)
that's one of the professions for a programmer
John Carmack (51:07.260)
where working hard does lead to greater productivity in it.
Lex Fridman (51:12.260)
But it also raises the question of
John Carmack (51:17.020)
sort of personal relationships and all that kind of stuff,
Lex Fridman (51:19.660)
family, and how are you able to find work life balance?
John Carmack (51:24.300)
Is there advice you can give,
Lex Fridman (51:25.740)
maybe even outside of yourself?
John Carmack (51:27.580)
Have you been able to arrive at any wisdom
Lex Fridman (51:29.900)
on this part in your years of life?
John Carmack (51:32.380)
I do think that there's a wide range of people
Lex Fridman (51:34.580)
where different people have different needs.
John Carmack (51:36.760)
It's not a one size fits all.
Lex Fridman (51:38.660)
I am certainly what works for me.
John Carmack (51:40.740)
I can tell enough that I'm different
Lex Fridman (51:45.140)
than a typical average person
John Carmack (51:46.620)
in the way things impact me,
Lex Fridman (51:48.620)
the things that I want to do,
John Carmack (51:50.300)
my goals are different,
Lex Fridman (51:51.540)
and sort of the levers to impact things are different,
John Carmack (51:55.160)
where I have literally never felt burnout,
Lex Fridman (51:59.540)
and I know there's lots of brilliant, smart people
John Carmack (52:02.060)
that do world leading work that get burned out,
Lex Fridman (52:05.340)
and it's never hit me.
John Carmack (52:08.060)
I've never been at a point where I'm like,
Lex Fridman (52:11.700)
I just don't care about this.
John Carmack (52:13.200)
I don't want to do this anymore.
Lex Fridman (52:14.780)
But I've always had the flexibility
John Carmack (52:16.420)
to work on lots of interesting things.
Lex Fridman (52:18.900)
I can always just turn my gaze to something else
Lex Fridman (52:21.480)
and have a great time working on that.
Lex Fridman (52:23.500)
And so much of the ability to actually work hard
John Carmack (52:27.140)
is the ability to have multiple things to choose from
Lex Fridman (52:29.620)
and to use your time on the most appropriate thing.
John Carmack (52:33.100)
There are time periods where it's the best time
Lex Fridman (52:36.940)
for me to read a new research paper
John Carmack (52:38.460)
that I need to really be thinking hard about it.
Lex Fridman (52:41.380)
Then there's a time that maybe I should just scan
Lex Fridman (52:43.420)
and organize my old notes
Lex Fridman (52:44.760)
because I'm just not on top of things.
John Carmack (52:47.160)
Then there's the time that,
Lex Fridman (52:48.420)
all right, let's go bang out a few hundred lines of code
John Carmack (52:51.520)
for something.
Lex Fridman (52:52.700)
So switching between them has been real valuable.
Lex Fridman (52:57.180)
So you'll always have kind of joy in your heart
Lex Fridman (52:59.780)
for all the things you're doing,
Lex Fridman (53:01.000)
and that is a kind of work life balance
Lex Fridman (53:03.260)
as a first sort of step.
John Carmack (53:04.820)
Yeah, I do. So you're always happy.
Lex Fridman (53:06.420)
I do.
John Carmack (53:07.260)
Well, happy.
Lex Fridman (53:08.460)
Yeah, I mean, that's like a lot of people would say
John Carmack (53:10.420)
that often I look like kind of a grim person,
Lex Fridman (53:12.580)
you know, with just sitting there with a neutral expression
John Carmack (53:15.100)
or even like knitted brows and a frown on my face
Lex Fridman (53:17.500)
as I'm staring at something.
John Carmack (53:18.980)
That's what happiness looks like for you.
Lex Fridman (53:20.660)
Yeah, it's kind of true where that it's like,
John Carmack (53:24.020)
okay, I'm pushing through this, I'm making progress here.
Lex Fridman (53:27.300)
I know that doesn't work for everyone.
John Carmack (53:30.140)
I know it doesn't work for most people.
Lex Fridman (53:33.100)
But what I am always trying to do in those cases
John Carmack (53:35.460)
is I don't want to let somebody
Lex Fridman (53:37.020)
that might be a person like that be told by someone else
John Carmack (53:40.500)
that no, don't even try that out as an option
Lex Fridman (53:44.180)
where work life balance versus kind of your life's work
John Carmack (53:48.740)
where there's a small subset of the people
Lex Fridman (53:51.740)
that can be very happy being obsessive about things.
John Carmack (53:55.540)
And, you know, obsession can often get things done
Lex Fridman (53:58.940)
that just practical, prudent, pedestrian work won't
John Carmack (54:03.180)
or at least won't for a very long time.
Lex Fridman (54:05.900)
There's legends of your nutritional intake
John Carmack (54:10.220)
in the early days.
Lex Fridman (54:11.500)
What can you say about sort of as a, you know,
Lex Fridman (54:15.580)
being a programmer as a kind of athlete?
Lex Fridman (54:17.900)
So what was the nutrition that fueled?
John Carmack (54:21.420)
I have never been that great on really paying attention
Lex Fridman (54:25.780)
to it where I'm good enough that I don't eat a lot.
John Carmack (54:29.380)
You know, I've never been like a big heavy guy,
Lex Fridman (54:31.620)
but it was interesting where one of the things
John Carmack (54:34.260)
that I can remember being an unhappy teenager,
Lex Fridman (54:36.660)
not having enough money and like,
John Carmack (54:38.540)
one of the things that bothered me
Lex Fridman (54:40.060)
about not having enough money
John Carmack (54:41.140)
is I couldn't buy pizza whenever I wanted to.
Lex Fridman (54:43.380)
So I got rich and then I bought a whole lot of pizza.
Lex Fridman (54:46.500)
So that was defining, like, that's what being rich felt like.
Lex Fridman (54:50.100)
A lot of the little things, like I could buy all the pizza
Lex Fridman (54:52.420)
and comic books and video games that I wanted to.
Lex Fridman (54:55.740)
And it really didn't take that much,
Lex Fridman (54:58.820)
but the pizza was one of those things
Lex Fridman (55:00.940)
that it's absolutely true that for a long time
John Carmack (55:03.420)
at id Software, I had a pizza delivered every single day.
Lex Fridman (55:06.460)
You know, the delivery guy knew me by name
Lex Fridman (55:09.020)
and I didn't find out until years later
Lex Fridman (55:11.620)
that apparently I was such a good customer
John Carmack (55:13.860)
that they just never raised the price on me.
Lex Fridman (55:15.780)
And I was using this six year old price for the pizzas
John Carmack (55:18.820)
that they were still kind of sending my way every day.
Lex Fridman (55:21.500)
So you were doing eating once a day or were you?
John Carmack (55:25.940)
It would be spread out.
Lex Fridman (55:26.820)
You know, you have a few pieces of pizza,
John Carmack (55:28.100)
you have some more later on
Lex Fridman (55:29.300)
and I'd maybe have something at home.
John Carmack (55:31.820)
It was one of the nice things that Facebook Meta
Lex Fridman (55:34.580)
is they feed you quite well.
John Carmack (55:36.820)
You get a different, I guess now it's DoorDash
Lex Fridman (55:39.460)
sorts of things delivered,
Lex Fridman (55:40.580)
but they take care of making sure
Lex Fridman (55:42.580)
that everybody does get well fed.
Lex Fridman (55:44.340)
And I probably had better food those six years
Lex Fridman (55:47.460)
that I was working in the Meta office there
John Carmack (55:49.540)
than I used to before.
Lex Fridman (55:51.620)
But it's worked out okay for me.
John Carmack (55:53.860)
My health has always been good.
Lex Fridman (55:55.220)
I get a pretty good amount of exercise
Lex Fridman (55:57.700)
and I don't eat to excess
Lex Fridman (55:59.940)
and I avoid a lot of other kind of not so good
John Carmack (56:02.660)
for you things.
Lex Fridman (56:03.660)
So I'm still doing quite well at my age.
John Carmack (56:05.620)
Did you have a kind of, I don't know,
Lex Fridman (56:10.140)
spiritual experience with food or coffee
Lex Fridman (56:13.620)
or any of that kind of stuff?
Lex Fridman (56:15.060)
I mean, you know, the programming experience,
John Carmack (56:17.500)
you know, with music or like I listen to brown noise
Lex Fridman (56:21.300)
on a program or like creating an environment
Lex Fridman (56:24.300)
and the things you take into your body,
Lex Fridman (56:26.100)
just everything you construct
John Carmack (56:27.940)
can become a kind of ritual
Lex Fridman (56:29.580)
that empowers the whole process, the programming.
Lex Fridman (56:32.180)
Did you have that relationship with pizza or?
Lex Fridman (56:34.620)
It would really be with Diet Coke.
John Carmack (56:35.940)
I mean, there still is that sense of, you know,
Lex Fridman (56:38.060)
drop the can down, crack open the can of Diet Coke.
John Carmack (56:40.500)
All right, now I mean business.
Lex Fridman (56:41.860)
We're getting to work here.
Lex Fridman (56:44.020)
Still to this day?
Lex Fridman (56:45.100)
Yeah.
Lex Fridman (56:45.940)
Is Diet Coke still a part of it?
Lex Fridman (56:46.860)
Yeah, probably eight or nine a day.
John Carmack (56:49.500)
Nice.
Lex Fridman (56:50.340)
Okay, what about your setup?
Lex Fridman (56:52.060)
How many screens?
Lex Fridman (56:53.980)
What kind of keyboard?
Lex Fridman (56:55.060)
Is there something interesting?
Lex Fridman (56:56.100)
What kind of IDE, Emacs Vim or something modern?
John Carmack (57:02.020)
Linux, what operating system laptop
Lex Fridman (57:04.100)
or any interesting thing that brings you joy?
Lex Fridman (57:06.980)
So I kind of migrated cultures
Lex Fridman (57:09.140)
where early on through all of game dev,
John Carmack (57:11.420)
there was sort of one culture there,
Lex Fridman (57:13.180)
which was really quite distinct
John Carmack (57:14.580)
from the more the Silicon Valley venture,
Lex Fridman (57:17.220)
you know, culture for things.
John Carmack (57:19.180)
They're different groups
Lex Fridman (57:20.140)
and they have pretty different mores
Lex Fridman (57:21.860)
and the way they think about things where,
Lex Fridman (57:24.540)
and I still do think a lot of the big companies
John Carmack (57:26.540)
can learn things from the hardcore game development
Lex Fridman (57:30.500)
side of things where it still boggles my mind
Lex Fridman (57:32.940)
how hostile to debuggers and IDEs that so much of them,
Lex Fridman (57:39.140)
the kind of big money, get billions of dollars,
John Carmack (57:41.660)
Silicon Valley venture backed funds are.
Lex Fridman (57:44.380)
Oh, that's interesting.
John Carmack (57:45.220)
Sorry, so you're saying like big companies
Lex Fridman (57:48.100)
like Google and Meta are hostile to?
John Carmack (57:50.180)
They are not big on debuggers and IDEs.
Lex Fridman (57:52.780)
Like so much of it is like Emacs, Vim for things.
Lex Fridman (57:55.740)
And we just assume that debuggers don't work
Lex Fridman (57:58.820)
most of the time for the systems.
Lex Fridman (58:01.060)
And a lot of this comes from a sort of Linux bias
Lex Fridman (58:03.780)
on a lot of things where I did come up
John Carmack (58:06.420)
through the personal computers and then the DOS
Lex Fridman (58:09.060)
and then Windows and it was Borland tools
Lex Fridman (58:14.020)
and then Visual Studio and.
Lex Fridman (58:16.740)
Do you appreciate the buggers?
John Carmack (58:18.500)
Very much so.
Lex Fridman (58:19.340)
I mean, a debugger is how you get a view into a system
John Carmack (58:22.020)
that's too complicated to understand.
Lex Fridman (58:23.860)
I mean, anybody that thinks just read the code
Lex Fridman (58:25.780)
and think about it.
Lex Fridman (58:26.780)
That's an insane statement in the,
John Carmack (58:28.620)
you can't even read all the code on a big system.
Lex Fridman (58:31.020)
You have to do experiments on the system
Lex Fridman (58:34.100)
and doing that by adding log statements,
Lex Fridman (58:36.900)
recompiling and rerunning it
John Carmack (58:39.060)
is an incredibly inefficient way of doing it.
Lex Fridman (58:41.140)
I mean, yes, you can always get things done
John Carmack (58:43.500)
even if you're working with stone knives and bear skins.
Lex Fridman (58:46.380)
That is the mark of a good programmer
John Carmack (58:48.780)
is that given any tools,
Lex Fridman (58:50.420)
you will figure out a way to get it done,
Lex Fridman (58:52.500)
but it's amazing what you can do
Lex Fridman (58:54.820)
with sometimes much, much better tools
John Carmack (58:57.140)
where instead of just going through this iterative
Lex Fridman (58:59.900)
compile run debug cycle,
John Carmack (59:02.100)
you have the old Lisp direction of like,
Lex Fridman (59:05.060)
you've got a REPL and you're working interactively
Lex Fridman (59:07.020)
and doing amazing things there.
Lex Fridman (59:08.340)
But in many cases, a debugger
John Carmack (59:10.380)
as a very powerful user interface that can stop,
Lex Fridman (59:13.380)
examine all the different things in your program,
John Carmack (59:15.500)
set all of these different breakpoints.
Lex Fridman (59:16.940)
And of course you can do that with GDB or whatever there,
Lex Fridman (59:20.180)
but this is one of the user interface
Lex Fridman (59:22.780)
fundamental principles
John Carmack (59:23.980)
where when something is complicated to do,
Lex Fridman (59:26.620)
you won't use it very often.
John Carmack (59:28.460)
There's people that will break out GDB
Lex Fridman (59:30.620)
when they're at their wits end
Lex Fridman (59:31.940)
and they just have beat their head
Lex Fridman (59:33.260)
against a problem for so long.
Lex Fridman (59:35.180)
But for somebody that kind of grew up in game dev,
Lex Fridman (59:37.860)
it's like they were running into the debugger anyways
John Carmack (59:40.060)
before they even knew there was a problem.
Lex Fridman (59:42.140)
And you would just stop and see what was happening.
Lex Fridman (59:44.820)
And sometimes you could fix things
Lex Fridman (59:46.340)
even before you did one compile cycle.
John Carmack (59:50.580)
You could be in the debugger and you would say,
Lex Fridman (59:52.160)
well, I'm just going to change this right here.
Lex Fridman (59:54.220)
And yep, that did the job and fix it and go on.
Lex Fridman (59:57.020)
And for people who don't know,
John Carmack (59:57.860)
GDB is a sort of popular, I guess, Linux debugger
Lex Fridman (5:00:02.160)
But it was a completely different style where I just felt like I could do
John Carmack (5:00:06.160)
nothing.
Lex Fridman (5:00:06.160)
He was just enveloping me and just like slowly grounded down with my arm and
John Carmack (5:00:10.160)
bent it while with Carlos, you know, he's just loose and free.
Lex Fridman (5:00:14.160)
And you always thought like, oh, you're just going to go grab something.
Lex Fridman (5:00:16.160)
But you never had any chance to do it.
Lex Fridman (5:00:18.160)
But it was very different feeling.
John Carmack (5:00:19.160)
That's a good summary of the difference between jiu jitsu and judo and jiu
Lex Fridman (5:00:23.160)
jitsu.
John Carmack (5:00:23.160)
There's it is a dance and you feel like there's a freedom and actually anybody
Lex Fridman (5:00:29.160)
like the Gordon Ryan, one of the best the best grappler in the world.
John Carmack (5:00:33.160)
Nogi grappler in the world. There's a feeling like you can do anything.
Lex Fridman (5:00:37.160)
But when you actually try to do something, you can't just magically doesn't
John Carmack (5:00:42.160)
work.
Lex Fridman (5:00:42.160)
But with the best judo players in the world, it does feel like there's a
John Carmack (5:00:47.160)
blanket that weighs a thousand pounds on top of you.
Lex Fridman (5:00:49.160)
And there's not a feeling like you can do anything.
John Carmack (5:00:52.160)
You just you're trapped.
Lex Fridman (5:00:54.160)
And that's a that's a style that's a difference in the style of martial
John Carmack (5:00:58.160)
arts. But it's also once you start to study, you understand it all has to
Lex Fridman (5:01:03.160)
do with human movement and the physics of it and the leverage and all that
John Carmack (5:01:06.160)
kind of stuff.
Lex Fridman (5:01:07.160)
And that's like that's super fascinating.
John Carmack (5:01:09.160)
At the end of the day, for me, the biggest benefits and the humbling
Lex Fridman (5:01:13.160)
aspect when another human being kind of tells you that, you know, there's
John Carmack (5:01:19.160)
a hierarchy or there's a you're not that special.
Lex Fridman (5:01:25.160)
And in the most extreme case, when you tap to a choke, you are basically
John Carmack (5:01:29.160)
living because somebody let you live.
Lex Fridman (5:01:31.160)
And that's that is one of those.
John Carmack (5:01:33.160)
If you think about it, that is a closer brush with mortality than than most
Lex Fridman (5:01:37.160)
people consider.
Lex Fridman (5:01:40.160)
And that kind of humbling act is good to take to your work then where it's
Lex Fridman (5:01:46.160)
harder to get humbled.
John Carmack (5:01:48.160)
Yeah.
Lex Fridman (5:01:49.160)
Nobody's nobody that does any martial art is coming out thinking I'm the
John Carmack (5:01:52.160)
best in the world at anything because everybody loses.
Lex Fridman (5:01:57.160)
Let me ask you for advice.
Lex Fridman (5:01:59.160)
What advice would you give to young people today about life, about career,
Lex Fridman (5:02:05.160)
how they can have a job, how they can have an impact, how they can have a
John Carmack (5:02:10.160)
life they could be proud of.
Lex Fridman (5:02:12.160)
So it was kind of fun.
John Carmack (5:02:14.160)
I got invited to give the commencement speech back at the I went to college
Lex Fridman (5:02:18.160)
for two semesters and dropped out and went on to do my tech stuff.
Lex Fridman (5:02:23.160)
But they still wanted me to come back and give a commencement speech.
Lex Fridman (5:02:26.160)
And I've got that pinned on my Twitter account.
John Carmack (5:02:29.160)
I still feel good about everything that I said there.
Lex Fridman (5:02:32.160)
And my biggest point was that the path for me might not be the path for
John Carmack (5:02:37.160)
everyone.
Lex Fridman (5:02:38.160)
And in fact, the advice, the path that I took and even the advice that I
John Carmack (5:02:42.160)
would give based on my experience and learnings probably isn't the best
Lex Fridman (5:02:47.160)
advice for everyone.
John Carmack (5:02:48.160)
Because what I did was all about this knowledge in depth.
Lex Fridman (5:02:52.160)
It was about not just having this surface level ability to make things do
Lex Fridman (5:02:56.160)
what I want, but to really understand them through and through.
Lex Fridman (5:02:59.160)
To let me do the systems engineering work and to sometimes find these
John Carmack (5:03:04.160)
inefficiencies that can be bypassed.
Lex Fridman (5:03:06.160)
And the whole world doesn't need that.
John Carmack (5:03:09.160)
Most programmers or engineers of any kind don't necessarily need to do that.
Lex Fridman (5:03:14.160)
They need to do a little job that's been parceled out to them.
John Carmack (5:03:17.160)
Be reliable.
Lex Fridman (5:03:18.160)
Let people depend on you.
John Carmack (5:03:20.160)
Do quality work with all of that.
Lex Fridman (5:03:22.160)
But people that do have an inclination for wanting to know things deeper and
John Carmack (5:03:28.160)
learn things deeper, there are just layers and layers of things out there.
Lex Fridman (5:03:34.160)
And it's amazing.
John Carmack (5:03:36.160)
If you're the right person that is excited about that, the world's never
Lex Fridman (5:03:41.160)
been like this before.
John Carmack (5:03:42.160)
It's better than ever.
Lex Fridman (5:03:43.160)
I mean, everything that was wonderful for me is still there, and there's
John Carmack (5:03:47.160)
whole new worlds to explore on the different things that you can do.
Lex Fridman (5:03:51.160)
And that, you know, it's hard work.
John Carmack (5:03:54.160)
Embrace the grind with it.
Lex Fridman (5:03:56.160)
And understand as much as you can.
Lex Fridman (5:03:59.160)
And then be prepared for opportunities to present themselves.
Lex Fridman (5:04:03.160)
Where you can't just say this is my goal in life and just push at that.
John Carmack (5:04:07.160)
I mean, you might be able to do that, but you're going to make more total
Lex Fridman (5:04:10.160)
progress if you say I'm preparing myself with this broad set of tools.
Lex Fridman (5:04:15.160)
And then I'm being aware of all the way things are changing as I move through
Lex Fridman (5:04:19.160)
the world and as the whole world changes around me.
Lex Fridman (5:04:22.160)
And then looking for opportunities to deploy the tools that you've built.
Lex Fridman (5:04:26.160)
And there's going to be more and more of those types of things there where an
John Carmack (5:04:31.160)
awareness of what's happening, where the inefficiencies are, what things can
Lex Fridman (5:04:35.160)
be done, what's possible versus what's current practice.
Lex Fridman (5:04:38.160)
And then finding those areas where you can go and make an adjustment and make
Lex Fridman (5:04:43.160)
something that may affect millions or billions of people in the world.
John Carmack (5:04:47.160)
Make it better.
Lex Fridman (5:04:49.160)
When, maybe from your own example, how were you able to recognize this about
John Carmack (5:04:53.160)
yourself that you saw the layers in a particular thing and you were drawn to
Lex Fridman (5:04:58.160)
discovering deeper and deeper truths about it?
John Carmack (5:05:01.160)
Is that something that was obvious to you that you couldn't help or is there some
Lex Fridman (5:05:05.160)
actions you had to take to actually allow yourself to dig deep?
Lex Fridman (5:05:08.160)
So in the earliest days of personal computers, I remember the reference
Lex Fridman (5:05:12.160)
manuals and the very early ones even had schematics of computers in the
John Carmack (5:05:16.160)
background, in the back of the books, as well as firmware listings and things.
Lex Fridman (5:05:21.160)
And I could look at that.
Lex Fridman (5:05:23.160)
And at that time, when I was a younger teenager, I didn't understand a lot of
Lex Fridman (5:05:27.160)
that stuff, how the different things worked.
John Carmack (5:05:30.160)
I was pulling out the information that I could get, but I always wanted to know
Lex Fridman (5:05:34.160)
all of that.
John Carmack (5:05:35.160)
There was kind of magical information sitting down there.
Lex Fridman (5:05:38.160)
It's like the elder lore that some gray beard wizard is the keeper of.
Lex Fridman (5:05:43.160)
And so I always felt that pull for wanting to know more, wanting to explore
Lex Fridman (5:05:48.160)
the mysterious areas there.
Lex Fridman (5:05:51.160)
And that followed right in through all the things that got the value,
Lex Fridman (5:05:55.160)
exploring the video cards leading to the scrolling advantages,
John Carmack (5:06:00.160)
exploring some of the academic papers and things, learning about BSP trees
Lex Fridman (5:06:04.160)
and the different things that I could do with those systems and just the huge
John Carmack (5:06:10.160)
larval phases going through aerospace, just reading bookshelves full of books.
Lex Fridman (5:06:15.160)
Again, that point where I have enough money, I can buy all the books I want.
John Carmack (5:06:18.160)
It was so valuable there where I was terrible with my money when I was a kid.
Lex Fridman (5:06:23.160)
My mom thought I would always be broke because I'd buy my comic books
Lex Fridman (5:06:27.160)
and just be out of money.
Lex Fridman (5:06:28.160)
But it was like all the pizza I want, all the Diet Coke I want,
John Carmack (5:06:32.160)
video games and then books.
Lex Fridman (5:06:34.160)
And it didn't take that much.
John Carmack (5:06:36.160)
As soon as I was making 27K a year, I felt rich and I was just getting
Lex Fridman (5:06:40.160)
all the things that I wanted.
Lex Fridman (5:06:42.160)
But that sense of books have always been magical to me.
Lex Fridman (5:06:46.160)
And that was one of the things that really made me smile is Andre had said
John Carmack (5:06:50.160)
when he came over to my house, he said he found my library inspiring.
Lex Fridman (5:06:54.160)
And it was great to see.
John Carmack (5:06:55.160)
I used to look at him.
Lex Fridman (5:06:56.160)
He's kind of a younger guy.
John Carmack (5:06:57.160)
I sometimes wonder if younger people these days have the same relationship
Lex Fridman (5:07:01.160)
with books that I do where they were such a cornerstone for me in so many ways.
Lex Fridman (5:07:06.160)
But that sense that, yeah, I always wanted to know it all.
Lex Fridman (5:07:08.160)
I know I can't.
Lex Fridman (5:07:09.160)
And that was like one of the last things I said.
Lex Fridman (5:07:11.160)
You can't know everything, but you should convince yourself
John Carmack (5:07:14.160)
that you can know anything.
Lex Fridman (5:07:16.160)
Any one particular thing, it was created and discovered by humans.
John Carmack (5:07:20.160)
You can learn it.
Lex Fridman (5:07:21.160)
You can find out what you need on there.
Lex Fridman (5:07:23.160)
And you can learn it deeply.
Lex Fridman (5:07:24.160)
Yeah.
Lex Fridman (5:07:25.160)
And you can drive a nail down through whatever layer cake problem space
Lex Fridman (5:07:29.160)
you've got and learn a cross section there.
Lex Fridman (5:07:32.160)
And not only can you have an impact doing that,
Lex Fridman (5:07:34.160)
you can attain happiness doing that.
John Carmack (5:07:37.160)
There's something so fulfilling about becoming a craftsman of a thing.
Lex Fridman (5:07:41.160)
Yeah.
Lex Fridman (5:07:42.160)
And I don't want to tell people that, look, this is a good career move.
Lex Fridman (5:07:45.160)
Just grit your teeth and bear it.
John Carmack (5:07:48.160)
You want people.
Lex Fridman (5:07:50.160)
And I do think it is possible sometimes to find the joy in something.
John Carmack (5:07:54.160)
Like it might not immediately appeal to you.
Lex Fridman (5:07:56.160)
But I had told people early on, like in software times,
John Carmack (5:08:00.160)
that a lot of game developers are in it just because they
Lex Fridman (5:08:04.160)
are so passionate about games.
Lex Fridman (5:08:06.160)
But I was always really more flexible in what appealed to me,
Lex Fridman (5:08:10.160)
where I said, I think I could be quite engaged doing
John Carmack (5:08:14.160)
operating system work or even database work.
Lex Fridman (5:08:17.160)
I would find the interest in that.
John Carmack (5:08:19.160)
Because I think most things that are significant in the world
Lex Fridman (5:08:22.160)
have a lot of layers and complexity to them
Lex Fridman (5:08:25.160)
and a lot of opportunities hidden within them.
Lex Fridman (5:08:28.160)
So that would probably be the most important thing to encourage to people
John Carmack (5:08:31.160)
is that you can weaponize curiosity.
Lex Fridman (5:08:35.160)
You can deploy your curiosity to find,
John Carmack (5:08:38.160)
to kind of like make things useful and valuable to you,
Lex Fridman (5:08:41.160)
even if they don't immediately appear that way.
John Carmack (5:08:44.160)
Deploy your curiosity.
Lex Fridman (5:08:45.160)
Yeah, that's very true.
John Carmack (5:08:47.160)
We've mentioned this debate point,
Lex Fridman (5:08:49.160)
whether mortality or fear of mortality is fundamental to creating an AGI.
Lex Fridman (5:08:55.160)
But let's talk about whether it's fundamental to human beings.
Lex Fridman (5:08:58.160)
Do you think about your own mortality?
John Carmack (5:09:01.160)
I really don't.
Lex Fridman (5:09:03.160)
And you probably always have to like take with a grain of salt
John Carmack (5:09:07.160)
anything somebody says about fundamental things like that.
Lex Fridman (5:09:10.160)
But I don't think about really aging, impending death,
John Carmack (5:09:16.160)
having a legacy with my children, things like that.
Lex Fridman (5:09:20.160)
And clearly it seems most of the world does a lot more than I do.
Lex Fridman (5:09:25.160)
So I mean I think I'm an outlier in that where it doesn't wind up
Lex Fridman (5:09:32.160)
being a real part of my thinking and motivation about things.
Lex Fridman (5:09:36.160)
So daily existence is about sort of the people you love
Lex Fridman (5:09:41.160)
and the problems before you.
Lex Fridman (5:09:44.160)
And I'm focused on what I'm working on right now.
Lex Fridman (5:09:47.160)
I do take that back.
John Carmack (5:09:49.160)
There's one aspect where the kind of finiteness of the life does impact me,
Lex Fridman (5:09:54.160)
and that is about thinking about the scope of the problems that I'm working on.
John Carmack (5:09:58.160)
When I decided to work on it, when I was like nuclear fission or AGI,
Lex Fridman (5:10:03.160)
these are big ticket things that impact large fractions of the world.
Lex Fridman (5:10:09.160)
And I was thinking to myself at some level that, okay,
Lex Fridman (5:10:12.160)
I may have a couple more swings at bat with me at full capability,
Lex Fridman (5:10:17.160)
but yes, my mental abilities will decay with age, mostly inevitably.
Lex Fridman (5:10:23.160)
I don't think it's a 0% chance that we will address some of that
John Carmack (5:10:26.160)
before it becomes a problem for me.
Lex Fridman (5:10:28.160)
I think exciting medical stuff in the next couple decades.
Lex Fridman (5:10:31.160)
But I do have this kind of vague plan that when I'm not at the top of my game
Lex Fridman (5:10:36.160)
and I don't feel that I'm in a position to put a dent in the world some way,
John Carmack (5:10:40.160)
that I'll probably wind up doing some kind of recreational retro programming
Lex Fridman (5:10:44.160)
or I'll work on something that I would not devote my life to now,
Lex Fridman (5:10:50.160)
but I can while away my time as the old man gardening in the code worlds.
Lex Fridman (5:10:56.160)
And then to step back even bigger, let me ask you about why we're here,
John Carmack (5:11:01.160)
we human beings.
Lex Fridman (5:11:03.160)
What's the meaning of it all?
Lex Fridman (5:11:05.160)
What's the meaning of life, John Carmack?
Lex Fridman (5:11:07.160)
So very similar with that last question.
John Carmack (5:11:09.160)
I know a lot of people fret about this question a lot,
Lex Fridman (5:11:12.160)
and I just really don't.
John Carmack (5:11:14.160)
I really don't give a damn.
Lex Fridman (5:11:16.160)
We are biological creatures that happenstance of evolution.
John Carmack (5:11:21.160)
We have innate drives that evolution crafted for survival
Lex Fridman (5:11:25.160)
and passing on of genetic codes.
John Carmack (5:11:28.160)
I don't find a lot of value in trying to go much deeper than that.
Lex Fridman (5:11:34.160)
I have my motivations, some of which are probably genetically coded
Lex Fridman (5:11:38.160)
and many of which are contingent on my upbringing
Lex Fridman (5:11:41.160)
and the path that I've had through my life.
John Carmack (5:11:44.160)
I don't run into like spades of depression or envy
Lex Fridman (5:11:48.160)
or anything that winds up being a challenge
Lex Fridman (5:11:52.160)
and forcing a degree of soul searching with things like that.
Lex Fridman (5:11:55.160)
I seem to be okay kind of without that.
John Carmack (5:12:00.160)
As a brilliant ant in the ant colony without looking up to the sky
Lex Fridman (5:12:04.160)
wondering why the hell am I here again.
Lex Fridman (5:12:07.160)
So the why of it, the incredible mystery of the fact that we started,
Lex Fridman (5:12:15.160)
first of all, the origin of life on Earth,
Lex Fridman (5:12:18.160)
and from that, from single cell organisms,
Lex Fridman (5:12:21.160)
the entirety of the evolutionary process took us somehow
John Carmack (5:12:24.160)
to this incredibly intelligent thing that is able to build Wolfenstein 3D
Lex Fridman (5:12:29.160)
and Doom and Quake and take a crack at the problem of AGI
Lex Fridman (5:12:34.160)
and things that eventually supersede human beings.
Lex Fridman (5:12:37.160)
That doesn't, the why of it is...
John Carmack (5:12:42.160)
It's been my experience that people that focus on,
Lex Fridman (5:12:46.160)
that don't focus on the here and now right in front of them
John Carmack (5:12:49.160)
tend to be less effective.
Lex Fridman (5:12:51.160)
I mean, it's not 100%, you know, vision matters to some people,
Lex Fridman (5:12:55.160)
but it doesn't seem to be a necessary motivator for me
Lex Fridman (5:12:59.160)
and I think that the process of getting there is usually done.
John Carmack (5:13:03.160)
It's like the magic of gradient descent.
Lex Fridman (5:13:05.160)
People just don't believe that just looking locally
John Carmack (5:13:08.160)
gets you to all of these spectacular things.
Lex Fridman (5:13:11.160)
That's been, you know, the decades of looking at
John Carmack (5:13:15.160)
really some of the smartest people in the world
Lex Fridman (5:13:17.160)
that would just push back forever against this idea
John Carmack (5:13:20.160)
that it's not this grand, sophisticated vision of everything,
Lex Fridman (5:13:24.160)
but little tiny steps, local information winds up
John Carmack (5:13:27.160)
leading to all the best answers.
Lex Fridman (5:13:29.160)
So the meaning of life is following locally
John Carmack (5:13:34.160)
wherever the gradient descent takes you.
Lex Fridman (5:13:37.160)
This was an incredible conversation,
John Carmack (5:13:39.160)
officially the longest conversation I've ever done on the podcast,
Lex Fridman (5:13:43.160)
which means a lot to me because I get to do it with one of my heroes.
John Carmack (5:13:46.160)
John, I can't tell you how much it means to me
Lex Fridman (5:13:48.160)
that you would sit down with me.
John Carmack (5:13:50.160)
You're an incredible human being.
Lex Fridman (5:13:52.160)
I can't wait what you do next, but you've already changed the world.
John Carmack (5:13:55.160)
You're an inspiration to so many people.
Lex Fridman (5:13:57.160)
And again, we haven't covered like most of what I was planning to talk about,
Lex Fridman (5:14:02.160)
so I hope we get a chance to talk someday in the future.
Lex Fridman (5:14:06.160)
I can't wait to see what you do next.
John Carmack (5:14:08.160)
Thank you so much again for talking to me.
Lex Fridman (5:14:10.160)
Thank you very much.
John Carmack (5:14:11.160)
Thanks for listening to this conversation with John Carmack.
Lex Fridman (5:14:14.160)
To support this podcast, please check out our sponsors in the description.
Lex Fridman (5:14:18.160)
And now, let me leave you with some words from John Carmack himself.
Lex Fridman (5:14:22.160)
Focused hard work is the real key to success.
John Carmack (5:14:26.160)
Keep your eyes on the goal,
Lex Fridman (5:14:28.160)
and just keep taking the next step towards completing it.
John Carmack (5:14:31.160)
If you aren't sure which way to do something,
Lex Fridman (5:14:34.160)
do it both ways and see which works better.
John Carmack (5:14:37.160)
Thank you for listening and hope to see you next time.
🔗 相关节目