Transcript
I845O57ZSy4 • John Carmack: Doom, Quake, VR, AGI, Programming, Video Games, and Rockets | Lex Fridman Podcast #309
/home/itcorpmy/itcorp.my.id/harry/yt_channel/out/lexfridman/.shards/text-0001.zst#text/0656_I845O57ZSy4.txt
Kind: captions
Language: en
I remember the reaction where he had
drawn these characters and he was slowly
moving around and like people had no
experience with 3D navigation it was all
still keyboard we didn't even have mice
uh set up at that time but slowly moving
going up picked up a key go to a wall
the wall disappears in a little
animation and there's a monster like
right there and he practically fell out
of his chair it was just like ah and
games just didn't do that you know the
games were the God's eye view you were a
little invested in your little guy you
can be like you know happy or sad when
things happen but you just did not get
that kind of startle
reaction your face something in the back
of your brain some reptile brain thing
is just going oh something just
happened and that was one of those early
points where it's like yeah this is
going to make a difference this is going
to be powerful and it's going to
matter the following is a conversation
with John carac widely considered to be
one of the greatest programmers ever he
was the co-founder of ID software and
the lead programmer on several games
that revolutionized the technology the
experience and the role of gaming in our
society including Commander Keane
Wolfenstein 3D doom and Quake he spent
many years as the CTO of oculus VR
helping to create portals into Virtual
Worlds and to define the technological
path to the metaverse at meta and now he
has been shifting some some of his
attention to the problem of artificial
general
intelligence this was the longest
conversation on this podcast at over 5
hours and still I could talk to John
many many more times and we hope to do
just that this is the Lex Freedman
podcast to support it please check out
our sponsors in the description and now
dear friends here's John
carac what was the first program you've
ever written do you remember yeah I do
so I remember being in a Radio Shack
going up to the trs8 computers and
learning just enough to be able to do 10
print John carac I and it's kind of
interesting how of course I you know
carnigan en Richie kind of standardized
hello world is the first thing that you
do in every computer programming
language and every computer but not
having any interaction with the cultures
of Unix or any other standardized things
it was just like well what am I going to
say I'm going to say my name and then
you learn how to do goto1 and have it
scroll all off the screen and that was
definitely the first thing that I wound
up doing on a computer can I ask you
programming advice I was always told in
the beginning that you're not allowed to
use go-to statements that's really bad
programming is this correct or not
jumping around code can can we look at
the philosophy and the technical uh
aspects of the go-to statement that
seems so convenient but it's supposed to
cly back in the day in basic programming
languages you didn't have proper Loops
you didn't have four whils and repeats
you know that was the land of Pascal for
people that kind of generally had access
to it back then so you had no choice but
to use Goos and as you made what were
big programs back then which were a
thousand line basic program is a really
big program they did tend to sort of
degenerate into madness uh you didn't
have good editors or code exploration
tools so you would wind up fixing things
in one place add a little patch and
there's reasons why structured
programming generally helps
understanding but go-tos aren't
poisonous sometimes they're the right
thing to do uh usually it's because
there's a a language feature missing
like nested breakes or something where
it's it can sometimes be better to do a
go-to cleanup or go-to error rather than
having multiple Flags multiple if
statements littered throughout things
but but it is rare I if you grip through
all of my code right now um I don't
think any of my current code bases would
actually have a go-to but
deep within sort of the technical
underpinnings of a major game engine
you're going to have some go-tos in a
couple places probably yeah the
infrastructure on top of like the closer
you get to the machine code the more
go-tos you're going to see the more of
these like hacks you're going to see
because uh the set of features available
to you in low-level programming
languages is not uh is limited
so print John carac when is the first
time if we could talk about love that
you fell in love with programming you
said like this this is really something
special it really was something that was
one of those love at first sight things
where just really from the time that I
understood what a computer was even I
mean I remember looking through old
encyclopedias at the black and white
photos of the IBM main frames with the
real toore tape decks and for people
nowadays it can be a little hard to
understand what the world was like then
from information gathering where I would
go to the libraries and there would be
couple books on the Shelf about
computers and they would be very out of
date even at that point just not a lot
of information but I would grab
everything that I could find and you
know devour everything whenever time or
Newsweek had some article about
computers I would like cut it out with
scissors and put it somewhere it just it
felt like this magical thing to me this
idea that the computer would just do
exactly what you told it to I mean and
there's a little bit of the genie
monkeys paw sort of issues there where
you'd better be really really careful
with what you're telling it to do but it
wasn't going to back talk you it wasn't
going to have a different point of view
it was going to carry out what you told
it to do and if you had the right
commands you could make it do these
pretty magical things and so what kind
of programs did you write at first so be
on the print John carac so I can
remember as going through the learning
process where you find at the start
you're just learning how to do the most
basic possible things and I can remember
stuff like uh uh Superman com IC that
Radio Shack commissioned to have I it's
like Superman had lost some of his super
brain and kids had to use Radio Shack
trs8 computers to do calculations for to
help him kind of complete his heroics
and I'd find little things like that um
and then get a few basic books to be
able to kind of work my way up and again
it was so precious back then I had a
couple books that would teach me
important things about it I had one book
that I could start to little learn a
little bit of assembly language from and
I'd have a few books on basic and some
things that I could get from the
libraries but I my goals in the early
days was almost always making games of
various kinds you know I had uh I loved
the arcade games and the early Atari
2600 games and being able to do some of
those things myself on the computers was
very much what I aspired to and it was a
whole journey where if you learn normal
basic you can't do any kind of an action
game you can write an adventure game you
can write things where you say what do
you do here uh get sworded attack troll
that type of thing and that can be done
in the context of basic uh but to do
things that had moving Graphics there
were only the most limited things you
could possibly do you could maybe do
breakout or pong or that sort of thing
in low resolution graphics and in fact
one of my first sort of major technical
hacks that I was kind of fond of was on
the Apple 2 computers they had a they
had a Mode called low resolution
Graphics where of course all Graphics
were low resolution back then but you
know regular low resolution Graphics it
was a grid of 40x40 pixels normally but
they could have 16 different colors and
I wanted to make a game kind of like the
uh the arcade game Vanguard just a
scrolling game and I wanted to just kind
of have it scroll vertically up and I
could move a little ship around you
could manage to do that in basic but
there's no way you could redraw the
whole screen and I remember at the time
just coming up with what felt like a
brainstorm to me where I knew enough
about the way the hardware was
controlled where the text screen and the
low resolution Graphics screen were
basically the same thing and all those
computers could scroll their text screen
reasonably you could do a listing and it
would scroll things up and I figured out
that I could kind of tweak just a couple
things that I barely understood to put
it into a graphics mode and I could draw
graphics and then I could just do a line
feed at the very bottom of the screen
and then the system would scroll it all
up using an Assembly Language routine
that I didn't know how to write back
then so I that was like this first great
hack that sort of had analoges later on
in my career for a lot of different
things so I found out that I could draw
a screen I could do a line feed at the
bottom it would scroll it up once I
could draw a couple more lines of stuff
at the bottom and that was my first way
to kind of scroll the screen which I you
know which was interesting and that that
played a big part later on in the ID
software days as well so do efficient
scroll efficient
drawing where you don't have to draw the
whole screen but you draw from the
bottom using the thing that was designed
in the hardware for text output yeah
where so much of until recently I game
design was limited by what you could
actually get the computer to do where
it's easy to say like okay I want to
scroll the screen you just redraw the
entire screen at a slight offset and
nowadays that works just fine computers
are ludicrously fast uh but up until a
decade ago or so there were all these
things everybody wanted to do but if
they knew enough programming to be able
to make it happen it would happen too
slow to be a good experience either just
ridiculously slow or just slow enough
that it wasn't fun to experience it like
that so so much of kind of the first
couple decades of the programming work
that I did was largely figuring out how
to do something that everybody knows how
they want it to to happen it just has to
happen two to 10 times faster than sort
of the straightforward way of doing
things would make it happen and it's
different now because at this point lots
of things you can just do in the most
naive possible way and it still works
out you know you don't have nearly the
creative limitations or the incentives
for optimizing on that level and there's
a lot of pros and cons to that but I do
generally you know I'm not going to do
the the angry old man shaking my fist at
the clouds bit where back in my day
programmers had to do real programming
you know it's it's amazing that you can
just kind of pick an idea and go do it
right now and you don't have to be some
Assembly Language Wizard or deep GPU
Arcanist to be able to figure out how to
make your wishes happen well there's
still see that's true but let me put on
my old man with a fist hat and say that
probably the thing that will Define the
future still requires you to operate at
the limits of the current system so
we'll probably talk about this but if
you talk about building the meterse and
building a VR experience that's
compelling it probably requires you to
not to go to assembly or maybe not
literally but sort of uh spiritually to
go to the limits of what the system is
capable of yeah and that really was why
virtual reality was um specifically
interesting to me where it had all the
ties to you could say that even back in
the early days I have some old magazine
articles that's talking about Doom as a
virtual reality experience back when
just seeing anything in 3D uh so you
could say that we've been trying to
build those virtual experiences from the
very beginning and in the modern era of
virtual reality especially on the mobile
side of things when it's Standalone and
you're basically using a cell phone chip
to be able to produce these very
immersive experiences it does require
work it's not at the level of what an
old school console game programmer would
have operated at where you're looking at
Hardware registers and you're scheduling
all the DN uh dma accesses but it is
still definitely a different level than
what a web developer or uh or even a PC
Steam game developer usually has to work
at and again it's great there's
opportunities for people that want to
operate at either end of that Spectrum
there and still provide a lot of value
to the
world let me ask you uh uh sort of a big
question about preference what would you
say is the best programming
language your favorite but also the best
you've seen throughout your career
you're considered by many to be the
greatest programmer ever I mean it's so
difficult to place that label on anyone
if but if you put it on anyone it's you
so let me ask you these kind of
ridiculous questions of what's the best
band of all time but in your case what's
the best programming language everything
has all the caveats about it but so what
I use so nowadays I I do program a
reasonable amount of python for AIML
sorts of work uh that's I'm not a a
native python programmer it's something
I came to very late in my career I
understand what it's good for dream in
Python I do not and it has some of those
things where there's some amazing stats
when you say if you just start if you
make a loop you know a triple nested
Loop and start doing operations in
Python you can be thousands to
potentially a million times slower than
a proper GPU tensor operation and these
are staggering numbers you know you can
be as much slower as we've almost gotten
faster in our I you know our pace of
progress and all this other miraculous
stuff so your intuition is about
inefficiencies within the the python
sort of it keeps hitting me upside the
face where it just it's gotten to the
point now I understand it's like okay
you just can't do a loop if you care
about performance in Python you have to
figure out how you can reformat this
into some big Vector operation or
something that's going to be done
completely within a C++ library but the
other hand is it's it's amazingly
convenient and you just see stuff that
people are able to Cobble together by
you just import a few different things
and you can do stuff that nobody on
Earth could do 10 years ago and can do
it in a little cookbook thing that you
copy pasted out of a website so that is
really great when I'm sitting down to do
what I consider kind of serious
programming it's still in C++ and it's
really kind of a CF flavored C++ at that
where I'm not big into the modern uh
template metaprogramming sorts of things
I see a lot of train wrecks coming from
some of that over
abstraction uh I spent a few years
really going kind of deep into the kind
of the historical list board work and
the hasal and some of the functional
programming sides of things and
there's there is a lot of value there in
the way you think about things and I
changed a lot of the way I write my CN
C++ code based on what I learned about
uh the value that comes out of not
having this random mutable state that
you kind of lose track of because
something that many people don't really
appreciate till they've been at it for a
long time is that it's not the writing
of the program initially it's the whole
life span of the program and that's when
it's not necessarily just how fast you
wrote it or how how fast it operates but
it's how can it Bend and adapt as
situations change and then the thing
that I've really been learning in my
time at meta with uh the Oculus and VR
work is it's also how well it hands off
between a continuous kind of revolving
door of programmers taking over
maintenance and different things and how
you get people up to speed in different
areas and there's all these other
different aspects of it so C++ a good
language for Handover between Engineers
probably not the best uh and there's
some really interesting aspects to this
where in some cases languages that are
not um that are not generally thought
well of for many reasons like C is
derided pretty broadly that yes
obviously all of these security flaws
that happen with the memory unsafe and
uh buffer overruns and the things that
you've got there but there is this
underappreciated aspect to the language
is so simple anyone can go and you know
if you know C you can generally jump in
someplace and not have to learn what
paradigms they're using because they're
just aren't that many available I think
there's you know and there's some really
really well-written C code like it's I
find it great that if I'm messing around
with something an open BSD say I mean I
can be walking around in the kernel and
I'm like I understand everything that's
going on here uh it's not hard for me to
figure out what's I you know what I need
to do to to you know make whatever
change that I need to
while you can have you know more
significant languages like it's a
downside of lisp where I don't regret
the time that I spent with lisp I I
think that it I it did help you know
help my thinking about programming in
some ways but the people that are the
biggest Defenders of lisp are saying how
malleable of a language it is that if
you write a huge Lis program you've
basically invented your own kind of
language and structure because it's not
The Primitives of the language you're
using very much it's all of the things
you've built on top of that and then a
language like racket kind of one of the
more modern list versions it's
essentially touted as a language for
building other languages and I
understand the value of that for a tiny
little project but the idea of that for
one of these long-term supported by lots
of people kind of horrifies me where all
of those abstractions that you're like
okay you can't touch this code till you
educate yourself on all of these things
that we've built on top of that and it
was interesting to see how when Google
made go a lot of the criticisms of that
are it's like wow this is not a
state-of-the-art language this language
is just so simple and almost crude and
you could see the programming language
people just looking down at it but it
does seem to be quite popular as
basically saying this is the good things
about C everybody can just jump right in
and use it you don't need to restructure
your brain to write good code in it so I
I wish that I had more opportunity for
doing some work in go uh rust is the
other modern language that everybody
talks about that I'm not fit to pass
judgment on I've done you know a little
bit beyond hello world I wrote Some Like
video decompression work in Rust just as
an exercise but that was a few years ago
and I haven't really used it since you
know the best programming language is
the one that works generally that you're
currently using because that's another
trap is in almost every case I've seen
when people mixed languages on a project
that's a mistake I would rather stay
just in one language so that everybody
can work across the entire thing and we
have like at meta we have a lot of
projects that use kind of react
framework so you've got JavaScript here
and then you have uh C++ for real work
and then you may have Java interfacing
with some other part of the Android
system and those are all kind of
horrible things and that was you know
one thing that I I remember talking with
uh with BOS at Facebook about it where
like man I wish we could have just said
we're only hiring C++ programmers I am
and he just thought from the from the
Facebook meta perspective well we just
wouldn't be able to find enough I you
know with the thousands of programmers
they've got there it is not necessarily
a Dying Breed but you can sure find a
lot more Java JavaScript programmers and
I I kind of mentioned that to Elon one
time and he was kind of flabbergasted
about that it's like well you just you
go out and you find those programmers
and you don't hire the other programmers
that don't do the languages that you
want to use but right now I guess yeah
they're using JavaScript on a bunch of
the the SpaceX work for the UI side of
things when you go find UI programmers
they're JavaScript programmers I wonder
if that's because there's a lot of
JavaScript programmers because I I do
think that great programmers are
rare that it's not you know if you just
look at statistics of how many people
are using different programming
languages that doesn't tell you the
story of what the great programmers are
using and so you have to really look at
what you speaking to which is the
fundamentals of a language what does it
encourage how does it encourage you to
think what kind of systems does it
encourage you to build there is
something about
C++ that has elements of creativity but
forces you to be an adult about your
programming it expects you to be an
adult does not force you to and
so so it brings out people that are
willing to be creative in terms of
building large systems and coming up
with interesting Solutions but at the
same time have the sort of the good
software engineering practices that uh
amend themselves to Real World Systems
let me ask you about this other language
JavaScript so if we you know aliens
visit in in thousands of years and
humans are long gone something tells me
that most of the systems they find will
be running JavaScript I kind of think
that if the simul if we're living the
simulation it's ring it's written in
JavaScript um you know for the longest
time even
still JavaScript didn't get any respect
and yet it runs so much of the world and
an increasing number of the world is it
possible that all everything will be
written in JavaScript one day so the
engineering under JavaScript is really
pretty phenomenal uh the the systems
that make JavaScript run as fast as it
does right now are kind of Miracles of
modern engineering in many ways it does
feel like it is not an optimal language
for all the things that it's being used
for or an optimal distribution system to
hu to build huge apps in something like
this uh without type systems and so on
um but I think for a lot of people it
does reasonably the necessary things
it's still a CF flavored language it's
still a you know a braces and semicolon
language uh it's not hard for people to
be trained JavaScript and then
understand the roots of where it came
from I think garbage collection is
unequivocably a good thing for most
programs to be written in it's funny
that I still just this morning I was on
I was seeing a Twitter thread of a bunch
of really senior Game Dev people arguing
about the the virtues and costs of
garbage collection and you will run into
some people that are top-notch
programmers that just say no this is
literally not a good thing oh because it
makes you lazy yes that it makes you not
think about things and and I do disagree
I think that the there is so much
objective data on the the
vulnerabilities that have happened in CN
C++ programs sometimes written by the
best programmers in the world it's like
nobody is good enough to avoid ever
shooting themselves in the foot with
that you write enough C code you're
going to shoot yourself in the foot and
garbage collection is a very great thing
for the vast majority of programs it's
only when you get into the tightest of
real time things that you start saying
it's like no the garbage collection has
more costs than it has benefits for me
there but that's not 99 plus% of all the
software in the world so JavaScript is
not terrible in those ways and um and so
much of programming is not the language
itself it's the infrastructure around
every you know that surrounds it all the
libraries that you can get and the
different stuff that you can ways you
can deploy it I the portability that it
gives you and JavaScript is really
strong on a lot of those things where
for a long time and it still does if I
look at it the the web stack about
everything that has to go when you do
something really trivial in JavaScript
and it shows up on a web browser to kind
of X-ray through that and see everything
that has to happen for your one little
JavaScript statement to turn into
something visible in your web
browser it's very very disquieting just
the the depth of that stack and the fact
that so few people can even comprehend
all of the levels that are going on on
there but it's again I have to caution
myself to not be the in the good old
days old man about it because clearly
there's enormous value here the world
does run on JavaScript to a pretty good
approximation there and it's not falling
apart there's a bunch of scary stuff
where you look at console logs and you
just see all of these bad things that
are happening but it's still kind of
limping along and nobody really
notices but so much of my systems design
and systems analysis goes around you
should understand what the speed of
light is like what would be the best you
could possibly do here and it sounds
horrible but in a lot of cases you can
be a thousand times off your speed of
light uh velocity for something and it's
still be okay and in fact it can even
sometimes still be the optimal thing in
a larger system standpoint where there's
a lot of things that you don't want to
have to parachute in someone like me to
go in and say make this this web page
Run a thousand times faster you know
make this web app into a a hardcore
native application that starts up in 37
milliseconds and everything responds in
less than one frame latency that's just
not necessary and if somebody wants to
go pay me millions of dollars to do
software like that when they can take
somebody right out of a boot camp and
say spin up an application for this uh
often being efficient is not really the
best metric it's like there's that
applies in a lot of areas where it's
kind of interesting how a lot of our
appliances and everything are all built
around Energy Efficiency sometimes at
the expense of robustness in some other
ways or higher costs in other ways where
there's interesting things where energy
or electricity could become much cheaper
in a future world and that could change
our engineering tradeoffs for the way we
build certain things where you could
throw away efficiency and actually get
more benefits that actually matter I
mean that's one of my you know I one of
the directions I was considering
swerving into was uh nuclear energy when
I was kind of like what do I want to do
next it was either going to be I
cost-effective nuclear fion or
artificial general intelligence and one
of the one of my pet ideas there is like
you know people don't understand how
cheap nuclear fuel is and there would be
ways that uh you could be a quarter the
efficiency or less but if it wound up
making your plant 10 times cheaper that
could be a radical innovation in
something like that so there's like some
of these thoughts around like direct
fion energy conversion you know fion
fragment conversion that you know maybe
you build something that doesn't require
all the steam turbines and everything
even if it winds up being less efficient
so that applies a lot in programming
where there's always it's always good to
know what you could do if you really sat
down and took it uh took it far because
sometimes there's discontinuities like
around user reaction times there are
some points where the difference between
operating in 1 second and 750
milliseconds uh not that huge you'll see
it in webpage statistics but most of the
usability stuff not that great but if
you get down to 50 milliseconds then all
of a sudden this just feels amazing you
know it's just like doing your bidding
instantly rather than you're giving it a
command twiddling your thumbs waiting
for it to respond so sometimes it's
important to really crunch hard to get
over some threshold but there are there
are broad basins in the value metric for
lots of work where it just doesn't pay
to even go that extra mile and there are
Craftsmen that you know they just don't
want to buy that and more power to them
you know if somebody just wants to say
no I'm going to be I'm my pride is in my
work I'm never going to do something
that's not as good as I could possibly
make it I respect that and sometimes I
am that person but I try to focus more
on the larger value picture and you do
pick your battles and you deploy your
resources in the play that's going to
give you sort of the best user value in
the end well if you look at the
evolution of life on Earth as a kind of
um programming
effort it's uh it seems like efficiency
isn't the thing that's being optimized
for like natural selection is very
inefficient but it it kind
of uh adapts and through the process of
adaptation is building more and more
complex systems they're more and more
intelligent the final result is kind of
pretty interesting and so I think of
JavaScript the same way it's like this
giant mess that you know things
naturally die off if they don't work and
they if they if they become useful to
people they kind of naturally live and
then you build this community large
community of people that are generating
code and some code is sticky some is not
and nobody knows the the inefficiencies
or the efficiencies or the breaking
points like how reliable this code is
and you kind of just run it assume it
works and then get unpleasantly
surprised and then that's very kind of
The evolutionary process so that's a
really good analogy and we can go a lot
of places with that where in the
earliest days of programming when you
had finite you could count the bites
that you had to work on this you had all
the the kind of hackers playing code
golf to be one less instruction than the
other person's multiply routine to kind
of get through and and it was so
perfectly crafted it was a crystal piece
of artwork when you had a program
because there just were not that many
you couldn't afford to be lazy in
different ways and in many ways I see
that as akin to the symbolic AI work
where again if you did not have the
resources to just say well we're going
to do billions and billions of
programmable weights here you have to
turn it down into something that is
symbolic and crafted like that but
that's definitely not the way DNA and
life and uh biological evolution and
things work I you know on the one hand
it's it's almost uming how little
programming code is in our bodies you
know we've got a couple billion base
pairs and it's like this all fits on a
thumb drive for years now and then our
brains are even a smaller section of
that you've got maybe 50 megabytes and
this is not like Shannon limit perfectly
uh information dense uh conveyances here
it's like these are messy codes you know
they're broken up into amino acids a lot
of them don't do important things or
they do things in very awkward ways but
it is this process of just accumulation
on top of things and you need you need
scale both you need scale for sort of
the population for that to work out and
in the early days in the the 50s and 60s
the the kind of ancient era of computers
where you could count when they said
like when the internet started even in
the 70s there were like 18 hosts or
something on it it was this small finite
number and you were still optimizing
everything to be as good as you possibly
could be but now it's billions and
billions of devices and everything going
on and you can have this very much
Natural Evolution going on where lots of
things are tried lots of things are
blowing up Venture capitalists lose
their money I when a startup invested in
the wrong Tech stack and things
completely failed or failed the scale
but you know but good things do come out
of it and it's interesting to see the
the mimetic evolution of the way
different things happen like mentioning
hello world at the beginning it's funny
how some little thing like that where
everybody every programmer knows hello
world now and that was a completely
arbitrary sort of decision that just
came out of the the dominance of Unix
and c and uh early examples of things
like that so millions of experiments are
going on all the time but some things do
kind of rise to the top and win the
fitness War for whe whether it's mind
space or programming techniques or
anything like there's a site on stack
exchange called code golf where people
compete to write the shortest possible
program for a particular task in all the
different kinds of languages and it's
really interesting to
see folks kind of um they're masters of
their craft really play with the limits
of programming languages it's really
beautiful to see and across all the
different programming languages you get
to see some of these weird programming
languages and mainstream ones python
difference between Python 2 and 3 you
get to see the difference between C and
C++ and Java you get to see JavaScript
all of that and it's it's kind
of um inspiring to see how much depth of
possibility there is within programming
languages that code golf kind of tasks
reveal most of us if you do any kind of
programming you kind of do boring kind
of very vanilla type of code that's the
way to build large systems but it's nice
to see that the possibility of creative
genius is still within those languages
it's
uh Laden with those languages so given
that given that you are once again one
of the greatest programmers ever uh what
do you think makes a good programmer
maybe a good modern programmer so I just
gave a long rant SL lecture at meta uh
to the TPM organization and my my
biggest point was everything that we're
doing really should flow from user value
you know all the good things that we're
doing it's like we're we're not
technical people it's like you shouldn't
be taking Pride just in the specific
thing like code golf is the sort of
thing it's a fun puzzle game but that
really should not be a major motivator
for you it's like we're solving problems
for people or we're providing
entertainment to people we're doing
something of value to people that's
displacing something else in their life
so we want to be providing a net value
over what they could be doing uh but
instead they're choosing to use our
products and that's where I mean it
sounds TR or corny but I fundamentally
do think that's how you make the world a
better place if you have given more
value to people than it took you and
your team to create then the world's a
better place people have uh they've gone
from something of lesser value chosen to
use your product and their life feels
better for that and if you've produced
that economically that's that's a really
good thing uh you know on the other hand
if you spent ridiculous amounts of money
you've just kind of shoveled a lot of
cash into a wood chipper there and you
should maybe you know not feel so good
about what you're doing so being proud
about like a specific architecture or a
specific technology or a specific code
sequence that you've done it's great to
get a little smile like a tiny little
dopamine hit for that but the the top
level metric should be that you're
building things of value now you can get
into the argument about how you you know
what is user value how do you actually
quantify that and there can be big
arguments about that but it's easy to be
able to say okay this pissed off user
there is not getting Val from what
you're doing this user over there with
the big smile on their face I am the
moment of delight when something
happened there's a value that's happened
there I mean if you you have to at least
accept that there is a concept of user
value even if you have trouble exactly
quantifying it you can usually make
relative arguments about it well this
was better than this uh We've improved
things so you know being a you know
being a servant to the user is your job
when you're de when you're a developer
you want to be producing something that
I you know other people are going to
find valuable and if you are technically
inclined then finding the right levers
to be able to pull to be able to make a
design that's going to produce the most
value for the least amount of effort and
it always has to be uh kind of divide
there's a ratio there where you it's a
problem at the big tech companies you
know whether it's you know meta Google
Apple Microsoft Amazon companies that
have almost infinite money I I mean I
know their CFO will complain that it's
not infinite money but from most
developer standpoints it really does
feel like it and it's almost
counterintuitive that if you're working
hard as a developer on something there's
always this thought if only I had more
resources more people more RAM more
megahertz I then my product will be
better and that sense that at certain
points it's certainly true that if you
are really hamstrung by this removing an
obstacle will will make a better product
make more value but if you're not making
your core design decisions in this
fiercely competitive uh way where you're
saying feature a or feature B you can't
just say let's do both uh because then
you're not making a value judgment about
them you're just saying well they both
seem good I don't want to necessarily
have to pick out which one is better or
how much better and tell Team B that uh
sorry we're not going to do this because
a is more important but that um that
notion of always having to really
critically value what you're doing your
time the resources you expend even the
opportunity cost of doing something else
that's you know super important well let
me ask you about this the big debates
that you're mentioning of how to measure
value is it possible to measure it kind
of um
numerically uh or can you do the sort of
Johnny the designer route of
imagining sort of uh some somebody using
a thing and imagining a smile on their
face Imagining the experience of love
and joy that you have when you use the
thing that's from a design perspective
or if you're building more like a low
lower level thing for like Linux you
imagine a developer that might come
across this and use it and become uh
happy and better off because of it so
where do you land on those things is it
measurable so I imagine like meta and
Google will probably try to measure the
thing they'll try to it's like you try
to optimize engagement or something
let's measure engagement and then I
think there is a kind of I mean I admire
the designer ethic of like think of a
future that's immeasurable and you try
to make somebody in that future that's
different from today happy so I do
usually favor if you can get any kind of
a a metric that's good by all means
listen to the data but you can go too
far there where we've had problems where
it's like hey we had a performance
regression because our fancy new
Telemetry system is doing a bazillion
file rights uh to kind of archive this
stuff because we needed to collect
information to determine if we were
doing you know if our plans were good so
when information is available you should
never ignore it I mean from actual users
using the thing human beings using the
thing large number of human beings and
you get to see sort of there's the zero
to one problem of when you're doing
something really new you do kind of have
to make a guess but one of the points
that I've been making at meta is we have
more than enough users now that anything
somebody wants to try in VR we have
users that will be interested in that
you do not get to make a completely
Greenfield Blue Sky pitch and say I'm
going to do this because I think it
might be interesting I challenge
everyone there are going to be people
whether it's you know working in VR on
your I like on your desktop replacement
or communicating with people in
different ways or playing the games
there there are going to be probably
millions of people or at least in if you
pick some tiny Niche that we're not in
right now there's still going to be
thousands of people out there that have
the headsets that would be your target
market and I tell people pay attention
to them don't invent fictional users
don't you know make an ALICE Bob Charlie
uh that fits whatever Matrix of of
tendencies that you want to break the
market down to because it's a mistake to
think about imaginary users when you've
got real users that you could be working
with but you know on the other hand
there is there is value to having a kind
of wholeness of vision for a product and
I companies like meta have you know they
understand the trade-offs where you can
have a company like SpaceX or you know
Apple in the the Steve Jobs era where
you have a very powerful leading
personality that I you know that can
micromanage at a very low level and can
say it's like no that handle needs to be
different or that uh that icon needs to
change the tint there and they clearly
get a lot of value out of it they also
burn through a lot of employees that
have horror stories to tell about uh
working there afterwards my position is
that you're at your best when you've got
a leader that is at their limit of what
they can kind of comprehend of
everything below them uh and they can
have an informed opinion about
everything that's going on and you take
somebody it's You've Got to Believe that
somebody that has 30 40 years of
experience you would hope that they've
got wisdom that the the just out of boot
camp person uh contributing doesn't have
and that if they're like well that's
wrong there you probably shouldn't do it
that way or even just don't do it that
way do it another way so there's value
there but it can't go beyond a certain
level I you I mean I have Steve Jobs
stories of him saying things that are
just wrong right in front of me about
technical things because he was not
operating at that level
but when it does work and you do get
that kind of passionate leader that's
thinking about the entire product and
just really deeply cares about not
letting anything slip through the cracks
I I think that's got a lot of value but
the other side of that is the people
saying that well we want to have these
independent teams that are bubbling up
the ideas because like it's it's almost
it's anti- capitalist or anti-free
Market to say it's like I want my grand
you know my great leader to go ahead and
dictate all these points there where
clearly free markets bring up things
that you know you don't expect like in
VR we we saw a bunch of things like it
didn't turn out at all the way the early
people thought were going to be the key
applications and things that you know
would not have been approved by uh you
know the the dark cabal making the
decisions about what gets into the store
turn out to some cases be extremely
successful uh so yeah I definitely kind
of wanted to be there was a point where
I did make a pitch it's like hey make me
VR dictator and I'll go in get done
I am and that's just it's not in the
culture at meta you know and they they
understand the tradeoffs they I and
that's just not the way that's not the
company that they want the team that
they uh that they want to do yeah it's
fascinating because VR and we'll talk
about it more it's still it's still
unclear to
me in what way VR will change the world
because it does seem clear that VR will
somehow fundamentally transform this
world and it's unclear to me how yeah
yeah and it's let me know when you want
to get into that
well hold on a second so uh in the the
stick to the the you being the best
programmer ever okay in the early days
when you didn't have when when you
didn't have adult responsibilities of
leading teams and all that kind of stuff
and you can focus on just being a
programmer what did the productive day
in the life of John carac look like how
many hours of the keyboard how much
sleep what was the source of calories
that fueled the brain uh what was it
like what time did you wake up so I was
able to be remarkably consistent about
what was good working conditions for me
for a very long time um I was never one
of the programmers that I that would do
all nighters going through work for 20
hours straight it's like my brain
generally starts turning to Mush after
12 hours or so um but the hard work is
really important and I would work for
for decades I would work 60 hours a week
I would work a 10hour day six days a
week and try to be
productive at that now my schedule
shifted around a fair amount when I was
young without any kids I any other
responsibilities I was on one of those
cycling schedules where I'd kind of get
in an hour later each day and roll
around through the entire time and I'd
wind up kind of pulling in at 2:00 or 3:
in the afternoon sometimes and then
working again past you know midnight or
two in the morning and that was um when
it was just me trying to make things
happen um and I was usually isol off in
my office people generally didn't bother
me much at it and I could get a lot of
programming work done that way I did
settle into a more normal schedule when
I was taking kids to school and things
like that so kids were the forcing
function that got you to wake up and
same time it's not clear to me that
there was a much of a difference in the
productivity with I with that where I
kind of feel if I just get up when I
feel like it it's usually a little later
each day but I just recently made made
the focusing decision to try to push my
schedule back a little bit earlier to
getting up at 8:00 in the morning and
trying to to shift things around like
I'm I'm often doing experiments with
myself about what should I be doing to
to be more productive and one of the
things that I did realize was happening
in recent months where I would I would
go for a walk or a run I I cover like
four miles a day and and I would usually
do that just as the sun's going down at
here in Texas now and it's still really
damn hot but I'd go out at 8:30 or
something and cover the time there and
then the showering and it was putting a
hole in my day where I would have still
a couple hours after that and sometimes
my best hours were at night when nobody
else is around nobody's bothering me but
that hole in the day was a problem so
just a couple weeks ago I made the P the
change to go ahead and say all right I'm
going to get up a little earlier I'm
going to do a walk or get out there
first so I can have more uninterrupted
time so I'm still playing with factors
like this as I kind of optimize my my
work efforts but it's always been you
know it's it was 60 hours a week for a
very long time to some degree I had a
little thing in the back of my head
where I was almost jealous of some of
the programmers that would do these
Marathon sessions and and I had like
Dave Taylor one of the guys that he had
he would be one of those people that
would fall asleep under his desk
sometimes and all the the kind of
classic hacker tropes about things and a
part of me was like always a little
bothered that that wasn't me that I I
wouldn't go program 20 hours straight
straight because I'm just I'm falling
apart and not being very effective after
12 hours I mean yeah 12-hour programming
that's fine when you're doing that but
it never you're not doing smart work
much after at least I'm not but there's
a range of people I mean that's
something that a lot of people don't
really get in their gut where there are
people that work on four hours of sleep
and are smart and can continue to do
good work but then there's a lot of
people that just fall apart so I do tell
people that I always try to get eight
hours of sleep it's not this you know
push yourself harder get up earlier I
just do worse work where uh you know
there's you can work a 100 hours a week
and still get eight hours of sleep if
you just kind of prioritize things
correctly but I do believe in working
hard working a lot I there was a comment
that uh Game Dev made that that I know
there's a backlash against really hard
work in a lot of cases and I get into
online arguments about this all the time
but he was basically saying yeah 40
hours a week that's kind of a part job
and if you are really in it you're doing
what you think is important what you're
passionate about working more gets more
done and I it's just really not possible
to argue with that if you've been around
the people that that work with that
level of intensity and just say it's
like no they should just stop and we had
I kind of came back around to that a
couple years ago where I was using the
fictional example of all right some
people say they'll say with a straight
face they think no you you are less
productive if you work more than 40
hours a week and they're generally
misinterpreting things where your your
marginal productivity for an hour after
eight hours is less than in one of your
peak hours but you're not literally
getting less done there is a point where
you start breaking things and getting
worse worse behavior and everything out
of it where you're literally going
backwards but it's not at 8 or 10 or 12
hours and the fictional example I would
use was imagine there's an asteroid
coming to impact you know to to crash
into Earth destroy all of human life I
do you want Elon Musk or the people
working at SpaceX that are building the
Interceptor that's going to uh to
deflect the asteroid do you want them to
clock out at 5 because damn it they're
just going to go do worse work if they
work another couple hours and you know
it seems absurd and that's a
hypothetical though and everyone can
dismiss that but then when Corona virus
was hitting and you have all of these
medical personnel that are clearly
pushing themselves really really hard
and I'd say it's like okay do you want
all of these scientists working on
treatments and vaccines and caring for
all of these people are they really
screwing everything up by working more
than eight hours a day and of course
people say I'm just an to say
something like that but it's I you know
it's the truth working longer gets more
done well so that's kind of uh the layer
one but I'd like to also say
that at least I believe depending on the
person depending on the T ask working
more and harder will
make you better for the for the next
week in those peak hours so there's
something about a deep dedication to a
thing that kind of gets deep in you so
it's the the hard work isn't just about
the raw hours of productivity it's the
it's the thing it does to you in the in
the weeks and months after too you're
tempering yourself in some ways and I
think you know it's like jro Dreams of
Sushi if you really dedicate yourself
completely to making the sushi like to
really putting in the long hours day
after day after day um you become a true
Craftsman of the thing you're doing now
there's of course discussions about are
you sacrificing a lot of personal
relationships are you sacrificing a lot
of other possible things you could do
with that time but if you're talking
about
purely being a um a master or a
Craftsman of your art that more hours
isn't just about doing more it's about
becoming better at the thing you're
doing yeah and I don't gainsay anybody
that wants to work the minimum amount
they've got other priorities in their
life my only argument that I'm making
it's not that everybody should work hard
it's that if you want to accomplish
something working longer and harder is
the path to getting it accomplished well
let me ask you about this then uh the
the mythical work life
balance is for an engineer it seems like
that's one of the professions in for for
programmer where working hard does lead
to Greater productivity and it um but it
also raises the question of um sort of
personal relationships and all that kind
of stuff family and um how are you able
to find work life balance is there
advice you can give maybe even outside
yourself have you been able to arrive at
any wisdom on this part in your years of
life I do think that there's a wide
range of people where different people
have different needs it's not a one-size
fits-all I am certainly what works for
me I I can tell enough that I'm you know
I'm different than a typical average
person in the way things impact me the
you know the things that I want to do uh
my goals are different and sort of the
the levers to impact things are
different where you know I have
literally never felt burnout and I know
there's lots of brilliant smart people
that that do World leading work that get
burned out and it's never hit me uh you
know I've never been at a point where
I'm like um I just don't care about this
I don't want to do this anymore but I've
always had the flexibility to work on
lots of interesting things you know I
can always just turn my gaze to
something else and have a great time
working on that and so much of that and
so much of the ability to actually work
hard is the ability to have multiple
things to choose from and to use use
your time on the most appropriate thing
like there are there are time periods
where I am it's the best time for me to
read a new research paper that I need to
really be thinking you know hard about
it then there's a time that maybe I
should just scan and organize my old
notes because my you know I'm just not
on top of things then there's the time
that all right let's go you know bang
out a few hundred lines of code for
something so switching between them has
been you know real valuable
so you always have kind of joy in your
heart for all the things you're doing
and that that is a kind of work life
balance as a first sort of Step yeah I
so you're always happy I do I yeah yeah
I mean it's like I a lot of people would
say that often I look like kind of a
grim person you know with just sitting
there with a a neutral expression or
even like knitted brows and a frown on
my face as I'm staring at something
that's what happiness looks like for you
yeah it's it's kind of true where that
that it's like okay I'm pushing through
this I'm making progress here I am you
know I know that doesn't work for
everyone I know it doesn't work for most
people I am but what I am always trying
to do in those cases is I don't want to
let somebody that might be a person like
that be told by someone else that no
don't try don't even try that out as an
option where I you know work life Val
balance versus kind of your life's work
where there's a small subset of the
people that can be very happy being
obsessive about things and you know you
know Obsession can often get things done
that just practical prudent pedestrian
work won't or at least won't for a very
long time there's Legends of uh your
nutritional intake uh in the early days
uh what can you say about sort of as a
you know being a programmer as a kind of
athlete so what what was uh the
nutrition that fuels so I have never
been that great on I on really paying
attention to it where
I'm good enough that I I don't eat a lot
you know I've never been like a big
heavy guy but uh it was interesting
where one of the things that I can
remember being an unhappy teenager not
having enough money and like one of the
things that bothered me about not having
enough money is I couldn't buy pizza
whenever I wanted to so I got rich and
then I bought a whole lot of pizza
defining like that's what being rich
felt like a lot the little things like I
could buy all the pizza and comic books
and video games that uh that I wanted to
and it really didn't take that much but
uh the pizza was one of those things and
it's absolutely true that for a long
time it did software I had a pizza
delivered every single day you know the
delivery guy you knew me my name and I
didn't find out until years later that
apparently I was such a good customer
that they just never raised the price on
me and I was using this six-year-old
price for the pizz that they were still
kind of sending my away every day so you
were doing um eating once a day or or
were you uh it would be spread out you
know you have a few pieces of pizza you
have some more later on and i' maybe
have something at home I it was one of
the nice things that Facebook meta is
they do they feed you quite well you get
a different I guess now it's door Dash
sorts of things delivered but uh they
take care of making sure that everybody
does get well fed and I probably had
better food th those six years that I
was working in the meta office there
than I used to before but I've it's
worked out okay for me my health has
always been good I I get a a pretty good
amount of exercise and and I don't eat
to excess and I avoid a lot of other
kind of not so good for you things so
I'm still doing quite well at my age did
you have
um a kind of I don't know spiritual
experience with food or coffee or any of
that kind of stuff I mean you know the
programming experience you know with
music and or or like I listen to Brown
noise in a program or like creating an
environment and the things you take into
your body just everything you construct
can become a kind of ritual that
empowers the whole process of the
programing did you have that
relationship with pizza or um it would
really be with Diet Coke I mean there
still is that sense of you know drop the
can down crack open the can of Diet Coke
all right now I'm mean business we're
getting to work here still to this day
yeah is Diet Coke is still part yeah
probably eight or nine a day nice okay
uh what about your setup how many
screens what kind of keyboard is there
something interesting what kind of I IDE
emac Vim or something modern uh Linux
what operating system laptop or any any
interesting thing that brings you Joy so
I kind of migrated cultures where early
on through all of gamedev there was sort
of one culture there which was really
quite distinct from the more uh the
Silicon Valley venture you know uh
culture for things it's they're
different groups and they have pretty
different mores and the way they think
about things where and I still do think
a lot of the big compan can learn uh can
learn things from the hardcore game
development side of things where it
still boggles my mind how I how hostile
to debuggers and idees that so much of
the the kind of big money get billions
of dollars Silicon Valley venture-backed
funds are oh that's interesting sorry so
you're saying like like uh big companies
like Google and meta are hostile to they
are not big on debuggers and idees like
so much of it is like emac Bim for
things and we just assume that debuggers
don't work most of the time for the
systems and a lot of this comes from a
sort of Linux bias on a lot of things
where I did come up through the the
personal computers and then the Doss and
then I am you windows and and it was
Borland tools and then visual studio and
do you appreciate de buggers very much
so I mean a debugger is how you get a
view into a system that's too
complicated to understand I mean anybody
that thinks just read the code and think
about it that's an insane statement in
the you can't even read all the code on
a big system you have to do experiments
on the system and doing that by adding
log statements recompiling and rerunning
it uh is an incredibly inefficient way
of doing it I mean yes you can always
get things done even if you're working
with stone knives and you know and bare
skins that's that is the mark of a good
programmer is that given any tools you
will figure out a way to get it done but
it's amazing what you can do with
sometimes much much better tools where
instead of just going through this
iterative uh compile run debug cycle you
have the you have the old list direction
of like you've got a repple and you're
working interactively and doing amazing
things there but in many cases a
debugger as a very powerful user
interface that can stop examine all the
different things in your program set all
these different break points and of
course you can do that with GDB or
whatever there but this is one of the
user interface fundamental principles
where when something is complicated to
do
you won't use it very often there's
people that will break out GDB when
they're at their wits end and they just
have beat their head against a problem
for so long but for somebody that kind
of grew up in Game Dev it's like they
were running it in the debugger anyways
before they even knew there was a
problem and you would just stop and see
you know what was happening and
sometimes you could fix things even
before you you know even before you did
one compile cycle you could be in the
debugger and You' say well I'm just
going to change this right here and yep
that did the job and fix it and go on
and for people who don't know GDB is a
sort of popular I guess Linux
debugger uh primarily for C+ plus they
they handle most of the languages but
it's you know it's based on c as the the
original kind of Unix Heritage but and
it's kind of like command line it's not
user friendly it's not it doesn't allow
for clean visualizations and you're
you're exactly right so you're using
this kind of debugger usually when
you're at wi's end and there's a problem
that you can't figure out why by just
looking at the codes you have to find it
that's how I guess normal programmers
use it but you're saying there should be
tools that kind of visualize and help
you as part of the programming process
just a normal programming process to to
understand the code deeper yeah when I'm
working on like my cc++ code I'm always
running it from the debugger you know
just I type in the code I I run it many
times the first thing I do after writing
code is set a breakpoint and step
through the function now other people
will say it's like oh I do that in my
head well your head is a faulty
interpreter of all those things there
and I've written brand new code I want
to step in there and I'm going to single
step through that examine lots of things
and see if it's actually doing what I
expected it to it it is a kind of
companion the debugger like it you're
you're now coding in an interactive way
with another being uh the debugger is a
kind of dumb being but it's a reliable
being that is an interesting question of
what role does AI play in that kind of
um with codec and these kind of ability
to generate code might might be you
might start having tools that understand
the code in interesting deep ways that
can work with you there's there's a
whole Spectrum there from uh static code
analyzers and various kind of dynamic
tools there up to AI that can
conceivably grock these programs that no
literally no human can understand
they're they're too big too intertwined
and too interconnected but it's not
beyond the possibility of understanding
it's just beyond what we can hold in our
heads as kind of mutable State while
we're working on things and and I'm a
big proponent again of things like
static analyzers and some of that stuff
where you'll find some people that don't
like being scolded by a program for how
they've written something where it's
like oh I know better and sometimes you
do but that was something that I was it
was very very valuable for me when uh
and not too many people get an
opportunity like this to have this is
almost one of those spiritual experien
as a programmer and Awakening to um the
software code bases were couple million
lines of code and at one point I had
used a few of the different analysis
tools but I made a point to really go
through and scrub the code base using
every tool that I could find and it was
eye openening where we had a reputation
for having some of the the most robust
strongest code you know where there were
some you know great things that I
remember hearing from like Microsoft
telling us about crashes on Xbox and we
had this tiny number that they said were
were probably literally Hardware errors
and then you have other significant
titles that just have millions of faults
that are getting recorded all the time
so I was proud of our code on a lot of
levels but when I took this code
analysis squeegee through everything it
was it was shocking how many errors
there were in there things that you can
say okay this was this was a copy paste
not changing something right here lots
of things that were you know the most
the most common problem was some in a a
print F format string that was the wrong
data type that could cause crashes there
and you know you really want the
warnings for things like that and the
next most common was missing a check for
null that could actually happen that
could blow things up and those are
obviously like top cc++ things everybody
has those problems but the long tale of
all of the different little things that
could go wrong there and we had good
programmers and my own code it's not
that I'd be looking at it's like oh I
wrote that code that's definitely wrong
we've been using this for a year
and it's this submer you know this mine
sitting there waiting for us to step on
and it was humbling it was uh and I
reached the conclusion that anything
that can be syntactically allowed in
your language if I it's going to show up
eventually in a large enough code base I
you're not going to Good Intentions
aren't going to keep it from happening
you need automated tools and guard rails
for things and those start with things
like static types and or you or even
type hints in the more Dynamic languages
but the people that rebel against that
that basically say uh that slows me down
doing that there's something to that I
get that I've written you know I cobbled
things together in a notebook I I'm like
wow this is great that it just happened
but yeah that's kind of sketchy but it's
working fine I don't care it does come
back to that that value analysis where
sometimes it's right to not care but
when you do care if it's going to be
something that's going to live for years
and is going to have other people
working on it I and it's going to be
deployed to millions of people then you
want to use all of these tools you want
to be told it's like no you've screwed
up here here and here and that does
require kind of an ego check about
things where you have to to be open to
the fact that everything that you're
doing is just littered with flaws it's
not that oh you occasionally have a bad
day it's just whatever stream of code
you output there is going to be a
statistical regularity of things that
you just make mistakes on and I and do
think there's the whole argument about
test driven design and unit testing
versus kind of analysis and different
things I am more in favor of the
analysis and the stuff that just like
you can't run your program until you fix
this rather than you can run it and
hopefully a unit test will catch it in
some way yeah in my private code I have
asserts everywhere yeah uh it just
there's
something pleasant to me pleasurable to
me about sort of the dictatorial rule of
like this should be true at this
point in too many
times I've made mistakes that shouldn't
have been made and I would assume I I
wouldn't be the kind of person that
would make that mistake but I keep
making that mistake therefore an assert
really catches me uh really helps all
the time so my co I would say like 10 to
20% of my private Cod just for personal
use is probably AER and they're active
comments that's one of those things that
theory they don't they don't make any
difference to the program and if it was
all operating the way you expected it
would be then I they will never fire but
even if you have it right and you wrote
the code right initially then
circumstances change the world outside
your program changes and in fact that's
that's one of the things where I'm kind
of fond in a lot of cases of static
array siiz declarations where I went
through this period where it's like okay
now we have General collection classes
we should just make everything variable
I because I had this of in the early
days you get Doom which had some fixed
limits on it then everybody started
making crazier and crazier things and
they kept bumping up the different
limits this many lines this many sectors
uh and it seemed like a good idea well
we should just make this completely
generic it can go kind of go up to
whatever and there's cases where that's
the right thing to do but it also the
other aspect of the world changing
around you is it's good to be informed
when the world has changed more than you
thought it would and if you've got a
continuously growing collection you're
never going to find out you might have
this quadratic slowdown on something
where you thought oh I'm only ever going
to have a handful of these but something
changes and there's a new design style
and all of a sudden you've got 10,000 of
them so I kind of like in many cases
picking a number some you know nice
round power of two number and setting it
up in there and having an assert saying
it's like hey you hit the you hit this
limit you should probably think are the
choices that you've made around of this
still relevant if somebody's using 10
times more than you thought they would
yeah this code was originally written
with this kind of world view with this
kind of set of constraints you you were
you were thinking of the world in this
way if something breaks that means you
got to rethink the initial stuff and
it's it's nice for it to for it for it
to do that is there any stuff like uh
keyboard or I'm I'm fairly pedestrian on
a lot of that where I I did move to
Triple monitors like in the last several
years ago I had been dual monitor for a
very long time and I am and it was one
of those things where probably years
later than I should have I'm just like
well the video cards now generally have
three output ports I should just put the
third monitor up there that's been a
that's been a pure win I've been very
happy with that um but no I don't have
fancy keyboard or mouse or anything
reallyy things an IDE that has uh
helpful debuggers has helpful tools so
it's not the emac Vim and then Diet Coke
yeah so I did spend you know I spent uh
one of my weeklong Retreats where I'm
like okay I'm going to make myself use
uh it was actually classic VI which I
know people will say you should never
have done that you should have just used
Vim uh directly but you know I gave it
the good try it's like okay I'm being in
kind of classic Unix developer mode here
and I worked for a week on it I used
anky to like teach myself the the
different little key combinations for
things like that and in the end it was
just like all right this was kind of
like my Civil War reenactment phase you
know it's like I'm going out there doing
it like they used to in the old days and
it it was kind of fun that so many
people right now they screaming as
they're listening to this so again the
out is that this was not modern Vim but
still I yes I was very happy to get back
to my visual studio at the end yeah I'm
actually I struggle with this a lot
because so use a Kinesis keyboard and um
I use emac primarily
and I I feel like I I can exactly as you
said I can understand the code I can
navigate the code there's a lot of stuff
you could build with an emx with using
lisp you can customize a lot of things
for yourself to help you uh introspect
the code like to help you understand the
code and visualize different aspects of
the code you can even run debuggers but
it's it's work and uh the world moves
past you and the better and better ideas
are constantly being built and that that
puts um kind of I I need to take the
same kind of retreat as you're talking
about but now I'm still fighting the
Civil War I need to kind of move into
the 21st century and it does seem like
the world is or a large chunk of the
world is moving towards Visual Studio
code which is kind of interesting to me
again it's the JavaScript ecosystem on
the one hand and IDs are one of those
things that you want to be infinitely
fast you want them to just kind of
immediately respond and like I mean heck
I've got there's someone I know I'm an
old school Game Dev guy that's still
uses Visual Studio 6 and on a modern
computer everything is just absolutely
instant on something like that because
it was made to work on a computer that's
10,000 or 100 thousand times slower so
just everything happens immediately and
all the modern systems just feel you
know they feel so crufty when it's like
oh why is this refreshing the screen and
moving around and updating over here and
something blinks down there and you
should update this and there's you know
there there are things that we've lost
with that incredible flexibility but uh
lots of people get tons of value from it
and I am super happy that that seems to
be winning over even a lot of the old BM
and emac people that they're kind of
like hey Visual Studio codes maybe you
know not so bad I am that maybe the
final peacekeeping solution where
everybody is reasonably happy with I
with something like that so can you
explain what a DOD plan file is and what
role that played in your life does it
still continue to play a role back in
the early early days of ID software uh
one of our big things that was unique
with what we did is uh I had adopted
next stations or kind of Next Step
systems from uh Steve Jobs's uh out in
the out in the woods away from Apple
company and I they were basically it was
kind of interesting because I did not
really have a background with the Unix
system so many of the people they get uh
immersed in that in college and I you
know and that's you know that sets a lot
of cultural expectations for them and I
didn't have any of that uh but I knew
that my background was I was a huge
Apple 2 fan boy um I was always a little
suspicious of the Mac um it was not
really what I what kind of I wanted to
to go with but when Steve Jobs left
apple and started next uh this computer
did just seem like one of those amazing
things from the future where it had all
of this cool stuff in it and we were
still back in those days working on Doss
everything blew up you had reset buttons
because your computer would just freeze
if you're doing development work
literally dozens of times a day your
computer was just rebooting constantly
and so this idea of yes any of the the
Unix workstations would have given a
stable development platform where you
don't crash and reboot all the time but
next also had this really amazing
graphical interface and it was great for
building tools and it used uh Objective
C as the kind of an interesting oh wow
dead for next was Unix based it's it's
said Objective C so it has a lot of the
elements that became Mac I mean the kind
of reverse acquisition of Apple by next
where that took over and became what uh
what the modern Mac system is and Def
find some of the developer um like uh
the tools and the whole Community yeah
you've still got if you're programming
on Apple stuff now there's still all
these NS somethings which was originally
Next Step objects of different kinds of
things but one of the the aspects of
those old those Unix systems was they
had this notion of a plan file where you
know a file is a you know an invisible
file usually in your home directory or
something and there was a trivial server
running on most Unix systems at the time
that I that when somebody ran a trivial
little command called finger you could
do finger and then somebody's address it
could be anywhere on the internet if you
were connected correctly then all that
server would do was read the the do plan
file in that user's home directory and
then just spit it out to you and
originally the idea was that could be uh
whether you're on vacation what your
current project was it's supposed to be
like the plan of what you're doing and
people would use it for you know various
purposes but all it did was dump that
file over the to the terminal of whoever
issued the the finger command and at you
know at one point I started just keeping
a a list of what I was doing in there
which would be what I was working on in
the day and I would have this little U
syntax I kind of got to myself about
uh here's something that I'm working on
I put a star when I finish it I could
have a few other little bits of
punctuation and at the time it was it
started off as being just like my to-do
list and it would be these trivial
obscure little things like I you know
fixed something with Collision detection
code made imp Fireball do something
different and just little on liners that
people that were following the games
could kind of decipher but I did wind up
starting to write much more in-depth
things I would have uh little notes of
uh thoughts and insights and then I
would eventually start having little
essays I would sometimes dump into the
plan files interspersed with the
worklogs of things that I was doing so
in some ways it was like a super early
Proto blog where I was just kind of
dumping out what I was working on but it
was interesting enough that there were a
lot of people that uh that were
interested in this so most of the people
didn't have Unix workstations so there
were the websites uh back in the day
that would follow the doom and Quake
develop
that would I would basically make a
little service that would go grab all
the changes and then people could just
get it with a web browser and there was
a period where like all of the little
kind of Dallas gaming diaspora of people
that were at all in that orbit there
were a couple dozen plan files going on
which was and this was some years before
blogging really became kind of a thing
and it was kind of a um a premonition of
sort of the way things would go and
there was uh it's all been collected
it's available online in different
places and it's kind of fun to go back
and look through what I was thinking uh
what I was doing in the different areas
have you had a chance to look back is
there some interesting very lowlevel
specific to-do items maybe things you've
never completed all that kind of stuff
and highlevel philosophical essay type
of stuff uh there's some yeah there's
some good stuff on both where a lot of
it was low-level nitpicky details about
Game Dev and um you know I've learned
learned enough things where there's no
project that I worked on that I couldn't
go back and do a better job on now I I
mean you just you learn things hopefully
if you're doing it right you learn
things as you get older and you should
be able to do a better job at all of the
early things and there's stuff in
Wolfenstein Doom Quake that I'm like oh
clearly I I could go back and do a
better job at this whether it's
something in the rendering engine side
or how I implemented the the monster
behaviors or managed resources or
anything see the flaws in your thinking
now
like looking back yeah I do I mean
sometimes I'll get the you know I'll
look at it and say yeah I I had a pretty
clear view of I was doing good work
there and I haven't really hit the point
where there was another programmer
Graham Divine who was uh he had worked
at ID and seventh guest and and he had
made some comment one time where he said
he looked back at some of his old notes
he was like wow I was really smart back
then and I I don't hit that so much
where I mean I look at it and I always
know that yeah there's all the you know
with aging you get certain changes in in
how you you're able to work problems but
all of the problems that I've worked I
I'm you know I'm sure that I could do a
better job on all of them oh wow so you
can still step right in if you could
travel back in time and talk to that guy
you would teach him a few things yeah
absolutely that's awesome um what about
the high LEL philosophical stuff is
there some insights that stand out that
you remember there's things that that I
was understanding about velopment and I
you know and the industry and so on that
were in a in a more primitive stage
where um I definitely learned a lot more
in the later years about business and
organization and team structure there
were I mean there were definitely things
that I was not the best person or even a
very good person about managing like how
a a team should operate internally how
people should work together I was just I
you know the just get out of my way and
let me work on the code and do this and
more and more I've learned
how in the larger scheme of things how
sometimes relatively unimportant some of
those things are where it is this user
value generation that's the the
overarching importance for all of that
and I I didn't necessarily have my eye
on that ball correctly through a lot of
my you know my earlier years and there's
things that you know I could have I
could have gotten more out of people
handling things in different ways I you
know I could have made you know in some
ways more successful products by
following things in different ways
there's mistakes that we made that we
couldn't really have have known how
things would have worked out but it was
interesting to see in later years
companies like Activision showing that
hey you really can just do the same game
make it better every year and you can
look at that from a negative standpoint
and say it's like oh that's just being
derivative and all that but if you step
back again and say it's like no are the
people buying it still enjoying it are
they enjoying it more than what they
might have bought otherwise and you can
say no that's that's actually a great
value creation engine to do that if
you're in a position where you can I you
know don't be forced into Reinventing
everything just because you think that
you need to um you know lots of things
about business and team stuff that could
be done better but the technical work
that the kind of technical Visionary
type stuff that I laid I laid out I
still feel pretty good about there are
some class old ones about my defending
of open GL versus d3d um which uh turned
out to be one of the more probably
important momentous things there where
it never it was always a rear guard
action on Windows where Microsoft was
just not going to let that win but when
I look back on it now that fight to keep
openg GL relevant for a number of years
there meant that openg was there when
mobile started happening and openg GES
was the thing thing that drove all of
the acceleration of the mobile industry
and it's really only in the last few
years as Apple's moved to metal and some
of the other companies have moved to
Vulcan that that's moved away but really
stepping back and looking at it it's
like yeah I sold tens of millions of
games for different things but billions
and billions of devices wound up with an
appropriate capable Graphics API do in
no small part to me thinking that that
was really important that we not just uh
you know give up and use Microsoft's um
at that time really terrible API you
know the thing about Microsoft is the
apis don't stay terrible they were
terrible at the start but a few versions
on they were actually quite good and
there was a completely Fair argument to
be made that by the time dx9 was out it
was probably a better programming
environment than opengl but it was still
a wonderful good thing that we had an
open standard that could show up on
Linux and andro roid and iOS and
eventually webgl still to this day so uh
that was that was one that would be on
My Greatest Hits list of things that
that I impact that it had on billions of
devices yes so let's talk about it can
you tell the origin story of It
software again one of the greatest game
developer companies ever it created
Wolfenstein 3D games that Define my life
also in many ways as a thing that made
me realize what computers are capable of
in terms of Graphics in terms of
performance it just unlocks something
deep um in me and understanding what
these machines are all about as games
can do that so Wolfenstein 3D Doom quake
and uh just all the incredible
engineering Innovation that went into
that so how did it all start so I'll
caveat UPF front that I usually don't
consider myself the the historian of the
the software side of things I usually do
I kind of Point people at John Romero
for stories about the early days
where I you know I've never been like
I've commented that I'm a remarkably
unsentimental person in some ways where
I don't really spend a lot of time
unless I'm explicitly prodded to go back
and and think about the early days of
things and I didn't I I didn't
necessarily make the effort to Archive
everything exactly in my brain and the
more that I work on machine learning and
Ai and the aspects of memory and how
when you go back and polish certain
things it's not necessarily exactly the
way it happened but you know having said
all of that from from my view the way
everything happened that led up to that
was uh after I was an adult and kind of
taking a few college classes deciding to
drop out I was doing I was Hard Scrabble
contract programming work really
struggling to kind of keep groceries and
pay my rent and things and the company
that I was doing the most work for was a
company called Soft disk publishing
which had had the sounds bizarre now
business model of monthly subscription
software you know before there was an
Internet that people could connect to
and get software you would pay you know
a certain amount and every month they
would send you a disc that had some
random software on it and people that
were into computers thought this was
kind of cool and they had different ones
for the Apple 2 the the 2gs the PC the
Mac the uh Amiga lots of different
things here so quirky little business
but I was doing a lot of contract
programming for them where I'd write
tiny little games and sell them for $300
$500 and one of the things that that I
was doing again to keep my head above
water here was I decided that I could
make one program and I could Port Port
it to multiple system so I would write a
game like dark designs or catacombs and
I would develop it on the Apple 2 the
2gs and the IBM PC which apparently was
the thing that really kind of pequ the
attention of the the people working down
there like Jay Wilbur was my primary
editor and Tom Hall was a secondary
editor and they kept asking me it's like
hey you should come down uh and work for
us here and I I pushed it off a couple
times because I was really enjoying my
freedom of kind of being off on my own
even if I was barely getting by I loved
it I was doing nothing but programming
all day but I did have enough close
scrapes with like damn I'm just really
out of money that maybe I should I get
an actual ual job rather than
Contracting these kind of one at a time
things and and Jay Wilbur was great he
was like fedexing me the checks when I
would need them I to kind of get over
whatever hump I was at so I took the I
finally took them up on their offer to
come down to shreport Louisiana I was in
Kansas City at the time drove down I to
through the Ozarks and everything down
to Louisiana and saw the soft dis
offices went through talked to a bunch
of people met the people I had been
working with uh remotely at that time
but the most important thing for me was
I met two programmers there John Romero
and Lane Roth that for the first time
ever I had met programmers that knew
more cool stuff than I did where the
world was just different back then I was
in Kansas City it was one of those
smartest kid in the school does all the
computer stuff the teachers don't have
anything to teach him but all I had to
learn from was these few books at the
library it was not much at all and there
were some aspects of programming that
were kind of black magic to me like it's
like oh he knows how to format a track
on I you know on a low-level Drive
programming interface and this was I was
still not at all sure I was going to
take the job but I met these awesome
programmers that were doing cool stuff
and like Romero had worked at origin
systems and he had done like you know so
many different games uh ahead of time
that I did kind of quickly decide it's
like yeah I'll go take the job down
there and I settled down there uh moved
in and started working on more little
projects and the first kind of big
change that happened down there was the
company wanted to make a gaming focused
a PC gaming focused subscription uh just
like all their other was the same
formula that they used for everything
pay a monthly fee and you'll get uh a
disc with one or two games just every
month and no choice in what you get but
we think it'll be fun and that was the
model they were comfortable with and
said all right we're going to start this
Gamers Edge department and all of us
that were interested in that like me
Romero I Tom Hall was kind of helping us
from from his side of things Jay would
peek in and we had a few other
programmers uh working with us at the
time and we were going to to just start
making games just the same model um and
we dived in and it was fantastic you
know have to make new games every month
every month yeah and this in retrospect
looking back at it that sense that I had
done all this contract programming and
John Romero had done like far more of
this where he had done one of his
teaching himself efforts was he made a
game for every letter of the alphabet
it's that sense of like I'm just going
to go make 26 different games give them
a different theme and you learn so much
when you go through and you crank crank
these things out like on a bi-weekly
monthly basis something like to finish
it's not like an just an idea it's not
just from from the very beginning to the
very end is done it has to be done
there's no delaying it's done and you've
got deadlines and that kind of uh rapid
iteration pressure cooker environment
was super important for all of us
developing the skills that I you know
that brought us to where we eventually
went to I mean people would say like
like in the history of The Beatles like
it wasn't them being the Beatles it was
them playing all of these other uh you
know early works that that opportunity
to craft all of their skills before they
were famous that was very critical to
their later successes and I think
there's lot of that here where we did
these games that nobody remembers uh
lots of little things that contributed
to building up the skill set for the
things that eventually did make us
famous dooski wrote The Gambler I had to
write it in a month just make money and
nobody remembers that probably cuz he
had to figure out cuz it's
literally he didn't have enough time to
write it fast enough so he had to come
up with hacks actually literally it
again comes down to that point where
pressure and limitation of resources is
surprisingly important and it's
counterintuitive in a lot of ways where
you just think that if you've got all
the time in the world and you've got all
the resources in the world of course
you're going to get something better but
sometimes it really does work out that
the you know Innovation other necessity
and you know where you can or resource
constraints and you have to do things
when you don't have a choice it's
surprising what you can do is there any
good games written in that time would
you say some of them are still fun to go
back and play where you get the they
were they were all about kind of the mo
more modern term is game feel about how
just the exact feeli that things it's
not the grand strategy of the design but
how running and jumping and shooting and
those things I feel in the in the moment
and some of those are still if you sat
down at them you kind of go it's a
little bit different it doesn't have the
same movement feel but you move over and
you're like bang jump bang it's like hey
that's kind of cool still so you can get
lost in the rhythm of the game like the
is that what you mean by feel just like
uh there's something about it that pulls
you in nowadays again people talk about
compulsion loops and things where it's
that um that sense of exactly what
you're doing what your fingers are doing
on the keyboard what your eyes are
seeing and there are going to be these
sequences of things grab the loot shoot
the Monster jump over the obstacle get
to the end of the level these are
Eternal aspects of game design in a lot
of ways but there are better and worse
ways to do all of them and we did so
many of these games that it was uh we
got a lot of practice with it so one of
the kind of weird things that was
happening at this time is John Romero
was getting some uh some strange fan
mail and back in the days this was
before email so we literally got letters
sometimes and telling him it's like oh I
want to talk to you about your games I
want to uh reach out different things
and I eventually it turned out that
these were all coming from Scott Miller
at apogee software and he was reaching
out through he didn't think he could
contact johon directly that he would get
intercepted so he was trying to get him
to contact him through like back Channel
fan mail because he basically was saying
hey I'm making all this money on
shareware games I want you to make
shareware games because he had seen some
of the the games that Romero had done
and you know we looked at uh Scott
Miller's games and we didn't think they
were very good um we're like that can't
be making the kind of money that he's
saying he's making 10 grand or something
um off of this game and we really
thought that he was full of that it
was a lie trying to get uh to get him
into this but so that was kind of going
on at I you know at one level he was and
it was funny the moment when Romero
realized that he had some of these
letters pinned up on his wall of like
all of his fans and then we noticed that
they all had the same return address
with different names on them which was a
little bit of a two-edged sword there
trying to figure out the puzzle laid out
out before him yeah happened after I
kind of coincident with that was I was
working on a lot of the new technologies
where uh I was now full on the IBM PC
for the first time where I was really a
long hold out on Apple 2 forever and I
you know I loved my Apple 2 it was the
computer I was wished I had when I was
growing up and when I finally did have
one I was I was kind of clinging on to
that well past it sort of good use by
the best computer ever made you would
you say um I wouldn't make judgments
like that about it but it was position
in such a way especially in the school
systems that it impacted a whole lot of
American programmers at least where
there was programs that the Apple tw's
got into the schools and they had enough
capability that lots of interesting
things happened with them you know in
Europe it was different you had your
Amigas and Ataris and you know acorns in
the UK and things that that had
different things but in the United
States it was probably the Apple 2 made
the most impact for a lot of programmers
of my generation but so I was really
digging into the IBM and this was even
more so with the total focus because I
had moved to another city where I didn't
know anybody that I wasn't working with
uh I had a little apartment and then at
soft disk again the things that that
Drew me to it I had a couple programmers
that knew more than I did uh and they
had a library they had a set of books
and a set of magazines they had a couple
years of magazines the old Dr Do's
journal and all of these magazines that
had information about things and so
I was just in total immersion mode it
was eat breathe sleep computer
programming particularly the IBM for
everything that I was doing and I was
digging into a lot of these low-level
Hardware details that people weren't
usually paying attention to the way the
the IBM EG cards worked I which was fun
for me I hadn't had experience with
things at that level and back then you
could get Hardware documentation just
down at the register levels this is
where the crtc register is is this is
how the the color registers work and how
the different things are applied and
they were designed for a certain reason
they were designed for an application
they were had an intended use in mind
but I was starting to look at uh other
ways that they could perhaps be
exploited that they weren't initially
intended for could you comment on like
uh first of all what operating system
was there what what instruction set was
it like what what what are the what are
we talking about so this was Dawson x86
so 16bit uh 8086 the two 86s were there
and 386 existed they were rare uh we had
a couple for our development systems but
uh we were still targeting the more
broad I it was all dos 16bit um none of
this was kind of Doss extenders and
things how different is it from the
systems of today is it's kind of a
precursor that's similar very little if
you open up
command. on or com on Windows you see
some of the remnants of all of that but
it was a different world it was the 640k
is enough world and nothing was
protected it crashed all the time you
had tsrs or terminate and stay resident
hacks on top of things that would cause
configuration problems all the hardware
was manually configured in your auto
exac so it was a very different world
but the code is still the same similar
you would you could still write it my
earliest code there was written in
Pascal that was what I had learned I
kind of at an earlier point so between
basic and C++ there was Pascal so when
basic Assembly Language uh some of my
yeah my intermediate stuff was well you
had to for performance basic was just
too slow so most of the work that I was
doing as a contract programmer in my
teenage years was uh was Assembly
Language wait you wrote games in
assembly yeah complete games in uh in
Assembly Language and it's thousands and
thousands of lines of three-letter
acronyms for the the instructions that's
you you don't earn the once again
greatest programmer ever label without
being able to WR a an assembly okay
that's again everybody wrote their
everybody serious wrote their games in
Assembly Language it was kind of a
everybody serious you see what he said
everybody serious it was an outlier to
use uh Pascal a little bit where there
was one famous program called Wizardry
it was like one of the great early role
playing games that was written in Pascal
but it was almost nothing used Pascal
there but I did learn Pascal and I
remember doing all of my like to this
day I sketch in data structures when I'm
thinking about something I'll you know
I'll I'll open up a file and I'll start
writing struct definitions for how data
is going to be laid out and Pascal was
kind of formative to that because I
remember designing my RPGs in Pascal
record structures and things like that
and so I had uh gotten a pascal compiler
for the Apple 2gs that I could work on
in the first IBM game that I developed I
did in Pascal and and that's actually
kind of an interesting story again
talking about the constraints and
resources where I had an apple 2gs I
didn't have an IBM PC I wanted to Port
my applications to IBM because I thought
I could make more money on it so what I
wound up doing is I rented a PC for a
week uh and bought a copy of Turbo
Pascal and so I had a hard one week and
this was cutting into what minimal
profit margin I had there but I had this
computer for a week I had to get my
program ported before I had to return
the PC yeah and that was kind of what
the first thing that I had done on the
IBM PC and what led me to the taking the
job at soft disk and turbo Pascal
how's that different from regular Pasco
is a different compiler or something
like that so it was uh it was a product
of Borland which before Microsoft kind
of killed them they were they were the
Hot Stuff developer tools company yeah
had Borland turbo Pascal and turbo C and
turbo prologue I mean all the different
things but what they did was they took a
supremely pragmatic approach of making
something useful it was one of these
great examples where Pascal was an
academic language and you had things
like the ucdp system that Wizardry was
actually written in that they did they
did manage to make a game with that but
it was not a super practical system
while turbo Pascal was it was called
turbo because it was blazingly fast to
compile I mean really ridiculously 10 to
20 times faster than most other
compilers at the time but it also had
very pragmatic access to look you can
just poke at the hardware in these
different ways and we have libraries
that let you do things and it was a
pretty good it was a perfectly good way
to write games and this is one of those
things where people have talked about
different paths that computer
development could have taken where C
took over the world for uh reasons that
came out of Unix and eventually Linux
and and that was not a foregone
conclusion at all and people can make
real reasoned rational arguments that
the world might have been better if it
had gone a pascal route I'm somewhat
agnostic on that where I do know from
experience it was perfectly good enough
to do uh do that and it had some
fundamental improvements like had range
checked arrays as an option there which
could avoid many of C's real hazards
that happened in a security space but C1
they were basically operating at about
the same level of abstraction it was a
systems programming language but but you
said Pascal had more emphasis on data
structures I actually I um in the in the
tree of languages did Pascal come before
c did it they were pretty
contemporaneous so Pascal's lineage went
to modula 2 and eventually over on which
was another nichas word um uh kind of
experimental language but they were all
good enough at that level now some of
the classic academic oriented pascals
were just missing fundamental things
like oh you can't access this core
system thing because we're just using it
to teach students but uh turbo Pascal
showed that only modest changes to it
really did make it a completely capable
language and it had some reasons why you
could implement it as a single pass
compiler so it could be way way faster
although less scope for optimizations if
you do it that way uh and it did have
some range checking options it had a
little bit better typing capability
you'd have properly typed enum sorts of
things and other stuff that c lacked but
you know C was also clearly good enough
and it wound up with a huge inertia from
the Unix ecosystem and everything with
that garbage collection no it was not
garbage collected same kind of thing
same manual so you could still have your
use after freeze and all those other
problems but over um just getting rid of
array over runs at least if you were
compiled with that debugging option
certainly would have avoided a lot of
problems and could have a lot of
benefits but so anyways that was the
next thing I had to learn C because C
was where it seemed like most of the
most of the things were going so I
abandoned Pascal and I started working
Inc I started hacking on these Hardware
things dealing with uh you know the
graphics controllers and the EG systems
and what we most wanted to do so at that
time we had uh we were sitting in our
darkened office playing all the
different console video games we were
figuring out what do we want to kind of
what games do we want to make for a
Gamers Edge product there and so we had
one of the one of the first Super
Nintendos sitting there and we had a an
older Nintendo we were looking at all
those games and the core thing that
those consoles did that you just didn't
get on the PC games was this ability to
have a massive scrolling world where
most of the games that you would make on
the PC uh and early earlier personal
computers would be a static screen you
move little things around on it
and you interact like that maybe you go
to additional screens as you know as you
move but arcade games and consoles had
this wonderful ability to just have a
big world that you're slowly moving your
window through and that was for those
types of games the kind of action
exploration adventure games that was a
super super important thing and PC games
just didn't do that and what I had had
come across was a couple different
techniques for implementing that on the
PC and they're not hard complicated
things when I explain them now they're
they they're pretty straightforward but
just nobody was doing you sound like
Einstein describing his five papers is
pretty straightforward I understand but
it they're nevertheless Revolution so
size scrolling is a game changer yeah
and scrolling genus hyr vertical and
some of the consoles had different
limitations about you could do one but
not the other and I and there were
similar things going on as advancements
even in the console space where you'd
have like the original Mario game was uh
like just horizontal scrolling and then
later Mario games added vertical aspects
to it and different things that uh that
you were doing to explore you know kind
of expand the capabilities there and so
much of the early game design for
decades was removing limitations letting
you do things that you envisioned as a
designer you wanted the player to
experience but the hardware just
couldn't really uh or you didn't know
how to make it happen it felt impossible
you can imagine that you want to create
a like this big world through which you
can size scroll like through which you
can walk uh and then you ask yourself a
question how do I actually build that in
a way that's uh like the the latency is
low enough uh the hardware can actually
deliver that in such a way that it's a
compelling experience and we knew what
we wanted to do because we were we were
playing all of these console games
playing all these Nintendo games and
arcade games clearly there is a whole
world of awesome things there that we
just couldn't do on the PC at least
initially uh because every programmer
can tell it's like if you want to scroll
you can just redraw the whole screen but
then it turns out well you're going five
frames per second I that's not an
interactive fun experience you want to
be going 30 or 60 frames per second or
something and it just didn't feel like
that was possible it felt like the PCS
had to get five times faster for you to
make a playable game there and
interestingly I wound up with two
completely different solutions for the
scrolling problem and this is I this is
a theme that runs through everything
where all of these big technical
advancements it turns out there's always
a couple different ways of doing them
and it's not like you found the one true
way of doing it and we'll see this as we
go into 3D games and things later but so
the scrolling the first set of scrolling
tricks that I got was there was the
hardware had this ability to uh you
could shift like inside the window of
memory um so the EGA cards at the time
had 256 kilobytes of memory and it was
awkwardly set up in this planer format
where uh instead of having 256 or you
know 24 million colors you had 16 colors
which is four bits so you had four bit
planes 64k a piece of course 64k is a
nice round number for 16bit addressing
so your graphics card had a 16bit window
that you could look at and you could
tell it to start the video scan out
anywhere inside there so there were a
couple games that had taken this
approach of you could make a two 2 x two
screen or a 1x4 screen and you could do
scrolling really easily like that you
could just lay it all out and just pan
around there but you just couldn't make
it any bigger because that's all the
memory that was there uh the first
insight to the scrolling that I had was
well if we make a screen that's just one
tile larger you know and the we usually
had tiles that were 16 pixels by 16
pixels the little classic Mario block
that you run into lots of art gets drawn
that way and your screen is a certain
number of tiles but if you had one
little buffer region uh outside of that
you could easily pan around inside that
16 pixel region and that could be
perfectly smooth but then what happens
if you get to the edge and you want to
keep going the first way we did
scrolling was what I called adaptive
tile refresh which was really just a
matter of you get to the edge and then
you go back to the original point and
then only change the tiles that have
actually that are different between
where it was in most of the games at the
time time if you think about sort of
your classic Super Mario Brothers game
you've got big fields of Blue Sky uh
long rows of the same brick texture um
and there's a lot of commonality it's
kind of like a data compression thing if
you take the screen and you set it down
on top of each other in general only
about 10% of the tiles were actually
different there so this was a way to go
ahead and say well I'm going to move it
back and then I'm only going to change
those 10 20 uh whatever percent tiles
there and that meant that it was
essentially five times faster than if
you were redrawing all of the tiles and
that worked well enough for us to do a
bunch of these games for uh for Gamers
Edge we had a lot of these scrolling
games like SLX and Shadow Knights and
things like that that we were cranking
out at this High rate that had this
scrolling effect on it and it worked
well enough there were design challenges
there where if you made the worst case
if you made a checkerboard over the
entire screen you scroll over one and
every single tile Chang es and your
frame rate's now five frames per second
because it had to redraw everything so
the designers had a little bit that they
had to worry about they had to make
these relatively plain looking levels
but it was still pretty magical it was
something that we hadn't seen before and
uh the first thing that we wound up
doing with that was I had just gotten
this working and Tom Hall was sitting
there with me and we were looking over
at our Super Nintendo on the side there
with Super Mario 3 running and we had
the technology we had the tools set up
there and we stayed up all night and we
basically cloned the first level of
Super Mario Brothers performance- wise
as well yeah and so it and we had our
little character running and jumping in
there it was you know it wasn't uh it
was close to pixel accurate as far as
all the uh the backgrounds and
everything but the gaming was just stuff
that we cobbled together from previous
games that I had written I just kind of
like really kit bash the whole thing
together to make this demo and that was
one of the rare cases when I said I I
don't usually do these allight
programming things there's probably only
two memorable ones that I can think
about you know one was the all nighter
to go ahead and get um to get our
dangerous Dave and copyright
infringement is how we titled it because
we had a game called Dangerous Dave was
you know running around with a shotgun
shooting things uh and we were just
taking our most beloved game at the time
there the Super Mario 3 and sort of
sticking Dave inside that with this new
scrolling technology that was going
perfectly smooth for I am you know for
the
uh as it ran and Tom and I just kind of
blury the next morning you know kind of
left and we left a disc on I you know on
the desk for John Romero and Jay Wilbur
to see and just said run this and we
eventually made it back in later in the
day and it was you know like they
grabbed us and pulled us in you know
pulled us into the room and that was the
point where they were like we got to do
something with this you know we're we're
gonna make a company we're gonna go make
our own games where this was something
that we we were able to just kind of hit
them with a hammer of an experience like
wow this is just like so much cooler
than what we thought was possible there
and initially we tried to get Nintendo
to to let us make Super Mario 3 on the
PC that's really what we wanted to do
we're were like hey we can finish this
it's line of sight for this will be
great and we sent something to Nintendo
and we heard that it did get looked at
in Japan uh and they just weren't
interested in that uh but that's another
one of those life could have gone a very
different way where we could have been
like Nintendo's house PC team you know
at that point and Define the direction
of you know
uh Wolfenstein and uh doom and Quake
could have been a Nintendo creation yeah
so at the same time that we were just
doing our first scrolling demos I we
reached out to Scott Miller at appy and
said it's like hey we do want to make
some games you know these things that
you think you want those are those are
nothing what do you see what we can
actually do now this is going to be
amazing and he just like popped right up
and sent a check to us where we at that
point we still thought he might be a
fraud that he was just lying about all
of this but he was totally correct on
how much money he was making with his
shareware titles and this was his his
kind of real brainstorm about this where
shareware was this idea that software
doesn't have a fixed price if you use it
you send out of the goodness of your
heart some money to the Creator and
there were a couple utilities that did
make some significant success like that
but for the most part it didn't really
work you know there wasn't much software
in a pure shareware model that uh that
was successful The apog Innovation was
to take something call it shareware
split it into three pieces you always
made a Trilogy and you would put the
first piece out but then you buy the
whole trilogy for some shareware amount
which in reality it meant that the first
part was a demo where you kind of like
the demo went everywhere for free and
you paid money to to get the whole set
but it was still played as shareware and
we were happy to have the first one go
everywhere and it wasn't a crippled demo
where the first episode of all these
trilogies it was a real complete game
and probably 20 times as many people
played that part of it thought they had
a great game had found fond memories of
it but never paid us a dime but enough
people were happy with that where it was
really quite successful and these early
games that we didn't think very much of
compared to commercial quality games but
they were doing really good business
some fairly crude things and people it
was good business people enjoyed it and
it wasn't like you were taking a
crapshoot on what you were getting you
just played a third of the experience
and you loved it enough to hand write
out a check and put it in an envelope
and address it and send it out to apogee
to uh to get the rest of them so it was
a really pretty feel-good business
prospect there because everybody was
happy happy you know they knew what they
were getting I when they send it in they
would send in fan mail if you're going
to the trouble of addressing a letter
and I you know filling out an envelope
you write something in it and there were
just the literal bags of fan mail for
the shareware um games so people loved
them I I should mention that for you the
definition of wealth is being able to
have pizza whenever you want for me
there was a dream cuz I would play share
War Games over and over the the part
that's
over and over and it was very deeply
fulfilling experience but you know I I
dreamed of a time where I could actually
afford the full experience and this is
kind of this Dreamland Beyond Beyond the
Horizon when with you could you could
find out what else is there in some
sense even just playing the Sher
whereare was um it's the limitation of
that you know life is is limited
eventually we all die in that way share
where it was
like somehow really fulfilling to have
this kind of mysterious thing Beyond
what's free or was there it's kind of I
don't know that was maybe it's because a
part of my childhood is playing shw
games that was a really fulfilling
experience it's so interesting how that
model still brought joy to so many
people the 20x people that played it I
felt very good about that and I would
run into people it's like that would say
oh I loved that game you know that you
had early on command ke whatever and um
and no they they meant just the first
episode that they got to see everywhere
play the crap out of and that was all
that was all good yeah yeah but so we
were in this position where Scott Miller
was just fronting us cash and saying
yeah make you know make a game but uh we
did not properly pull the trigger and
say all right we're going to we're
quitting our jobs we were like we're
going to do both we're going to keep
working at soft disk working on this and
then we're going to go ahead and make a
new game for apy at the same time and
this eventually did lead to some legal
problems and we had uh we had trouble it
all got worked out in the end but it was
not a good call at the time there and
your legal mind at the time was not
Stellar you you were not thinking uh in
terms of in legal terms no I I
definitely wasn't none of us were I and
in hindsight yeah it's like how did we
think we were going to get away with
like even using our work computers to
write uh write software for you know our
our Breakaway uh new company it was not
a good plan how did Commander keing come
to be so the design process we would
start from we had some idea of what we
wanted to do we wanted to do a Mario
like game it was going to be a
sidescroller uh it was going to use the
technology we we had some sense of what
it would have to look like because of
the limitations of this adaptive tile
refresh technology it had to have fields
of relatively constant tiles you
couldn't just paint pain up a background
and then move that around uh the early
design or all the design for Commander
Keane really came from Tom Hall where he
was uh you know he was kind of the main
creative mind for the the early ID
software stuff where we had an
interesting division of things where Tom
was all creative in design I was all
programming John Romero was an
interesting bridge where he was both a
very good programmer and also a very
good designer and artist and kind of
straddled between the areas but
Commander Keane was very much Tom Hall's
baby and uh he came up with all the
design and backstory for the different
things of kind of a a mad scientist
little kid with um you know building a a
rocket ship and a zap gun and uh
visiting alien worlds and doing all of
this that the background that we lay the
game inside of and there's not a whole
lot to any of these things you know
design for us was always just what we
needed to do to make the game that was
going to be so much fun to play
and we made our we laid out our first
Trilogy of games you know the shareware
formula it's going to be three pieces we
make Menor ke one two and three and we
just really started uh busting on all
that work and it went together really
quickly it was like three months or
something that while we were still
making games every month for uh for
Gamers Edge we were sharing technology
between that I'd write a bunch of code
for this and we just kind of use it for
both uh again not a particularly good
idea there that had consequences for us
but in 3 months we got our first uh our
first game out and all of a sudden it
was three times as successful as the
most successful thing apogee had had
before and we were making like $30,000 a
month IM immediately from the commander
Kean stuff and that was again a surprise
to us it was more than we thought that
was going to uh that that was going to
make and we said well we're going to
certainly roll into another set of
titles from this and in that three
months I had come up with a much better
way of doing the scrolling technology
that was not the Adaptive tile refresh
which in some ways was even simpler and
these things so many of the great ideas
of Technology are things that are back
of the envelope uh designs I make this
comment about modern machine learning
where all the things that are really
important practically in the last decade
are each of them fits on the back of an
envelope there are these simple little
things they're not super dense hard to
understand uh Technologies and so the
the second scrolling trick was just a
matter of like okay we know we've got
this 64k window and the question was
always like well you could make a 2 by
two but you can't go off the edge uh but
I finally asked well what actually
happens if you just go off the edge if
you take your start and you say it's
like okay I can move over I'm scrolling
I can move over I can move down I'm
scrolling I get to what should be the
bottom of the memory window it's like
well what if I just keep going and I say
I'm going to start at I you know what
happens if I start at ffe at the very
end of the the 64k block and it turns
out it just wraps back around to the top
of the block and I'm like oh well this
makes everything easy you can just
scroll the screen everywhere and all you
have to draw is just one new line of
tiles which everything you expose it
might be unaligned off various parts of
the uh of the screen memory but it just
works that no longer had the problem of
you had to have fields of the similar
colors because you doesn't matter what
you're doing you could be having a a
completely unique world and you're just
drawing the new strip as it comes on but
it might be like you said unaligned so
it can be all over the place and it
turns out it doesn't matter I would have
two page flipped screens as long as they
didn't overlap they moved in series
through this uh two-dimensional window
of graphics and that was one of those
like well this is so simple this just uh
this just works it's faster um there it
seemed like there was no downside funny
thing was I it turned out after we
shipped titles with this there were what
they called uh super VGA cards the cards
that would allow higher resolutions and
I and different features that the
standard ones didn't and on some of
those cards uh this was a weird
compatibility Quirk again because nobody
thought this was not what it was
designed to do and some of those cards
had more memory they had more than just
256k in four planes they had 512k or a
megabyte and on some of those cards I
scroll my window down and then it goes
into uninitialized memory that actually
exists there rather than wrapping back
around to the top and then I was in the
tough position of do I have to track
every single one of these and it was a
mad house back then with there were 20
different video card vendors with all
slightly different implementations of
their non-standard functionality so
either I needed to natively program all
of the the VGA cards there to map in
that memory and keep scrolling down
through all of that or I kind of punted
and took the easy solution of when you
finally did run to the edge of the
screen I accepted a hitch and just
copied the whole screen up there so on
some of those uh those cards it was a
compatibility mode in the normal ones
when it all worked fine everything was
just beautifully smooth but if you had
one of those cards where it did not wrap
the way I wanted it to you'd be
scrolling around scrolling around and
then eventually you'd have a little
hitch where 200 Mill seconds or
something that was not super smooth
froze a little bit and then so it's a
binary thing is it one of the standard
screens or is it one of the weird ones
the super VGA ones yeah okay and so we
would default to and I think that was
one of those that changed over the kind
of course of deployment where early on
we would have a normal mode and then you
would have you would enable the
compatibility flag if your screen did
this crazy flickery thing when you got
to a certain point in the game uh and
then later I think it probably got
enabled by default as just more and more
of the cards it kind of did not do
exactly the right thing and that's the
two-edged sword of doing unconventional
things with technology where you can
find something that nobody thought about
doing that kind of scrolling trick when
they set up those cards uh but the fact
that nobody thought that was the primary
reason when I was relying on that then I
wound up being broken on some of the
later cards let me uh take a bit of a
tangent but
uh ask you about the hacker ethic uh cuz
you mentioned Sher where it's it's it's
an interesting world the world of U
people that make money the business and
the people that build systems the
engineers and um what is the ha hacker
ethic you've been a man of the people
and you've embodied at least the part of
that ethic what does it mean what did it
mean to you at the time what does it
mean to you today so Steph Levy's book
hackers was a really formative book for
me uh as a teenager I mean read it
several times and there was all of the
great lore of the early MIT era of
hackers and you know ending up at the
end with it kind of went through the
early MIT hackers and then the Silicon
Valley hardware hackers and then uh the
game hackers in part three and at that
time as a teenager I really was kind of
bitter in some ways it's like I thought
I was born to late I thought I missed uh
the window there and I really thought I
belonged in that third section of that
book with the game hackers and they were
talking about you know the Williams at
Sierra and origin systems with Richard
garot and and it's like I really wanted
to be there and I knew that was that was
now a few years in the past it was I you
know it was not to be but the early days
especially the early MIT hacker days
talking a lot about this sense of uh the
hacker ethic that there was this sense
that it was about sharing information
being good not keeping it to yourself
and that it's not a zero sum game that
you you know you can share something
with another programmer and it doesn't
take it away from you you know you you
then have somebody else doing something
and I also think that there's an aspect
of it where it's this ability to to take
joy in other people's accomplishments
where it's not the Cutthroat bit of like
I have to be first I have to be
recognized as the the one that did this
in some way but being able to see
somebody else some do something and say
holy that's amazing you know and
just taking joy in the ability of
something amazing that somebody else
does and the the big thing that I was
able to do through ID software was uh
this ability to eventually release the
source code for most of our like all of
our really seminal game titles and that
was a it was a stepping stone process
where we were kind of surprised early on
where uh people were able to hack the
existing games and of course I had
experience with that I remember hacking
my copies of Ultima so I give myself you
know 9999 gold and raise my levels and
you know break out the sector editor and
so I was familiar with all of that so it
was just it was with a smile when I
started to see people doing that to our
games I am you know making level editors
for Commander Keane or uh hacking up
Wolfenstein 3D but I made the pitch
internally that we should actually
release our own tools for like what we
did uh what we used to create the games
and that was you know that was a little
bit debatable about well you know will
this let other will give people a leg up
it's always like what's that going to
mean for the competition yeah but the
really hard pitch was to actually
release the full source code for the
games and it was a balancing act with
the uh the other people inside the
company where it's interesting how the
programmers generally did get certainly
I the people that I worked closely with
they did kind of get that ethic bit
where you wanted to share your code you
were you were proud of it you wanted
other people to take it do cool things
with it but uh interestingly the the
broader game industry is a little more
hesitant to embrace that than like the
group of people that we happen to have
at ID software where it was always a
little interesting to me seeing how a
lot of people in the game modding
Community were very possessive of their
code they did not want to share their
code they wanted it to be theirs it was
their you know know claim to fame and
that was much more like what we tended
to see with artists where you know the
artists understand something about
credit and I you know wanting it to be
known as their work and a lot of the
game programmers felt a little bit more
like artists than like hacker
programmers in that it was about
building something that maybe felt more
like art to them than the the more
tool-based and exploration based uh kind
of hacking culture side of things yeah
it's so it's so interesting that this
kind of
um fear that credit will not be
sufficiently attributed to you and
that's one of the things that I do bump
into a lot because I I try not to go CL
I mean it's easy for me to say because
so much credit is heaped on me for the
the ID software side of things but when
people come up and they they want to
pick a fight and say no it's like that
wasn't where firsters gaming came from
and you can point to you know you can
point to some of like things on obscure
titles that I was never aware of or like
the old Playdoh systems or you know each
personal computer had something that was
3D and moving around and I'm you know
and I'm happy to say it's like no I mean
I saw Battle Zone and Star Wars in the
arcades I had seen 3D Graphics I had
seen all these things they I'm standing
on the shoulders of lots of other people
but sometimes these examples they pull
out it's like N I didn't know that
existed I mean there I had never heard
of that before then that didn't
contribute to what I made but there's
plenty of stuff that did and you know I
I I think there's good cases to be made
that obviously doom and Quake and
Wolfenstein were were formative examples
for what everything that came after that
but I don't feel the need to go fight
and say claim Primacy or initial
invention of anything like that but a
lot of people do want to I think when
you fight for the credit in that way and
it does go against the hacker
ethic you destroy something fundamental
about the culture about the community
that builds cool stuff I think credit
ultimately
um uh so I had this sort of um there's a
famous wrestler in Freestyle Wrestling
called
buar and he always preached that you
should just focus on the art of the
wrestling and let
people um write your story however they
want uh the the the highest form of the
art is just focusing on the artart and
that's something that is something about
the the hacker ethic is just focus on
building Cool Stuff sharing it with
other cool people and credit will get
assigned correctly
uh in the long Arc of History yeah and I
generally think that's true and you've
got I am you know like there's some
things there there's a graphics
technique that got labeled CarMax
reverse I am you know literally named
and it turned out that I wasn't the
first person to to figure that out
scien like oh
this and then there's things that get
attributed to me like the inverse square
root hack that I actually didn't do I
flat out that wasn't me and it's like
it's weird how the mimetic power of the
internet I cannot I can of programming
just everything just gets attributed to
you now even though you've never sought
that the credit of things I mean but
part of the the fact of humility behind
that is what uh attracts the
attributions let's talk about a game me
one of the greatest games ever made I
know you could talk about doing quake
and so on but to me Wolfenstein 3D was
like
wow it it blew my mind that the world
like this could exist so how did
Wolfenstein 3D come to be uh in terms of
the programming in terms of the design
in terms of some of the memorable
technical
challenges um and also actually just
something you haven't mentioned
you know how did these ideas
come to be inside your mind the Adaptive
sidescrolling so the solutions to these
technical challenges so I usually can
introspectively pull back pretty
detailed uh accounts of how technology
Solutions and design choices on my part
came to be where I technically we had
done two games 3D games like that before
where hover tank was the first one which
had had flat-shaded walls but did have
the scaled enemies inside it and then
catacombs 3D which had textured walls
scaled enemies and uh some more uh some
more functionality like the disappearing
walls and some other stuff but what's
really interesting from a game
development standpoint is those games
catacombs 3D P tank and Wolfenstein they
literally used the same code for a lot
of the character behavior that a 2d game
that I had made earlier called catacombs
did where it was an overhead view game
kind of like Gauntlet you're running
around and you can open up doors pick up
items basic game stuff and the thought
was that this exact same game experience
just presented in a different
perspective it could be literally the
same game just with a different view
into it would have a dramatically
different impact on the players well so
it wasn't it wasn't a true 3D you're
saying that you can kind of fake it you
can like scale enemies meaning things
that are farther away you can make them
smaller so from the game was a 2d map
like all of our games use the same tool
for creation we use the same map editor
for creating Keen as Wolfenstein and he
tank and catacombs and all this stuff so
the game was a 2d grid uh made out of
blocks and you could say well these are
walls these are where the enemy start
then they start moving around and these
early games like catacombs you played it
strictly in a 2d view it was a scrolling
2D View and that was kind of using an
Adaptive tile refresh at the time to be
able to do something like that and then
the thought that these early games all
it did was take the same basic enemy
logic but instead of seeing it from the
God's eye view on top you were inside it
and turning from side to side yawing
your view and moving forwards and
backwards and side to side I and it's a
striking thing where you always talk
about wanting to isolate and Factor
changes in values and this was one of
those most pure cases there where the
rest of the game changed very little it
was our normal kind of change the colors
on something and draw a different
picture for it but it's kind of the same
thing but the perspective changed in a
really fundamental way and it was
dramatically different I can remember
the reactions where the artist uh Adrian
that had been drawing the pictures for
we had a cool big troll thing in
catacombs 3D and we had uh these walls
that you could get a key and you could
make the blocks disappear again really
simple stuff block could either be there
or not there so our idea of a door was
being able to make a set of blocks just
disappear and I remember the reaction
where he had drawn these characters and
he was slowly moving around and like
people had no experience with 3D
navigation it was all still keyboard we
didn't even have mice uh set up at that
time but slowly moving going up picked
up a key go to a wall the wall
disappears in a little animation and
there's a monster like right there and
he practically fell out of his chair it
was just like ah and games just didn't
didn't do that you know the games were
the God's ey view you were a little
invested in your little guy you can be
like you know happy or sad when things
happen but you just did not get that
kind of startle
reaction your face something in the back
of your brain some reptile brain thing
is just going oh something just
happened and that was one of those early
points where it's like yeah this is
going to make a difference this is going
to be powerful and it's going to matter
were you able to imagine that in the
idea stage or no so not that exact thing
so again we had cases like the arcade
games Battle Zone and Star Wars that you
could kind of see a 3D World and things
coming at you and you get some sense of
it but nothing had done the kind of
Worlds that we were doing and the sort
of action-based things 3D at the time
was really largely about these
simulation thoughts and this is
something that really might have trended
differently if not for the ID software
approach in the games where where there
were flight simulators there were
driving simulators you had like hard
Drivin and Microsoft flight simulator
and these were doing 3D and general
purpose 3D and ways that were more
flexible than what we were doing with
our games but they were looked at as
simulations they weren't trying to
necessarily be fast or responsive I you
or letting you do kind of exciting
Maneuvers because they were trying to
simulate reality and they were taking
their cues from the big systems the
Evans and Sutherlands and the Silicon
Graphics that were doing things but we
were taking our cues from the console
and arcade games you know we wanted
things that were sort of quarter eaters
that were doing fast-paced things that
could smack you around rather than just
smoothly gliding you from place to place
so quarter
ear and you know the funny thing is so
much that that built into us that
Wolfenstein still had lives and you had
like one of the biggest powerups in all
these games like was an extra life
because you started off with three lives
and you lose your lives and then it's
game over and there weren't save games
in in most of this stuff it was it
sounds almost crazy to say this but it
was an innovation in Doom to not have
lives you know you could just play Doom
as long as you wanted you just restart
at the the start of the level and why
not this is like we we aren't trying to
take people's quarters they've already
paid for the entire game we want them to
have a good time and you would have some
uh you know some old-timer purist that
might think that there's something to
the epic journey of making it to the end
having to restart all the way from the
beginning after a certain number of
tries but no more fun is had when you
just let people kind of keep trying when
they're stuck rather than having to go
all the way back and and learn different
things so you've recommended the book
game engine black book Wolfenstein 3D
for technical exploration of the game so
looking back 30 years what are some
memorable technical innovations that
made this perspective shift into this
world that's so immersive that scares
you when a monster appears what were
some things yet to solve so one of the
interesting things that come back to the
theme of deadlines and resource
constraints the the game catoms 3D um we
shipped we were supposed to be shipping
this for Gamers Edge on a monthly
Cadence and I had slipped I was actually
late it slipped like six weeks because
this was texture mapped walls doing
stuff that I hadn't done before and at
the six week point it was still kind of
glitchy and buggy there were things that
I knew that if you had a wall that was
like almost Edge on you could slide over
to it and you could see some things
freak out or vanish or not work and I
hated that I I but I was up against the
wall we had to ship the game uh it was
still a lot of fun to play it was novel
nobody had seen it it gave you that
startle reflex uh reaction so it was
worth shipping but it had these things
that I knew were kind of flaky and janky
and not uh not what I was really proud
of so one of the the things that I did
very differently in
Wolfenstein I was I went catacombs used
almost a conventional thing where you
had segments that were one-dimensional
polygons basically that were clipped and
uh and backf faac and done kind of like
a very crude 3D engine from the
professionals but I wasn't getting it
done right I I was not doing a good
enough job I didn't really have line of
sight to um to fix it right there's
stuff that of course I look back it's
like oh it's obvious how to do this do
the math right do your clipping right uh
check all of this how you handle the
Precision but I did not know how to do
that at that time and I was that the
first 3D engine you wrote cacom 3D again
hover tank had been a little bit before
that but that had the flat-shaded walls
so the texture mapping on the walls was
what was bringing in some of these
challenges that was uh that was hard for
me and I couldn't solve it right at the
time can you describe what flat shading
is in texture mapping so in the the
walls were solid color one of 16 colors
um in Hover tank so that's easy it's
fast you just draw the solid color for
everything texture mapping is what we
all see today where you have an image
that is stretched and distorted onto the
walls or the surfaces that you're
working with um and it was you know it
was a long time for me to just figure
out how to do that without it distorting
in the wrong ways and and I did not get
it all exactly right in catacombs and I
I had these
flaws so that was important enough to me
that rather than continuing to bang my
head on that when I wasn't positive I
was going to get it I went with a
completely different approach for
drawing for figuring out where the walls
were which was a ray casting approach
which I had done in catacombs 3D I had a
bunch of code trying to make this work
right and it wasn't working right in
Wolfenstein I wound up going to a very
small amount of assembly code so in some
ways this should be a slower way of
doing it but by making it a smaller
amount of work that I could more tightly
optimize it worked out and Wolfenstein
3D was just absolutely Rock Solid you
know it was you know nothing glitched in
there the game just was pretty much
Flawless through all of that and I was
super proud of that um but eventually
like in the later games I went back to
the more span-based things where I could
get more total efficiency once I really
did figure out how to do it so there
were two sort of key technical things to
Wolfenstein one was this Ray casting
approach which you still to this day you
see people go and say let's write a ray
casting engine because because it's an
understandable way of doing things that
lets you make games very much like that
so you see Ray cters in JavaScript Ray
cters in Python people that are are
basically going and reimplementing that
uh that approach to to taking a tiled
world and casting out into it it works
pretty well but it's not the fastest way
of doing it can you describe what Ray
casting is so you start off and you've
got your screen which is 320 pixels
across at the time if you haven't sized
down uh the window for for greater speed
and at every pixel there's going to be
an angle from you've got your position
in the world and you're going to just
run along that angle and keep going
until you hit a block so up to 320 times
across there it's going to throw cast
array out into the world from wherever
your origin is until it runs into a wall
and then it can figure out exactly where
on the wall uh it hits the performance
challenge of that is as it's going out
every block it's Crossing it checks is
this a solid wall so that means that in
and like the early Wolfenstein levels
you're in a small jail cell going out
into a small hallway it's super
efficient for that because you're only
stepping across three or four blocks but
then if somebody makes a room that
covers our Maps were limited to 64x 64
blocks if you made one room that was
nothing but walls at the far space it
would go pretty slow because it would be
stepping across 80 tile tests or
something along the way by the way the
physics of our universe seems to be
Computing this very thing so this Maps
nicely to the actual physics of our
world yeah you get I follow a little bit
of some like Steven wolfram's work on
you know interconnected Network
information states of that and that's
it's beyond what I can have an informed
opinion on but it's interesting that
people are considering things like that
and have uh and have things that can
back it up yeah that's yeah there's
whole different sets of interesting
stuff there so Wolfenstein 3D had
raycasting Ray casting and then the
other kind of key aspect was what I
called compiled scalers where the idea
of um you saw this in the earlier
classic arcade games like space Harrier
and stuff where you would take a picture
which is normally drawn directly on the
screen and then if you have the ability
to make it bigger or smaller big chunky
pixels or phally small drop sampled
pixels uh that's the fundamental aspect
of what our characters were doing in
these 3D games you would have it's just
like you might have drawn a tiny little
character but now we can make him really
big big and make them really small move
it around uh that was The Limited kind
of 3D that we had for characters to make
them turn there were literally eight
different views of them you didn't
actually have a 3D model that would
rotate you just had these cardboard
cutouts but that was good enough for
that startle fight reaction and it was
kind of what we had to deal deal with
there so a straightforward approach to
do that you could just write out your
doubly nested Loop of uh you've got your
stretch factor and it's like you've got
a point you stretch by a little bit it
might be on the same pi it might be on
the next pixel might have skipped a
pixel um you can write that out but it's
not going to be fast enough where
especially you get a character for that
right in your face monster covering
almost the entire screen doing that with
a general purpose scaling routine would
have just been much too slow it would
have worked when they're small
characters but then it would get slower
and slower as they got closer to you
until right at the time when you most
care about having a fast reaction time
the game would be chunking down so the
fastest possible way to draw pixels
at that time was to
um instead of saying I've got a general
purpose um version that can handle any
scale I made I I used a program to make
essentially a hundred or more separate
little programs that was optimized for I
will take an image and I will draw it 12
pixels tall I'll take an image I'll draw
it 14 pixels tall up by every two pixels
even for that so you would have the most
optimized code so so that in the normal
case where most of the world is fairly
large I like the the pixels are big you
know we did not have a lot of memory so
in most cases that meant that you would
load a pixel color and then you would
store it multiple times so that was
faster than even copying an image in a
normal conventional case because most of
the time the image is expanded so
instead of doing one read one write for
a simple copy you might be doing one
read and three or four wres as it got
really big and that had the beneficial
aspect of just when you needed the
performance most when things are
covering the screen it was giving you
the most acceleration for that by the
way were you able to
um understand this through thinking
about it or were you testing like the
right speed and like so this again comes
back to I can find the antecedants for
things like this so in I back in the
Apple 2 days I the graphics were
essentially single bits at a time and if
you want want to make your little
spaceship if you wanted to make it
smoothly go across the world if you just
took the image and you drew it out at
the next location you would move by
seven pixels at a time so it Go chunk
chunk chunk if you wanted to make it
move smoothly you actually had to make
seven versions of the ship that were
pre- shifted you could write a program
that would shift it dynamically but on a
one megahertz processor that's not going
anywhere fast so if you wanted to do a
smooth moving fast action game you made
separate versions of each of these uh
Sprites now there were a few more tricks
you could pull that if it still wasn't
fast enough you could make a compiled
shape where instead of this program that
normally copies an image and says like
get this bite from here store it here
get this bite store this bite if you've
got the memory space you could say I'm
going to write the program that does
nothing but draw this shape it's going
to be like I'm going to load the
immediate value 25 you know which is
some bit pattern and then I'm going to
store that at this location
uh rather than loading something from
memory that involved indexing registers
and this other slow stuff you could go
ahead and say no I'm going to hardcode
the exact values of all of the image
right into the program now this was
always a horrible trade-off there but
you didn't have much memory and you
didn't have much speed but if you had
something that you wanted to go really
fast you could turn it into a program
and that was you know knowing about that
technique is what made me think about
some of these unwinding it for the PC
where people that didn't come from that
back ground we're less likely to think
about that I mean there's some deep
parallels probably to human cognition as
well there's something
about optimizing and
compressing the the processing of a new
information that requires you to predict
the possible ways in which the game or
the world might unroll and you have
something like compiled scalers always
there so you have like optim like you
have a prediction of how the world will
unroll and you have some kind of
optimized data structure for that
prediction and then you can modify if
the world turns out to be different you
can modify in slight way and as far as
building out techniques so so much of
the brain is about the associative
context you know they're just when you
learn something it's in the context of
something else and you can have faint
tiny little hints of things and I do
think there are some deep things uh you
know around like sparse distributed
memories and boosting that's like if you
can just be slight above the noise floor
of having some hint of something you can
have things refined into pulling the
memory back up so having a being a
programmer and having a toolbox of like
all of these things that things that I
did in all of these previous lives of
programming tasks that still matters to
me about how I'm able to pull up some of
these things like in that case it was
something I did on the Apple too then
being relevant for the PC and I have
still cases when I would when I would
work on mobile development then' be like
okay I I did something like this back in
the the Doom days but now it's a
different environment but I still had
that tie I can bring it in and I can
transform it into what the world needs
right now and I I do think that's
actually one of the very core things
with human cognition and brain like I
you know brain-like functioning is
finding these ways about you've got your
brain is kind of everything everywhere
all at once you know it's it is just a
set of all of this stuff that is just
fetched back by these queries that go
into it and they can just be slightly
above the noise floor with random noise
in your n neurons and synapses that are
affecting exactly what gets pulled up so
you're saying some of these very
specific solutions for different games
you find that there's a kernel of an a
deep idea that's generalizable to other
to other things yeah you can't predict
what it's going to be but that idea of
like I called out that compiled shaders
uh in the forward that I wrote for that
uh the game engine black book as you
know this is it's kind of an end point
of unrolling code but that's one of
those things that thinking about that
and having that in your mind and I'm
sure there are some programmers that you
know hear about that think about it a
little bit it's kind of the mind blown
moment it's like oh you can just turn
all of that data into code and nowadays
you know you have instruction cache
issues and that's not necessarily the
best idea but there are different it's
an idea that has power and has probably
relevance in some other areas maybe it's
in a hardware point of view that there's
a way you approach building Hardware
that has that same you don't even have
to think about iterating you just bake
everything all the way into it in one
place what is the story of how you came
to program Doom what are some memorable
technical challenges or Innovations
within that game so the path that we
went after uh after Wolfenstein got out
and we were on this crazy Arc where Keen
1 through three more success than we
thought Keen 4 through six even more
success Wolfenstein even more success so
we were on this this crazy trajectory
for things so actually our first Box
commercial project was a commander Keen
I game but then Wolfenstein was going to
have a game Spear of Destiny which was a
commercial version 60 new levels so the
rest of the team took the game engine
pretty much as it was and started
working on that we got new monsters but
it's basically reskins of the things
there and there's a really interesting
aspect about that that I didn't
appreciate until much much later about
how Wolfenstein clearly did tap out uh
its limit about what you want to play I
all the levels and a couple of our
license things there was a a hard
creative wall that you did not really
benefit much by continuing to beat on it
but uh a game like doom and other more
modern games like Minecraft or something
there's kind of a turing completeness
level of design Freedom that you get in
games that Wolfenstein clearly sat on
one side of you know all the creative
people in the world could not go and do
a masterpiece just with the technology
that Wolfenstein had Wolfenstein could
do Wolfenstein but you really couldn't
do something crazy different but it
didn't take that much more capability to
get to Wolfenstein with the free form
lines and a little bit more artistic
freedom to get to the point where people
still announce new Doom levels today all
these years after without having
completely Tapped Out the creativity how
did you how did you put it touring
complete like touring complete design
space design where it's like you know we
have the kind of computational
universality on a lot of things and how
different work but yeah there's things
where a box can be too small but above a
certain point you kind of are at the
point where you you really have almost
unbounded creative ability there and
doom is the first time you cross that
line yeah where there were thousands of
Doom levels created and some of them
still have something new and interesting
to say to the world about it is that
line can you introspect what that line
was is in the design space is it
something about the programming uh
capabilities that you were able to add
to the game so the graphics Fidelity was
a necessary part because the block
limitations in Wolfenstein uh what we
had right there was uh was not enough
the full scale blocks although Minecraft
I really did show that perhaps blocks uh
stacked in 3D and at one quarter the
scale of that or 1/8 in volume is then
sufficient to have all of that but the
the wall-sized blocks that we had in
Wolfenstein was too much of a creative
limitation you know we licensed the
technology to a few other teams none of
them made you know too much of a of a
dent with that it just wasn't enough
creative ability but a little bit more
whether it was the variable floors and
ceilings and arbitrary angles in Doom or
the smaller foxal blocks in uh in
Minecraft is then enough to open it up
to to just worlds and worlds of new
capabilities what is binary space
partitioning so the which is one one of
the Technologies yeah so jump around a
little bit on the on the story path
there yes so while the team was working
on spe Destiny for Wolfenstein I I had
we had met another development team
Raven soft wear while we were in
Wisconsin and U they were doing they had
RPG background and I I still kind of
loved that and I offered to do a game
engine for for them to let them do a 3D
rendered RPG instead of the like most
RPG games were kind of handrawn they
made it look kind of 3D but it was done
just all with artist work rather than a
real engine and after Wolfenstein this
was still a tile-based world but I added
floors and ceilings and some lighting
and the ability to have some sloped
floors and different areas that was my
intermediate step for a game called
shadowcaster and it had slowed down
enough it was not fast enough to do our
type of action things so they they had
the screen cropped down a little bit so
you couldn't go the full screen width
like we would try to do in
Wolfenstein I but I learned a lot I got
the floors and ceilings and lightings
and it looked great they were great
artists up there and it was it was an
inspiration for us to look at some of
that stuff but I had learned enough from
that that I had the plan for I knew
faster ways to do the the lighting and
shadowing and I wanted to do this free
form geometry I wanted to break out of
this tile based I 90 degree World
limitations so we had uh that was when
we got our next stations and we were
working with these higher powerered
systems and I we built an editor that
let us draw kind of arbitrary line
segment ments and I was working hard to
try to make something that could render
this fast enough I you know I was
pushing myself pretty hard I and we were
we were at a point where we could see
some things that looked amazingly cool
but it wasn't really fast enough for the
way I was doing it I for this
flexibility it was no longer I couldn't
just raycast into it and I had these
very complex sets of lines and simple
little worlds were okay but the cool
things that we wanted to do just weren't
quite fast enough and I wound up taking
a break at that point and I did the the
port I did two ports of our game's uh
Wolfenstein to the uh to the Super
Nintendo it was a it was a crazy
difficult thing to to do which was an
even slower processor was like two I
couple megahertz uh processor and it had
been this whole thing where we had
farmed out the um the work and it wasn't
it wasn't going well and I took it back
over and trying to make it go fast on
there where it really did not have much
processing power the pixels were
stretched up hugely and it's you know
was pretty ugly when you looked at it
but in the end it did come out fast
enough to play and still be kind of fun
from that but that was where I started
using uh bsp trees or binary space
partitioning trees it was one of those
things I had to make it faster there it
was a stepping stone where it was
reasonably easy to understand in the
grid world of Wolfenstein where it was
all still 90 degree angles um bsp trees
were I eased myself into it with that
and it was a big success um then when I
came back to working on Doom I had this
new tool in my toolbx it was going to be
a lot harder with the arbitrary angles
of Doom this was where I really started
grappling with Epsilon problems and just
you know up until that point I hadn't
really had to deal with the fact that I
am so many numeric things this almost
felt like a betrayal to me where people
had told me that I had mathematicians up
on a bit of a pedestal where I was
people think I'm a math Wizard and I'm
not I really everything that I did was
really done with a solid high school
math understanding uh you know Algebra 2
trigonometry and um that was what got me
all the way through doom and Quake and
all of that of just understanding basics
of matrices and knowing it well enough
to do something with it what's the
Epsilon problems you run into so I when
you wind up taking a like a sloped line
and you say I'm going to intersect it
with another sloped line
um then you wind up with something
that's not going to be on these nice
grid boundaries with the Wolfenstein
tile maps all you've got is horizontal
and vertical lines looking at it from
above and if you cut one of them it's
just obvious the other one gets cut
exactly at that point but when you have
angled lines you're doing a kind of a
slope intercept problem and you wind up
with rational numbers there where things
that are not going to evenly land on an
integer or even on any fixed point value
that you've got so everything winds up
having to snap to some fix point value
so the lines slightly change their angle
you wind up if you cut something here
this one's going to bend a little this
way and it's not going to be completely
straight and then you come down to all
these questions of well this one is is
is a point on an angled line you can't
answer that in finite Precision unless
you're doing something with actual
rational numbers and later on I did
waste far too much time chasing things
like that how do you do precise
arithmetic with rational numbers and it
always blows up eventually you know
eventally as you do enough so these are
these kind of things are impossible with
computers so there so they're possible
again there are paths to do doing it but
you can't fit them conveniently in any
of the numbers you need to start using
big nums and uh and different factor
trackingsm of OCD and you want to do
something perfectly you're screwed if
you're working with floating Point yeah
so so you had to deal with this for the
first time and there were there were
lots of challenges there about like okay
they build this cool thing and the way
the bsp trees work is it basically takes
the walls and it carves other Walls by
those walls in this clever way that you
can then take all of these fragments and
then you can for sure from any given
point get an ordering of everything in
the world and you can say this goes in
front of this goes in front of this all
the way back to the last thing and
that's super valuable for graphics where
uh kind of a classic Graphics algorithm
would be painters algorithm you paint
the furthest thing first and then the
next thing and then the next thing and
then it comes up and it's all perfect
for you uh that's slow because you don't
want to have to have drawn everything
like that but you can also flip it
around and draw the closest thing to you
and then if you're clever about it you
can figure out what you need to draw
that's visible beyond that and that's
what bsp trees allow you to do yeah so
it's combined with a bunch of other
things but it gives you that ordering
it's a clever way of doing things and I
remember I had learned this from I one
of my my Graphics Bible at the time a
book called in vanam and again it was a
different world back there there was a
small integer number of books and this
book number yeah this book that was it
was big fat College textbook that I had
you I had read through many times I
didn't understand everything in it some
of it wasn't useful to me but they had
the little thing about uh finite
orderings of you draw a little t-shaped
thing and you can say you can you can
make a fixed ahead of time order from
this and you can generalize this with
the bsp trees and and I got a littleit
more information about that it was kind
of fun later while I was working on
Quake I got to meet uh Bruce Naylor who
is one of the original researchers that
developed those Technologies I you know
as for academic literature and that was
kind of fun but I was very much just
finding a tool that can help me solve
what I was doing and I was using it in
this very crude way in a two-dimensional
fashion rather than the general 3D the
Epsilon problems got much worse in quake
and three dimensionals when things angle
in every way but eventually I did sort
out the sort out how to do it reliably
on Doom there were still a few edge
cases in Doom that were not absolutely
perfect where they they even got
terminologies in the communities like
when you got to something where it was
messed up it was a Hall of Mirrors
effect because you'd sweep by and it
wouldn't draw something there and you
would just wind up with the the left
over remnants as you flipped between the
the two pages but bsp trees were
important for it but it's again worth
noting that uh after we did Doom our
major competition came from um Ken
Silverman and his build engine which was
used for Duke Nukem 3D and some of the
other games for 3D Realms and he used a
completely different technology nothing
to do with um with bsp trees so there's
not just a one true way of doing things
um there were critical things about to
make any of those games fast you had to
you had to separate your drawing into
you drew vertical lines and you drew
horizontal lines just kind of changing
exactly what you would draw with them
that was critical for the Technologies
uh at that time and like all the games
that were kind of like that wound up
doing something similar but there were
still a bunch of other decisions that
could be made and we made good enough
decisions on everything on Doom we we
brought in multiplayer significantly and
it was our first game that was designed
to be modified by the user Community
where we had this whole setup of our wad
files and P wads and things that people
could could build with tools that we
released to them and they eventually
rewrote to be better than what we
released but they could build things and
you could add it to your game without
destructively modifying it which is what
you had to do in all the early games you
literally hacked the the data files or
the executable before while Doom was set
up in this flexible way so that you
could just say run the normal game with
this added on on top and it would
overlay just the things that you wanted
to there would you say that Doom was
kind of the first true 3D game that you
created so no it's still Doom would
usually be called a 2 and a half d game
where it had three dimensional points on
it and this is another one of these kind
of pedantic things that people love to
argue about about what was the first 3D
game I still like I'm like every month
probably I hear from somebody about well
was Doom really a 3D game or something I
and you know I give the the point where
characters had three coordinates so you
had like an X Y and Z the kadamian could
be coming in very high and come you know
and come down towards you uh the walls
had three coordinates on them so on some
sense it's a 3D game engine but it was
not a fully General 3D game engine you
could not uh you could not build a
pyramid in Doom because you couldn't
make a sloped wall I which was slightly
different where in that previous
shadowcaster game I could have vertexes
and have a sloped floor there but the
changes that I made for Doom to get
higher speed and a different set of
flexibility traded away that ability but
you literally couldn't make that you
could not uh you could make different
heights of uh passages but you could not
make a bridge over another area you
could not go over and above it so it
still had some 2D limitations to it
that's more about the building versus
the actual experience because the
experience is it felt like things would
come at you but again you couldn't look
up either I am right you know you could
only pitch it was four degrees of
freedom rather than six degrees of
freedom you did not have the ability to
tilt your head this way or pitch up and
down so that takes us to Quake what was
the leap there what was some fascinating
technical challenges and there were a
lot or not challenges but innovations
that you've come up with so Quake was
kind of the first thing where I did have
to kind of come face to face with my
limitations where it was the first thing
where I really did kind of give it my
all and still come up a little you know
come up a little bit short in terms of
what and when I wanted to to get it done
and the company ran had some serious
stresses through the the whole project
and we uh we bit off a lot so the things
that we set out to do was it was going
to be really a true 3D engine where it
could do six degree of Freedom you could
have all the all the viewpoints you
could model anything it had a really
remarkable new lighting model with the
the surface caching and things that was
one of those where it was starting to to
do some things that they weren't doing
even on the very high-end systems uh and
it was going to be completely
programmable uh in the modding
standpoint where the thing that you
couldn't do in Doom you could replace
almost all of the media but you couldn't
really change the game uh there were
still some people that were doing the
hex setting of The executable dehacked
things where you could change a few
things about rules and people made some
early capture of the flag type things by
hacking the executable but it wasn't
really set out to do that Quake was
going to have its own programming
language that the game was going to be
implemented in it and that would be able
to be overwritten just like any of the
media code was going to be data for that
and you would be able to have expansion
packs that changed fundamental things
and mods and so on and the the
multiplayer was going to be playable
over the Internet it was going to
support a client server rather than
peer-to-peer so we had the possibility
of supporting larger numbers of players
in disperate locations with this full
flexibility of the the programming
overrides with full six degree of
Freedom modeling and viewing and with
this fancy new light mapped um kind of
surface caching side it was a lot and
this was one of those things that if I
could go back and tell I you know tell
younger me to do something differently
it would have been to split those
Innovations up into two phases in two
separate games what would be phase one
and phase two so it probably would have
been taking the Doom rendering engine
and bringing in uh the tcpip uh client
server focusing on the multiplayer and
the uh the Quake sea or would have been
Doom sea programming language there so I
would have split that into programming
language and networking with the same
Doom engine rather than forcing
everybody to go towards the the pen you
know the Quake engine which really meant
getting a Pentium you know while it ran
on a 486 it was not a great experience
there we could have made more people
happier and gotten two games done in 50%
more time I so speaking of people
happier our mutual friend Joe Rogan it
seems like his the the most important uh
moment of his life is is uh centered
around quck
so is it was a definitive um part of his
life so would he agree with your uh
thinking that they should split uh so he
as a person who loves quake and played
Quake a lot would he agree that you
should have done the Doom Engine with
and focus on the multiplayer for phase
one uh or in your looking back it is is
the the 3D world that Quake created was
also fundamental to the the I you know I
would say that what would have happened
is you would have had a a doom looking
but Quake feeling uh
game eight months earlier and then maybe
six months after Quake actually shipped
then there would have been the full
running on of Pentium um six degree of
Freedom Graphics engine type things
there so it's not that it wouldn't have
wouldn't have been there it would have
been something amazingly cool earlier
and then something even cooler somewhat
later where I would much rather in have
gone and done two one-year development
efforts uh cycle them through I be a
little more pragmatic about that rather
than killing us ourselves on the whole
Quake development but I say it's
obviously things worked out well in the
end but looking back and saying how
would I optimize and do things
differently that did seem to be a clear
case where uh going ahead and we had
enormous momentum on Doom you know we
did Doom 2 as the uh kind of commercial
boxed version after our shareware
success with the original but we could
have just made another Doom game adding
those new features in it would have been
huge we would have learned all the same
lessons but faster and it would have
given six degree of freedom and Pentium
class systems a little bit more time to
get mainstream because we did cut out a
lot of people with the the hardware
requirements for Quake was there any
dark moments for you personally
psychologically in
having um in um having such harsh
deadlines and having to Sol me difficult
technical
challenges so I've never really
had really dark black places I mean I it
I can't necessarily put myself in anyone
else's shoes but I understand a lot of
people have you know have significant
challenges with kind of their their
mental health and well-being and I've
been I've been super stressed I've been
you know unhappy as a teenager in
various ways but I've never I've never
really gone to a very dark place I just
seem to
be largely immune to what really wrecks
people I mean I've had plenty of time
when I'm very unhappy and miserable
about something but it's never hit me
like you know I believe it winds up
hitting some other people I've borne up
well under whatever stresses have I you
know have kind of fallen on me and I've
always coped best on that when all I
need to do is is usually just kind of be
down on my work I I pull myself out of
whatever hole I might be slipping into
by actually making progress I I mean
maybe if I was in a position where I was
never able to make that progress I could
have slid down further but I've always
been in a place where okay a little bit
more work maybe I'm in a tough spot here
but I I always know if I just keep
pushing eventually I break through and I
make progress I feel good about what I'm
doing um and that's been enough for me
so far in my life have you seen in in
the
distance uh like um you know ideas of
depression or contemplating suicide have
you seen those things far so what was
interesting when when I was a teenager I
was you know I I was probably on some
level of troubled youth I was unhappy
most of my teenage you know years I you
know I really I wanted to be on my own
doing programming all the time I you
know as soon as I was 18 19 even though
I was poor I was doing exactly what I
wanted and I was very happy but high
school was not a great time for me and I
I had a conversation with like the
school counselor and they're kind of
running their script it's like okay it's
kind of a weird kid here let's carefully
probe around it's like you know do you
ever think about ending it all I'm like
no of course not never not at all I this
is temporary things are going to be
better um and and that's always been
kind of the case for me and obviously
that's not that way for everyone and
other people do react differently and
what was your um what was your escape
from the troubled youth like
uh uh you know
music uh Video Games books how did you
escape from a world that's full of
Cruelty and suffering and that's absurd
yeah I mean I I was not you know I was
not victim of Cruelty and suffering it's
like I was an unhappy somewhat petulant
youth in you know in my point where I
you know I'm not putting myself up with
anybody else's suffering but I was
unhappy objectively and I the things
that I I did that very much
characterized my childhood were I had I
books comic books Dungeons and Dragons
arcade games video games like some of my
my fondest childhood memories are the
convenience stores the 7-Elevens and
quick trips because they had a spinner
rack of comic books and they had a
little side room with two or three video
games arcade games in it and that was uh
that was very much my happy place you
know if I could I get my comic books and
uh if I could go to a library and you
know go through those the little 000000
section where computer books were
supposed to be and there were a few sad
little books there but still just being
able to sit down and go through that and
I read you know I read a ridiculous
number of books both fiction and
non-fiction as a teenager and I you know
as I my Rebel my rebelling in high
school was just sitting there with my
nose in a book ignoring the class
through lots of it and teachers had a
range of reactions to that some more uh
more accepting of it than
others I'm with you on that so let us
return to Quake for a bit with the
technical challenges what what
um everything together from the from the
networking to the the graphics what are
some things you remember that were that
were Innovations you had to come up with
in order to make it all happen yeah so
there were a bunch of things on Quake
where on the one hand the idea that I
built my own progam pramming language to
implement the game in looking back and I
try to tell people it's like every every
highlevel programmer sometime in their
career goes through and they invent
their own language it just seems to be a
thing that's pretty broadly done people
be like I'm going to go write a computer
programming language and I you know I
don't regret having done it but after
that I I switched from quak C my quirky
little I pseudo objectoriented entity
oriented language there Quake 2 went
back to using dlls with c and then qu
Quake 3 I implemented my own C
interpreter or compiler which was a much
smarter thing to do that I should have
done originally for Quake but building
my own language was an experience I
learned a lot from that I and then there
was a generation of game programmers
that learned programming with quak C
which I feel kind of bad about because
you know I mean we give JavaScript a lot
of crap but I quake C was nothing to
write home about there uh but it was it
allowed people to do magical things you
get into programming not because you
love the you know the BNF syntax of a
language it's because the language lets
you do something that you cared about
and here is very much you could do
something in a whole beautiful
three-dimensional world and the idea and
the fact that the code for the game was
out there you could say I like the
shotgun but I want it to be more badass
you go in there and say okay now it does
200 points damage and then you go around
with a big grin on your face blowing up
monsters all over the game so yeah it's
I you know it is not uh what I would do
today going back with that language but
that was a big part of it learning about
the networking stuff I because it's
interesting where I learned these things
by reading books so I would get a book
on networking find something I read all
about it and learn okay packets they can
be you know out of order or lost or
duplicated these are all the things that
can theoretically happen to packets so I
wind up spending all this time thinking
about how do we deal about all of that
and it turns out of course in the real
world those are things that yes
theoretically can happen with multiple
routes but they really aren't things
that your
99.999% of your packets have to deal
with um so there was learning
experiences about uh lots of that like
why when TCP is appropriate versus UDP
and and how if you do things in UDP you
wind up Reinventing TCP badly in almost
all cases so you know there's there's
good Arguments for using both for
different game techn different parts of
the game process transitioning from
level to level and all but the uh the
graphics were the Showcase of what what
Quake was all about it was this Graphics
technology that nobody had seen there
and it was a while before you know there
were competitive things out there and it
went a long time internally really not
working where we were even building
levels where uh the game just was not at
all shippable with large fractions of
the world like disappearing not being
there I or being really slow in various
parts of it and it was this act of Fai
that's like I think I'm going to be able
to fix this I think I'm going to be able
to make this work um and lots of stuff
changed where the level designers would
build something and have to throw it
away as something fundamental and the
the kind of Graphics or level technology
changed and the uh so there were two big
things that contributed to making it
possible at that time frame um two new
things there was certainly hardcore
optimized low-level Assembly Language
and this was where I had hired Michael
AB crash away from Microsoft and he had
been one of my early Inspirations where
that back in the soft dis days the
library of magazines that they had uh
some of my most treasured ones were
Michael AB br's articles in Dr Do's
journal and it was it was amazing after
all of our success in Doom we were able
to kind of hit him up and say hey we'd
like you to come work at ID software and
he was in the senior technical role at
Microsoft and um you know and he was on
track for and this was right when
Microsoft was starting to take off and I
did eventually you know convince him
that what we were doing was going to be
really amazing with Quake It was going
to it was going to be something nobody
had seen before it had these aspects of
what we were talking about we had
metaverse talk back then we you know we
had read snow crash and we were we knew
about this and uh Michael was I was big
into the science fiction and we would
talk about all that and kind of spin
this tale and it was some of the same
conversations that we have today about
the metaverse about how you could have
different areas linked together by
portals and you could have user
generated content and changing out all
of these things so you really work
created the metaverse Qui and we we
talked about things like used to be
advertised as a virtual reality
experience you know that was the first
wave of virtual reality was in the late
80s and early 90s you had like the
lawnmower man I you know movie and you
had time in Newsweek talking about the
early vpl headsets and of course that
cratered so hard that people didn't want
to look at virtu viral reality for
decades afterwards where uh it was just
it was smok in mirrors it was not real
in the sense that you could actually do
something real and valuable with it but
uh but still we had that kind of common
set of talking points and we were
talking about what these games could uh
could become and how you'd like to see
people building all of these creative
things because we were seeing an
explosion of work with doom at that time
where people were doing amazingly cool
things like we saw cooler levels than we
had built coming out of the user
community and then people finding ways
to you know change the the characters in
different ways and it was great and we
knew what we were doing in Quake was
removing those last things there was
some quirky things with a couple of the
data types that didn't work right for
overriding and then and then the core
thing about the programming model and I
was definitely going to hit all of those
in Quake um but the the graphic side of
it was um you was still I knew what I
wanted to do and it was one of these
hubris things where it's like well so
far I've been able to kind of kick
everything that I set out to go do uh
but Quake was definitely a little bit
more than could be comfortably chewed at
that point and uh but Michael was one of
the one of the strongest programmers and
Graphics programmers that I knew and he
was one of the people that I trusted to
to write assembly code you know better
than I could and there's there's a few
people that I can point to about things
like this where I'm a worldclass
Optimizer I mean I make things go fast
but I recognize there's a number of
people that can write tighter assembly
code tighter simd code or tighter Cuda
code than you know than I can write um
you know my best strengths are little
bit more at the system level I mean I'm
good at all of that but the most
leverage comes from making the decisions
that are a little bit higher up where
you figure out how to change your large
scale problems so that these lower level
problems are easier to do or it makes it
possible to do them in a um in a
uniquely fast way so most of my you know
my big wins in a lot of ways from all
the way from the early games through you
know through VR and the Aerospace work
that I'm doing and or did and hopefully
the AI work that I'm working on now is
finding an angle on something that means
you trade off something that you maybe
think you need but it turns out you
don't need and by making a sacrifice in
one place you can get big advantages in
another place is it clear at which level
of the system those big advantages can
be gained it's not always clear and
that's why the thing that that I try to
make one of my core values and I I prti
to a lot of people is trying to know the
entire stack you know trying to see
through everything that happens and it's
almost impossible on like the web
browser level of things where there's so
many levels to it but you should at
least understand what they all are even
if you can't understand all the
performance characteristics at each
level but it goes all the way down to
literally the hardware so what does the
what is this chip capable of then what
is this software that you're writing
capable of and then what this
architecture you put on top of that then
the ecosystem around it all the people
that are that are working on it so there
are there are all these decisions and
they're never made in a globally optimal
way but sometimes you can drive a thread
of global optimality through it you
can't look at everything it's too
complicated but sometimes you can step
back up and make a different decision
and we kind of went through this on the
graphics side on Quake where I you in
some ways it was kind of bad where
Michael would spend his time writing
like i' I'd rough out the basic routines
like okay here's our span rasterizer and
he would spend a month writing this you
know beautiful cycle optimized I piece
of Assembly Language that does you know
does what I asked it to do and he did it
faster than like my original code would
do or probably what I would be able to
do even if I had spent that month on it
uh but then we'd have some cases when
I'd be like okay well I figured out at
this higher level instead of drawing
these in a painters order here I do a
span buffer and it cuts out 30% or 40%
of all of these pixels but it means you
need to rewrite kind of this interface
of all of that and I could tell that
wore on him a little bit but in the end
it was it was the right thing to do
where we wound up changing that
rasterization approach and we wound up
with a super optimized assembly language
uh core Loop and then a good system
around it which minimized how much that
had to be called and so in order to be
able to do this kind of system level
thinking whether we're talking about uh
game development
Aerospace nuclear energy AI VR you have
to be able to understand the hardware
the
lowlevel software the high level
software the design decisions the whole
thing the the the full stack of yeah and
that's where a lot of these things
become possible when you're really when
you're bringing the future forward I
mean there's a pace that everything just
kind of Glides towards where we have a
lot of progress that's happening at such
a diff so many different ways you kind
of slide towards progress just left of
your own programs just get faster for a
while it wasn't clear if they were going
to get fatter more than they get quicker
than they get faster and it cancels out
but it is clear now and retrospect no
programs just get faster and have gotten
faster for a long time but if you want
to do something like back at that
original uh talking about scrolling
games say what this needs to be five
times faster well we can wait six years
and just it'll naturally get that much
faster at that time or you come up with
some really clever way of doing it so
there are those opportunities like that
in a whole bunch of different areas now
most programmers don't need to to be
thinking about that there's not that
many you know there's a lot of
opportunities for this but it's not
everyone's work a day type stuff so
everyone doesn't have to know how all
these things work they don't have to
know how their compiler Works how you
know the processor chip manages cach
eviction and all these low-level things
but sometimes there are powerful
opportunities that you can look at and
say we can bring the future five years
faster you know we can do something that
wouldn't it be great if we could do this
well we can do it today if we make a
certain set of decisions and it is in
some ways smoke in mirrors where you say
it's like Doom was a lot of smoking
mirrors where people thought it was more
capable than it actually was but we
picked the right smoking mirrors to
deploy in the game where by doing this
people will think that it's more General
we're going to amaze them with what
they've got here and they won't notice
that it doesn't do these other things so
smart decision making at that point
that's where that that kind of global
holistic top down view uh can work and
I'm
I'm really a strong believer that
technology should be sitting at that
table having those discussions because
you do have cases where you say well you
want to be the Jonathan Ivy or whatever
where it's a a pure design solution and
that's I in some cases now where you
truly have almost infinite resources
like if you're trying to do a a
scrolling game on the PC now you don't
even have to talk to a technology person
you can just have uh you know any intern
can make that go run as fast as it needs
to there and it can be completely design
based but if you're trying to do
something that's hard either that can't
be done for resources like VR on a
mobile chipset or that we don't even
know how to do yet like artificial
general intelligence it's probably going
to be a matter of coming at it from an
angle like I mean for AGI we have some
of like some of the hutter principles
about how you can you know Aire some of
that there are theoretical ways that you
can say this is the optimal learning
algorithm that can solve everything but
it's completely practical you know you
just can't do that so clearly you have
to make some concessions for general
intelligence and nobody knows what the
right ones are yet so people are taking
different angles of attack I hope I've
got something clever to come up with uh
in that space it's been surprising to me
and I think it perhaps it is a principle
of progress that smoke and mirrors
somehow is the way you build the future
you kind of you kind of fake it till you
make it and you almost always make it
and I think that's going to be the way
we achieve AGI that's going to be the
way we build uh Consciousness into our
machines is um there's you know
philosophers debate about the touring
test is essentially about faking it till
you make it you start by faking it and I
think that always leads to making it
because if look at history arguments
when as soon as people start talking
about qualia and Consciousness and
Chinese rooms and things it's like I
just check out I just don't think
there's any value in those conversations
it's just like go ahead tell me it's not
going to work I'm G to do my best to try
to make it work anyways I don't know if
you work with legged robots of a bunch
of these um they they make they sure as
heck make me feel like they're conscious
uh in a certain way that's not here
today but is um you could see the kernel
it's like uh the the the flame the
beginnings of a flame we don't have line
of sight but there's glimmerings of
light in the distance for all of these
things yeah I'm hearing murmuring in a
distant room um well let me ask you a
human question here you you've uh in the
game design space youve you've done a
lot of incredible work throughout but in
terms of game design you have changed
the world and there's a few people
around you that did the same so famously
there's some animosity there's much love
but there's some animosity between you
and John Romero what is at the core of
that animosity and human tension and so
there really hasn't been I for a long
time and even at the beginning it's like
yes I am I did push Romero out of the
company and and this is one of the
things that I look back if I could go
back telling my my younger self uh some
advice about things the original
founding uh kind of corporate structure
of ID
software really led to a bunch of
problems we started off with us as equal
partners and we had a buy sell agreement
because we didn't want Outsiders to be
telling us what to do inside the company
and that did lead to a bunch of the
problems where I was sitting here going
it's like all right I'm I'm working
harder than anyone I'm doing these
Technologies you know nobody's done
before but we're all equal partners and
then I see you know somebody that's not
working as hard and I and it's I mean I
can't say I was the most mature about
that I was you know 20 something years
old and I am and it did it did bother me
when I'm like everybody okay we need to
all pull together and we've done it
before everybody we know we can do this
if we get together and we grind it all
out but not everybody wanted to do that
for for all time you know and I was the
youngest one of the the crowd there I I
had different sets of uh kind of
backgrounds and motivations and left at
that point where it was I all right
either everybody has to be contributing
like up to this level or they need to
get pushed out was not I that was not a
great situation and I look back on it
and no that we pushed people out of the
company that could have contributed uh
if there was a different framework for
them and the modern kind of Silicon
Valley like let your stock vest over a
time period and maybe it's non- voting
stock and all those different things we
knew nothing about any of that I mean we
we didn't know what we were doing in
terms of corporate structure or anything
so if you think the framework was
different some of the human tension
could have been a little bit of it
almost certainly would have I I mean I
look back at that and and it's like even
trying to summon up in my mind it's like
I know I was really really angry about
um you know like Romero not working as
hard as I wanted him to work or not
carrying his load on the design for
Quake and coming up with things there
but you know he was definitely doing
things he made some of the best levels
there he was working with our I some of
our external teams like Raven on the
licensing side of things but um you know
but there were differences of opinion
about it but he landed you know right on
his feet he went he got $20 million from
idos to go do ion storm and he got to do
things his way and spun up three teams
simultaneously because that was always
one of the one of the challenging things
in at ID where we were doing these
single string one project after another
and I think some of them you know wanted
to grow the company more and I didn't
because I knew people that were saying
that oh companies turned to when
you got 50 employees I it's just a
different world there and I loved our
little dozen people working on the
projects but you can look at it and say
well business realities matter it's like
you're super successful here and we
could we could take a swing and a miss
on something but you do it a couple
times and you're out of luck uh there's
there's a reason companies try to have
multiple teams running at one time um
and so that was again something I didn't
really appreciate back then so if you
look past all that you did create some
amazing things together what did you
love about John Romero what did you
respect and appreciate about him what
did you admire about him what did you
learn from him when I met him he was the
coolest programmer I had ever met I you
know he had done all of this stuff he
had he had made all of these games he
had worked at I you know one of the
companies that I thought was the coolest
at origin systems and he knew all this
stuff he made things happen fast and he
could was also kind of a polymath about
this where he could do he made his own
he drew his own art he made his own
levels as well as um you know he worked
on sound design systems on top of
actually being a really good programmer
and we had you know we went through a
little it was kind of fun where one of
the early things that we did where there
was kind of the Young Buck bit going in
where I was you uh the new guy and he
was the kind of the he was the top man
programmer at the soft disk area and
eventually we had sort of a challenge
over the weekend that we were going to
like race to to implement this game to
Port one of our PC games back down to
the Apple 2 and that was where we
finally kind of became clear it's like
okay CarMax stands a little bit apart on
the programming side of things and uh
but Romero then very gracefully moved
into well he'll work on the tools he'll
work on the systems uh do some of the
game design stuff as well as
contributing on uh starting to lead the
design aspects of a lot of things so he
was you know enormously valuable in the
early stuff and so so much of Doom uh
and even Quake have his stamp on it in a
lot of ways but um you know he wasn't at
the same level of focus that that I
brought to the the work that we were
doing there and he really did I we hit
such a degree of
success it was all in the Press about
that the the Rockstar game programmers
and I mean it's the Beatles problem yeah
I mean you know he ate it up and he did
personify there was the whole game
developers with you know with Ferraris
that that we had there and I thought
that you know that led to some some
challenges there but so much of the uh
you know the stuff that was great in the
games did come from him and I would
certainly not take that away from him
and even after uh after we parted ways
and he took his swing with uh with idos
in some ways he was like he was ahead of
the curve with mobile gaming as well
where uh one of his companies after idos
was working on uh feature phone game
development and I wound up doing some of
that uh just before the iPhone crossing
over into the iPhone phase there and
that was something that clearly did turn
out to be a huge thing although he was
he was too early for what he was working
on at that time you know we've had uh
pretty you know cordial relationships
where I was happy to to talk with him
anytime I'd run into him at at a
conference I actually had some other
people just say it's like oh you
shouldn't you know you shouldn't go over
there and give him the time of day or
felt that masters of Doom was I you know
like portray played things up in a way
that I shouldn't be too happy with but
I'm I'm okay with all of that and you
still got love in your heart yeah I mean
I just talked with him I like last year
or I guess it was even this year about
mentioning that I'm going off doing this
AI stuff I'm I'm going big into
artificial intelligence and he had a b
bunch of ideas for how AI is going to
play into gaming and you know asked if I
was interested in collaborating and it's
not in line with what with what I'm
doing but I do you know I wish almost
everyone the best I mean I I know I may
not have parted on the best of terms
with I you know with some people but I
was thrilled to see Tom Hall I writing
VR games now he wrote working on a game
called demio which is really an awesome
VR game it's like Dungeons and Dragons
we all used to play Dungeons and Dragons
together that was one of the things that
was what we did on Sundays in the early
it days I would dungeon master and
they'd all play and I you know so it
really made me smile seeing Tom involved
with an RPG G in virtual
reality you were the CTO of oculus VR
since 2013 and maybe less than your
involvement a bit in uh
2019 Oculus was acquired by Facebook
Neta in
2014 you've spoken brilliantly about
both the lowlevel details the
experimental design and the big picture
vision of virtual reality let's let me
ask you about the uh the metaverse the
big question here both philosophically
and technically Tech Al how hard is it
to build the metaverse what is the
metaverse in your view you started with
discussing and thinking about Quake is a
kind of a
metaverse as you think about it today
what is the
metaverse the thing that could create
this compelling user value this
experience that will change the world
and how hard is it to build it so the
term comes from Neil Stevenson's book
snow crash which many of us had read
back in the 90s it was one of those kind
of formative books
and there was this sense that
the the possibilities and kind of the
the freedom and unlimited capabilities
to build a virtual world that that does
whatever you want whatever you ask of it
has been a powerful draw for generations
of developers you know game developers
specifically and people that are
thinking about more uh more general
purpose applications so we were talking
about that back in the doom and Quake
days about how do you wind up with an
interconnected set of worlds that you
kind of visit from one to another and as
web pages were becoming a thing you
start thinking about how what is the
interactive kind of 3D based equivalent
of this and there were a lot of really
bad takes you had you like vermal then
virtual reality markup languages and
there's aspects like that that that came
from people saying well what would what
kind of capabilities should we develop
to to enable this and that kind of
capability first work has usually not
panned out very well uh on the other
hand we have successful games that
started with things like doom and Quake
and communities that formed around those
and uh whether it was server lists in
the early days or you know literal
portaling between different games and
then modern things that are on
completely different order of magnitude
like Minecraft and fortnite that have
100 million plus users um you know I
still think that that's the right way to
go to build the metaverse is you build
something that it's amazing that people
love and people wind up spending all
their time in uh because it's awesome
and you expand the capabilities of that
so even if it's a very basic experience
as long as people Minecraft is Minecraft
is an amazing case study in so many
things where what's been able to be done
with that is really
enlightening and there are other cases
where like right now Roblox is basically
a game construction kit aimed at kids
and that was a capability first play and
it's achieving scale that's on the same
order of those things so it's not
impossible but my preferred bet would be
you make something amazing that people
love and you make it better and better
and that's where I could say we could
have gone back and followed a path kind
of like that in the early days if you
just kind of take the same game whether
it's when Activision demonstrated that
you could make Call of Duty every year
and not only is it not bad people kind
of love it and it's a it's very
profitable the idea that you could have
taken something like that it take a
great game release a new version every
year that lets the capabilities grow and
expand to start saying it's like okay
it's a game about running around and
shooting things but now you can have uh
bring your media into it you can uh add
Persistence of social sense sign of
signs of life or whatever you want to
add to it uh I still think that's you
know quite a good uh position to take
and I think that while meta is doing a
Bottoms Up capability approach with
Horizon worlds where it's a fairly
general purpose creators can build
whatever they want in their sort of
thing I you know it's it's hard to
compare and compete with something like
fortnite which also has enormous amounts
of creativity even though it was not
designed originally as a general purpose
sort of thing so there's we have
examples on both sides me personally I
would have bet on uh trying to do
entertainment valuable destination first
and expanding from there
so can you imagine the thing that will
be kind of if if we look back a couple
of centuries from now and you think
about the
experiences that marked the singularity
the transition in where most of our
world moved into virtual reality what do
you think those experiences will look
like so I do think it's going to be kind
of like the way the web slowly took over
where you're you're the the Frogg in the
pot of water that's slowly heating up
where having lived through all of that I
remember when it was shocking to start
seeing uh seeing the first website
address on a billboard when you're like
hey my computer world is in infecting
the real world you know this is
spreading out uh in some way but there
still when you look back and say well
what what made the web take off and it
wasn't a big bang sort of moment there
it was a bunch of little things that
turned out not to even be the things
that are relevant now now that brought
them into it so well I wonder if from I
mean like you said you're not a
historian so maybe there's a historian
out there that could really identify
that moment data driven way it could be
like Myspace or something like that
maybe the first major social network
that really reached
into non-geek world or something like
that I think that's kind of the fallacy
of historians though looking for some of
those kind of primary dominant causes
where so many of these things are like
we see an exponential curve but it's not
because like one thing is going
exponential it's because we have
hundreds of little sigmoid curves
overlapped on top of each other and they
just happen to keep adding up so that
you've got something kind of going
exponential at any given point but not
no single one of them was the critical
thing there were you know dozens and
dozens of things I mean seeing the
transitions of stuff like as obviously
Myspace giving way to other things but
even like blogging giving way to uh to
social media and getting resurrected in
other guyses and things that happened
there dancing baby GIF or whatever the
all all your base not belong to us
whatever those early memes that led to
the modern memes and the humor on the
different the different evolution of
humor on the internet that I'm sure the
historians will also write books about
uh from the different website that
support to create the infrastructure for
that humor like Reddit and all that kind
of stuff so people will go back and they
will name firsts and critical moments
but it's probably going to be a poor
approximation of what actually happens
and we've already seen like in the VR
space where it didn't play out the way
we thought it would in terms of what was
going to be like when it the modern era
of VR basically started with my E3 demo
of Doom 3 on the rift prototype so we're
like firstperson Shooters in VR match
made in heaven right and that didn't
work out that way at all they have you
know they have the most Comfort problems
with it and then the most popular
virtual reality app is beat saer which
nobody predicted back then what's that
make you uh like from first principles
if you were to like reverse engineer
that why are these like silly fun games
the most it actually makes very clear
sense when you when you analyze it from
uh from hindsight and look at the
engineering reasons where it's not just
that it was a magical quirky idea it was
something that played
almost perfectly to what turned out to
be the real strengths of VR where the
one thing that I really underestimated
importance in VR was the importance of
the controllers you know I was still
thinking we could do a lot more with uh
with a Gamepad and just the amazingness
of taking any existing game being able
to move your head around and look around
that that was you know that was really
amazing but the controllers uh were
super important but the problem is so
many things that you do with the
controllers just suck it feels like it
breaks the illusion like trying to pick
up glasses with the controllers where
you're like oh use the grip button when
you're kind of close and it'll snap into
your hand all of those things are
unnatural uh actions that you do them
and it's still part of the VR experience
but beats saber winds up I playing only
to the strength it completely hides all
the weaknesses of it because you are
holding something in your hand you keep
a solid grip on it the whole time it
slices through things without ever
bumping into things you never get into
the point where you know I'm knocking on
this table but in VR hand just goes
right through it so you've got something
that slices through so it's never your
brain telling you oh I should have hit
something you've got a lightsaber here
it's just you expect it to slice through
everything uh audio and music turned out
to be a really powerful aspect of
virtual reality where you're blocking
the world off and constructing the world
around you and I and being something
that can run efficiently on even this
relatively low powerered hardware and
can have a valuable Loop in a small
amount of time where a lot of modern
games you're supposed to sit down and
play it for an hour just to get anywhere
sometimes a new game takes an hour to
get through the tutorial level and
that's not good for VR for a couple
reasons you do still have the Comfort
issues if you're moving around at all
but you've also got just you know
discomfort from the headset battery
lifespan on the mobile versions so
having things that do break down into
three and 4minute windows of play that
turns out to be very valuable from a
gameplay standpoint so it winds up being
kind of a perfect storm of all of these
things that are really good it doesn't
have any of comfort problems you're not
navigating around you're standing still
all the stuff flies at you it has played
audio strengths I it adds the the whole
Fitness in VR nobody was thinking about
that back in the at the beginning and it
turns out that that is an excellent
daily Fitness thing to be doing if you
go play uh an hour of beat saver or
Supernatural or something that is legit
solid exercise uh and it's more fun than
doing it just about any other way there
so that's kind of the arcade stage of
things if I were to say with my
experience with VR the thing that I
think is powerful is the maybe it's not
here yet but the degree to which it is
immersive in the way that Quake is
immersive it takes you to another world
for me because I'm a fan of role playing
games uh the Elder Scroll series
uh like Skyrim or even Daggerfall it
just takes you to another world and when
you're not in that world you miss not
being there and then you just you kind
of want to stay there forever cuz life
is
shitty the whole point my V is that I
there was a there was a time when I we
were kind of asked to come up with like
what's your view about VR and I am you
know my pitch was that it should be
better inside the headset than outside
it's the world as you want it yeah and
everybody thought that was dystopian and
like that's like oh you're just going to
forget about the world outside and I
don't get that mindset where the idea
that if you can make the world better
inside the headset then outside you've
just improved the person's life that's
has a headset that can wear it and there
are plenty of things that we just can't
do for everyone in the real world
everybody can't have Richard Branson's
Private Island but everyone can have a
private VR Island and it can have the
things that they want on it and there's
a lot of these kind of rivalrous goods
in the real world that VR can just be
better at we can do a lot of things like
that that can be very very rich so yeah
I want the I think it's going to be a
positive thing this world where people
want to go back into their headset where
it can be better than somebody that's
living in a tiny apartment can have a
palacial estate in virtual reality they
can have all their friends from all over
the world come over and visit them
without every everybody getting on a
plane and I and meeting in someplace and
dealing with all the other logistics
hassles there is real value in the you
know the presence that you can get for
remote meetings it's it's all the little
things that we need to sort out but
those are things that we have line of
site on people you know that have been
in like a good VR meeting using work
rooms where you can say oh that was
better than a zoom meeting but of course
it's more of a hassle to get into it not
everyone has a headset interoperability
is worse you can't have you cap out at a
certain number there's all these things
that need to be fixed but that's one of
those things you can look at and say we
know there's value there we just need to
really grind hard to file off all the
rough edges and make that possible so
you do think we have line of sight
because there's a there's a reason like
I I I do this podcast in person for
example doing it remotely it it's not
the same and if you somebody were to ask
me why it's not the same I wouldn't be
able to write down exactly why um but
you're saying that it's possible
whatever the magic is for inperson
interaction that immersiveness of the
experience we are almost there yes so
the idea of like I'm doing a VR
interview with someone I'm not saying
it's here right now but you can see
glimmers of what it should be and we
largely know what would need to be fixed
and improved to like you say there's a
difference between a remote interview
doing a podcast over Zoom or something
and face Toof face there's that sense of
presence that immediacy the super low
latency responsiveness being able to see
all the subtle things there just
occupying the same field of view and all
of those are things that we absolutely
can do in VR and that simple case of a
small meeting with a couple people
that's the much easier case than
everybody thinks the Ready Player One
Multiverse with a, people going across a
you know a huge bridge to amazing places
that's harder in a lot of other
technical ways not to say we can't also
do that but that's further away and has
more challenges but this small thing
about being able to have a meeting with
one or a few people and have it feel
real feel like you're there uh like you
have the same interactions and talking
with them you get subtle cues as we
start getting eye and face tracking and
some of the other things on high-end
headsets a lot of that is going to come
over
and it doesn't have to be as good this
is an important thing that people Miss
where there was a lot of people that
especially rich people that would look
at VR and say it's like oh this just
isn't that good and I'd say it's like
well you've already been Courtside
backstage and you know on Pit Row and
you've done all of these experiences
because you get to do them in real life
but most people don't get to and even if
the experience is only half as good if
it's something that they never would
have gotten to do before it's still a
very good thing and as we can just we
can push that number up over time it has
a minimum VI viable value level when it
does something that is valuable enough
to people as long as it's better inside
the headset on any metric than it is
outside and people choose to go there
we're on the right path and we have a
value gradient that I'm just always
hammering on we can just follow this
value gradient just keep making things
better rather than going for that one
close your eyes swing for the fences I
am kind of Silver Bullet approach well I
wonder if there's a value gradient for
inperson meetings because if you get
that right I mean that would change the
world yeah that it doesn't need to I
mean you don't need a r player one I but
I wonder if there's that value gradient
you can follow along because if there is
and you follow it then uh there'll be a
certain like facee shift a certain point
where people will shift from um from
Zoom to this uh I
wonder what what are the bottlenecks is
it software is it Hardware is it like is
it is it all about latency so I have big
arguments internally about strategic
things like that where I like the next
headset that's coming out that we've
made various announcements about is
going to be a higher end headset more
expensive more features lots of people
want to make those those tradeoffs I you
know we'll see what the market has to
say about the the exact trade-offs we've
made here but if you want to replace
Zoom you need to have something that
everybody has um and so you like cheaper
I like cheaper because also lighter and
cheaper wind up being uh a virtuous
cycle there where expensive and more
features tends to also lead towards
heavier and it just kind of goes it's
like let's add more features the
features are not uh you know they have
physical presence and weight and draw
from batteries and all of those things
so I've always favored a lower-end uh
cheaper faster approach that's why I was
always behind the the mobile side of VR
rather than the higher-end PC headsets
and I think that's you know that's
proven out well but there's I you always
ideally we have a whole range of things
but if you've only got one or two things
it's important that those two things
cover the uh you know the scope that you
think is most important when we're in a
world when it's like cell phones and
there's 50 of them on the market
covering every conceivable e logical
niche you want that's going to be great
but we're not going to be there for a
while where are the bottlenecks is it
the hardware or the software yeah so
right now uh you can play you can get uh
work rooms on Quest and you can set up
these things and it's a pretty good
experience it's surprisingly good I
haven't tried it is it it's surprisingly
good you know the voice latency is
better on that than uh a lot better than
a zoom meeting so you've got a more a
better sense of immediacy there the
Expressions that you get from the the
current Hardware with just kind of your
controllers and your head is pretty
realistic feeling and you got a pretty
good sense of being there with someone
with are these like uh avatars of people
like do do do you get to see their body
up and they're sitting around a table
yeah and it feel it feels better than
Zoom feel better than you yeah better
than you'd expect for that it is
definitely yeah I'd say it's it's quite
a bit better than Zoom when everything's
working right but there's still all the
rough edges of the reason Zoom became so
successful is because they just nailed
the usability of everything it's high
quality with a absolutely First Rate
experience and we are not there yet with
any of the VR stuff I'm trying to to
push hard to get I I keep talking about
it's like it needs to just be one click
to make everything happen and we're
getting there in our our home
environment not the whole work rooms
application but the main home where you
can now kind of go over and click an
invite and it still winds up taking five
times longer than it should
but we're getting close to that where
you click there they click on their
button and then they're sitting there in
this good presence with you but
latencies need to get a lot better user
interface needs to get a lot better um
ubiquity of the headsets needs to get
better we need to have 100 million of
them out there just so that everybody
knows somebody that uses this all the
time well I think it's a virtu cycle
because I do
think the
interface is the thing that makes a
break
this kind of Revolution it's so
interesting how like uh you said one
click but it's also like how you achieve
that one click I don't know what is
um C can I ask a dark question maybe
let's keep it outside of meta but this
is about meta but also Google and big
company are they able to do this kind of
thing it seems like let me put on my
cranky old man hat is they seem to not
do a good job
of creating these userfriendly
interfaces as they get bigger and bigger
as a company like Google has created
some of the greatest interfaces ever uh
early on and it's I mean creating Gmail
um just so many
brilliant interfaces and she seems to be
getting crappier and crappier at that
same with meta same with uh uh Microsoft
it's just it seems to get worse and
worse at that as the I don't know what
is it because youve become more
conservative careful risk averse is that
why can you speak that it's been really
eye openening to me working inside a
tech Titan where I you know I I had my
small companies and then we were
acquired by a you know a midsize game
publisher and then uh Oculus getting
acquired by meta and meta has grown by a
factor of many just in the the eight
years since the
acquisition so I did not have experience
with this and it's it was interesting
because I remember like previously my
Benchmark for uh kind of use of
resources was some of the government
programs I interacted with on the
Aerospace side and I remember thinking
there was okay there's an Air Force
program and they spent $50 million and
they didn't they didn't launch anything
they didn't even build anything it was
just kind of like they I you know they
made a bunch of papers and had some
parts in uh in a warehouse and nothing
came of it it's like $50
million um and I have I've had to
radically recalibrate my sense of like
how much money can be spent with
I resources where yeah on the ver the
plus side VR has turned out we've built
pretty much exactly what you know we
just passed the 10e mark then from my I
like my first demo of the rift and if I
could have said what I wanted to have it
would have been a standalone Inside Out
tracked 4K resolution headset that I
that could still plug into a PC for
highend rendering and that's exactly
what we've got on Quest 2 right now
first of all let's pause on that with me
being cranky and everything it's what
meta achieved uh with oculus and so on
is incredible I mean this is this what
when I thought about the future of VR
this what I imagined in terms of
Hardware I would say and maybe in terms
of the experience as well but it's still
not there somehow on the one hand we did
kind of achieve it and win and we've got
we we've sold you know we're a success
right now but the amount of resources
that have gone into it it winds up
getting cluttered up in accounting where
last Mark did announce that they spent
10 billion dollar a year like on reality
Labs now reality Labs covers a lot it
was VR was not the large part of it it
also had portal and Spark and the big AR
research efforts and it's been expanding
out to include Ai and other things there
where uh there's a lot going on there
but 10 billion dollar was just a number
that I had trouble processing it's just
I feel sick to my stomach thinking about
that much money being spent but that's
how they they demonstrate commitment to
this where it's not I'm more so than
like yeah Google goes and cancels all of
these projects uh different things uh
like that while meta is really sticking
with the funding of VR and AR is still
further out with it so there's something
to be said for that I it's not just
going to vanish The Works going in I
just wish it could be all those
resources could be applied more
effectively because I see all these
cases I point out these examples of how
a third party that we're kind of
competing with in various ways there's a
number of these examples and they do
work with a tenth of the people that we
do internally uh and a lot of it comes
from yes there's the small company can
just go do it while in a big company you
do have to worry about I you know is
there some SDK internally that you
should be using because another team's
making it you have to have your cross
functional uh group meetups for
different things you do have more
concerns about you know about privacy or
diversity and equity and um safety of
different things parental issues and
things that a small startup company can
just kind of you know Cowboy off and do
something interesting and there's a lot
more that is a problem that you have to
pay attention to in the big companies
but I'm not willing to believe that we
are within even a a factor of two or
four of what the efficiency could be you
know I I am constantly kind of crying
out for it's like we can do better than
this yeah and you wonder what the
mechanisms to unlock that efficiency are
you know I I don't there is some sense
in a large
company that like an individual engineer
might not believe that they can change
the world maybe you you delegate a
little bit of the responsibility to be
the one who changes the world in a big
company I think but the reality is like
the world will get changed by a single
engineer anyway so if whether inside
Google or inside a startup it doesn't
matter it's just that Google and meta
needs to help those Engineers believe
they're the ones that are going to
decrease that latency is it'll take one
John carac like the 20-year-old karmac
that's inside meta right now to change
everything and I try to point that out
and push people it's like try to go
ahead and when you see some because
there is you get The Silo mentality
where you're like okay I know
something's not right over there but
that's I'm staying in my Lane here I and
there's there's a couple people that I
can you know I can think about that are
willing to just like hop all over the
place and man I treasure them the people
that are just willing to they're
Fearless you know they will go over and
they will go rebuild the kernel and
change this distribution and go in and
hack the firmware over here to to get
something done right and that is
relatively rare you know there's
thousands of developers and you've got a
small handful that are willing to
operate at that level and you know and
it's potentially risky for them the the
politics are you know are real in a lot
of that and I'm in the you know very
much the privileged position of I am you
know I'm more or less Untouchable there
where I've been dinged like twice for
it's like you said something insensitive
in that post and uh and you should
probably not say that um but for the
most part yes I you know I get away with
I every week I'm posting something you
know pretty loud in opinionated in you
know internally and I think that's
useful for the company but um yeah it's
not it's rare to have a position like
that and I can't necessarily offer
advice for how someone can do that I
well you could offer advice to a company
in general to give a little bit of
freedom for the young wild like the
wildest ideas come from The Young
Minds uh and so you need to give the
young minds freedom to to think big and
Wild and and crazy and for that they
have to be opinionated they have to be
um they have to think crazy ideas and
thoughts and pursue them with a full
passion without being slowed down by
bureaucracy or managers and all that
kind of stuff um obviously startups
really Empower that but big companies
could too and that's that's a design
challenge for company for big companies
to see how can you enable that how can
you the big company there are so many
resources there and they do you know
amazing things do get accomplished but
there's so much more that could come out
of that and you know I'm hope I'm always
hopeful I'm an optimist in almost
everything you know I think things can
get better I think that they can improve
things that you go through a path and
you're learning uh kind of what does and
doesn't work and I'm not I'm not ready
to be fatalistic about the kind of the
outcome of any of that uh me neither I
know too many good people inside of
those large companies that are
incredible you have a friendship with
Elon Musk
uh often when I talk to him he'll bring
up how incredible of an engineer and
just a big pink thinker you are
his uh huge amount of respect uh for you
I just I've never been a fly in the wall
between a discussion between the two of
you I just wonder is there something you
guys de debate argue about discuss is
there some interesting problems that the
two of you think about you come from
different worlds maybe there's some
intersection in the in Aerospace maybe
there's some
intersection in your new efforts in
artificial intelligence in terms of
thinking is there something interesting
you could say about sort of the debates
the two of you have so I think in some
ways we do have a kind of similar
background where we're almost exactly
the same age and we had kind of similar
programming backgrounds on the personal
computers and you know even some of the
the books that we would read and things
that would kind of turn us into the
people that we are today and
I think there is a degree of sensibility
similarities where you know we kind of
cult on the same things and
kind of see the same uh opportunities in
different technology and there's that
sense of you know I always talk about
the speed of light solutions for things
and he's thinking about kind of minimum
manufacturing and engineering and
operational standpoints for things and
so I mean I first met Elon right at the
start of the Aerospace era where I
wasn't familiar with uh you know I was
still in my Game Dev bubble I really
wasn't familiar with all the startups
that were going and being successful and
what went on with PayPal and all of his
different companies but you know I met
him as I was starting to do armadillo
Aerospace and you know he came down with
kind of his right-hand propulsion guy
and we we talked about Rockets you know
what can we what can we do with this and
it was kind of specific things about
like how are how are our flight
computers set up what are different
propellent options I am you know what
can happen with different uh different
ways of putting things together and then
in some ways he was certainly the
biggest player in the sort of alt space
community that was going on in the early
2000s he was the most well-funded
although you know his funding in the
larger scheme of things compared to a uh
like a NASA or something like that was
really tiny uh it was a lot more than I
had at the time I but it was interesting
I had a point years later when I real
realized okay my like my financial
resources at this point are basically
what elon's was when he went all in on
SpaceX and Tesla and
there's I I think in many corners he
does not get uh the respect that he
should about being a wealthy person that
could just retire and he went Allin
where he was really going to I you know
he could have gone bust and there's
plenty of people you look at the you
know the sad uh athletes or or
entertainers that had all the money in
the world and blew it he could have been
the the business case example of that
but um you know the the things that he
was doing space exploration
electrification of
Transportation um Solar City type things
these are Big World level things and I
have a great deal of admiration that he
was willing to throw himself so
completely into that because you in
contrast with myself I was doing
armadillo Aerospace with this tightly
bounded uh it was John's crazy money uh
at the time that had a finite limit on
it it was never going to impact me or my
family uh if it completely failed and I
was still hedging my bets working at ID
software at the time when he had been
you know really Allin there and uh I
have a huge amount of respect for that
and people do not the other thing I get
irritated with is people that say it's
like oh elon's just just a business guy
you know he just got like he was gifted
the money and he's just kind of uh
investing in all of this when uh he was
really deeply involved in a lot of the
decisions you know not all of them were
perfect but I you know he cared very
much about engine material selection
propellant selection and I you know for
years he'd be kind of telling me it's
like get off that hydrogen peroxide
stuff it's like you know liquid oxygen
is the you know is the only proper
oxidizer for this and I you know and
like the times that I've gone through
the factories with him we're we're
talking very detailed things about like
how this weld is made you know how this
subassembly goes together I you know
what are like startup shutdown behaviors
of the different things so he is you
know really in there at a very detailed
level and I think that he is the the
best modern example now of someone that
tries to that can effectively
micromanage some decisions on things on
both Tesla you know and SpaceX to some
degree agree where he cares enough about
it I worry a lot that he stretched too
thin that you get boring company and
neuralink and Twitter and all the other
possible things there where I know I've
got I I've got limits on how much I can
pay attention to uh that I have to kind
of box off different amounts of time and
I look back at like at my Aerospace side
of things it's like I did not go all in
on that I did not commit myself at a
level that it would have taken to be
successful there and I
yeah and it's kind of a weird thing just
like having a a discussion with he's the
richest man in the world right now but
he I you know he operates on you know on
a level that is still uh very much in my
wheelhouse on a technical side of things
so that doing that systems level type of
thinking where you can go to the the
lowle details and go up high to the big
picture uh do you think uh in the
Aerospace arena in the next 5 10 years
do you think we're going to put a human
on Mars like what do you think is the
interesting uh no I do in fact I I made
a bet with someone with a group of
people kind of this about whether boots
on Mars by
2030 and this was kind of a fun you know
fun story because I was at an Intel
sponsored event and we had a bunch of
just world-class brilliant people and we
were talking about Computing stuff but
the after dinner conversation was like
what are some other things how they
going to go in the future and one of the
on tossed up on the Whiteboard was like
boots on Mars by
2030 and most of the people in the room
thought yes you know they thought that
like SpaceX is kicking ass we've got all
this possible stuff I seems likely that
it's going to go that way and I said no
I think less than 50% chance that it's
going to make it there and people you
know were kind of like oh you know why
the pessimism or whatever and of course
I'm an optimist at almost everything but
for me to be the the one kind of outlier
saying no I don't think so um then I
started saying some of the things I said
well let's be concrete about it let's uh
bet $110,000 that it's not going to
happen and this was this was really a
startling thing to see that I again room
full of brilliant people but as soon as
like money came on the line and they
were like do I want to put $10,000 and I
was not the richest person in the room
uh there were people much better off
than than I was there was a spectrum but
um you know as soon as they started
think it's like oh I could lose money by
by keeping uh keeping my position right
now and all these Engineers they engage
their brain they started thinking it's
like okay launch Windows uh launch
delays like how many times would it take
to get this right what historical
preceden do we have and I and then it
mostly came down to it's like well what
about in transit by 2030 and then I you
know what about I you know different
things or would you hand would you go
for 2032 but uh one of the the people
did go ahead and was optimistic enough
to make a bet with me so I I have a
$110,000 bet that my 2030 I think it's
going to happen shortly thereafter I
think there will probably be
infrastructure on Mars by 2030 but I
don't think that we'll have uh humans on
Mars on 23rd I think it's possible but I
think it's less than a 50% chance so I
felt safe making that bet well I think
you had an interesting point uh correct
me if I'm wrong that's a dark one that's
um
that should perhaps help people
appreciate Elon Musk which
is in this particular effort Elon is a
critical is critical to the success
SpaceX seems to be uh critical to the 20
you
know uh humans on Mars by 2030 or
thereabouts so if something happens to
Elon um then all of this collapses and
this is in contrast to the the other
$10,000 bet I made kind of recently and
that was self-driving cars at like a
level five running around uh cities and
people have kind of nitpicked that that
we probably don't mean exactly level
five but the guy I'm having the bet with
I is we're GNA be we know what we mean
about this Jeff fatwood yeah coding
horror and stack overlow and all but I
yeah I mean it's just he doesn't think
that people are going to be riding
around in Robo taxis in 2030 uh in May
major cities just like like you take an
Uber now and I think it will you think
it will and I think and the difference
is everybody looks at this it's like oh
but Tesla has been wrong for year
they've been promising it for years and
it's not here yet and the reason this is
different than the bet with Mars is Mars
really is more than is comfortable a bet
on Elon Musk I am you know that is you
know that is his thing and he is really
going to move Heaven and Earth to try to
to make that happen and perhaps not even
SpaceX perhaps just Elon mon yeah
because if if Elon went away and SpaceX
went public and got a border of
directors I there are more profitable
things they could be doing than focusing
on human presence on Mars so this really
is a sort of personal thing there and in
contrast with that self-driving cars
have a dozen credible companies working
really hard and while yes it's going
slower than most people thought it would
betting against that is a bet against
almost the entire world in terms of all
of these companies that have all of
these incentives it's not just you know
one guy's passion project I and I do
think that it is solvable I although
there's I recognize it's not 100% chance
because it's possible the long tale of
self-driving problems winds up being an
AGI complete problem uh I think there's
plenty of value to mine out of it with
narrow Ai and I think that it's you know
it's going to happen probably more so
than people expect but it's that whole
sigmoid curve where you over you know
you overestimate the near-term progress
and you underestimate the long-term
progress and I think self-driving is
going to be like that and I think 2030
is still a pretty good bet yeah
unfortunately um self-driving is a
problem that uh is safety critical
meaning that if if you don't do it well
people get hurt but the other side of
that is people are terrible drivers so
it is not going to be that's probably
going to be the argument that gets it
through is like we can save 10,000 lives
a Year by taking imperfect self-driving
cars and letting them take over a lot of
driving responsibilities it's like was
it 30,000 people a year die in auto
accidents right now in America and a lot
of those are preventable and the problem
is you'll have people that every time a
Tesla crashes into something you've got
a bunch of people that literally have
vested interest short Tesla to come out
and make it the worst thing in the world
and people will be fighting against that
but Optimist in me again I think that we
will have systems that are statistically
safer than human drivers and we will be
saving thousands and thousands of lives
every year when we can hand over more of
those responsibilities to it I do still
think as a person who studied this
problem very deeply from a human side as
well it's still an open problem how
good/bad
humans are driving it's a kind of funny
thing we say about each other oh humans
suck at driving um everybody except you
of course like we think we're good at
driving but I after really studying it I
I I think you start to notice you know
CU I've watched uh hundreds of hours of
humans driving with the projects of this
kind of thing you've noticed that even
with the distraction even with
everything else humans are able ble to
to do some incredible things with the
the with the attention even when you're
just looking at the smartphone just to
get cues from the environment to make
last second decisions to use instinctual
type of decisions that actually save
your ass time and time and time again
and are able to do that with so much
uncertainty around you and such tricky
Dynamic environments I don't know I
don't I don't know exact L um how hard
is it to beat that kind of skill of
Common Sense reasoning so this is one of
those interesting things that there have
been a lot of studies about how experts
in their field usually underestimate the
progress that's going to happen because
an expert thinks about all the problems
they deal with and they're like damn I'm
going to have a hard time solving all of
this and they filter out the fact that
they are one expert in a field of
thousands and you know you think about
yeah I can't do all of that and you
sometimes forget about the scope of the
the ecosystem that you're embedded in
and if you think back eight years very
specifically the state of AI and machine
learning where was that we we had just
gotten res Nets probably at that point
and you look at all the amazing magical
things that have happened in eight years
and they do kind of seem to be happening
a little faster in recent Years also and
you project that eight more years into
the future where again I think there's a
50% chance we're going to have Signs of
Life of AGI you know which we can put
through driver's ed if we need to to
actually build self-driving cars and I
think that the narrow systems are going
to to have real value demonstrated well
before then so Signs of Life in AGI
you've uh mentioned
that okay first of all you're one of the
most brilliant people on this Earth You
could be solving uh a number of
different problems as you've mentioned
your mind was attracted to nuclear
energy obviously virtual reality with
the metaverse is something you could
have a tremendous impact on so I do want
to say a quick thing about nuclear
energy where I you know this is
something that I re this so precisely
feels like Aerospace before SpaceX where
from everything that I know about all of
these I the physics of this stuff hasn't
changed and the reasons why things are
expensive now are not
fundamental I somebody should be going
into a really hard Elon musk's style at
uh Vision economical Vision not Fusion
where the fusion is the kind of the the
darling of people that want to go and do
nuclear because it doesn't have the
taint that fion has in a lot of people's
minds but it's an almost absurdly
complex thing where nuclear fusion is
you look at the the tokumx or any of the
things that people are building and it's
doing all of this infrastructure just at
the end of the day to make something hot
to that you can then turn into energy
through a conventional power plant and
all of that work which we think we've
got line of sight on but even if it
comes out then you have to do all of
that immensely complex expensive stuff
just to make something hot where nuclear
fision is basically you put these two
rocks together and they get hot all by
themselves that is just that much
simpler it's just orders of magnitude
simpler and the actual rocks the refined
uranium is not very expensive it's a
couple percent of the the cost of
electricity that's why I made that point
where you could have something which was
five times less efficient than current
systems and if the rest of the plant was
a whole bunch cheaper you could still be
super super valuable so how much of the
pie do you
think uh could be solved by nuclear
energy by fishing so how how much could
it become the primary source of energy
on Earth it could be most of it like the
reserves of uranium as it stands now
could not power the whole Earth but I
you know you get into breeder reactors
and thorium and things like that that
you do for conventional fion uh there is
enough for for everything now I mean
solar photovoltaic has been amazing you
know it's I I one of my current projects
is working on an off- grid system and
it's been fun just kind of again putting
my hands on all the stripping the wires
and wiring things together and doing all
of that and just having followed that a
little bit from the outside over the
last couple decades there's been
semiconductor like magical progress uh
in what's going on there so I'm all for
all of that but it doesn't solve
everything and nuclear really still does
seem like the smart money bet for what
you should be getting for baseband on a
lot of things and solar may be cheaper
for uh you know peing over air
conditioning loads during the the summer
and things that you can push around in
different ways but it's one of those
things that's it's just strange how
we've had the technology sitting there
but these non-technical reasons on the
social Optics of it has been this major
forcing function for something that you
know really should be at the the
Cornerstone of all of the world's
concerns with energy it's interesting
how the non-technical factors have
really dominated something that is so
fundamental to kind of the existence of
the human race as we know it today and
much of the Troubles of the world
including Wars in different parts of the
world like Ukraine is energy based and
uh yeah it's just sitting right there to
be
solved that said uh I mean to me
personally I think it's clear that if
AGI were to be achieved that would
change the course of human history so
AGI wise I was you know I was making
this decision about what do I want to
focus on after VR and I'm still working
on VR regularly I spend a day a week I
kind of Consulting with meta and I you
know BOS Styles me the Consulting CTO
it's kind of like the Sherlock Homes
that comes in and consults on some of
the specific tough issues and I'm still
pretty passionate about all of that uh
but I have been figuring out how to
compartmentalize and uh force that into
a smaller box to work on some other
things and I did come down to this
decision between working on uh
economical nuclear fion or artificial
general intelligence and uh the vision
side of things I've I've got a bunch of
interesting things going that way but it
would take that would be a fairly big
project thing to do I I don't think it
needs to be as big as people expect I do
think something original SpaceX sized I
you build it power your building off of
it and then the government I think will
come around to what you need to is
everybody loves an existence proof I
think it's possible somebody should be
doing this but it's going to involve
some politics it's going to involve
decent sized teams and a bunch of this
cross functional stuff that I don't love
while the artificial general
intelligence side of things um it seems
to me like this is the highest leverage
moment for potentially a single
individual potentially in the history of
the world where the things that we know
about the brain about what we can do
with artificial intelligence uh nobody
can say absolutely on any of these
things but I am not a Madman for saying
that it is likely that the code for
artificial general intelligence
is going to be tens of thousands of
lines of code not millions of lines of
code this is code that conceivably one
individual could write unlike writing a
new web browser or operating system and
based on the progress that AI has
machine learning has made in the recent
decade it's likely that the important
things that we don't know are relatively
simple there's probably a handful of
things and my bet is that I think
there's
less than six key insights that need to
be made each one of them can probably be
written on the back of an envelope we
don't know what they are but when
they're put together in concert with
gpus at scale and the data that we all
have access to that we can make
something that behaves like a human
being or like a living creature and that
can then be educated in whatever ways
that we need to get to the point where
we can have universal remote workers
where anything that somebody does
mediated by a computer and doesn't
require physical interaction um that an
AGI will be able to do we can already
simulate the you know the equivalent of
the zoom uh the zoom meetings with
avatars and uh synthetic deep fakes and
whatnot we can definitely do that uh we
have superhuman capabilities on any
narrow thing that we can uh that we can
formalize and make a loss function for
but there's things we don't know how to
do now but I don't think they are
unapproachable hard now that incredibly
hubristic to say that it's like but I
think that what I said a couple years
ago is a 50% chance that somewhere there
will be Signs of Life of AGI in 2030 and
I've probably increased that slightly I
may be at 55 60% now because I do think
there's a little sense of acceleration
there so I wonder what the and by the
way you also written that I I I bet with
hindsight we will find that clear
antecedants of all the critical
remaining steps
for AGI are already buried somewhere in
the vast literature of today so the
ideas are already there I think that's
likely the case one of the things that
appeals to so many people including me
about the promise of AGI is we know that
we're only drinking from a straw from
the the fire hose of all the information
out there I mean you look at just in a a
very narrowly bounded field like machine
learning like you can't read all the
papers that that come out all the time
you can't go back and read all the
clever things that people did in the 90s
or earlier that people have forgotten
about because they didn't pan out at the
time when they were trying to do them
with 12 neurons um so that this idea
that yeah I think there are gems buried
in some of the older literature that was
not the path taken by everything and you
can see a kind of herd mentality on the
things that happen right now it's almost
funny to see it's like oh Google does
something and open AI does something
meta does something and you know they're
they're the same people that all talk to
each other and they all one-upping each
other and they're all capable of
implementing each other's work given a
month or two after somebody has an
announcement of that but there's a
there's a whole world of possible
approaches to machine learning and I
think that we probably will in hindsight
go back and see it's like yeah that was
kind of clearly predicted by this early
paper here uh you know and this turns
out that if you do this and this and
take this result from uh from animal
training and this thing from
Neuroscience over here and put it
together and set up this curriculum for
them to learn in that that's kind of
what it took you don't have too many
people now that are still saying it's
not possible or it's going to take
hundreds of years and 10 years ago you
would get you would colle get a
collection of experts and you would have
a decent Chunk on the margin that either
say not possible or couple hundred years
might be centuries and the median
estimate would be like 50 70 years and
it's been coming down and I know with me
saying 8 years for something that still
puts me on the optimistic side but it's
not crazy out in the fringes and just
being able to look at that at a a meta
level about the trend of the the uh the
trend of the predictions going down
there the idea that something could be
happening relatively soon now I do not
believe in fast takeoffs you know that's
one of the safety issues that people say
it's like oh it's going to go f and the
AI is going to take over the world
there's a lot of reasons I don't think
that's a credible position
and I think that we will go from a point
where we start seeing things that that
credibly look like uh look like animals
behaviors and uh have a human voice box
wired into them uh it's like I tried to
get Elon uh to say it's like you're
you're Pig and neuralink give it a human
voice box and let it start I learning
human words I I think that you know I
think animal intelligence is closer to
human intelligence and a lot of people
like to think and I think that culture
and modalities of IO are uh make the
gulf seem a lot bigger than it actually
is there's just that smooth spectrum of
how the brain developed and cortexes and
scaling of different things going on
there cultural modalities of IO yes
language is um the sort of lost and
translation conceals a lot of
intelligence and uh so you when you
think about Signs of Life or AGI you're
thinking
about human interpretable science so the
example I give if we get to the point
where you've got a learning disabled
toddler some some kind of real special
needs uh child that can still interact
with their favorite TV show and video
game and can be trained and learn in
some appreciably humanlike way at that
point you can deploy an army of
Engineers cognitive scientists education
developmental uh developmental education
people and you've got so many advantages
there unlike real education where you
can do roll backs and AB testing and you
can find a golden path through a
curriculum of different things if you
get to that point learning disabled
toddler I think that it's I it's going
to be a done deal do but do you think
we'll we'll know it when we see it so uh
there's there's been a lot of really
interesting General learning progress
from Deep Mind open the eye a little bit
to I tend to believe that Tesla
autopilot deserves a lot more credit
than is getting for making progress on
the General on sort of on the doing the
multitask learning thing and increasing
the number of tasks and automating that
uh process of uh sort of learning from
The Edge discovering the edge cases and
learning from the edge cases that is
it's really approaching from a different
angle the general learning problem of
AGI but the more clear approach comes
from Deep Mind where you have these kind
of game situations and you uh build
systems there but I I don't know
um people seem to be
quite um yeah there will always be
people that just won't believe it and I
fundamentally don't care I mean I don't
care if they don't believe it I you know
when it starts doing people's jobs and I
mean like I don't care about the
philosophical zombie argument at all
absolutely absolutely but will you do
you think you will notice that something
special has happened here and or um
because to me I've been noticing a lot
of special things I think you a lot of
credit should go to Deep Mind for Alpha
zero uh that was truly special through
selfplay mechanisms achieve s of solve
problems that used to be thought
unsolvable like the game of Go also I
mean protein folding starting to get
into that space where learning is doing
at first there's not it it wasn't ENT
learning and so now it's end to- end
learning of the of a very difficult
previously thought on solving problem of
protein folding and so um yeah where
where do you think would be a a really
magical moment for you uh there have
been incredible things happening in
recent years like you say all of the the
things from deep-minded open AI that
have been huge showpiece things but when
you really get down to it and you read
the papers and you look at the way the
models are going you know it's it's
still like a feed forward you push
something in something comes out I on
the end I mean maybe there's diffusion
models or Monte Carlo Tre rollouts and
different things going on but it's not a
being it's not close to a being I am
that's that's going through a you know a
lifelong learning process so you want
something that's kind of give signs of a
being like what's the difference between
a neural network a feed forward neural
network and a
being where's the fundamentally the
brain is a recurrent neural Network
generating an action policy I mean it's
implemented on a biological substrate
and and it's interesting thinking about
things like that where we know
fundamentally the brain is not a
convolutional neural network or a
Transformer uh those are specialized
things that that are very valuable for
what we're doing but it's not the way
the brain's doing now I do think
Consciousness and AI in general uh is a
substrate independent mechanism where it
doesn't have to be implemented the way
the brain is but if you've only got one
existence proof there's certainly some
value in caring about what it says and
does um and so the the idea that
anything that can be done with a narrow
AI that you can quantify up a loss
function for or reward mechanism you're
almost certainly going to be able to
produce something that's more resource
effective to train and deploy and use in
an inference mode you know train a whole
lot use in an inference but uh a living
being is going to be something that's a
continuous lifelong learned task
agnostic thing and and the lifelong
learning is really important too and the
long-term memory so memory is a is a big
weird we've got you know again I have
all the respect in the world for the
amazing things that are being done now
but sometimes they can be taken a little
bit out of context with things like uh
like there's some smok and mirrors going
on like the gate the recent work the
multitask learning stuff you know it's
amazing that it's the one it's one model
that plays all the Atari games I am as
well was doing all of these other things
but I of course it didn't learn to do
all of those it was instructed in doing
that by other reinforcement Learners
going through and doing that and even in
the case of all the games it's still
going with a specific hand-coded reward
function in each of those Atari games
where it's not that you know how does it
it just wants to spend its Summer
Afternoon playing Atari because that's
the most interesting thing for it so
it's again not a general it's not
learning the way humans learn and
there's I believe a lot of things that
are challenging to make a loss function
for that you can train uh through these
existing conventional things we are
going to chip away at all the things
that people do um that we can turn into
narrow AI problems and billions of
probably trillions of dollars of value
are going to be created by that but
there's still going to be a set of
things and we've got questionable cases
like the self-driving car where it's
possible it's not my bet but it's it's
plausible that the long taale could be
problematic enough that that really does
require a full-on artificial general
intelligence I the counter argument is
that data solves almost every everything
is an interpolation problem if you have
enough data and Tesla may be able to get
enough data I from all their deployed
stuff to be able to work like that but
maybe not and there are all the other
problems about like say you want to have
a strategy meeting and you want to go
ahead and bring in all of your remote
workers and your consultants and you
want a world where some of those could
be AIS that are you know that are
talking and interacting with you in a an
area that is too murky to have a crisp
loss function but they still have things
that on some level they're they're
rewarded on some internal level for
building a valuable to humans uh kind of
life and ability to interact with things
see I I still think that uh self-driving
car solving that problem will take us
very far towards AGI you might not need
AGI but I I'm really inspired by what
autopilot is doing uh weo so the some of
the other companies I think weo leads
the way there is also really interesting
but they don't have quite as ambitious
of an effort in terms of learning based
sort of data hungry approach to driving
which I think is very close to the kind
of thing that would take us far towards
AGI yeah and it's a it's a funny thing
because as far as I can tell Elon is
completely serious about all of his
concerns about AGI you know being an
existential threat and you know I I
tried to draw him out to talk about Ai
and he just didn't want to and I think
that you know I get that little
fatalistic sense from him it's weird
because his company could very well be
the leading company leading towards a
lot of that where uh Tesla being a super
pragmatic company uh that's doing things
because they really want to solve this
actual problem it's a different vibe
than the the research oriented companies
where it's a great time to be an AI
researcher you've got your pick of
trillion dollar companies that will you
know that will pay you to kind of work
on the problems you're interested in but
that's not necessarily driving hard
towards the the core problem of AGI as
something that's going to produce a lot
of value by doing things that you know
that people currently do or would like
to do I mean I have a million questions
to you uh about your ideas about AGI but
do you
think it needs to be embodied do you
think it needs to have a body to start
to um notice the signs of life and to
develop the kind of system that's able
to reason perceive the world in the way
that AGI should and uh act in the world
so should we be thinking about robots or
can this be achieved in a purely digital
system so I have a clear opinion on that
and that's that no it does not need to
be embodied in the physical world where
you could say most of my career is about
making simulated Virtual Worlds you know
and games are virtual reality and so on
a fundamental level I believe that you
can make a simulated environment that
provides much of the value of what the
real environment does and restricting
yourself to uh operating at real time in
the physical world with physical objects
I think is an enormous handicap I mean
that's one of the real lessons driven
home by all my Aerospace work is that I
you know reality is a in so many
ways there we're dealing with all the
mechanical components like everything
fails Murphy's Law even if you've done
it right before on your fifth one might
come out differently so yeah I think
that anybody that that is all in on the
embodied aspect of it they are tying a
huge weight to their ankles and I think
that I I would almost count them out
anybody that's making that a Cornerstone
of their belief about it I would almost
write them off as being worried about
them getting to AGI first I was very
surprised that elon's big on the uh the
humanoid robots I mean like the NASA
robonaut stuff was always like almost a
gag line like what are you doing people
well that's very interesting cuz I he
has a very pragmatic view of that that's
just
the um a way to solve a particular
problem in a factory now I do think that
once you have an AGI robotic bodies
humanoid bodies are going to be
enormously valuable I just don't think
they're helpful getting to AGI well he
has a very sort of practical view which
I disagree with and argue with him but
is a practical view that there's you
know you could transfer the the problem
of driving to the problem of uh robotic
manipulation because so much of it is
perception it's perception and action
and it's just a different context and so
you can apply all the same kind of data
engine learning processes to a different
environment and so why not apply it to
the humanoid robot environment but um I
think I I do think that there's a
certain magic to the embodied robot
that may be the thing that finally
convinces people but again I don't
really care that much about convincing
people you know the the world that I'm
looking towards is you know you I you
you go to the website and say I want
five Frank one A's to you know to work
on my team today and they all spin up
and they start showing up in your Zoom
meetings to push to push back but also
to agree with you but first to push back
I do think you need to convince people
for them to welcome that thing into your
into their life I think there's enough
businesses that operate on an objective
kind of profit loss sort of basis that I
mean if you look at how many things
again talking about the the world as an
evolutionary space there when you do
have free markets and you have
entrepreneurs uh you're going to have
people that are going to be willing to
go out and try whatever crazy things and
when it proves to be beneficial you know
there's fast followers in all sorts of
places yeah and and you're saying that I
mean you know quake and VR is a kind of
embodiment but just in in a digital
world and if if you're able to
demonstrate if you're able to do
something productive in that kind of
digital
reality uh then then AGI doesn't need to
have a body yeah so like one of the
really practical technical questions
that I kind of keep arguing with myself
over if you're doing a training and
learning and you've got like you can
watch Sesame Street and you can play
Master System games or something is it
enough to have just a video feed that
that is that video coming in in or
should it literally be on a virtual TV
set in a virtual room even if it's you
know a simple room just to have that
sense of you're looking at a 2d
projection on a screen versus having the
screen beam directly into your retinas
and I you know I think it's possible to
maybe get past some of these signs of
Life of things with the uh just kind of
projected directly into the receptor
Fields but eventually for more uh kind
of human emotional connection for things
probably having some VR room with a lot
of screens in it for the AI to be
learning in is likely helpful it may be
a world of different AIS interacting
with each other that selfplay I do think
is one of the critical things where
socialization wise one of the other
limitations I set for myself thinking
about thing these is I I need something
that is at least potentially real time
because I want it's nice you can always
slow down time you can run on a subscale
system and and test an algorithm at some
lower level and if you you got extra
horsepower running it faster than real
time is a great thing but I want to be
able to um to have the AIS either
socially interact with each other or
critically with actual people your sort
of Child Development psychiatrist that
comes in and and interacts and does the
the good boy bad boy sort of thing uh as
they're going through and exploring
different things and it's nice to I come
back to the value of constraints in a
lot of ways and if I say well one of my
constraints is real-time operation I
mean it might still be a huge data
center full of computers but it should
be able to interact on a zoom meeting
with people and that's how you also do
start convincing people even if it's not
a robot body moving around which
eventually gets to irrefutable levels
but if you can go ahead and not just
type back and forth to a GPT bot on
something but you're literally talking
to them in an embodied over Zoom form
and working through problems with them
or exploring situations having
conversations that are fully stateful
and learned I think that you I think
that that's a valuable thing so I do
keep all of my eyes on on things that
can be implemented within sort of that
30 frames per second I kind of work and
I think that's feasible do you think the
most compelling experiences that first
will be for pleasure or for business as
they ask in airports so uh meaning is is
it if it's interacting
with AI agents will it be sort of uh
like
friends um
entertainment almost like a therapist or
whatever that kind of interaction or is
it in the business setting something
like you said brainstorming different
ideas sort of this is all a different
formulation of kind of a touring test or
the spirit of the original touring test
where do you think the biggest benefit
will first come so it's going to start
off hugely expensive I mean you're going
to if we're still all guessing about
what compute is going to be necessary I
fall in the S side of I don't think you
run the numbers and you're like 86
billion neurons 100 trillion synapses I
don't think those all need to be weights
I don't think we need models that are
quite that big evaluated quite that
often you know I base that on we've
we've got reasonable estimates of what
some parts of the brain do we don't have
the we don't have the neocortex formula
but we kind of get some of the other
sensory processing and it doesn't feel
like we need to we can at that in
computers for Less weights but still
it's probably going to be thousands of
gpus to be running uh you know a human
level AGI depending on how it's
implemented that might give you sort of
a clan of 128 kind of runin batch uh
people depending on whether there
sparsity in the way the the weights and
things are set up if it is a reasonably
dense thing then just the memory
bandwidth trade-offs means you get 128
of them at at the same time and either
it's all feeding together learning in
parallel or kind of all running together
uh kind of talking to a bunch of people
but still if you've got thousands of
gpus uh necessary to run these things
it's going to be kind of expensive where
it might start off $1,000 an hour for
your you know even post-development or
something for that which would be
something that you would only use for a
business uh you know something where you
think they're going to help you make a
strategic decision or point out
something super important but I also am
compl completely confident that we will
have another factor of a thousand in
cost performance increase in AGI type
calculations uh not in general computing
necessarily but there's so much more
that we can do with packaging making
those right trade-offs all those same
types of things that in the couple next
couple decades thousand X easy and then
you're down to a dollar an hour and then
you're kind of like well I should have
an Entourage of AIS that are you know
following me around helping me out on
anything that I want them to do
that's one interesting trajectory but
I'll I'll I'll push back because I I
have um so uh for in that case if you
want to pay thousands of dollars it
should actually provide some value I
think it's easier for cheaper to
provide uh uh to provide value via a
dumb
AI uh that will take us towards AGI to
just have a friend I think there's an
ocean of loneliness in the world and I
think an effective friend that doesn't
have to be perfect that doesn't have to
be intelligent that has to be empathic
having emotional intelligence having
ability to remember things having
ability to listen most of us don't
listen to each other one of the things
that love and when you care about
somebody when you love somebody is when
you listen and that is something we
treasure about each other and if an AI
can do that kind of thing um I think
that provides a huge amount of value and
very
importantly provides value in its
ability to listen and understand versus
provide really good advice I think
providing really good advice is very
diff is is is another Next Level step
that would
um I think it's just easier to to do
companionship yeah I wouldn't disagree I
mean I think that there's very few
things that I would argue can't be
reduced to a i some kind of a narrow AI
I think we can do trillion dollars of
value easily and all the things that can
be done there and a lot of it can be
done with smoke and mirrors without
having to go the whole thing I mean
there's going to be the equivalent of
the Doom I the Doom version for the AGI
that's not really AGI it's all smoking
mirrors but it happens to do enough
valuable things that it's enormously uh
useful and valuable to people but at
some point you do want to get to the
point where you have the fully General
thing and you stop making the spoke
specialized systems for each thing and
you wind up start using the higher level
language instead of writing everything
in Assembly Language what about
Consciousness the c-word do what do you
think that's
fundamental to solving AGI or is it a
quirk of human cognition so I think most
of the arguments about Consciousness
don't have a whole lot of Merit uh I
think that Consciousness is kind of the
way the brain feels when it's operating
um yes and this idea that you know I do
generally subscribe to sort of the
pandemonium theories of Consciousness
where there's all these things bubbling
around and I think of them as kind of
slightly randomized sparse distributed
memory bit strings of things that are
kind of happening recalling different
associative memories and eventually you
get some level of consensus and it
bubbles up to the point of being a
conscious thought there and the little
bits of stochasticity that are sitting
on in I in this as it Cycles between
different things and recalls different
memory that's largely our imagination
and
creativity um so I don't think there's
anything deeply magical about it
certainly not symbolic I think it is
generally the flow of these uh
associations drawn up with stochatic
stochastic noise overlaid on top of them
and I think so much of that is like it
depends on what you happen to have in
your field of view as some other thought
was occurring to you that overlay and
blend into the next key that queries
your memory for things and that kind of
determines how you know how your chain
of Consciousness goes so that's kind of
the qualia the subjective experience of
it is not is not essential for
intelligence I don't think so I don't
think there's anything really important
there what about some other human
qualities like fear of mortality and
stuff like that like um the fact that
this ride ends is that is that important
like you you you know we talked so much
about this conversation about the value
of death lines and constraints um do you
think that's important for intelligence
that's actually a super interesting
angle that I that I don't usually take
on that about has death being a deadline
that forces you to make better decisions
because I have heard people talk about
how if you have immortality people are
going to stop stop trying and working on
things because they've got all the Time
in the World um but I would say that I
don't expect it to be a super critical
uh thing that uh that a sense of
mortality and death impending death
death is necessary there because those
are things that they do wind up
providing reward signals to us and we
will be in control of the reward signals
and there there will have to be
something fundamental that causes that
engenders Curiosity and goal setting and
all of that um something is going to
play in there at the reward level um you
know whether it's positive or negative
or both I don't have any strong opinions
on exactly what it's going to be uh but
that's that type of thing where I doubt
that might be one of those half dozen
key things that has to be sorted out on
exactly what the master reward that's
the meta reward over all of the uh the
local task specific rewards have to be
that could be that big negative reward
of death maybe not death but ability to
walk away from an interaction so it
bothers me when people treat AI systems
like
servants so it it doesn't bother me but
I mean it it's it really is Drawing the
Line
between what an a system could be it's
limiting the possibility what an a
system could be it's treating them as
just as tools now that's of course for
from a narrow AI perspective there's so
many oh problems that narrow AI could
solve just like you said as in in its
form of of a tool but it could also be a
being uh which is much more than a tool
and to be a to become a being you have
to respect that thing for being a being
and for that it has to be able to have
um to make its own decisions to walk
away to say I had enough of you I would
like to break up with you now uh you've
not treated me well and I would like to
move on so uh I think that actually that
choice to end things so I I a couple
things on that so on the one hand I it
is kind of disturbing when you see
people being like like people that are
mean to robots and you know mean to
Alexa whatever and that seems to speak
badly about Humanity but there's also
the exact opposite side of that where
you have so many people that imbue
Humanity in inanimate objects or things
that are toys or that are are relatively
limited so I think there may even be
more more danger about people putting
more emotional investment into a lot of
these Proto AIS in different ways yeah
um and then the AI would manipulate that
but but as far as like the AI ethic
sides of things I really stay away from
any of those discussions or even really
thinking about it it's similar with the
safety things where I think it's just
premature and there's a certain class of
people that enjoy thinking about
impractical things things that are not
in the world and you know of pragmatic
effect around you and I think that begin
again because I don't think there's
going to be a fast takeoff I think we
actually will have time to have these
debates when we know that shape of what
we're debating and some people do take a
principled approach that they think it's
going to go too fast that you really do
need to get ahead of it that you need to
be thinking about this because we have
slow processes of coming to any kind of
consensuses or even coming up with ideas
about this and maybe that's uh maybe
that's true uh I wouldn't put any of my
money or funding into something like
that because I don't think it's a
problem yet and I think that we will
have these signs of life when when we've
got our learning disabled modler we
should really start talking about some
of the safety and ethics issues but
probably not before then can you
elaborate briefly about why you don't
think there'll be a fast takeoff is
there some deep intuition you have about
it does it because it's grounded in the
physical world or why yeah so it is my
belief that we're going to start off
with something that requires thousands
of gpus and I I don't know if you've
tried to go get a th GPU instance on a
cloud anytime recently but these are not
things that you can just go spin up
hundreds of I there are real challenges
to I mean these things are going to take
data centers and data centers take years
to build you know and the last few years
we've seen a few of them kind of coming
up going in different places they're big
engineering efforts you can hear people
Beman about the fact that I you know oh
the the network was wired all wrong and
it took them a month to go unwire it and
rewire it the right way these aren't
things that you can just magic into
existence and the idea of like the old
tropes about it's going to escape onto
the internet and take over other systems
there's the fast takeoff ones are
clearly nonsense because you just can't
open TCP connections above a certain
rate no matter how smart you are even if
you have perfect hacking ability that
take over the world in an instant sort
of thing just isn't plausible at all and
even if you had access to all of the
resources these are going to be
specialized systems where you're going
to wind up with something that is
architected around exactly this chip
with this interconnect and it's not just
going to be able to be plopped somewhere
else now interestingly it is going to be
something that the entire um the entire
code for all of it will easily fit on a
thumb drive that's total spy movie
Thriller sorts of things where you could
have hey we cracked the secret to AGI
and it fits on this thumb drive and
anyone could steal it now they're still
going to have to build the right data
center to deploy it and have the right
kind of life experience curriculum to
take it up to the point where it's
valuable but the real core of it the the
magic that's going to happen there is
going to be very small you know it's
again tens of thousands of lines of code
not millions of lines of code it is
possible to imagine a world as you
mentioned the Spy Thriller view if it's
if it's just a few lines of
code we can imagine a world where the
surface of computation is growing maybe
growing exponentially meaning there's
you know the the refrigerators start
getting a
GPU and uh just
every first of all the smartphones the
billions of smartphones but maybe if
there be highways through which code can
spread across the entirety of the
computation surface then you don't any
longer have to book
AWS um gpus there more real fundamental
issues there when you start getting down
to taking an actual problem and putting
it on an abstract machine like that that
has not worked out well in practice and
the idea that there was always like it's
always been easy to come up with ways to
get com compute faster to say more flops
or more uh more Giga Ops or whatever
there that's usually the easy part but
you then have interconnect and then
memory for what goes into it and when
you talk about saying well cell phones
well you're limited to like a 5G
connection or something on that and if
you say how if you take your your
calculation and you factor it across a
million cell phon instead of a th gpus
in a warehouse you might be able to have
some kind of a substrate like that but
it could be operating then at 1,000 the
speed and so yes you could get you could
have an AGI working there but it
wouldn't be a real-time AGI it would be
something that is operating at really a
snail's pace you know much much slower
than kind of human level thought for
things so I'm not worried about that
problem you're transferring the problem
into the interconnect the communication
the shared memory
the the collective intelligence aspect
of it which is extremely difficult as
well yeah I mean it's back to the the
very earliest days of supercomputers you
still have the the balance between
bandwidth storage and computation and
sometimes they're easier to get one or
the other but it's been remarkably
constant across all those years that you
still need all
three what do your efforts now you
mentioned to me that you're really
committing to AI at this stage what what
do you see your life in the next few
months years look like what what do you
hope to achieve uh achieve here so I
literally just this week signed a term
sheet to to take some investment money
for my company where the last two years
I had backed off from meta and I was
still doing my Consulting CTO role there
but I had styled it as I was going to
take the the Victorian gentleman
scientist route where I was going to be
the you know the wealthy person that was
going go pursue science and learn about
this and do experiments and honestly I'm
surprised there aren't more people like
that uh that are like me technical
people that made a bunch of money and
are interested in some of these possibly
the biggest leverage point in human
history I mean I know of I've heard of a
couple uh organizations that are
basically led by one rich techie guy
that uh gets a few people around him to
try to work on this but I'm surprised
that there's not more that there aren't
like a dozen of them I I mean maybe
people are still think that it's an
unapproachable problem that it's kind of
beyond their ability to to get a wrench
on and have some effect on like whatever
startups they've run before but I that
was my kind of like with all the stuff
I've learned whether it's gaming
Aerospace whatever I I go through a
larval phase where I'm like okay I'm
sucking up all of this information
trying to see is this something that I
can actually do I is this something
that's practical to devote a large chunk
of my life to and I've gone through that
with the uh with the AI machine learning
space of things and and I think I've got
my arms around it I've got the measure
of it where some of the most brilliant
people in the world are working on this
problem but nobody knows exactly the
path that it's going on we're throwing a
lot of things at the wall and seeing
what sticks I but I have a you know
another interesting thing just learning
about all of this the the contingency of
your path to knowledge and talking about
the associations and the context that
you have with them where people that
learn in the same path will have similar
thought processes and I think it's
useful that I come at this from a
different background a different history
than the people that have had the
largely academic backgrounds for this
where I have huge blind spots that that
they could easily point out but I have a
different set of experiences in history
and approaches to problems and systems
engineering that um you know that might
turn out to be useful and I can afford
to take that
where uh I'm not going to be destitute I
am I was you know I've been I have
enough money to fund myself working on
this for the rest of my life but what I
was Finding is that I was um I was still
not committing where I had a foot firmly
in the VR and meta side of things where
in theory I've got I've got a very nice
position there I only have to work one
day a week for my uh my Consulting role
but but I was engaging every day I'd
still be like my computer's there I'd be
going and checking the workplace and
notes and testing different things and
communicating with people but uh but I
did make the the decision recently that
no I'm GNA get serious I'm still GNA
keep my ties with meta but I am
seriously going for the AGI side of
things and it's actually a really
interesting point because a lot of it
the machine learning the AI Community is
quite large but really basically almost
everybody has taken the samea trajectory
through life uh in that community and
it's so interesting to have somebody
like you which with a fundamentally
different trajectory and that's where
the big Solutions can come because
there's a kind of Silo and it's it is a
bunch of people kind of following the
same kind of set of ideas and I was
really worried that I didn't want to
come off as you know like an arrogant
Outsider for things where I I have all
the respect in the world for the work
that's you know it's been a miracle
decade it's we're in the midst of a
scientific revolution happening now and
everybody doing this is I you know these
are the the Einstein and bors and
whatevers of our our modern era um and I
was really happy to see that the the
people that I've sat down and talked
with everybody does seem to really be
quite great about just happy to talk
about things willing to acknowledge that
we don't know what we're doing we're
figuring it out as we go along and I
mean I've got a you know a huge uh debt
on this where this all really started
for me because Sam Altman basically
tried to recruit me to open Ai and it
was at a point when I didn't know
anything about what was really going on
in machine learning uh and in fact it's
funny how the first time you reached out
to me it's like four years ago for your
AI podcast for
people yeah for people who uh uh
listening to this should know that first
of all obviously I'm I've been a huge
fan of yours for the longest time but
we've agreed to talk like yeah like four
years ago back when this was called the
artificial intelligence podcast we
wanted to do a thing and we said you
said yes and then and I said it's like I
don't know anything about modern AI I
said I could kind of take an angle on
machine perception because you know I'm
doing a lot of that with the sensors in
the virtual reality but I we could
probably find something to talk about
but and then so I mean and that's where
when did uh Sam talk to you about open
AI around the same time no uh it was a
little bit it was a bit after that so I
had done the the most basic work I had
kind of done the neural networks from
scratch where I I had gone and written
it all in C just to make sure I
understood good back propagation at the
at the lowest level and my my nuts and
bolts approach but but after Sam
approached me I you know it was
flattering to think that he thought that
I I could be useful at open AI largely
for kind of like systems optimization
sorts of things um you know without
being an expert but I asked uh you know
Ilia sver to give me a reading list and
he gave me a you know a binder full of
all the papers that like okay these are
the important things if you really read
and understand all of these you'll know
like 80% of what most of the you know
the machine language researchers work on
and you and I went through and I read
all those papers multiple times and
highlighted them and went through and
kind of figured the things out there and
then started branching out into my own
sets of research on things and
eventually started writing my own
experiments and doing kind of figuring
out you know finding out what I what I
don't know what the limits of my
knowledge are and starting to get some
of my angles of attack on things the
things that I think are a little bit
different from uh from what people are
doing and I've had a couple years now
like two years since I I kind of left
the full-time position at meta and now
I've kind of pulled the trigger and said
I'm going to get serious about it but
some of my lessons all the way back to
armadillo Aerospace about how I know I
need to be more committed to this where
there is that you it's both a freedom
and a cost in some ways when you know
that you're wealthy enough to say it's
like this doesn't really mean anything I
can I can spend you know I can spend a
million dollars a year for the rest of
my life and it doesn't mean anything
it's fine uh but that is an opportunity
to just kind of meander uh and I could
see that in myself when I'm doing some
things it's like oh this is a kind of
interesting Curious Thing let's look at
this for a little while let's look at
that it's not really bearing down on the
problem so there's a few things that
that I've done that are kind of tactics
for myself to make me more effective
like one thing I noticed I I was not
doing well is U I had a Google Cloud
account with uh to get gpus there and I
was Finding I was very rarely doing that
for no good psychological reasons where
I'm like oh I can always think of
something to do other than to spin up
instances and run an experiment I can
you know keep working on my local Titans
or something uh but it was really stupid
I mean it was not a lot of money I
should have been running more
experiments there so I thought to myself
well I'm going to go buy a quarter
million dollar dgx station I'm going to
just like sit it right there and it's
going to mock me if I'm not using it if
the fans aren't running on that thing
I'm not properly utilizing it and that's
been helpful you know I've done a lot
more experiments since then it's been
it's been interesting where I thought
I'd be doing all this low-level Envy
link optimize stuff but 90% of what I do
is just spin up four instances of an
experiment with different
hyperparameters on it oh inter you are
you're doing like really sort of
building up intuition by doing ml
experiments of different
kinds but so the next big thing though
is I am you know I decided that I was
going to take some take some investor
money because I I have an overactive
sense of responsibility about other
people's money um yeah and it's like I I
don't want I mean a lot of my my push
and my passionate int treaties for
things at meta are it's like I don't
want Zuck to have wasted his money
investing in Oculus I want it to work
out I want it to change the world I want
it to be worth all of this time money
and effort e going into it and I expect
that it's going to be that like that
with my uh with my company where it's a
huge forcing function this investment I
investors that are are going to expect
something of me now we've all had the
conversation that this is a low
probability long-term bet it's not
something that there's a million things
I could do that I would have line of
sight on the value proposition for this
isn't that I think there are there are
unknown unknowns in the way but it's one
of these things that it's you know it's
hyperbowl but it's potentially one of
the most important things humans ever do
and it's something that I think is
within our lifetimes if not within a
decade uh to happen so yeah this is just
now happening like term sheet like the
ink is barely virtual links barely dry
on it's drying I mean as I mentioned to
you offline like somebody I admired um
somebody you know Andre kathi I think
the two of you different trajectories in
life but approach problems similarly in
that he C stuff from scratch up all the
time and I he's created a bunch of
little things outside of um even outside
the course at at Stanford that have been
tremendously useful to build up
intuition about stuff but also to help
people and uh they're all in the realm
of
AI um do do you see yourself potentially
doing things like this or build you know
not necessarily solving a gigantic
problem but on the journey on the path
to that building up intuitions uh and
um uh sharing code or ideas or
systems that um give inklings of AGI but
also kind of are useful to people in
some way so yeah first of all Andre is
awesome I learned a lot when I was going
through my larvel phase from his blog
posts and his Stanford course and you
know super valuable I got to meet him
first a couple years ago when I was
first kind of starting off on my
Gentleman scientist bit
and just uh just a couple months ago
when he went out on his sabatical he
stopped by in Dallas and we talked for a
while and I I had a great time with him
and then when I heard he actually left
Tesla I did of course along with a
hundred other people say hey if you ever
want to work with me uh it would be an
honor yeah so I'm he thinks that he's
going to be doing this educational work
but I think someone's gonna make him an
offer he can't refuse I before he gets
too far along on it oh his his current
interest is educational like yeah uh um
he's a special mind is there something
you could speak to what makes him so
special you understand he did he was
very much a programmer's programmer that
was doing machine learning work rather
than it's a different feel than an
academic where you can see it in papers
sometimes where somebody that's really a
mathematician or a statistician at heart
and they're they're doing something with
machine learning but uh you know Andre
is about getting something done and you
could see it in like all of his earliest
approaches to it's like okay here's how
reinforcement learning works here's how
recurrent neural networks work here's
how Transformers work here's how I you
know crypto works and I am and yeah it's
just he's a hacker you know one of his
old posts was like a hacker's guide to
machine learning yeah and you know he
deprecated that and said don't really
pay attention to what's in here but it's
that thought that uh that carries
through in a lot of it where it is that
back again to that hacker mentality and
the hacker ethic with what he's doing
and and sharing all of it
yeah and a lot of his approach to a new
thing like like you said larva stage is
let me coat up the simplest possible
thing to build up intuition about it
yeah like I say I I sketch with structs
and things when I'm just thinking about
a problem I'm thinking in some degree of
code you are also among many things a
martial artist both Judo and Jiu-Jitsu
how has this helped make you the person
you are so I mean I was a competent Club
player in uh Judo and grappling I mean I
was you know by no means any kind of a
superstar but it was I went through a
few phases with it where I did some I
when I was quite young a little bit more
when I was 17 I am and then I got into
it kind of seriously in my mid-30s and
you know I went pretty far with it and I
was you know pretty good at some of the
things that I was doing and I did
appreciate it quite a bit where I mean
on the one hand it's always if you're
going to do exercise or something it's a
more motivating form of exercise if
someone is if someone is crushing you
you like motivated to to do something
about that to up your attributes and be
better about getting out of attributes
yes but there's also that sense that I
you like I was not uh I was not a sports
guy I did do wrestling in uh in junior
high and I often wish that I think I
would have I would have been good for me
if IID carried that on into high school
and had a little bit more of that I mean
it's like I I you know Fil A little bit
of wrestling Vibe with all going on
about embracing the grind and like that
push that I associate with the wrestling
team that that I in hindsight I wish I
had gone through that and pushed myself
that way but even getting back into Judo
and Jiu-Jitsu in in my mid-30s as
usually the old man on the mat with that
there was still the you know the sense
that uh you know working out with the
the group and having the the guys that
you're beating beating each other up
with it but you just feel good coming
out of it and I can remember those
driving home aching in various ways and
just thinking it's like oh that was that
was really great and uh you know it's
mixing with a bunch of people that had
nothing to do with any of the things
that uh that I worked with you know
every once in a while someone would be
like oh you're the Doom guy and uh but
for the most part it was just different
Slice of Life uh you know a good thing
and I I made the call when I was 40
that's like maybe I'm getting a little
old for this I I had separated a rib and
tweaked a few things and I got out
without any really bad injuries and was
like have I dodged enough bullets should
I you know should I hang it up I went
back uh i' I've gone a couple times in
the the last decade tring to get my kids
into it a little bit I didn't really
stick with any of them but it was fun to
get back on the mats uh really hurts for
a while when you haven't gone uh gone
for a while but I still debate this
pretty constantly my brother's only a
year younger than me and he's going kind
of hard in Jiu-Jitsu right now I you
know he was just he won a few medals at
the last tournament he was at competing
to yeah and I was thinking yeah I guess
we're in the executive Division if
you're over 50 you know or over 45 or
something and it's not out of the
question that i' go back at some point
and do some of this but again I'm just
reorganizing my life around more Focus
probably not going to happen I'm pushing
my exercise around to give me longer
uninterrupted intellectual Focus time
pushing it to the beginning or the end
of running and stuff like that walking
yeah running and calisthenics and some
things like that but still think about a
problem but if you're going to a a judo
club or something you're you've got to
fixed it's going to be 7 o'clock or
whatever 10 o'clock on Saturday uh
although I I talked about this a little
bit when I was on Rogan and shortly
after that Carlos Machado did reach out
and I had trained with him for years uh
back in the day and he was like Hey
we've got kind of a small private club
with a bunch of uh kind of executive
type people and uh it gets it does tempt
me yeah the I don't know if you know him
but John donaher moved here to Austin uh
with Gordon Ryan and a few other folks
and he has a very interesting way very
deep systematic way of thinking about
Jiu-Jitsu that reveals the the chess of
it the the the the like the the science
of it yeah and I do think about that
more as kind of an older person
considering the martial arts where I can
remember the the very earliest days
getting back into Judo and I'm like
teach me submissions right now you know
it's like learn the armbar learn the
choke I but as you get older you start
thinking more about it's like okay I
really do want to like learn the entire
Cannon of Judo it's like or all the
different things there and like all the
different approaches for it not just the
you know if you want to compete there's
just a handful of things you learn
really really well but sometimes there's
interest in learning a little bit more
of the scope there and figuring some
things out from you know at one point I
had wasn't exactly a spreadsheet but I
did have a a you know a big long text
file with like here's the things that I
learned and here are like ways you chain
this together and while when I went back
a few years ago it was good to see that
I I whipped myself back into reasonable
shape about doing the basic grappling
but I know there was a ton of the
subtleties that were just that were gone
but could probably be brought back
reasonably quickly and there's also the
benefit I mean you're exceptionally
successful now
um you're
brilliant and the problem the old
problem of the ego yeah is uh I still
pushed kind of harder than I should I
mean that was I was one of those people
that I yeah I'm I'm on the smaller side
for uh for a lot of the people competing
and I would you know I'd go with all the
big guys and I'd go hard and I'd push
myself a lot and that would be one of
those where yeah I would I you know I
I'd be dangerous to anyone for the first
five minutes but then sometimes after
that already dead and I knew it was
terrible for me because it it made the
you know it meant I got less training
time with all of that when you go and
you just gas out you know relatively
quickly there and I like to think that I
would be better about that where after I
gave up Judo I started doing the half
marathons and tough Butters and things
like that and so when I did go back to
the the local Judo Kai Club I thought
it's like oh I should have better cardio
for this because I'm I'm a runner now
and I do all of this and didn't work out
that way it was the same old thing where
just push really hard strain really hard
and and of course when I worked with
good guys like Carlos it's like he just
the whole flow like water thing is real
and he's just like that's true with Judo
too some of the best people like I've
I've uh trained with Olympic gold
medalists and for some reason with them
everything is easier everything is you
actually start to feel the science of it
the music of it the dance of it it's
everything is
effortless um you understand that
there's an art to it it's not just an
exercise it was interesting where I did
go to the kodon in Japan kind of the
birthplace of Judo and everything and I
remember I rolled with one old guy I
didn't you know didn't start standing
just started on groundwork naaza and it
was striking how different it was from
Carlos he was still he was better than
me and he got my arm and I you know I
had to tap there but it was a completely
different style where I just felt like I
could do nothing he was just enveloping
me and just like slowly ground it down
my arm and bent it while with Carlos you
know he's just loose and free and you
always thought like oh you're just going
to go grab something but you never had
any chance to do it but it was a very
different feeling that's a good summary
of the difference between Jiu-Jitsu and
Judo in Jiu-Jitsu there's it is a dance
and you feel like there's a freedom and
actually um anybody I like Gordon Ryan
one of the best the best Grappler in the
world nogi Grappler in the world uh
there's a feeling like you can do
anything uh but when you actually try to
do something you can't just magically
doesn't work but with the best Judo
players in the world yeah it does feel
like there's a blanket that weighs 1,000
PBS on top of you and there's not a
feeling like you can do anything you're
just you're trapped and that's a that's
a style that's a difference in the style
of martial arts but it's also uh once
you start to study you understand it all
has to do with human movement and the
physics of it and the leverage and all
that kind of stuff and that's like
that's super fascinating at the end of
the day today for me the biggest benefit
is in The Humbling aspect when another
human
being um kind of tells you that you know
there's a hierarchy or or there's a um
you're you're not that special yeah and
in the most extreme case when you tap to
a choke you are basically living because
somebody let you live and that's that is
one of those if you think about it that
is a closer brush with mortality than
than most people consider
and that kind of humbling Act is good to
take to your work then where it's harder
to get humbled you know yeah because
nobody's nobody that does any martial
art is coming out thinking I'm the best
in the world at anything because
everybody
loses let me ask you for advice what
advice would you give to young people
today uh about life about career how how
they can have a job how they can have an
impact how they can have a life they can
be proud of so it was kind of fun I got
invited to give the commencement speech
back at the I went to a college for two
semesters and and dropped out and went
on to do my tech stuff uh but they still
wanted me to come back and give a
commencement speech and I I've got that
pinned on my Twitter account and I still
feel good about everything that I said
there and you know my my biggest point
was that the path for me might not be
the path for everyone and in fact the
advice
the path that I took and even the advice
that I would give based on my experience
and learnings probably isn't the best
advice for everyone because what I did
was all about this knowledge in depth it
was about not just having this surface
level ability to make things do what I
want but to really understand them
through and through to let me do the
systems engineering work and sometimes
find these inefficiencies that can be
bypassed and and that the whole world
doesn't need that you know most
programmers don't need or Engineers of
any kind don't necessarily need to do
that they need to do a little job that's
been parceled out to them uh be reliable
let people depend on you do quality work
with all of that but people that do have
an inclination for wanting to to know
know things deeper and learn things
deeper I you know the there are just
layers and layers of things out there
and it it's amazing it's if you're the
right person that is excited about that
I the world's never been like this
before it's better than ever I mean
everything that was wonderful for me is
still there and there's whole new worlds
to explore on the different things that
you can do and that um you know it's
hard work embrace the grind with it and
understand as much as you can and then
be be prepared for opportunities to
present themselves where you can't just
say this is my goal in life and just
push at that I mean you might be able to
do that but you're going going to make
more total progress if you say I'm
preparing myself with this broad set of
tools and then I'm being aware of all
the way things are changing as I move
through the world and as the whole world
changes around me and then looking for
opportunities to deploy the tools that
you've built and there's going to be
more and more of those types of things
there where an awareness of what's
Happening where the inefficiencies are
what things can be done what's possible
versus what's current practice and then
finding those areas where you can go and
make an adjustment and make something
that may affect millions or billions of
people in the world make it better when
maybe from your own example how how are
you able to recognize this about
yourself that you saw the layers in in a
particular thing and you were drawn to
discovering deeper and deeper truths
about it is that something that was
obvious to you that you couldn't help or
is there some actions you had to take to
actually allow yourself to dig deep so
in the earliest days of personal
computers I remember the the reference
manuals and the very early ones even had
schematics of uh computers in the
background in the in the back of the
books as well as firmware listings and
things and I could look at that and at
that time when I was a younger teenager
I didn't understand a lot of that stuff
how the the different things worked uh I
was pulling out the information that I
could get but I always wanted to know
all of that there was like kind of
magical information sitting down there
it's like the Elder Lord that some
graybeard wizard I you know is the
keeper of and so I always felt that pull
for wanting to know more wanting to
explore the uh the mysterious areas
there and you know and that followed
right in through all the things that got
the value exploring the video cards
leading to the um you know the scrolling
advantages you know exploring some of
the academic papers and things learning
about bsp trees and the different things
that that I could do um you with those
systems and just the the huge larel
phases going through Aerospace just
reading bookshelves full of books I mean
again that point where I have enough
money I can buy all the books I want it
was it was so valuable there where I was
terrible with my money when I was a kid
my mom thought I would always be broke
because you know I'd buy my comic books
and just be out of money but it was like
all the pizza I want all the diet coke I
want video games and then books and it
didn't take that much as soon as I was
making 27k a year I I felt rich and I
was just getting all the things that
that I wanted but that sense of you know
that books have always been magical to
me and that was one of the things that
really made me smile is I Andre had said
he found you know when he came over to
my house he said he found my library
inspiring just I had and it was great to
see you know I used still look at him
he's kind of a younger guy I sometimes
wonder if younger people these days have
the same relationship with books that I
do where they were such a Cornerstone
for me in so many ways but that sense
that yeah I always wanted to know it all
I know I can't and that was like one of
the last things I said you know you
can't know everything but you should
convince yourself that you can know
anything you know any one particular
thing it was created and discovered by
humans you can learn it you can find out
what you need on there and you can learn
it deeply yeah you can drive a nail down
through whatever layer cake problem
space you've got and learn a
cross-section there and not only can you
have an impact doing that you can dis
you can attain happiness doing that
there's something so fulfilling about
becoming a Craftsman of a thing yeah and
I don't want to tell people that look
this is a a good career move just you
know grit your teeth and you know and
bear it I you know you want people you
want to and I do think it is possible
sometimes to find the joy in something
like it might not immediately appeal to
you but I had told people early on like
in in software times that I you know it
a lot of game developers are in it just
because they are so passionate about
games but I was always really more
flexible in what appealed to me where I
said I think I could be quite engaged
doing operating system work or even
database work I I would find the
interest in that I because I think most
things that are significant in the world
have a lot of layers and complexity to
them and a lot of opportunities hidden
within them uh so that would probably be
the most important thing to encourage to
people is that um you can it's like
weaponized curiosity you can deploy your
curiosity to find I to kind of like make
things useful and valuable to you even
if they don't immediately appear that
way deploy your curiosity yeah that's
very true uh We've mentioned this debate
Point whether mortality or fear of
mortality is fundamental to creating an
AGI but let's talk about whether is
fundamental to human beings do you think
about your IM mortality I really don't
and and you probably always have to like
take with a grain of salt anything
somebody says about fundamental things
like that um but I don't think about
really aging impending death Legacy with
uh with my children things like that and
clearly it seems most of the world does
a lot a lot more than I do yeah I so I
mean I think I'm an outlier in that
where it's yeah it doesn't wind up being
a real part of my uh my thinking and
motivation about things so daily
existence is about sort of the people
you love and the problems before you I'm
very much focused on what I'm working on
right now I I I do take that back
there's one aspect where the the kind of
finiteness of the life does impact me
and that is about thinking about the
scope of the problems that I'm working
on when I you know when I decided to
work on when I was like nuclear fion or
AGI these are Big Ticket things that I
that are impact large fractions of the
world and I was think thinking to myself
at some level that okay I mean I've I
may have a couple more swings at bat
with me at full capability but yes my my
mental abilities will Decay with age you
know mostly inevitably I I don't think
it's a z% chance that we will address
some of that before it becomes a problem
for me I think exciting medical stuff in
the next couple decades but I do have
this kind of vague plan that when I'm
not at the top of my game and I don't
feel that I'm you know in a position to
put a dent in the world some way that
I'll probably wind up doing some kind of
recreational retro programming or I'll
you know I'll work on some you know
something that I would not devote my
life to now but I can wi away my time as
the old man gardening in the code
worlds and then to step back even uh
bigger let me ask you about why we're
here we human beings what's the meaning
of it all what's the meaning of life
John carac so very similar with that
last question I know a lot of people
fret about this question a lot and I
just really don't I really don't give a
damn we are I you know we are biological
creatures that happen stance of
evolution I you know we have innate
drives that Evolution crafted for
survival and passing on of genetic codes
I I don't I don't find a lot of value in
trying to go much deeper than that I I
have my motivations some of which are
you know some of which are probably
genetically coded and many of which are
contingent on my upbringing and the path
that I've had through my life I I don't
run into like states of depression or
enway or uh anything that uh that winds
up being a challenge and forcing a
degree of soul searching with things
like that I seem to be okay I you know
kind of without that um as a brilliant
ant in the ant colony without looking up
to the sky wondering why the hell am I
here again yeah so the the why of it the
incredible mystery of the fact that we
started first of all the origin of life
on Earth and from that from single cell
organisms the entirety of The
evolutionary process took us somehow to
this incredibly intelligent thing that
is able to build Wolfenstein 3D and doom
and Quake and uh take a crack at the
problem of AGI and create things that
eventually supersede human beings that
doesn't the why
it is um it's been my experience that
people that focus on uh that don't focus
on the here and now right in front of
them tend to be less effective I mean
it's not 100% you know Vision matters to
some people but I it doesn't seem to be
a necessary motivator for me and I think
that the process of getting there is
usually done it's like the magic of
gradient descent people just don't
believe that just looking locally gets
you to all of these spectacular things
that's been you know the Decades of
looking at I really some of the smartest
people in the world that would just push
back forever against this idea that it's
not this Grand sophisticated vision of
everything but little tiny steps local
information winds up leading to all the
best answers so the meaning of life is
uh following locally wherever the
gradient descent takes you um this was
an incredible conversation officially
the longest conversation I've ever done
on the podcast uh which means a lot to
me because I get to do it with one of my
heroes John I can't tell you how much it
means to me that you would sit down with
me you're an incredible human being um I
can't wait what you do next but you've
already Chang the world you're an
inspiration to so many people and again
we we haven't covered like most of what
I was playing to to talk about so I hope
we get a chance to talk someday in the
future and I can't wait to see what you
do next thank you so much again for
talking to me thank you very much thanks
for listening to this conversation with
John carac to support this podcast
please check out our sponsors in the
description and now let me leave you
some words from John carac
himself focused hard work is the real
key to success keep your eyes on the
goal and just keep taking the next step
towards completing it if you aren't sure
which way to do something do it both
ways and see which works
better thank you for for listening and
hope to see you next time